:root{color-scheme:dark;--ink:#f1e2bd;--muted:#b5c5be;--gold:#e5b666;--teal:#0b302f;--line:#6c684b;--paper:#edddb3;--dark:#113633;--red:#a93f2f;--green:#9ed1a5;font-family:"Segoe UI",Arial,sans-serif;font-size:16px;background:#082525;color:var(--ink)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 20% 0,#23504a,transparent 55%),#082525;min-height:100vh}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{border:1px solid #ab8e56;border-radius:7px;background:#173d37;color:var(--ink);padding:11px 16px;min-height:44px;cursor:pointer;line-height:1.35}button:hover{border-color:var(--gold);background:#245046}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #ffce77;outline-offset:4px}input,select{width:100%;min-height:46px;background:#123b36;color:var(--ink);border:1px solid #8e8a65;border-radius:6px;padding:10px}label{display:block;font-size:.85rem;color:var(--muted)}label input,label select{margin-top:7px}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.15;color:#f4dfae;margin:.3em 0 .65em}h1{font-size:clamp(2rem,4.5vw,3.6rem)}h2{font-size:clamp(1.45rem,2.5vw,2rem)}h3{font-size:1.4rem}p{line-height:1.6;margin:.65em 0}small{font-size:.75rem}a{color:var(--gold)}header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px clamp(16px,4vw,64px);border-bottom:1px solid #4b5c49;background:#082c2bb8}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:1.45rem Georgia,serif;color:var(--ink)}.brand small{display:block;font:10px "Segoe UI",sans-serif;letter-spacing:.22em;margin-top:7px;color:var(--gold)}nav{display:flex;flex-wrap:wrap;gap:8px}nav button{background:transparent;font-size:.85rem}main{max-width:1440px;margin:auto;padding:32px clamp(16px,4vw,56px) 60px}main>section{margin-bottom:28px}footer{padding:24px;text-align:center;color:var(--muted);font-size:.8rem;border-top:1px solid #435344}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-size:.68rem;font-weight:600}.intro{font-size:1.1rem;max-width:640px;color:#d5ded1}.muted{color:var(--muted);font-size:.85rem}.primary{background:var(--gold);color:#183c32;border-color:#f4d593;font-weight:700}.primary:hover{background:#f1c57e;color:#113633}.secondary{background:transparent}.text-button{padding:6px 10px;background:transparent;font-size:.85rem;color:var(--gold)}.danger-button{background:#973c2f;color:#fff0dc}.hero{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;min-height:620px}form{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:620px;margin:28px 0 16px}form .primary{grid-column:1/-1}.hero-cards{display:flex;align-items:center;justify-content:center;padding:30px 20px}.hero-cards .card-art{width:56%;max-width:260px;box-shadow:0 24px 50px #001917}.tilt-left{transform:rotate(-9deg);z-index:1}.tilt-right{transform:rotate(8deg);margin-left:-20px;margin-top:60px}.lore{max-width:820px;border-left:2px solid #ad8d4e;padding:8px 24px;color:#c7d5c7;font-family:Georgia,serif;font-size:1.1rem}.card-art{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain;border-radius:12px;background:#092f2c}.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:920px;margin:24px auto 36px}.mission-grid article{display:grid;gap:12px;align-content:start}.mission-grid .card-art{max-width:300px;margin:auto}.hand-grid,.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:16px;margin:20px 0}.hand-grid article{min-width:0;border:2px solid transparent;border-radius:12px;padding:3px}.hand-grid article.selected{border-color:#ffd283;background:#8b763740}.card-button{display:block;padding:0;width:100%;border:0;border-radius:12px;background:none;text-align:left;overflow:visible}.card-button:hover{background:none}.card-button:hover .card-art{box-shadow:0 0 0 2px #e0b870}.card-status{display:block;padding:8px 4px;min-height:40px;font-size:.77rem;line-height:1.3;color:#bdc9bc}.good{color:var(--green)}.danger{color:#ffc0a2}.scoreboard{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.seat{min-width:0;padding:14px;border:1px solid #5a6550;border-radius:9px;background:#0d3331}.seat.active{border-color:var(--gold);box-shadow:inset 0 3px 0 var(--gold)}.seat>div{display:flex;justify-content:space-between;gap:8px}.seat strong{font-size:.85rem}.seat b{color:var(--gold);white-space:nowrap}.seat p{font-size:.74rem;margin:8px 0 0;color:#c9d3c3}.seat .conditions{font-size:.68rem;color:#b1b99d;min-height:2.7em}.seat summary{font-size:.75rem}.table{display:grid;grid-template-columns:1fr 1fr;gap:20px}.center-card,.lead-card{display:flex;gap:20px;align-items:center;border:1px solid #857044;border-radius:14px;padding:20px;background:linear-gradient(130deg,#1e4740,#10332f);min-width:0}.center-card>.card-art,.lead-card>.card-art,.empty-card{width:125px;flex:0 0 125px}.center-card>div,.lead-card>div{min-width:0}.center-card p,.lead-card p{font-size:.85rem}.table h2{font-size:1.6rem}.empty-card{aspect-ratio:2/3;display:grid;place-items:center;border:2px dashed #718064;border-radius:12px;font-size:4rem;color:#b99554;background:#12352e}.pot{display:block;margin:12px 0;font-size:.85rem;color:#f3cf8e}.pile-history{margin:0 0 24px}.pile-history ol{display:flex;gap:12px;overflow-x:auto;padding:12px 24px 18px}.pile-history li{flex:0 0 180px;font-size:.8rem}.turn-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.turn-heading h2{font-size:1.7rem}.turn-limits{font-size:.83rem;color:#b8cbb8}.tabs{display:flex;gap:8px;border-bottom:1px solid #617059;padding:0 0 12px}.tabs button[aria-selected=true]{background:var(--paper);color:#133830}.tabs b{margin-left:6px}.selection{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;background:#e9d9af;color:#183c36;border:1px solid #c5a05b;padding:20px;border-radius:12px;margin-top:18px}.selection h3{color:#123b34}.selection p{font-size:.9rem}.selection .eyebrow{color:#795024}.selection .muted{color:#4a6253}.selection .text-button{color:#17483b;border-color:#948254}.selection .good{color:#23643b}.selection .danger{color:#913020}.action-options{display:flex;flex-direction:column;gap:8px;justify-content:center;max-height:360px;overflow-y:auto}.selection details p{font-size:.78rem}.yield,.reaction{padding:24px;border:1px solid #d69b65;border-radius:12px;background:#482e24;margin:20px 0}.reaction{background:#3d3824}.reaction button{margin:10px 12px 0 0}.private-note{padding:12px;border-left:2px solid var(--gold);color:#f5d598}details{border:1px solid #53634b;border-radius:8px;padding:12px 16px}summary{cursor:pointer;min-height:32px;padding:4px 0;font-size:.9rem}details>p{font-size:.85rem}li{line-height:1.6;margin:6px 0}.story-log{background:#0c2e2b}.story-log li{font-size:.85rem;color:#c5d1c2}.round-summary{background:var(--paper);padding:32px;border-radius:16px;color:#1b3d35}.round-summary h1{color:#123b34}.round-summary .eyebrow{color:#946524}.round-summary .intro{color:#395a4a}.round-summary details{border-color:#b4a079}.summary-total{font-size:1.15rem;padding:20px 0}.summary-total b{font:3rem Georgia,serif;margin-right:10px}.summary-plays{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.summary-plays li{padding:12px 0;border-top:1px solid #b9aa84;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:.9rem}.summary-plays small{width:100%;color:#596752}.reveal-action{text-align:center;margin-top:24px}.reveal-action p{font-size:.85rem}.mission-results{display:grid;gap:20px;margin:30px 0}.mission-results article{display:grid;grid-template-columns:155px 1fr;gap:24px;padding:24px;border:1px solid #9f824c;border-radius:12px;background:#123c36}.score-math{background:#244d40;padding:12px;border-radius:6px}.score-math b{color:var(--gold);font-size:1.3rem}.modal-open{overflow:hidden}.modal-scrim{position:fixed;inset:0;background:#001514d9;z-index:30;display:grid;place-items:center;padding:20px}.modal{position:relative;width:min(1100px,100%);max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;background:#123b35;border:1px solid #b48e51;border-radius:14px;padding:24px;box-shadow:0 25px 80px #001a16}.modal-close{display:block;margin:0 0 18px auto;position:sticky;top:0;z-index:2;background:#143c34}.inspected{display:flex;gap:28px;align-items:center;max-width:860px;margin:auto}.inspected>.card-art{width:min(400px,48%)}.inspected>div{flex:1;min-width:0}.inspected>p{max-width:360px}.rules li{padding:8px 0}.collection-filters{display:grid;grid-template-columns:2fr 1fr;gap:16px}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}.error{background:#752e25;border:2px solid #e9ad7b;padding:18px;border-radius:8px}.empty-note{padding:30px;text-align:center;color:#b7c5b8}
@media(min-width:1500px){.hand-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:1100px){.table{grid-template-columns:1fr}.center-card>.card-art,.lead-card>.card-art,.empty-card{width:110px;flex-basis:110px}.hero{gap:24px;min-height:540px}.hero h1{font-size:2.8rem}.hero-cards{padding:0}.scoreboard{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:720px){header{padding:16px;gap:16px;align-items:flex-start;flex-direction:column}nav{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}nav button{padding:8px 5px;font-size:.73rem;min-width:0}.brand{font-size:1.3rem}main{padding:24px 14px 40px}.hero{grid-template-columns:1fr;gap:20px;min-height:0}.hero>div:first-child{order:1}.hero-cards{max-width:320px;margin:0 auto 8px;width:100%}.hero-cards .card-art{max-width:140px}.hero h1{font-size:2.5rem}form{grid-template-columns:1fr}.intro{font-size:1rem}.mission-grid{gap:14px;grid-template-columns:1fr;max-width:350px}.mission-grid article{padding:18px;background:#163d35;border:1px solid #877044;border-radius:12px}.mission-grid .card-art{max-width:230px}.hand-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.hand-grid article{padding:2px}.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.seat{padding:10px}.seat>div{flex-wrap:wrap}.seat p{font-size:.7rem}.table{gap:12px}.center-card,.lead-card{padding:14px;gap:14px}.center-card>.card-art,.lead-card>.card-art,.empty-card{width:92px;flex-basis:92px}.table h2{font-size:1.3rem}.table p{font-size:.78rem}.eyebrow{letter-spacing:.16em;font-size:.6rem}.turn-heading{align-items:flex-start}.turn-heading h2{font-size:1.45rem}.turn-heading button{font-size:.75rem;padding:8px}.tabs{position:sticky;top:0;z-index:5;background:#0c302c;padding:10px 0;gap:6px}.tabs button{padding:9px 5px;flex:1;font-size:.82rem}.tabs b{margin-left:2px}.selection{grid-template-columns:1fr;gap:12px;padding:16px}.action-options{max-height:280px}.round-summary{padding:20px 16px}.summary-plays{grid-template-columns:1fr}.summary-plays li{font-size:.8rem}.mission-results article{grid-template-columns:95px 1fr;padding:14px;gap:14px}.mission-results h2{font-size:1.3rem}.mission-results p{font-size:.8rem}.score-math{padding:8px}.modal-scrim{padding:8px}.modal{max-height:96dvh;padding:16px}.inspected{flex-direction:column;gap:16px;align-items:stretch}.inspected>.card-art{width:100%;max-width:350px;margin:auto}.collection-filters{grid-template-columns:1fr 1fr;gap:10px}.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reaction,.yield{padding:18px}.lore{padding:8px 16px;font-size:1rem}h1{overflow-wrap:anywhere}}
@media(max-width:360px){.center-card,.lead-card{gap:10px;padding:10px}.center-card>.card-art,.lead-card>.card-art,.empty-card{width:78px;flex-basis:78px}.table h2{font-size:1.15rem}.tabs button{font-size:.74rem}.mission-results article{grid-template-columns:1fr}.mission-results .card-art{width:160px;margin:auto}.scoreboard{gap:6px}.seat{padding:8px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}


/* Compact playing table: the hand owns the remaining viewport height. */
body.playing{height:100dvh;min-height:0;overflow:hidden}
.playing #app{height:100%;display:flex;flex-direction:column}
.playing header{flex:0 0 62px;padding:8px 20px;gap:12px}
.playing .brand{font-size:1.2rem}.playing .brand small{margin-top:3px}
.playing nav{flex-wrap:nowrap}.playing nav button{padding:7px 10px}
.playing main{width:100%;max-width:1600px;flex:1;min-height:0;padding:10px 20px;display:flex;flex-direction:column}
.playing footer{display:none}
.play-screen{display:grid;grid-template-rows:62px 164px minmax(0,1fr);gap:10px;flex:1;min-height:0}
.play-screen>section{margin:0}
.play-screen .scoreboard{grid-template-columns:repeat(var(--seats),minmax(0,1fr));gap:6px}
.play-screen .seat{position:relative;padding:7px 9px}
.play-screen .seat>div{gap:4px;flex-wrap:nowrap}.play-screen .seat strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.play-screen .seat p{margin:4px 0 0;font-size:.68rem;white-space:nowrap}
.play-screen .seat .conditions,.play-screen .seat details{display:none}
.play-screen .seat-info{position:absolute;inset:0;border:0;background:transparent;color:transparent;padding:0;width:100%;height:100%;border-radius:8px}
.play-screen .seat-info:hover{background:#e5b66610}
.play-screen .table{grid-template-columns:1fr 1fr;gap:10px}
.play-screen .center-card,.play-screen .lead-card{gap:12px;padding:10px;border-radius:10px}
.play-screen .center-card>.card-art,.play-screen .lead-card>.card-art,.play-screen .empty-card{width:88px;flex-basis:88px;max-height:140px}
.play-screen .table h2{font-size:1.25rem;margin:4px 0}
.play-screen .table p{font-size:.78rem;line-height:1.4;margin:4px 0}
.play-screen .table .eyebrow{font-size:.6rem}
.play-screen .pot{margin:5px 0;font-size:.75rem}
.play-screen .text-button{padding:5px 9px;min-height:36px}
.hand-section{position:relative;min-height:0}
.play-screen .hand-section{display:flex;flex-direction:column;isolation:isolate}
.play-screen .turn-heading{gap:8px;flex-shrink:0}
.play-screen .turn-heading h2{font-size:1.15rem;margin:2px 0}
.play-screen .turn-heading .eyebrow{margin:2px 0}
.play-screen .turn-heading button{font-size:.72rem;padding:5px 8px}
.hand-tools{display:flex;gap:6px;align-items:center}
.play-screen .turn-limits{font-size:.72rem;margin:4px 0;flex-shrink:0}
.play-screen .tabs{position:static;padding:0 0 5px;gap:6px;flex-shrink:0;background:transparent}
.play-screen .tabs button{padding:6px 12px;font-size:.8rem;min-height:38px}
.hand-stage{position:relative;flex:1;min-height:0;display:flex;align-items:stretch}
.hand-fan{--card-width:clamp(110px,min(18vw,22dvh),182px);position:relative;flex:1;min-width:0;min-height:0;margin:0 0 28px;isolation:isolate}
.hand-fan article{position:absolute;width:var(--card-width);left:calc(50% + var(--offset) * ((100% - var(--card-width) - 56px) / var(--spread)));bottom:12px;padding:0;border:0;transform:translateX(-50%) translateY(calc(var(--bend) * 3px)) rotate(calc(var(--offset) * 2.4deg));transform-origin:50% 100%;z-index:var(--order);transition:transform .18s ease,filter .18s ease}
.hand-fan .card-button{position:relative;min-height:0;transition:box-shadow .18s ease}
.hand-fan .card-art{box-shadow:0 5px 15px #001b18;border-radius:8px}
.hand-fan .card-status{position:absolute;bottom:8px;left:6px;right:6px;padding:5px;min-height:0;background:#082c29f5;border:1px solid #a88c51;border-radius:5px;color:#fff1c9;font-size:.65rem;opacity:0;pointer-events:none}
.hand-fan article.selected,.hand-fan article:focus-within{z-index:24;transform:translateX(-50%) translateY(-24px) rotate(0deg) scale(1.18)}
.hand-fan article.selected .card-art,.hand-fan article:focus-within .card-art{box-shadow:0 0 0 3px #ffd283,0 15px 35px #001c18}
.hand-fan article.selected .card-status,.hand-fan article:focus-within .card-status{opacity:1;bottom:-29px}
@media(hover:hover) and (pointer:fine){
.hand-fan article:hover{z-index:25;transform:translateX(-50%) translateY(-32px) rotate(0deg) scale(1.25)}
.hand-fan article:hover .card-art{box-shadow:0 0 0 3px #ffd283,0 18px 35px #001c18}
.hand-fan article:hover .card-status{opacity:1;bottom:-29px}
}
.fan-controls{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:12px;z-index:26;pointer-events:none}
.fan-controls button{pointer-events:auto;padding:2px 14px;min-height:28px;font-size:1rem}.fan-controls span{font-size:.65rem;color:#b5c5be}
.play-screen .selection{width:310px;flex:0 0 310px;display:flex;flex-direction:column;gap:6px;padding:12px;margin:0 0 2px 16px;align-self:stretch;min-height:0;overflow:auto;z-index:27}
.selection-art{display:none}.selection-close{float:right;padding:2px 8px;min-height:32px;background:transparent;color:#234135;border-color:#a3956c}
.play-screen .selection h3{font-size:1.15rem;margin:3px 0}.play-screen .selection p{font-size:.78rem;line-height:1.4;margin:5px 0}
.play-screen .selection .eyebrow{font-size:.6rem}.play-screen .action-options{flex-shrink:0;overflow:visible;max-height:none;gap:5px;margin-top:auto}
.play-screen .action-options button{font-size:.8rem;padding:8px;min-height:40px}
.action-choice{color:#29493c;font-size:.7rem}.action-choice select{font-size:.78rem;min-height:40px;margin-top:3px;padding:7px}
.play-screen .yield{padding:0;margin:0;border:0;background:none}
.play-screen .yield h3,.play-screen .yield p{display:none}
.play-screen .yield button{padding:6px 10px;min-height:36px;font-size:.76rem}
.play-screen .private-note{position:absolute;right:0;top:0;margin:0;font-size:.7rem;padding:5px;max-width:45%;background:#143b34}
.play-screen .reaction{position:fixed;inset:90px auto auto 50%;transform:translateX(-50%);width:min(560px,calc(100vw - 24px));max-height:70dvh;overflow:auto;z-index:29;box-shadow:0 0 0 100vmax #001916ad,0 15px 50px #001e19;margin:0}
.table-detail .scoreboard{margin:18px 0}
@media(max-width:900px){
.playing header{padding:7px 12px}.playing main{padding:8px 12px}
.play-screen{grid-template-rows:60px 148px minmax(0,1fr);gap:8px}
.play-screen .table h2{font-size:1.1rem}.play-screen .table p{font-size:.72rem}
.play-screen .center-card>.card-art,.play-screen .lead-card>.card-art,.play-screen .empty-card{width:70px;flex-basis:70px}
.play-screen .selection{width:260px;flex-basis:260px;margin-left:10px}
}
@media(max-width:720px){
.playing header{flex:0 0 84px;gap:4px;flex-direction:column;align-items:stretch;padding:5px 10px}
.playing .brand{font-size:1rem}.playing .brand small{display:inline;margin-left:8px;font-size:8px}
.playing nav{display:flex;width:100%;gap:5px}.playing nav button{flex:1;font-size:.65rem;padding:4px;min-height:36px}
.playing main{padding:6px 8px}
.play-screen{grid-template-rows:78px 138px minmax(0,1fr);gap:6px}
.play-screen .scoreboard{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:4px}
.play-screen .seat{padding:4px 6px}.play-screen .seat strong,.play-screen .seat b{font-size:.67rem}
.play-screen .seat small{display:none}.play-screen .seat p{font-size:.57rem;margin:2px 0}
.play-screen .table{gap:6px}.play-screen .center-card,.play-screen .lead-card{padding:7px;gap:5px;align-items:flex-start}
.play-screen .center-card>.card-art,.play-screen .lead-card>.card-art,.play-screen .empty-card{display:none}
.play-screen .table h2{font-size:1rem}.play-screen .table p{font-size:.66rem;line-height:1.3}
.play-screen .table .eyebrow{font-size:.5rem;letter-spacing:.09em}.play-screen .pot{font-size:.65rem}
.play-screen .table .text-button{font-size:.65rem;min-height:28px;padding:3px 6px}
.play-screen .turn-heading h2{font-size:.93rem}.play-screen .turn-heading .eyebrow{font-size:.5rem}
.play-screen .turn-heading button{font-size:.63rem;min-height:32px}
.play-screen .turn-limits{font-size:.62rem;margin:3px 0}.play-screen .tabs button{font-size:.73rem;min-height:36px;padding:5px}
.hand-fan{--card-width:clamp(98px,22dvh,155px);margin-bottom:38px}
.hand-fan article{bottom:6px;transform:translateX(-50%) translateY(calc(var(--bend) * 2px)) rotate(calc(var(--offset) * 2deg))}
.fan-controls button{min-height:44px;min-width:44px}.fan-controls span{font-size:.6rem}
.play-screen .selection{position:fixed;inset:90px 8px 8px;width:auto;max-height:none;margin:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);grid-template-rows:minmax(0,1fr) auto;gap:12px;padding:14px;z-index:28;box-shadow:0 0 0 100vmax #001916c9;overflow:auto}
.selection-art{display:block;max-height:100%;align-self:center;object-fit:contain;grid-row:1/3}
.play-screen .selection>div:first-of-type{overflow:auto;min-height:0}
.play-screen .selection .action-options{grid-column:2;align-self:end}
.play-screen .selection h3{font-size:1.1rem}
.play-screen .private-note{position:static;max-width:none;padding:3px;font-size:.62rem}
}
@media(max-height:650px) and (min-width:721px){
.playing header{flex-basis:52px}.play-screen{grid-template-rows:50px 116px minmax(0,1fr);gap:6px}
.play-screen .center-card>.card-art,.play-screen .lead-card>.card-art,.play-screen .empty-card{width:60px;flex-basis:60px}
.play-screen .table p{font-size:.7rem}.play-screen .table h2{font-size:1.1rem}
.hand-fan{--card-width:clamp(85px,21dvh,136px)}.play-screen .selection p{font-size:.72rem}
}
@media(max-height:520px) and (max-width:900px){
.playing header{flex:0 0 46px;flex-direction:row;align-items:center}.playing .brand{font-size:.85rem}.playing .brand small{display:none}.playing nav{width:auto}.playing nav button{font-size:.6rem}
.play-screen{grid-template-rows:40px 92px minmax(0,1fr);gap:4px}
.play-screen .scoreboard{grid-template-columns:repeat(var(--seats),minmax(0,1fr))}
.play-screen .table p:not(.eyebrow){display:none}.play-screen .table h2{font-size:.9rem}.play-screen .pot{margin:2px 0}
.play-screen .center-card>.card-art,.play-screen .lead-card>.card-art,.play-screen .empty-card{display:none}
.play-screen .turn-heading .eyebrow,.play-screen .turn-limits{display:none}
.play-screen .tabs button{min-height:30px;padding:3px 8px}.hand-fan{--card-width:82px;margin-bottom:27px}
.fan-controls button{min-height:28px}.play-screen .selection{inset:52px 8px 8px}
}

.seat-info{display:none}.play-screen .seat-info{display:block}
.play-screen .yield{position:absolute;bottom:0;left:0;z-index:27;max-width:65%}.hand-section:has(.yield) .fan-controls{justify-content:flex-end}.hand-section:has(.yield) .fan-controls span{display:none}
.play-screen .table .text-button{min-height:32px}
@media(max-width:720px){.play-screen .selection-close{min-width:44px;min-height:44px}.play-screen .selection .text-button,.play-screen .selection .action-options button,.play-screen .action-choice select{min-height:44px}.play-screen .yield button{font-size:.65rem;min-height:44px}.play-screen .table .text-button{min-height:32px}}

@supports(height:1cqh){.hand-fan{container-type:size;--card-width:clamp(75px,calc((100cqh - 40px)/1.5),182px)}}

.supplies-short{display:none}.play-screen .supplies-full{display:none}.play-screen .supplies-short{display:inline}
@media(max-height:700px) and (max-width:720px) and (min-height:521px){.playing header{flex-basis:76px}.play-screen{grid-template-rows:66px 138px minmax(0,1fr)}.play-screen .turn-heading h2{font-size:.8rem}}


/* One shared felt table, with the current center and physical played pile. */
.play-screen{grid-template-rows:62px minmax(150px,1fr) clamp(230px,37dvh,410px)}
.court-table{position:relative;display:grid;grid-template-columns:minmax(180px,.85fr) minmax(0,1.2fr);gap:24px;min-height:0;padding:20px 28px;border:1px solid #a48a50;border-radius:50px;background:radial-gradient(ellipse at 50% 40%,#235448,#163e35 65%,#102f2b);box-shadow:inset 0 0 0 5px #082a254f,inset 0 0 50px #071f1c88,0 8px 20px #00191566}
.court-table:before{content:"";position:absolute;inset:10px;border:1px solid #b0965140;border-radius:42px;pointer-events:none}
.table-filigree{position:absolute;inset:0;display:grid;place-items:center;font:120px Georgia;color:#c6a6650b;pointer-events:none}
.table-theme,.table-pile{position:relative;min-width:0;min-height:0}
.table-theme{display:flex;flex-direction:column;justify-content:center;border-right:1px solid #c0a66935;padding-right:20px}
.theme-body{display:flex;gap:18px;align-items:center;min-height:0}
.theme-art{flex:0 0 clamp(70px,12dvh,170px);width:clamp(70px,12dvh,170px);transform:rotate(-4deg);box-shadow:0 8px 18px #001c1980}
.theme-body>div{min-width:0}.table-theme h2{font-size:clamp(1rem,1.8vw,1.5rem);margin:6px 0}
.theme-rule{font-size:.78rem;line-height:1.5}.table-theme .eyebrow{font-size:.6rem}
.table-pile{display:flex;flex-direction:column}.pile-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;z-index:2}
.pile-heading h2{font-size:clamp(1rem,1.8vw,1.5rem);margin:5px 0}.pile-heading .eyebrow{font-size:.6rem}
.pile-heading .pot{margin:4px 0}.pile-heading button{flex-shrink:0;font-size:.7rem}
.played-spread{position:relative;flex:1;min-height:50px;margin:12px 10px}
.played-card{--played-width:clamp(65px,12dvh,165px);position:absolute;left:calc(50% + var(--played-offset) * min(calc(var(--played-width) * .66), calc((100% - var(--played-width) - 30px) / var(--played-spread))));top:50%;width:var(--played-width);min-height:0;padding:0;background:transparent;border:0;transform:translate(-50%,-50%) rotate(calc(var(--played-offset) * 3deg));z-index:var(--played-order);box-shadow:0 8px 18px #001a177d}
.played-card.current-lead{outline:2px solid #f5c66c;outline-offset:3px}
.played-card span{display:block;position:absolute;bottom:-20px;left:-8px;right:-8px;text-align:center;font-size:.6rem;white-space:nowrap;color:#ffdda0;background:#11372f;border-radius:5px;padding:3px}
.played-card:not(.current-lead) span{opacity:0}.played-card:hover,.played-card:focus-visible{z-index:12;transform:translate(-50%,-54%) rotate(0deg) scale(1.08)}.played-card:hover span,.played-card:focus-visible span{opacity:1}
.table-empty{height:100%;display:flex;align-items:center;justify-content:center;gap:14px;border:2px dashed #b5a05f66;border-radius:22px;color:#d3bc85;text-align:center}
.table-empty>span{font-size:3rem}.table-empty p{font-size:.9rem;line-height:1.5}
.table-last-event{font-size:.69rem;color:#c4d5c5;line-height:1.4;margin:12px 0 0;max-height:3em;overflow:hidden}
.earlier-plays{position:absolute;bottom:30px;left:0;font-size:.66rem;z-index:15}
.hand-fan [data-select]{touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.hand-fan [data-select]:active{cursor:grabbing}.drag-source{opacity:.3}
.drag-card-ghost{position:fixed!important;z-index:100;pointer-events:none;width:130px;height:195px;object-fit:contain;transform:translate(-50%,-65%) rotate(-4deg);box-shadow:0 18px 32px #00181499;opacity:.94;border-radius:10px}
.dragging-card{user-select:none;cursor:grabbing}
.court-table.drop-ready{outline:3px solid #eac675;outline-offset:-4px}
.court-table.drop-over.drop-ready{background:radial-gradient(ellipse,#386d4e,#173e32);box-shadow:inset 0 0 45px #ecc57744}
.court-table.drop-over.drop-blocked{outline:3px solid #e6987b;outline-offset:-4px}
.court-table[data-drop-label]:after{content:attr(data-drop-label);position:absolute;left:50%;bottom:12px;transform:translateX(-50%);max-width:90%;text-align:center;background:#082b25;color:#ffe1a0;border:1px solid #eac675;padding:9px 18px;border-radius:30px;z-index:20;font-size:.82rem;pointer-events:none}
@media(max-width:1000px){.court-table{padding:16px;gap:14px;border-radius:28px}.theme-body{gap:10px}.table-theme{padding-right:12px}.theme-art{flex-basis:80px;width:80px}.theme-rule{font-size:.68rem}.played-card{--played-width:clamp(65px,12dvh,135px)}}
@media(max-width:720px){
.play-screen{grid-template-rows:78px minmax(130px,1fr) clamp(220px,35dvh,300px)}
.court-table{grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);padding:10px;gap:8px;border-radius:20px}
.court-table:before{inset:5px;border-radius:16px}.table-theme{padding-right:8px}.theme-body{display:block}.theme-art{float:left;width:54px;margin:0 9px 4px 0}
.table-theme .eyebrow{font-size:.46rem;letter-spacing:.08em;margin:3px 0}.table-theme h2{font-size:.85rem}.theme-rule{font-size:.59rem;line-height:1.3;margin:4px 0}
.table-theme .text-button{font-size:.6rem;padding:3px 5px;min-height:28px}
.pile-heading{display:block}.pile-heading .eyebrow{font-size:.48rem;margin:2px 0}.pile-heading h2{font-size:.95rem}.pile-heading .pot{font-size:.61rem}.pile-heading button{font-size:.6rem;min-height:28px;padding:3px 6px}
.played-spread{margin:5px 0 14px}.played-card{--played-width:clamp(54px,10dvh,90px)}.played-card span{font-size:.5rem}
.table-last-event{display:none}.table-empty{padding:5px;gap:4px;min-height:80px}.table-empty>span{display:none}.table-empty p{font-size:.68rem}.table-empty small{font-size:.55rem}
.earlier-plays{bottom:0;font-size:.5rem;min-height:24px;padding:2px 4px}.drag-card-ghost{width:100px;height:150px}
}
@media(max-height:700px) and (max-width:720px){.play-screen{grid-template-rows:66px minmax(115px,1fr) 215px}.theme-art{width:44px}.theme-rule{font-size:.56rem}.table-theme h2{font-size:.74rem}.table-theme .eyebrow{display:none}.played-card{--played-width:55px}}
@media(max-height:520px){
.play-screen{grid-template-rows:40px minmax(90px,1fr) 160px;gap:4px}
.court-table{padding:8px 16px;border-radius:20px;grid-template-columns:1fr 1fr}
.theme-art{width:48px;flex-basis:48px}.theme-rule{font-size:.6rem;line-height:1.3}.table-theme .eyebrow{display:none}.table-theme h2,.pile-heading h2{font-size:.85rem}
.played-card{--played-width:48px}.table-last-event{display:none}.pile-heading .eyebrow{display:none}.pile-heading{display:flex}.pile-heading .pot{font-size:.6rem}
.played-spread{margin:3px 0 13px}.table-empty{min-height:30px}.table-empty>span{font-size:1.5rem}.table-empty p{font-size:.6rem;margin:0}
}


/* Playability is shown before hover, with symbols as well as color. */
.hand-fan .can-play .card-art{box-shadow:0 0 0 3px #87dbad,0 0 16px #65cb875c}
.hand-fan .needs-gear .card-art{box-shadow:0 0 0 3px #f0c46b,0 0 14px #e9b54844}
.hand-fan .dice-play .card-art{box-shadow:0 0 0 3px #e8a277,0 0 14px #df783744}
.hand-fan .cannot-play:not(:hover):not(:focus-within):not(.selected) .card-art{filter:saturate(.4) brightness(.72)}
.playability-mark{position:absolute;top:-6px;left:5px;transform:translateY(-100%);min-width:23px;height:23px;padding:2px 4px;border-radius:5px;background:#94e4b2;color:#0a3329;box-shadow:0 1px 5px #001d16;font-size:.8rem;font-weight:800;text-align:center;pointer-events:none}
.needs-gear .playability-mark{background:#f0c46b}.dice-play .playability-mark{background:#e8a277}.cannot-play .playability-mark{background:#33443d;color:#cad1c5}
.play-legend{font-size:.64rem;display:flex;gap:12px;color:#c5d0c2;flex-wrap:wrap}
.play-legend .ready{color:#94e4b2}.play-legend .gear-ready{color:#f0c46b}.play-legend .risk{color:#e8a277}
.played-card .attached-gear{position:absolute;left:auto;right:-10px;bottom:10px;width:36%;aspect-ratio:2/3;object-fit:contain;transform:rotate(8deg);border:1px solid #ffe19a;border-radius:4px;box-shadow:0 3px 8px #001d16}
.loadout{max-width:600px;margin:auto}.loadout-header{display:flex;align-items:center;gap:18px;margin:8px 0 18px}
.loadout-header>.card-art{width:76px;flex-shrink:0;transform:rotate(-4deg)}.loadout-header h2{margin:0 0 7px}.loadout-header p{margin:4px 0;font-size:.85rem}
.loadout-options{display:grid;gap:8px}.loadout-option{display:flex;gap:14px;align-items:center;text-align:left;padding:9px 12px;min-height:78px;background:#174a3b}
.loadout-option>.card-art{width:48px;flex:0 0 48px;border-radius:4px}.loadout-option>span:last-child{display:flex;flex-direction:column;gap:5px;min-width:0}
.loadout-option small{display:block;line-height:1.4;font-size:.75rem}.loadout-option:disabled{opacity:.65;background:#253c33}.loadout-no-gear{width:48px;flex:0 0 48px;text-align:center;font-size:2rem}
.modal:has(.loadout){max-width:650px;padding:18px}.modal:has(.loadout) .modal-close{margin-bottom:2px}
@media(max-width:720px){.play-legend{font-size:.54rem;gap:6px}.loadout-header{gap:12px;margin:4px 0 10px}.loadout-header>.card-art{width:60px}.loadout-header h2{font-size:1.2rem}.loadout-header p{font-size:.73rem}.loadout-option{gap:10px;padding:7px 9px}.loadout-option>.card-art{width:40px;flex-basis:40px}.loadout-option small{font-size:.68rem}.playability-mark{min-width:20px;height:20px;font-size:.68rem}}

/* Faction color is also labeled in text for accessibility. */
.faction-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--faction-color);border-radius:20px;padding:3px 9px;font-size:.72rem;font-weight:700;background:#10352e;color:#f8efda;white-space:nowrap;text-transform:none;letter-spacing:0}
.faction-chip:before{content:"";width:8px;height:8px;background:var(--faction-color);border-radius:50%}
.faction-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.faction-guide article{padding:10px;border:1px solid #92836160;border-radius:8px}.faction-guide p{font-size:.78rem;line-height:1.4}.faction-guide small{font-size:.7rem}
.collection-filters{grid-template-columns:minmax(0,1fr) repeat(2,minmax(110px,.45fr))}.table-theme .faction-chip{font-size:.58rem;padding:2px 6px}
@media(max-width:720px){.faction-guide{grid-template-columns:repeat(2,minmax(0,1fr))}.collection-filters{grid-template-columns:1fr 1fr}.collection-filters>label:first-child{grid-column:1/-1}.table-theme .faction-chip{font-size:.5rem}}

/* Keep the complete mixed hand inside the same fan footprint. */
.all-cards-fan article{--fan-tilt:calc(var(--offset) * 20deg / var(--spread));transform:translateX(-50%) translateY(calc(var(--bend) * 1px)) rotate(var(--fan-tilt))}
.all-cards-fan article.selected,.all-cards-fan article:focus-within{z-index:30;transform:translateX(-50%) translateY(-24px) rotate(0deg) scale(1.18)}
@media(hover:hover) and (pointer:fine){.all-cards-fan article:hover{z-index:31;transform:translateX(-50%) translateY(-32px) rotate(0deg) scale(1.25)}}
.play-screen .tabs{flex-wrap:wrap}
@media(max-width:420px){.play-screen .tabs{gap:4px}.play-screen .tabs button{font-size:.66rem;padding:4px 6px}}

.faction-disguise{position:absolute;top:-22px;left:0;right:0;z-index:2;padding:4px 3px;border-radius:5px;background:#103831;color:#fff0c5;border:2px solid var(--faction-color);font-size:.56rem;text-align:center;white-space:nowrap}.played-card:has(.faction-disguise){outline-color:#f4db9c}

.seat.round-out{opacity:.58;border-style:dashed}.seat.round-out .conditions{color:#efbf9b}.out-notice{margin:0;padding:7px 12px;border:1px solid #b89958;border-radius:8px;color:#ffdda0;background:#133e35;font-size:.75rem}

/* Secret scheme reveal choices */
.scheme-reveal{max-width:1100px;margin:auto}.scheme-targets,.scheme-revealed{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:20px 0}.scheme-targets article,.scheme-revealed article{padding:12px;border:1px solid #b89958;border-radius:12px;background:#123b34}.scheme-targets img{width:110px;max-width:100%;height:auto;display:block;margin:auto}.scheme-targets button{width:100%}.scheme-hand{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:18px 0}.scheme-pick{padding:5px;min-height:44px}.scheme-pick img{display:block;width:100%;height:auto}.scheme-pick.chosen{outline:3px solid #9de6bb;background:#246247}.scheme-pick span{display:block;font-size:.8rem}.scheme-choice-actions{display:flex;gap:12px;flex-wrap:wrap}.scheme-reveal details{margin:20px 0}.scheme-reveal li{margin:7px 0}@media(max-width:720px){.scheme-hand{grid-template-columns:repeat(3,minmax(0,1fr))}.scheme-targets{grid-template-columns:repeat(2,minmax(0,1fr))}.scheme-targets article{padding:8px}.scheme-targets img{width:90px}}
/* Guest courts: compact match status, responsive lobby seats, and visible connection controls. */
.online-setup,.guest-lobby{border:1px solid #a88b52;border-radius:20px;background:linear-gradient(130deg,#19453c,#0a2b29);padding:clamp(18px,3vw,36px);margin:24px 0}
.online-setup{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.online-setup>h2,.online-setup>p{grid-column:1/-1}.online-setup form{max-width:none;grid-template-columns:1fr;align-content:start;margin:14px 0}
.connection-note{border-left:3px solid #dfb667;padding:12px;background:#082b28}.guest-seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:28px 0}
.guest-seats article{padding:22px 16px;border:1px solid #b6995a;border-radius:14px;text-align:center;background:#163c33}
.guest-seats h3{font-size:1.25rem;overflow-wrap:anywhere}.guest-seats p{font-size:.85rem}.guest-avatar{font-size:2.7rem;color:#e7bf76}
.guest-seats .empty-seat{border-style:dashed;background:#0d302b;color:#c6c5a8}.guest-controls{display:flex;gap:14px;align-items:end;flex-wrap:wrap}.guest-controls label{min-width:150px}
.online-bar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:5px 16px;flex-wrap:wrap;padding:8px 12px;margin-bottom:10px;background:#0b302d;border:1px solid #788252;border-radius:9px;font-size:.76rem;flex-shrink:0}
.online-bar>div:last-of-type{display:flex;gap:6px}.online-bar button{font-size:.7rem;min-height:36px;padding:6px 10px}.online-bar p,.online-bar>small{flex-basis:100%;margin:0;font-size:.7rem;line-height:1.35}
.connection-dot{text-transform:capitalize;color:#efb36f}.connection-dot.connected{color:#a2e6b9}.online-bar details{padding:0;border:0}.online-bar summary{font-size:.7rem;min-height:24px;padding:0}
.online-bar details[open]{position:absolute;top:100%;right:0;padding:12px;width:min(440px,90vw);z-index:50;background:#113c34;border:1px solid #be995e}
.online-mode [data-pause]{display:none}
@media(max-width:720px){.online-setup{grid-template-columns:1fr}.online-bar{padding:5px 7px;gap:4px;font-size:.64rem}.online-bar>div:last-of-type{gap:4px}.online-bar button{min-height:36px;padding:5px 7px;font-size:.62rem}.online-bar>small,.online-bar p{font-size:.6rem}.guest-seats{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.guest-seats article{padding:12px 8px}.guest-controls>*{flex:1}.guest-controls button{min-height:44px}.online-mode.playing .play-screen{grid-template-rows:66px minmax(95px,1fr) 215px}}
@media(max-height:650px){.online-mode.playing main{overflow-y:auto}.online-mode.playing .play-screen{flex:none;min-height:480px}}

.turn-clock{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;padding:.5rem .8rem;margin:.4rem 0;background:#153d36;border:1px solid #c5a452;border-radius:10px;color:#f7dfa2;font-size:.85rem}.turn-clock strong{font-variant-numeric:tabular-nums;white-space:nowrap}.turn-clock small{margin-left:auto}.turn-clock.urgent{border-color:#f97e69;background:#522e2a}.game-out{opacity:.5;filter:grayscale(.7)}@media(max-width:600px){.turn-clock{gap:.2rem;font-size:.75rem}.turn-clock span:not([data-clock-seconds]),.turn-clock small{flex-basis:100%;margin:0}.online-mode .turn-clock{padding:.3rem .6rem}}

/* Dice Court: touch-sized roll control and compact authoritative result. */
.dice-dialog{max-width:580px;margin:auto;text-align:center}.dice-faces{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:22px 0}.die-face{display:inline-flex;align-items:center;justify-content:center;flex:none;width:48px;height:48px;border:2px solid #8e8e78;border-radius:10px;background:#d4c6a5;color:#17372e;font:700 25px Georgia,serif;box-shadow:0 3px 0 #071f1b}.die-face.winning{background:#a0e0b6;border-color:#eacb7a;outline:2px solid #276148}.dice-roll-button{min-height:48px;min-width:210px}.dice-result{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:6px 12px;margin:3px 0;border:1px solid #bc9c58;border-radius:9px;background:#133e34;font-size:.76rem}.dice-result .die-face{width:36px;height:36px;font-size:23px}.dice-result span:not(.die-face){display:block}.dice-result.missed{border-color:#c48666}.dice-result.won .die-face{background:#a0e0b6}.dice-result .rolled{animation:die-settle .3s ease-out}@keyframes die-settle{from{transform:rotate(-18deg) scale(.8)}to{transform:rotate(0) scale(1)}}@media(prefers-reduced-motion:reduce){.dice-result .rolled{animation:none}}@media(max-width:480px){.dice-faces{gap:6px}.dice-faces .die-face{width:36px;height:36px;font-size:22px}.dice-result{padding:4px 7px;font-size:.66rem}}


/* Royal Seals: category-only backs; never disclose rank or faction. */
.royal-back{object-fit:fill;aspect-ratio:2/3;border-radius:7px;display:block;width:100%;height:auto}
.sealed-supplies{display:flex!important;align-items:center;gap:8px;font-size:.7rem;margin:3px 0!important}
.sealed-supply{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.sealed-supply .royal-back{width:16px;height:24px;border-radius:2px}
.sealed-secret{margin-left:auto;display:flex;align-items:center;gap:4px;font-size:.65rem}
.sealed-secret .royal-back{width:17px;height:25px;border-radius:2px}
.theme-art{isolation:isolate;position:relative}
.theme-art>.royal-back{position:absolute;inset:0;transform:translate(-7px,-3px) rotate(-7deg);z-index:-1}
.theme-art>.card-art{position:relative}
.royal-back-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin:18px 0}
.royal-back-gallery figure{margin:0;text-align:center}
.royal-back-gallery figcaption{font-size:.8rem;margin-top:8px;color:#efd59d}
.royal-back-gallery img{max-height:260px}
.back-inspected{max-width:310px;margin:15px auto}
@media(max-width:600px){.royal-back-gallery{gap:6px}.royal-back-gallery figcaption{font-size:.6rem}.sealed-supplies{gap:5px;font-size:.6rem}.sealed-supply .royal-back{width:13px;height:20px}.sealed-secret span{display:none}}
/* Ivory cube: physical faces, a decelerating tumble, three diminishing bounces. */
.table-dice-stage{position:absolute;inset:0;z-index:35;pointer-events:none;overflow:hidden;border-radius:inherit;display:grid;place-items:center;background:radial-gradient(ellipse at center,#082b2077,transparent 65%)}
.table-dice-stage.fallback{position:fixed;inset:24% 8% 30%;border-radius:35px;background:radial-gradient(ellipse,#164b3ef2,#0b2924e8);border:1px solid #ba9457;z-index:95}
.dice-stage-title{position:absolute;top:16%;left:12px;right:12px;text-align:center;text-shadow:0 2px 4px #001712;font-size:.85rem;font-weight:700;color:#ffe9b5}
.dice-stage-result{position:absolute;bottom:12%;left:10%;right:10%;text-align:center;color:#ffedbf;background:#082e28e8;border:1px solid #b39155;border-radius:10px;padding:9px;line-height:1.5;font-size:.85rem;box-shadow:0 6px 20px #0004}
.dice-stage-result small{display:block}
.dice-cast{display:flex;gap:58px;align-items:center;justify-content:center;perspective:900px;--die-size:54px}
.die-travel{position:relative;width:var(--die-size);height:var(--die-size);transform-style:preserve-3d;animation:die-slide 2100ms linear both;animation-delay:var(--roll-delay)}
.die-hop,.die-camera,.table-die{position:absolute;width:100%;height:100%;transform-style:preserve-3d}
.die-hop{animation:die-bounce 2100ms linear both;animation-delay:var(--roll-delay)}
.die-camera{transform:rotateX(-58deg) rotateZ(-12deg)}
.table-die{transform:rotateX(var(--end-x)) rotateY(var(--end-y)) rotateZ(var(--end-z));animation:die-tumble 2100ms linear both;animation-delay:var(--roll-delay)}
.cube-face{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);gap:5px;padding:9px;box-sizing:border-box;border:1px solid #bdaa79;border-radius:7px;background:linear-gradient(135deg,#fff8d6,#e0c891);box-shadow:inset 0 0 0 2px #f4e4b6,inset -3px -3px 6px #8a653843;backface-visibility:hidden}
.cube-face i{border-radius:50%;background:#103830;box-shadow:inset 1px 2px 2px #000b,0 1px 0 #fff7}
.face-1{transform:translateZ(calc(var(--die-size)/2))}
.face-6{transform:rotateY(180deg) translateZ(calc(var(--die-size)/2))}
.face-3{transform:rotateY(90deg) translateZ(calc(var(--die-size)/2))}
.face-4{transform:rotateY(-90deg) translateZ(calc(var(--die-size)/2))}
.face-2{transform:rotateX(90deg) translateZ(calc(var(--die-size)/2))}
.face-5{transform:rotateX(-90deg) translateZ(calc(var(--die-size)/2))}
.die-ground-shadow{position:absolute;inset:30% -25% -25%;border-radius:50%;background:#0008;filter:blur(7px);animation:die-shadow 2100ms linear both;animation-delay:var(--roll-delay)}
.table-dice-stage.settled .die-travel,.table-dice-stage.settled .die-hop,.table-dice-stage.settled .table-die,.table-dice-stage.settled .die-ground-shadow{animation:none}
@keyframes die-slide{0%{transform:translate(-190px,-50px)}20%{transform:translate(-112px,-25px)}45%{transform:translate(-47px,7px)}64%{transform:translate(-15px,-3px)}80%{transform:translate(-4px,2px)}93%{transform:translate(1px,0)}100%{transform:translate(0,0)}}
@keyframes die-bounce{0%{transform:translateY(-105px)}20%{transform:translateY(0)}34%{transform:translateY(-53px)}48%{transform:translateY(0)}58%{transform:translateY(-24px)}69%{transform:translateY(0)}77%{transform:translateY(-8px)}85%{transform:translateY(0)}93%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes die-tumble{0%{transform:rotateX(calc(var(--end-x) + 810deg)) rotateY(calc(var(--end-y) + 550deg)) rotateZ(calc(var(--end-z) + 300deg))}20%{transform:rotateX(calc(var(--end-x) + 500deg)) rotateY(calc(var(--end-y) + 330deg)) rotateZ(calc(var(--end-z) + 180deg))}48%{transform:rotateX(calc(var(--end-x) + 195deg)) rotateY(calc(var(--end-y) + 130deg)) rotateZ(calc(var(--end-z) + 60deg))}69%{transform:rotateX(calc(var(--end-x) + 42deg)) rotateY(calc(var(--end-y) + 28deg)) rotateZ(calc(var(--end-z) + 13deg))}85%{transform:rotateX(calc(var(--end-x) - 9deg)) rotateY(calc(var(--end-y) - 5deg)) rotateZ(calc(var(--end-z) - 3deg))}94%{transform:rotateX(calc(var(--end-x) + 3deg)) rotateY(var(--end-y)) rotateZ(var(--end-z))}100%{transform:rotateX(var(--end-x)) rotateY(var(--end-y)) rotateZ(var(--end-z))}}
@keyframes die-shadow{0%{opacity:.18;transform:scale(1.5)}20%,48%,69%,85%,100%{opacity:.7;transform:scale(1)}34%{opacity:.3;transform:scale(1.3)}58%{opacity:.45;transform:scale(1.15)}77%{opacity:.6;transform:scale(1.06)}}
@media(max-width:600px){.dice-cast{--die-size:42px;gap:40px}.cube-face{padding:7px;gap:4px}.dice-stage-title{top:7%;font-size:.7rem}.dice-stage-result{bottom:5%;font-size:.7rem;padding:6px}.table-dice-stage.fallback{inset:22% 4% 35%}}
@media(prefers-reduced-motion:reduce){.die-travel,.die-hop,.table-die,.die-ground-shadow{animation:none!important}}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.lead-identity{font-size:.68rem;line-height:1.2;color:#f1d29a;margin:0}
