:root{--navy:#071731;--deep:#020b18;--blue:#0a2b58;--gold:#f7c95b;--gold-dark:#9d5f12;--cream:#fff7df;--red:#b31324;--green:#053e34;--mono:"DM Mono",monospace;--sans:"Manrope",system-ui,sans-serif;--display:"Cinzel",Georgia,serif;--card-w:clamp(48px,8.1vw,102px);--card-h:calc(var(--card-w)*1.46);--gap:clamp(4px,1vw,12px);--stack-up:clamp(17px,2.5vw,31px);--stack-down:clamp(11px,1.65vw,20px)}
*{box-sizing:border-box}[hidden]{display:none!important}html{scrollbar-gutter:stable}html,body{margin:0;min-height:100%;background:var(--deep);color:var(--cream);font-family:var(--sans)}button,a{font:inherit;touch-action:manipulation;-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #8de7ff;outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.site-bar{position:relative;z-index:50;min-height:70px;display:flex;align-items:center;justify-content:space-between;padding:.65rem clamp(1rem,4vw,3.5rem);background:#020914;border-bottom:2px solid #b27a22}.site-bar>a:last-child{color:var(--cream);font:500 .72rem var(--mono);letter-spacing:.1em;text-transform:uppercase}.brand{display:flex;align-items:center;gap:.75rem;color:var(--cream);text-decoration:none}.brand>span:last-child{display:grid}.brand strong{font-size:.78rem;letter-spacing:.12em}.brand small{color:#a8b6c8;font:500 .52rem var(--mono);letter-spacing:.12em}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:linear-gradient(145deg,#ffd976,#a6650e);color:#06162e;border:1px solid #ffeaa8;font:700 1rem var(--display)}
main{min-height:calc(100svh - 70px)}.menu-screen{position:relative;height:calc(100svh - 70px);min-height:580px;overflow:hidden;background:#06142d}.menu-art,.menu-art img{position:absolute;inset:0;width:100%;height:100%;display:block}.menu-art img{object-fit:cover;object-position:center}.menu-actions{position:absolute;left:50%;top:49.2%;width:min(25vw,315px);display:grid;gap:clamp(.32rem,.75vh,.7rem);transform:translateX(-50%)}.menu-actions button{height:clamp(34px,4.6vh,54px);padding:0;border:1px solid rgba(255,218,118,.72);background:linear-gradient(90deg,rgba(3,16,38,.86),rgba(7,37,72,.78),rgba(3,16,38,.86));color:#ffe3a0;text-transform:uppercase;font:700 clamp(.68rem,1vw,.92rem) var(--display);letter-spacing:.08em;cursor:pointer;box-shadow:inset 0 0 14px rgba(16,111,171,.3)}.menu-actions button:hover{color:#fff8d3;border-color:#fff0ae;filter:brightness(1.18)}.menu-save-note{position:absolute;left:50%;bottom:2.2%;transform:translateX(-50%);margin:0;padding:.5rem .8rem;background:rgba(2,11,24,.78);color:#f8d987;font:500 .66rem var(--mono);letter-spacing:.05em;text-align:center}
.game-screen{min-height:calc(100svh - 70px)}.game-stage{min-height:calc(100svh - 70px);padding:clamp(.5rem,1.5vw,1.2rem);background-image:linear-gradient(rgba(1,10,20,.12),rgba(1,10,20,.22)),url("assets/solitaire/table-desktop.jpg");background-size:cover;background-position:center;overflow:auto}
.board-shell{width:calc(var(--card-w)*7 + var(--gap)*6);min-height:calc(var(--card-h) + var(--stack-up)*12 + 7rem);margin:0 auto}.top-row{display:grid;grid-template-columns:repeat(7,var(--card-w));gap:var(--gap);height:var(--card-h);margin-bottom:clamp(1rem,2.8vh,2rem)}.top-spacer{grid-column:3}.card-slot{position:relative;width:var(--card-w);height:var(--card-h);border:2px solid rgba(237,194,89,.45);border-radius:clamp(5px,.9vw,10px);background:rgba(0,26,39,.43);box-shadow:inset 0 0 18px rgba(0,0,0,.3)}.foundation-slot{display:grid;place-items:center;color:rgba(248,218,139,.4);font-size:calc(var(--card-w)*.38);cursor:pointer}.foundation-slot:nth-of-type(5),.foundation-slot:nth-of-type(6){color:rgba(221,64,73,.44)}.stock-button{position:absolute;inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px);padding:0;border:0;border-radius:inherit;background-color:#061b39;background-image:url("assets/solitaire/card-back.png");background-size:100% 100%;box-shadow:0 3px 8px rgba(0,0,0,.45);cursor:pointer}.stock-button.is-empty{background:rgba(3,25,36,.35);border:2px dashed rgba(237,194,89,.52);box-shadow:none}.stock-button.is-empty::after{content:"↻";color:#e8c36c;font-size:calc(var(--card-w)*.42)}
.tableau{display:grid;grid-template-columns:repeat(7,var(--card-w));gap:var(--gap)}.tableau-pile{position:relative;width:var(--card-w);min-height:calc(var(--card-h) + var(--stack-up)*12);border-radius:clamp(5px,.9vw,10px);cursor:pointer}.tableau-pile:empty::after{content:"K";position:absolute;inset:0;height:var(--card-h);display:grid;place-items:center;border:2px dashed rgba(238,197,97,.32);border-radius:inherit;color:rgba(238,197,97,.28);font:700 calc(var(--card-w)*.34) var(--display)}
.playing-card{position:absolute;left:0;top:var(--y,0);z-index:var(--z,1);width:var(--card-w);height:var(--card-h);padding:0;border:0;border-radius:clamp(5px,.9vw,10px);background:transparent;color:#07101d;box-shadow:none;cursor:pointer;overflow:visible;filter:drop-shadow(0 3px 4px rgba(0,0,0,.48));transition:filter .12s ease}.playing-card:hover{filter:brightness(1.05) drop-shadow(0 3px 4px rgba(0,0,0,.48))}.playing-card.face-down>*{display:none}.playing-card.red{color:var(--red)}.playing-card:disabled{cursor:default}.waste-card,.foundation-card{top:-2px;left:-2px}.game-message{width:min(100%,900px);margin:clamp(.7rem,2vh,1.3rem) auto 0;padding:.7rem 1rem;background:rgba(2,12,29,.9);border-left:4px solid var(--gold);color:#f9e6ae;text-align:center;font:500 .68rem var(--mono);letter-spacing:.03em}
.egypt-dialog{width:min(calc(100% - 2rem),560px);padding:0;border:2px solid #d6a246;background:linear-gradient(160deg,#061a38,#020b18);color:var(--cream);box-shadow:0 24px 80px rgba(0,0,0,.72),inset 0 0 32px rgba(26,91,150,.2)}.egypt-dialog::backdrop{background:rgba(0,5,15,.78);backdrop-filter:blur(5px)}.egypt-dialog form{position:relative;display:grid;gap:1rem;padding:clamp(1.4rem,5vw,2.6rem)}.dialog-close{position:absolute;right:.7rem;top:.55rem;width:38px;height:38px;border:1px solid #b7812e;background:#06172f;color:#ffe29d;font-size:1.4rem;cursor:pointer}.eyebrow{margin:0;color:#e8bc61;font:500 .66rem var(--mono);letter-spacing:.14em}.egypt-dialog h2{margin:0;font:700 clamp(2rem,7vw,3.4rem)/.95 var(--display);color:#ffe3a0}.egypt-dialog p{margin:0;color:#d8dfeb}.egypt-dialog fieldset{display:grid;gap:.7rem;margin:0;padding:1rem;border:1px solid rgba(226,183,83,.45)}.egypt-dialog legend{padding:0 .4rem;color:#f3cf7c;font:700 .85rem var(--display)}.egypt-dialog label{display:flex;gap:.65rem;align-items:center}.egypt-dialog button:not(.dialog-close){padding:.8rem 1rem;border:1px solid #c99636;background:#061b39;color:#ffe5a4;text-transform:uppercase;font:700 .72rem var(--display);letter-spacing:.05em;cursor:pointer}.egypt-dialog .dialog-primary{background:linear-gradient(#b77a21,#7f4c0d);color:#fff9de;border-color:#ffd76e}.switch-row{justify-content:space-between}.switch-row span{display:grid}.switch-row small{color:#aab7ca}.switch-row input{width:22px;height:22px}.image-dialog{width:min(calc(100% - 1rem),620px);background:#020915}.image-dialog form{position:absolute;z-index:2;right:0;top:0;padding:0}.image-dialog img{display:block;width:100%;height:auto}.theme-preview{display:flex;align-items:center;gap:1rem;padding:1rem;border:1px solid rgba(226,183,83,.4)}.theme-preview img{width:100px;border-radius:8px}.theme-preview span{font:700 1.2rem var(--display);color:#f5d57e}@keyframes hintPulse{50%{box-shadow:0 0 0 4px #fff2a8,0 0 26px 10px rgba(78,195,255,.85);transform:translateY(-8px)}}
@media(max-width:700px){:root{--card-w:calc((100vw - 1rem - 6*4px)/7);--gap:4px;--stack-up:clamp(22px,7.2vw,31px);--stack-down:clamp(12px,4.3vw,18px)}.site-bar{min-height:58px;padding:.45rem .7rem}.site-bar>a:last-child{font-size:.58rem}.brand small{display:none}.brand strong{font-size:.68rem}.brand-mark{width:34px;height:34px}main{min-height:calc(100svh - 58px)}.menu-screen{height:calc(100svh - 58px);min-height:620px}.menu-art img{object-position:center}.menu-save-note{bottom:.7%;width:max-content;max-width:94%;font-size:.56rem}.game-screen,.game-stage{min-height:calc(100svh - 58px)}.game-stage{padding:.35rem .5rem 1rem;background-image:linear-gradient(rgba(1,9,18,.05),rgba(1,9,18,.14)),url("assets/solitaire/table-mobile.jpg");background-position:center top;background-size:cover}.board-shell{min-height:calc(var(--card-h) + var(--stack-up)*12 + 4rem)}.top-row{margin-bottom:.75rem}.game-message{font-size:.58rem;margin-top:.55rem;padding:.55rem}.egypt-dialog form{padding:1.35rem}.image-dialog{max-height:94svh;overflow:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Invisible controls sit precisely over the approved final-screen artwork. */
.final-screen-dialog{position:relative;width:min(calc(100% - 1rem),500px);max-height:96svh;overflow:auto;background:#020915}
.final-screen-dialog>img{position:relative;z-index:0;display:block;width:100%;height:auto}
.final-screen-dialog>form{position:absolute;z-index:4;inset:0 0 auto;width:100%;height:0;padding:0;pointer-events:none}
.final-screen-dialog .dialog-close{z-index:5;right:.45rem;top:.45rem;pointer-events:auto}
.pause-hotspots{position:absolute;z-index:3;inset:0;pointer-events:none}
.pause-hotspots button{position:absolute;left:24%;width:52.5%;height:6.2%;padding:0!important;border:0!important;background:transparent!important;color:transparent!important;box-shadow:none;pointer-events:auto;cursor:pointer}
.pause-hotspots button:hover,.pause-hotspots button:focus,.pause-hotspots button:focus-visible{outline:0!important;background:transparent!important;box-shadow:none!important;filter:none!important}
.pause-hotspots button:nth-child(1){top:41.8%;height:6.4%}
.pause-hotspots button:nth-child(2){top:49.2%;height:6.2%}
.pause-hotspots button:nth-child(3){top:56.5%;height:6.2%}
.pause-hotspots button:nth-child(4){top:63.7%;height:6.2%}

@media(max-width:700px){.final-screen-dialog{width:min(calc(100% - .5rem),500px);max-height:98svh}.final-screen-dialog .dialog-close{width:34px;height:34px}}

/* Working settings controls placed inside the supplied Egyptian settings frame. */
.settings-dialog{width:min(calc(100% - .75rem),540px,50.2svh);max-height:98svh;padding:0;border:0;background:transparent;box-shadow:none;overflow:hidden}
.settings-dialog::backdrop{background:rgba(0,5,15,.86);backdrop-filter:blur(6px)}
.settings-frame{position:relative;width:100%}
.settings-shell-art{display:block;width:100%;height:auto}
.settings-close-form{position:absolute!important;z-index:12;right:4.8%!important;top:8.5%!important;padding:0!important}
.settings-close-form .dialog-close{position:relative;right:auto;top:auto;width:36px;height:36px;padding:0;border:0;background:transparent;color:transparent;box-shadow:none;overflow:visible}
.settings-close-form .dialog-close img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px rgba(0,0,0,.48))}
.settings-close-form .dialog-close:hover,.settings-close-form .dialog-close:focus,.settings-close-form .dialog-close:focus-visible{outline:0;background:transparent;border:0;box-shadow:none;filter:brightness(1.08)}
.settings-ui{position:absolute;z-index:4;left:11.5%;right:11.5%;top:27%;bottom:5.7%;display:grid;grid-template-rows:repeat(5,minmax(0,1fr)) 1.08fr 1.18fr 1.22fr;gap:.6%}
.settings-row,.reset-game-button{min-height:0;border:1px solid rgba(246,199,90,.86)!important;background:rgba(3,20,43,.84)!important;color:#ffe7ac!important;box-shadow:inset 0 0 16px rgba(10,73,125,.25);font:700 clamp(.66rem,2.4vw,.95rem) var(--display)!important;letter-spacing:.035em;text-transform:uppercase}
button.settings-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 5%!important;cursor:pointer}
.settings-row:hover,.settings-row:focus-visible,.reset-game-button:hover,.reset-game-button:focus-visible{background:rgba(8,43,79,.96)!important;border-color:#ffe69a!important}
.art-switch{position:relative;flex:0 0 auto;width:clamp(68px,21vw,104px);height:clamp(29px,8.4vw,42px);border:2px solid #d99827;border-radius:999px;background:#041b38;box-shadow:inset 0 0 9px rgba(0,0,0,.75),0 0 8px rgba(18,105,178,.18)}
.art-switch img{position:absolute;top:50%;left:3px;width:calc(50% - 5px);height:auto;transform:translateY(-50%);transition:left .2s ease,filter .2s ease;filter:saturate(.65) brightness(.75)}
.settings-row.is-on .art-switch{background:#063d78;box-shadow:inset 0 0 12px rgba(24,131,239,.72),0 0 10px rgba(25,141,255,.42)}
.settings-row.is-on .art-switch img{left:calc(50% + 2px);filter:saturate(1.12) brightness(1.08)}
.language-row,.handedness-row{display:flex;align-items:center;justify-content:space-between;padding:0 5%}
.language-row:has([aria-expanded="true"]){position:relative;z-index:30}
.language-row>span,.handedness-row>span{max-width:43%;line-height:1.1}
.language-control{position:relative;width:62%;height:auto;aspect-ratio:500/140}
.language-trigger{width:100%;height:100%;padding:0 25% 0 6%!important;border:0!important;background:transparent!important;color:#ffe4a4!important;font:700 clamp(.62rem,2vw,.86rem) var(--display)!important;text-transform:uppercase;cursor:pointer}
.handedness-control{position:relative;width:52%;height:70%}
.handedness-track{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.handedness-control button{position:absolute;top:2%;bottom:2%;width:49%;padding:2%!important;border:0!important;background:transparent!important;cursor:pointer}
.handedness-control button:first-of-type{left:1%}.handedness-control button:last-of-type{right:1%}
.handedness-control button img{display:block;width:auto;height:88%;margin:auto;filter:brightness(.72) saturate(.8);transition:transform .16s ease,filter .16s ease}
.handedness-control button.is-selected img{transform:scale(1.08);filter:brightness(1.12) saturate(1.08);filter:drop-shadow(0 0 8px rgba(80,188,255,.7))}
.hand-left .top-row{direction:rtl}.hand-left .top-row>*{direction:ltr}

@media(max-width:700px){
  .settings-dialog{width:min(calc(100% - .25rem),500px)}
  .settings-close-form{right:4.4%!important;top:8%!important}
  .settings-close-form .dialog-close{width:38px;height:38px}
  .settings-ui{left:10.8%;right:10.8%;top:27.1%;bottom:5.8%}
  .settings-row,.reset-game-button{font-size:clamp(.58rem,3vw,.82rem)!important}
  .art-switch{width:clamp(62px,23vw,94px);height:clamp(27px,9vw,38px)}
  .language-trigger{font-size:clamp(.53rem,2.7vw,.74rem)!important}
}

/* Every supplied card image occupies one identical deck frame. The button is only its hit target. */
.card-art{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;margin:0;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none}
.playing-card.art-card>.card-art,.playing-card.face-down>.card-art{display:block}
.playing-card.art-card,.playing-card.face-down{border:0;background:transparent;box-shadow:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.48));overflow:hidden}
.stock-button:not(.is-empty){background:transparent;box-shadow:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.45));overflow:visible}
.stock-button.is-empty>.card-art{display:none}

/* Deterministic all-card proof surface used by the release gate. */
html[data-qa-state="deck-52"] .top-row{display:none}
html[data-qa-state="deck-52"] .board-shell{width:min(100%,1500px);min-height:0}
html[data-qa-state="deck-52"] .deck-qa-grid{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:clamp(.35rem,.7vw,.75rem);width:100%}
html[data-qa-state="deck-52"] .deck-qa-item{display:grid;justify-items:center;gap:.2rem;min-width:0}
html[data-qa-state="deck-52"] .deck-qa-item .playing-card{position:relative;left:auto;top:auto;width:100%;height:auto;aspect-ratio:240/350}
html[data-qa-state="deck-52"] .deck-qa-label{color:#fff4cb;font:700 clamp(.48rem,.75vw,.68rem)/1 var(--mono);letter-spacing:.04em}
@media(max-width:700px){
  html[data-qa-state="deck-52"] .deck-qa-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}
  html[data-qa-state="deck-52"] .deck-qa-label{font-size:.58rem}
}

/* iOS must treat the supplied artwork as interface chrome, not downloadable page images. */
html,body,button,img,picture{-webkit-touch-callout:none}
body{-webkit-user-select:none;user-select:none}
img{-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.menu-art{pointer-events:none}

/* Occupied slots and card states never draw a second rectangular component around the art. */
.stock-slot:has(.stock-button:not(.is-empty)),#waste:has(.playing-card),.foundation-slot:has(.playing-card){border-color:transparent;background:transparent;box-shadow:none}
.playing-card.is-selected{transform:none;box-shadow:none;filter:drop-shadow(0 0 2px #fff2a8) drop-shadow(0 0 8px rgba(78,195,255,.9))}
.playing-card.is-hinted{animation:artHintPulse .8s ease-in-out 3}
@keyframes artHintPulse{50%{transform:none;filter:brightness(1.12) drop-shadow(0 0 2px #fff2a8) drop-shadow(0 0 10px rgba(78,195,255,.95))}}

/* The supplied language and reset artwork are the controls; the buttons are matching hit areas. */
.language-trigger{position:relative;overflow:visible;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.language-trigger-art{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
.language-trigger #language-value{position:relative;z-index:1;display:block;padding-right:22%;text-align:center}
.language-options{position:absolute;z-index:40;left:auto;right:5%;top:0;width:62%;height:auto;aspect-ratio:820/458;display:block;border:0;background:transparent;box-shadow:none}
.language-options[hidden]{display:none!important}
.language-options-art{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.language-options-current{position:absolute;z-index:1;left:38%;top:9%;width:41%;height:19%;display:grid;place-items:center;color:#ffe4a4;font:700 clamp(.52rem,2vw,.78rem) var(--display);text-transform:uppercase;pointer-events:none}
.language-options button{position:absolute;z-index:2;left:39%;width:50%;height:20%;padding:0!important;border:0!important;background:transparent!important;color:#ffe4a4!important;font:700 clamp(.52rem,2vw,.78rem) var(--display)!important;text-transform:uppercase;cursor:pointer}
.language-options button[data-language="en"]{top:36%}
.language-options button[data-language="es"]{top:57%}
.language-options button[data-language="fr"]{top:78%}
.language-options button:hover,.language-options button:focus,.language-options button:focus-visible{outline:0!important;background:transparent!important;box-shadow:none!important;filter:brightness(1.14)}
.reset-game-button{position:relative;width:84%;height:auto;aspect-ratio:570/124;align-self:center;justify-self:center;padding:0!important;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;overflow:visible;cursor:pointer}
.reset-game-button img{display:block;width:100%;height:auto;object-fit:contain;pointer-events:none}
.reset-game-button:hover,.reset-game-button:focus,.reset-game-button:focus-visible,.language-trigger:hover,.language-trigger:focus,.language-trigger:focus-visible{outline:0!important;background:transparent!important;border:0!important;box-shadow:none!important;filter:brightness(1.08) drop-shadow(0 0 7px rgba(78,195,255,.45))}
.handedness-control button:focus,.handedness-control button:focus-visible{outline:0!important;background:transparent!important;box-shadow:none!important}

/* Supplied toolbar artwork is the interface. HTML supplies live values and hit targets only. */
.game-controls{position:relative;z-index:20;width:min(100%,1280px);margin:0 auto clamp(.8rem,2vh,1.4rem)}
.game-toolbar{position:relative;display:block;width:100%;aspect-ratio:1526/171;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.game-toolbar-art{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:fill;pointer-events:none}
.game-toolbar .toolbar-menu-hotspot{position:absolute;z-index:2;left:7.7%;top:20%;width:10.1%;height:61%;grid-row:auto;padding:0;border:0;background:transparent;box-shadow:none;color:transparent}
.game-toolbar button.toolbar-menu-hotspot:hover,.game-toolbar button.toolbar-menu-hotspot:focus,.game-toolbar button.toolbar-menu-hotspot:focus-visible,.game-toolbar button.toolbar-menu-hotspot:active{outline:0!important;background:transparent!important;border:0!important;box-shadow:none!important;filter:none!important}
.game-toolbar .game-stat{position:absolute;z-index:2;top:40%;height:47%;display:grid;place-items:center;min-width:0;padding:0;text-align:center}
.game-toolbar .time-stat{left:25.2%;width:13.2%}
.game-toolbar .moves-stat{left:67.3%;width:11.5%}
.game-toolbar .game-stat strong{color:#fff0bc;font:700 clamp(.72rem,3.1vw,2.8rem)/1 var(--display);text-shadow:0 2px 2px #020713,0 0 7px rgba(255,218,123,.24)}
.toolbar-actions{display:grid;grid-template-columns:2.198fr 2.57fr 2.656fr 2.632fr 2.6fr;align-items:stretch;gap:clamp(.08rem,.35vw,.3rem);width:min(94%,1080px);aspect-ratio:12.9/1;margin:-.15% auto 0}
.game-toolbar button,.toolbar-actions .art-action{min-width:0;padding:0;border:0;background:transparent;color:transparent;box-shadow:none;cursor:pointer}
.toolbar-actions .art-action{display:grid;place-items:center;min-height:0;aspect-ratio:auto}
.toolbar-actions .art-action img{display:block;width:100%;height:100%;object-fit:fill;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(0,0,0,.4));transition:filter .15s ease,transform .15s ease}
.toolbar-actions .art-action:hover:not(:disabled) img,.toolbar-actions .art-action:focus-visible img{filter:brightness(1.1) drop-shadow(0 0 7px rgba(69,174,255,.5));transform:translateY(-1px)}
.toolbar-actions .art-action:focus,.toolbar-actions .art-action:focus-visible{outline:0;box-shadow:none}
.toolbar-actions .art-action:disabled{opacity:1;cursor:not-allowed}
.toolbar-actions .art-action:disabled img{opacity:1;filter:brightness(.76) saturate(.78) drop-shadow(0 3px 4px rgba(0,0,0,.35))}
.toolbar-actions .quick-music.is-on{border:0;background:transparent;box-shadow:none}

/* The supplied round Egyptian close art is used consistently on all illustrated overlays. */
.image-dialog .dialog-close{width:38px;height:38px;padding:0;border:0;background:transparent;color:transparent;box-shadow:none;overflow:visible}
.image-dialog .dialog-close img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 5px rgba(0,0,0,.48))}
.image-dialog .dialog-close:hover,.image-dialog .dialog-close:focus,.image-dialog .dialog-close:focus-visible{outline:0;background:transparent;border:0;box-shadow:none;filter:brightness(1.08)}
.help-got-it-hotspot{position:absolute;z-index:4;left:22%;bottom:1.2%;width:56%;height:8.8%;padding:0;border:0;background:transparent;color:transparent;cursor:pointer}
.help-got-it-hotspot:hover,.help-got-it-hotspot:focus,.help-got-it-hotspot:focus-visible{outline:0;background:transparent;box-shadow:none;filter:none}

/* The open language art replaces the entire row so labels and lower controls never collide. */
.language-row{position:relative}
.settings-ui.language-menu-open .language-row>span,
.settings-ui.language-menu-open .language-control{visibility:hidden}
.settings-ui.language-menu-open .handedness-row,
.settings-ui.language-menu-open .reset-game-button{display:none!important}
.settings-ui.language-menu-open .language-options,
.settings-ui.language-menu-open .language-options *{visibility:visible}

@media(max-width:700px){
  .game-controls{position:sticky;top:0;z-index:20;width:100%;margin:0 auto .55rem;padding:.15rem 0 .2rem;background:rgba(2,12,29,.9)}
  .game-toolbar{position:relative;top:auto;display:block;grid-template-columns:none;gap:0;margin:0;padding:0;background:transparent}
  .game-toolbar>button{grid-row:auto}
  .game-toolbar .game-stat strong{font-size:clamp(.7rem,3.3vw,.9rem)}
  .toolbar-actions{grid-column:auto;grid-template-columns:2.198fr 2.57fr 2.656fr 2.632fr 2.6fr;gap:.06rem;width:98%;margin:-.2rem auto 0}
  .game-toolbar button,.toolbar-actions .art-action{padding:0;font-size:0}
}

/* Card art remains the only visible card component after tap or keyboard focus. */
.playing-card:focus,.playing-card:focus-visible,.stock-button:focus,.stock-button:focus-visible{outline:0;box-shadow:none}

/* Mouse, touch, and stylus drag the real card artwork; tapping remains available. */
.playing-card:not(.face-down){touch-action:none}
.card-drag-preview{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;will-change:transform;filter:drop-shadow(0 10px 12px rgba(0,0,0,.58))}
.card-drag-preview-art{position:absolute;left:0;display:block;object-fit:fill;pointer-events:none;user-select:none;-webkit-user-drag:none}
.is-card-dragging,.is-card-dragging *{cursor:grabbing!important}
.is-card-dragging .playing-card.is-selected{opacity:.28}
.tableau-pile.is-drop-target,.foundation-slot.is-drop-target{filter:brightness(1.12) drop-shadow(0 0 9px rgba(78,195,255,.95))}

/* Match the mobile hit layer to the 864 x 1536 menu artwork after object-fit: cover. */
@media(min-width:701px){
  /* Match the desktop hit layer to the 1536 x 1024 menu artwork after object-fit: cover. */
  .menu-actions{left:50%;top:50%;width:auto;height:max(100%,66.6667vw);aspect-ratio:3/2;display:block;transform:translate(-50%,-50%);pointer-events:none}
  .menu-actions button{position:absolute;left:39%;width:22%;height:7.35%;margin:0!important;padding:0!important;border:0!important;background:transparent!important;color:transparent!important;box-shadow:none!important;pointer-events:auto;cursor:pointer}
  .menu-actions button:nth-child(1){top:46%}
  .menu-actions button:nth-child(2){top:55.2%}
  .menu-actions button:nth-child(3){top:64.35%}
  .menu-actions button:nth-child(4){top:73.45%}
  .menu-actions button:hover,.menu-actions button:focus,.menu-actions button:focus-visible{outline:0!important;background:transparent!important;border:0!important;box-shadow:none!important;filter:none!important}
}

@media(max-width:700px){
  .menu-actions{left:50%;top:50%;bottom:auto;width:auto;height:max(100%,177.7778vw);aspect-ratio:9/16;transform:translate(-50%,-50%)}
  .menu-actions button{left:23.1%;width:53.8%;height:6.5%}
  .menu-actions button:nth-child(1){top:52.1%}
  .menu-actions button:nth-child(2){top:59.9%}
  .menu-actions button:nth-child(3){top:67.7%}
  .menu-actions button:nth-child(4){top:75.6%}
}

/* Touch interaction never exposes any invisible hit target. */
@media(hover:none),(pointer:coarse){
  button:focus,
  button:focus-visible,
  .menu-actions button:hover,
  .menu-actions button:focus,
  .menu-actions button:focus-visible,
  .pause-hotspots button:hover,
  .pause-hotspots button:focus,
  .pause-hotspots button:focus-visible,
  .settings-hotspots button:hover,
  .settings-hotspots button:focus,
  .settings-hotspots button:focus-visible,
  .game-toolbar .toolbar-menu-hotspot:hover,
  .game-toolbar .toolbar-menu-hotspot:focus,
  .game-toolbar .toolbar-menu-hotspot:focus-visible{outline:0!important;background:transparent!important;box-shadow:none!important;filter:none!important}
}

/* Final illustrated-dialog authority: keep supplied artwork fully visible and hit areas invisible. */
.image-dialog{width:min(calc(100% - 1rem),620px,54svh);max-height:96svh;overflow:hidden}
.image-dialog:not(.final-screen-dialog)>form{right:.45rem;top:.45rem}
.egypt-dialog button.help-got-it-hotspot{position:absolute;z-index:4;left:22%;bottom:1.2%;width:56%;height:8.8%;padding:0!important;border:0!important;background:transparent!important;color:transparent!important;box-shadow:none!important;cursor:pointer}
.egypt-dialog button.help-got-it-hotspot:hover,.egypt-dialog button.help-got-it-hotspot:focus,.egypt-dialog button.help-got-it-hotspot:focus-visible{outline:0!important;background:transparent!important;border:0!important;box-shadow:none!important;filter:none!important}
