:root{--bg:#090c1c;--panel:#15162f;--line:#39335a;--mint:#9dcaff;--muted:#abb1ce;--text:#eff0ff;--gold:#f9a0c2;--orange:#ff547d;--tile-w:clamp(42px,4.7vw,72px);--tile-h:clamp(72px,11vh,108px);--discard-w:clamp(23px,2.2vw,34px);--discard-h:clamp(32px,4.5vh,46px)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{height:100dvh;display:grid;grid-template-rows:58px 42px minmax(0,1fr);background:var(--bg);color:var(--text);font:14px 'Courier New',monospace}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid #5a4c87;background:#24213f;padding:10px 14px;transition:background .15s,transform .15s}button:hover{background:#3b2e64;border-color:#a68bff}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #9ccfff;outline-offset:3px}a{color:inherit;text-decoration:none}.mint{color:var(--mint)}.gold{color:var(--gold)}.muted{color:var(--muted)}
header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;background:#111129;border-bottom:1px solid #4e3d7a;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:bold;font-size:25px;letter-spacing:-1px}.brandmark{font-size:32px;color:#b3a0ff}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:normal;margin-top:2px;color:#b0acd0}nav{display:flex;align-items:stretch;height:100%;gap:15px}.nav{font-size:12px;background:none;border:0;padding:0 6px;white-space:nowrap}.nav.active{color:#b8d7ff;border-bottom:3px solid #9b7bff}.nav span{font-size:11px;color:#bb9fff}.connection{display:none}.runbar{display:flex;align-items:center;gap:20px;padding:0 20px;background:#18152e;border-bottom:1px solid #393257}.runbar>div:first-child{display:flex;gap:12px;align-items:center}.eyebrow{font-size:11px;color:var(--muted);letter-spacing:1px;display:block;margin-bottom:5px}.runbar .eyebrow{margin:0}.runbar strong{font-size:13px}.progress{display:flex;gap:5px;flex:1}.progress span{height:5px;width:24px;background:#393351}.progress .done{background:#8066ca}.progress .current{background:#b7a0ff;box-shadow:0 0 12px #a85cff}.runmeta{display:flex;align-items:center;gap:20px;font-size:12px}.runmeta b{font-size:15px;margin-left:6px}.quiet{border:0;background:none;color:#bdc0df;font-size:12px;padding:7px;min-height:32px}.quiet:hover{background:#302652}.runmeta .quiet{font-size:11px}
main{position:relative;min-height:0;padding:0 12px 8px;overflow:hidden}.game-column{height:100%;display:grid;grid-template-rows:52px minmax(0,1fr) calc(var(--tile-h) + 92px);position:relative;min-height:0}.table-toolbar,.under-table,footer,.mission,.free-note,.left-panel>.panel-label,.right-panel{display:none}.wind-strip{display:flex;align-items:center;gap:18px;padding:6px 10px;background:#12162a;border-bottom:1px solid #3d3763;z-index:3}.wind-card{display:flex;align-items:center;gap:9px;flex-shrink:0}.wind-letter{display:flex;align-items:center;justify-content:center;width:31px;height:36px;font-size:25px;font-weight:bold;background:#e3e7ff;border-bottom:3px solid #8172b4;color:#514080;border-radius:2px}.wind-card .eyebrow{font-size:10px;margin-bottom:3px;letter-spacing:.7px}.wind-card strong{font-size:18px;letter-spacing:1px}.your-wind{border-left:1px solid #4b406b;padding-left:18px}.your-wind strong{color:#9dcaff}.wind-strip p{font-size:12px;margin:0 0 0 12px;line-height:1.5;color:#c4bedc}.table-wrap{position:relative;min-height:0;overflow:hidden;background:#131931;border:1px solid #69529b;box-shadow:0 0 20px #5b3da525,inset 0 0 0 4px #19162f}.table-wrap:before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,#0000 0 4px,#00000012 4px 5px);z-index:1}#city{position:absolute;inset:0;width:100%;height:100%;opacity:.18;image-rendering:pixelated;pointer-events:none}.table{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,#38295199,#141e3bdd 70%);box-shadow:inset 0 0 65px #090e24;border:5px solid #30254a}.table-edge{position:absolute;inset:13px;border:1px solid #8a4aab66;pointer-events:none;box-shadow:inset 0 0 18px #9650ca11}.table-text{position:absolute;bottom:13px;left:17px;color:#7c7aab;font-size:10px;letter-spacing:2px}.table-text span{display:none}.table-bottom{position:absolute;right:12px;bottom:9px;color:#b4a9d3;font-size:10px;display:flex;gap:14px;pointer-events:none}.live-dot{background:#ff5f89}.hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:112px;width:145px;background:#16172ee8;border:1px solid #9c69d5;box-shadow:0 0 0 5px #241c3e,0 0 24px #9760e233;display:flex;align-items:center;justify-content:center;flex-direction:column}.hub small{font-size:11px;color:#d2b7ff;letter-spacing:.3px}.hub strong{font-size:36px;line-height:1;margin:8px 0 4px;color:#f4edff;font-weight:normal}.hub>span{font-size:9px;color:#aaa2c8}.hub #turnIndicator{font-size:11px;color:#a9ceff;margin-top:8px}
.seat{position:absolute;display:flex;gap:3px;z-index:1;justify-content:center}.seat.top{top:13px;left:50%;transform:translateX(-50%)}.seat.west,.seat.east{top:50%;transform:translateY(-50%);flex-direction:column}.seat.west{left:166px}.seat.east{right:166px}.back{width:clamp(18px,2vw,28px);height:30px;background:linear-gradient(135deg,#403a7c,#26345d);border:1px solid #8d7bc8;border-bottom:4px solid #101631;box-shadow:inset 0 0 0 3px #4e4376;position:relative}.back:after{content:'+';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:15px;color:#aaa2e5}.west .back,.east .back{width:30px;height:clamp(15px,2.2vh,23px);border-bottom-width:2px}.discpool{position:absolute;display:grid;gap:3px;z-index:2}.discpool.p0,.discpool.p2{grid-template-columns:repeat(9,var(--discard-w));left:50%;transform:translateX(-50%)}.discpool.p0{bottom:26px}.discpool.p2{top:56px}.discpool.p1,.discpool.p3{grid-template-columns:repeat(3,var(--discard-w));top:50%;transform:translateY(-50%)}.discpool.p1{right:calc(50% + 110px)}.discpool.p3{left:calc(50% + 110px)}
.tile{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;position:relative;vertical-align:top;border:1px solid #c4c4df;border-bottom:5px solid #7775ac;border-radius:4px;background:linear-gradient(135deg,#fcf7ff,#dadcf2);color:#24336d;box-shadow:0 3px 0 #0a1025}.tile.c0{color:#2859a6}.tile.c1{color:#8440af}.tile.c2{color:#c53e61}.tile.c3{color:#3e4c8e}.tile.corp{color:#9e286e}.tile .num{font:bold 32px/1 'Courier New',monospace}.tile .symbol{font-size:23px;line-height:1.1;margin-top:5px}.tile .label{font:bold 8px monospace;margin-top:5px;letter-spacing:.3px}.tile.small{width:var(--discard-w);height:var(--discard-h);border-bottom-width:3px;border-radius:2px}.tile.small .num{font-size:clamp(17px,1.5vw,23px)}.tile.small .symbol{font-size:11px;margin-top:1px}.tile.small .label{display:none}.tile.last{outline:2px solid #ff718e;outline-offset:2px;box-shadow:0 0 12px #f64e7d77}.own-melds{position:absolute;right:35px;bottom:40px;display:flex;gap:10px;z-index:3}.meld{display:flex;gap:3px}.meld .tile{border-color:#b8a5ec}.bot-meld{position:absolute;bottom:-37px;display:flex;gap:3px}.west .bot-meld,.east .bot-meld{bottom:auto;top:0;left:35px;flex-direction:column}.east .bot-meld{left:auto;right:35px}
.left-panel{position:absolute;inset:52px 12px calc(var(--tile-h) + 100px);pointer-events:none;z-index:4}#runners{position:absolute;inset:0}.runner{position:absolute;width:144px;padding:10px;background:#17182fe8;border:1px solid #7462a2;box-shadow:0 5px 20px #09091f66;display:flex;gap:9px;align-items:center;pointer-events:auto}.runner:nth-child(1){left:13px;bottom:17px;border-left:3px solid #88bfff}.runner:nth-child(2){left:13px;top:50%;transform:translateY(-50%);border-left:3px solid #ff5d80}.runner:nth-child(3){top:12px;left:calc(50% - 350px);border-left:3px solid #bd8aff}.runner:nth-child(4){right:13px;top:50%;transform:translateY(-50%);border-right:3px solid #9595ff}.portrait{width:35px;height:43px;flex-shrink:0;image-rendering:pixelated}.runner-name{font-size:14px;font-weight:bold;margin-bottom:5px}.runner-sub{font-size:10px;line-height:1.4;color:#c1b6d9}.runner-score{font-size:17px;margin-top:6px;white-space:nowrap}.runner-score small{font-size:9px;color:#a79ac2}.rank{display:none}.ready-tag{font-size:9px;color:#ff97b7;display:block;margin-top:3px}
.hand-panel{position:relative;background:linear-gradient(180deg,#17162f,#11152b);border:1px solid #574478;display:grid;grid-template-rows:30px var(--tile-h) 48px;gap:0;padding:6px 20px 7px;min-height:0;z-index:5;box-shadow:0 -6px 25px #08091e77}.hand-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.hand-top .eyebrow{font-size:12px;display:inline;margin-right:12px;color:#a7caff}#handState{font-size:12px;color:#d0c5e3}#hint{font-size:12px}.hand{display:flex;justify-content:center;align-items:flex-end;gap:5px;padding:0 4px 6px;min-height:0}.hand .tile{width:var(--tile-w);height:calc(var(--tile-h) - 6px);padding:0;flex:0 1 var(--tile-w);min-width:0;max-width:76px;transition:transform .15s,box-shadow .15s}.hand .tile .num{font-size:clamp(28px,3vw,40px)}.hand .tile .symbol{font-size:clamp(19px,2vw,27px)}.hand .tile .label{font-size:clamp(7px,.7vw,10px)}.hand .tile:hover{transform:translateY(-7px);background:#fff}.hand .tile.selected{outline:3px solid #a8caff;outline-offset:2px;transform:translateY(-8px);box-shadow:0 0 18px #9d7bff77}.hand .tile.drawn{margin-left:12px}.hand .tile.hinted:before{content:'▼';position:absolute;right:3px;top:1px;color:#df2a5d;font-size:12px}.hand .tile.claim-match{outline:3px solid #ff628e;box-shadow:0 0 18px #ff3f8c88}.actions{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid #4b3a68}.actions p{font-size:12px;line-height:1.4;color:#c2b9da;max-width:50%;margin:0}.actions>div{display:flex;gap:8px;align-items:center}.primary{background:linear-gradient(135deg,#8db8ff,#bd97ff);color:#14132c;border-color:#c4c8ff;font-weight:bold;font-size:13px;min-height:38px}.primary:hover{background:#d5baff}.secondary{color:#d5c2ff;font-size:13px;min-height:38px}.actions button{padding:8px 13px}
.claim-prompt{display:none;position:absolute;z-index:7;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,70%);padding:22px;background:linear-gradient(135deg,#282050f7,#261126fc);border:2px solid #ff709a;box-shadow:0 0 0 5px #7e3d8b33,0 0 65px #d845b055;text-align:center;animation:claim-enter .28s ease-out}.claim-kicker{font-size:12px;letter-spacing:1px;color:#d8beff}.claim-prompt h2{font-size:27px;margin:10px 0 16px;color:#ffb1cc;text-shadow:0 0 20px #ff337e55}.claim-preview{display:flex;justify-content:center;align-items:center;gap:9px}.claim-preview>.tile{width:47px;height:66px}.claim-preview>.tile:first-child{outline:2px solid #ff85ac;outline-offset:2px}.claim-preview>span:not(.tile){font-size:24px;color:#d5a4ff;margin:0 6px}.claim-prompt p{font-size:12px;line-height:1.6;color:#ded0f0}.claim-options{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.claim-options button{min-height:47px;font-size:16px}.claim-options .secondary{background:#52347b;border-color:#c797ff;color:#fff}.claim-options #pass{background:#191b32;font-size:13px;color:#b7b2cf;border-color:#5f5279}.meld-flash{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:6;background:#312044ef;border:2px solid #db99ff;padding:20px 35px;text-align:center;font-size:27px;font-weight:bold;white-space:nowrap;color:#efcbff;box-shadow:0 0 60px #b849dd66;animation:meld-flash 1.7s ease both;pointer-events:none}.meld-flash span{display:block;font-size:12px;font-weight:normal;margin-top:8px;color:#c7caff}@keyframes claim-enter{from{opacity:0;transform:translate(-50%,-45%) scale(.94)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes meld-flash{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}15%,70%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-60%) scale(1.03)}}
dialog{border:1px solid #a67ce4;background:#15142a;color:var(--text);padding:0;width:min(850px,94vw);max-height:90dvh;box-shadow:0 0 100px #000a;overflow:auto;scrollbar-color:#7c59a5 #15142a}dialog::backdrop{background:#050617d9;backdrop-filter:blur(5px)}.modal-inner{padding:28px}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-header h2{font-size:27px;font-weight:normal;margin:8px 0 15px}.modal-header button{font-size:20px}.modal-intro,.modal-inner p,.modal-inner li{font-size:14px;line-height:1.8;color:#c5bfdc}.modal-inner h3{font-size:15px;color:#b8a0ff;margin-top:24px}.modal-inner table{font-size:13px;width:100%;border-collapse:collapse}.modal-inner td,.modal-inner th{padding:12px;border-bottom:1px solid #403459;text-align:left}.modal-inner .warning{font-size:12px;border-left:2px solid #f58eb2;padding-left:14px;color:#b9afd3}.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin:22px 0}.shop-card{border:1px solid #76609c;background:#221b39;padding:17px;display:flex;flex-direction:column;min-height:245px}.item-art{height:48px;font-size:36px;color:#ff8eaf}.shop-card h3{margin:14px 0 8px}.shop-card p{font-size:13px;flex:1}.shop-card button{width:100%;margin-top:10px}.shop-footer{display:flex;justify-content:space-between;align-items:center;gap:15px}.pill{font-size:11px;border:1px solid #8b65b0;padding:6px 9px;color:#ceadff}.mode-choice{display:flex;gap:13px;margin:24px 0}.mode-choice button{flex:1;text-align:left;padding:18px;line-height:1.8}.mode-choice b{display:block;color:#bdcfff}.mode-choice small{font-size:13px;color:#bcb1d3}.guide-tiles{display:flex;gap:9px;margin:20px 0}.guide-tiles .tile{width:51px;height:75px}.result-score{font-size:43px;color:#c5a7ff;margin:22px 0}.result-tiles{display:flex;gap:4px;flex-wrap:wrap}.result-tiles .tile{width:35px;height:51px}.result-tiles .tile .num{font-size:24px}.result-tiles .tile .symbol{font-size:16px}.result-tiles .tile .label{font-size:5px}.result-ranks{margin:20px 0}.result-ranks div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px}.toast{position:fixed;bottom:calc(var(--tile-h) + 108px);left:50%;transform:translate(-50%,15px);max-width:80vw;opacity:0;pointer-events:none;padding:12px 20px;background:#35254f;border:1px solid #d39eff;color:#f6e6ff;box-shadow:0 0 20px #160e37;font-size:14px;z-index:20;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:1100px){header{padding:0 12px;gap:10px}nav{gap:7px}.nav{font-size:11px;padding:0 5px}.brand{font-size:23px}.runbar{padding:0 14px}.runner{width:125px;padding:8px;gap:7px}.portrait{width:28px;height:36px}.runner-name{font-size:13px}.runner-sub{font-size:9px}.runner-score{font-size:15px}.seat.west{left:144px}.seat.east{right:144px}.runner:nth-child(3){left:calc(50% - 310px)}.wind-strip p{font-size:11px}.actions p{max-width:44%}.actions button{font-size:12px;padding:8px 10px}.hand .tile.drawn{margin-left:8px}.wind-card strong{font-size:17px}}
@media(max-width:850px){.brand small{display:none}.brandmark{font-size:26px}.brand{font-size:21px}nav{gap:3px}#fullscreen{display:none}.runbar>div:first-child .eyebrow{display:none}.runmeta{gap:10px}.runmeta .quiet{font-size:10px}.wind-strip{gap:11px}.wind-strip p{display:none}.wind-card strong{font-size:18px}.runner{width:104px;gap:6px}.portrait{width:23px;height:29px}.runner-sub{font-size:8px}.runner-score{font-size:13px}.seat.west{left:120px}.seat.east{right:120px}.runner:nth-child(3){left:calc(50% - 255px)}.discpool.p1{right:calc(50% + 90px)}.discpool.p3{left:calc(50% + 90px)}.hub{width:125px;height:105px}.hub small{font-size:10px}.actions p{font-size:11px}.hand-panel{padding-left:10px;padding-right:10px}.hand{gap:4px}#handState{font-size:11px}.hand-top .eyebrow{font-size:11px}.claim-prompt h2{font-size:22px}}
@media(max-height:720px) and (min-width:721px){body{grid-template-rows:48px 35px minmax(0,1fr)}.game-column{grid-template-rows:43px minmax(0,1fr) calc(var(--tile-h) + 81px)}.hand-panel{grid-template-rows:25px var(--tile-h) 42px;padding-top:4px}.left-panel{top:43px;bottom:calc(var(--tile-h) + 89px)}.wind-letter{height:30px;width:27px;font-size:23px}.wind-card .eyebrow{font-size:9px}.wind-card strong{font-size:16px}.wind-strip{padding-top:3px;padding-bottom:3px}.seat.top .back{height:24px}.discpool.p2{top:46px}.discpool.p0{bottom:21px}.hub{height:94px;width:128px}.hub strong{font-size:29px}.hub small{font-size:10px}.hub #turnIndicator{font-size:10px;margin-top:5px}.hub>span{font-size:8px}.runner{padding:7px}.runner:nth-child(1){bottom:10px}.runner:nth-child(3){top:8px}.hand .tile .symbol{font-size:19px}.actions p{font-size:11px}}
@media(max-width:720px){:root{--tile-w:6.25vw;--tile-h:86px;--discard-w:20px;--discard-h:29px}body{grid-template-rows:48px 35px minmax(0,1fr)}header{padding:0 9px}.brand{font-size:19px}.brandmark{display:none}.nav{font-size:10px;padding:0 4px}#tableTab{display:none}#marketTop{font-size:0}#marketTop:after{content:'SHOP';font-size:10px}#buildTab{display:block}.runbar{padding:0 10px;gap:10px}.runbar strong{font-size:10px}.progress{display:none}.runmeta{margin-left:auto;gap:12px;font-size:10px}.runmeta b{font-size:12px;margin-left:3px}.runmeta .quiet{font-size:10px}.runmeta>span:first-child{display:none}main{padding:0 5px 5px}.game-column{grid-template-rows:49px minmax(0,1fr) 211px}.wind-strip{gap:17px;padding:5px 8px}.wind-card strong{font-size:18px}.wind-letter{width:28px;height:33px;font-size:23px}.wind-card .eyebrow{font-size:9px}.your-wind{padding-left:14px}.hand-panel{grid-template-rows:26px 132px 42px;padding:4px 7px}.hand{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:61px 61px;gap:5px;align-items:stretch;padding:2px 0 4px}.hand .tile{width:100%;height:61px;max-width:none;min-width:0}.hand .tile .num{font-size:25px}.hand .tile .symbol{font-size:15px;margin-top:1px}.hand .tile .label{font-size:6px;margin-top:2px}.hand .tile.drawn{margin:0;border-color:#ec70b4}.hand .tile.selected{transform:translateY(-3px)}.hand .tile:hover{transform:translateY(-3px)}.hand-top .eyebrow{font-size:10px;margin-right:6px}#handState{font-size:9px}#hint{font-size:10px;padding:4px}.actions{gap:6px}.actions p{font-size:10px;max-width:45%;line-height:1.2}.actions button{font-size:10px;padding:7px 8px;min-height:34px}.actions>div{gap:5px}.left-panel{inset:49px 5px 216px}.runner{width:79px;padding:6px 4px;gap:4px}.portrait{width:18px;height:24px}.runner-name{font-size:10px;margin-bottom:3px}.runner-sub{font-size:7px}.runner-score{font-size:10px;margin-top:4px}.runner-score small{font-size:7px}.runner:nth-child(1){left:6px;bottom:11px}.runner:nth-child(2){left:6px}.runner:nth-child(3){top:8px;left:8px}.runner:nth-child(4){right:6px}.seat.top{top:14px;left:64%}.seat.top .back{width:12px;height:22px;gap:2px}.seat.top{gap:2px}.seat.west{left:14px;top:18%;transform:none;flex-direction:row}.seat.east{right:14px;top:auto;bottom:15%;transform:none;flex-direction:row}.seat.west .back,.seat.east .back{width:7px;height:16px}.seat.west,.seat.east{gap:1px}.back:after{font-size:9px}.discpool.p0,.discpool.p2{grid-template-columns:repeat(6,var(--discard-w));gap:2px}.discpool.p2{top:52px}.discpool.p0{bottom:23px}.discpool.p1,.discpool.p3{grid-template-columns:repeat(2,var(--discard-w));gap:2px}.discpool.p1{right:calc(50% + 73px)}.discpool.p3{left:calc(50% + 73px)}.tile.small .num{font-size:14px}.tile.small .symbol{font-size:8px}.hub{width:96px;height:93px}.hub strong{font-size:28px}.hub small{font-size:8px}.hub #turnIndicator{font-size:9px}.hub>span{font-size:7px}.table-text{display:none}.table-bottom{font-size:8px;right:7px;bottom:6px}.table-bottom>span:first-child{display:none}.own-melds{right:10px;bottom:8px;gap:5px}.own-melds .tile{width:16px;height:23px}.own-melds .tile .num{font-size:11px}.own-melds .tile .symbol{font-size:6px}.claim-prompt{width:calc(100% - 25px);padding:17px 10px;max-height:95%;overflow:auto}.claim-prompt h2{font-size:21px;margin:8px 0 12px}.claim-kicker{font-size:10px}.claim-preview>.tile{width:38px;height:54px}.claim-preview .num{font-size:25px}.claim-preview .symbol{font-size:17px}.claim-preview .label{font-size:6px}.claim-prompt p{font-size:11px;margin:10px 0}.claim-options button{font-size:13px;min-height:41px;padding:9px}.meld-flash{font-size:20px;padding:16px;max-width:95%;white-space:normal}.meld-flash span{font-size:10px}.toast{font-size:12px;bottom:223px}.modal-inner{padding:20px}.modal-header h2{font-size:23px}.modal-inner p,.modal-inner li{font-size:13px}.mode-choice{flex-direction:column}.shop-grid{grid-template-columns:1fr}.shop-card{min-height:0;display:grid;grid-template-columns:45px 1fr;gap:0 12px}.shop-card .item-art{grid-row:1/4}.shop-card h3{margin:0}.shop-card p{margin:5px 0;font-size:12px}.shop-card button{grid-column:2;margin-top:0}.shop-footer{flex-wrap:wrap}.guide-tiles{gap:5px}.guide-tiles .tile{width:40px;height:65px}.guide-tiles .tile .num{font-size:26px}}
@media(max-height:520px) and (min-width:600px){:root{--tile-h:66px;--discard-w:21px;--discard-h:28px}body{grid-template-rows:37px 28px minmax(0,1fr)}.game-column{grid-template-rows:36px minmax(0,1fr) 126px}.wind-strip{padding:2px 8px}.wind-letter{width:25px;height:27px;font-size:21px}.wind-card .eyebrow{font-size:8px}.wind-card strong{font-size:14px}.wind-strip p{display:none}.left-panel{inset:36px 8px 134px}.runner{width:110px;padding:4px;gap:6px}.runner .portrait{width:21px;height:26px}.runner-name{font-size:11px}.runner-sub{font-size:8px}.runner-score{font-size:12px;margin-top:3px}.runner:nth-child(3){left:calc(50% - 270px);top:6px}.seat.west{left:129px}.seat.east{right:129px}.seat.west .back,.seat.east .back{height:9px;width:21px}.seat.top .back{height:18px;width:16px}.seat.top{top:6px}.discpool.p2{top:31px}.discpool.p0{bottom:15px}.discpool.p0,.discpool.p2{grid-template-columns:repeat(12,21px);gap:2px}.discpool.p1,.discpool.p3{grid-template-columns:repeat(6,21px);gap:2px}.discpool.p1{right:calc(50% + 147px)}.discpool.p3{left:calc(50% + 147px)}.hub{width:118px;height:75px}.hub strong{font-size:23px;margin:4px 0 2px}.hub small{font-size:9px}.hub>span{font-size:7px}.hub #turnIndicator{font-size:9px;margin-top:4px}.hand-panel{grid-template-rows:20px 66px 32px;padding:3px 12px}.hand{display:flex;gap:4px;align-items:flex-end;padding:0 0 5px}.hand .tile{height:61px;width:46px;max-width:56px;flex:1}.hand .tile .num{font-size:27px}.hand .tile .symbol{font-size:16px;margin-top:1px}.hand .tile .label{font-size:6px;margin-top:2px}.hand-top .eyebrow,#handState,#hint{font-size:10px}.actions button{font-size:11px;min-height:28px;padding:5px 9px}.actions p{font-size:10px}.table-bottom{font-size:8px}.tile.small .num{font-size:14px}.tile.small .symbol{font-size:8px}.claim-prompt{padding:12px;max-height:95%;overflow:auto}.claim-kicker{font-size:10px}.claim-prompt h2{font-size:21px;margin:5px 0 8px}.claim-preview>.tile{width:28px;height:38px}.claim-preview .num{font-size:19px}.claim-preview .symbol{font-size:10px}.claim-preview .label{display:none}.claim-prompt p{margin:6px 0;font-size:11px}.claim-options button{min-height:32px;font-size:13px;padding:6px 10px}.toast{bottom:140px}.own-melds{bottom:15px;right:15px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}.claim-prompt{animation:none}.meld-flash{animation:meld-flash 1.7s step-end both}}

/* Holographic tile interfaces: emissive numerals, projection rails and scan texture. */
.tile{background:repeating-linear-gradient(0deg,#cadcff05 0 2px,#0000 2px 5px),linear-gradient(145deg,#244b718f,#142248e8 70%);color:#8cddff;border:1px solid currentColor;border-bottom:3px solid currentColor;border-radius:3px 9px 2px 2px;box-shadow:inset 0 0 14px #6b8bff30,0 3px 0 #0a0e26,0 0 8px #75bfff20;text-shadow:0 0 12px currentColor;backdrop-filter:blur(5px)}.tile.c0{color:#91dbff}.tile.c1{color:#dcafff;background-color:#3b1f5b}.tile.c2{color:#ff9ab7;background-color:#4a1c3a}.tile.c3{color:#b6caff;background-color:#222d5d}.tile.corp{color:#ffb4eb;background-color:#47234b}.tile .num{font-weight:bold}.tile .label{color:#e5e5ff;text-shadow:none}.tile:after{content:'';position:absolute;bottom:3px;left:16%;right:16%;height:1px;background:currentColor;opacity:.5;box-shadow:0 0 7px currentColor;pointer-events:none}.tile.small{border-bottom-width:2px;border-radius:2px 5px 1px 1px}.tile.small:after{bottom:1px;opacity:.3}.tile.last{outline-color:#ff75be;box-shadow:0 0 16px #f64eaa77,inset 0 0 12px #ff83dc33}.hand .tile:hover{background-color:#3c3d72;box-shadow:0 0 22px #b876ff77,inset 0 0 18px #a393ff33}.hand .tile.selected{outline:2px solid #c7a0ff;box-shadow:0 6px 0 #b26fff44,0 0 26px #b77bff99,inset 0 0 20px #9d7bff55;background-color:#32325f}.hand .tile.hinted:before{color:#ffd3ef;text-shadow:0 0 6px #ff4da1}.hand .tile.claim-match{outline:2px solid #ff81bb;box-shadow:0 0 25px #fa3b9d77;animation:hologram-beacon 2s ease-in-out infinite}.materialize{animation:hologram-in .48s ease-out both}.hand .tile.drawn{border-top:2px solid #efd2ff}.wind-letter{background:#3b3464;color:#e7d3ff;border:1px solid #ad8fff;border-bottom:3px solid #b39dff;box-shadow:inset 0 0 13px #af87ff33,0 0 12px #865dff33;text-shadow:0 0 12px #c5aaff}.back{background:repeating-linear-gradient(0deg,#bb8bff0c 0 2px,#0000 2px 4px),linear-gradient(135deg,#3d306955,#1e345baa);border-color:#8771c9;box-shadow:inset 0 0 0 2px #6c50a333,0 0 8px #804dd522}.table-edge{border-color:#af5fc066;box-shadow:inset 0 0 35px #9750e011}.claim-prompt{background:repeating-linear-gradient(0deg,#e6beff05 0 2px,#0000 2px 5px),linear-gradient(135deg,#272258f5,#271331fa);border-color:#f390d1;backdrop-filter:blur(14px);animation:hologram-panel .4s ease-out}.claim-prompt:after{content:'';position:absolute;left:10%;right:10%;bottom:-6px;height:3px;background:#c783ff;box-shadow:0 0 25px 5px #b654ff77}.claim-preview>.tile{box-shadow:0 0 18px #ba73ff44}.meld-flash{background:repeating-linear-gradient(0deg,#e1c3ff0c 0 2px,#0000 2px 5px),#25214de8;backdrop-filter:blur(10px);border-color:#d8a0ff;text-shadow:0 0 18px #bb59ff;animation:hologram-link 1.9s ease both}.meld .tile{box-shadow:0 0 12px #cf91ff55}.nav[aria-pressed=true]{color:#ffb0dc;text-shadow:0 0 12px #ff55b066;border-bottom:2px solid #c58cff}
@keyframes hologram-in{0%{opacity:0;transform:translateY(14px) scaleY(.1);filter:brightness(2.2)}40%{opacity:.8;transform:translateY(-3px) scaleY(1.03);filter:brightness(1.8)}100%{opacity:1;transform:translateY(0) scaleY(1);filter:brightness(1)}}@keyframes hologram-panel{0%{opacity:0;transform:translate(-50%,-50%) scaleY(.05);filter:brightness(2)}60%{opacity:1;transform:translate(-50%,-50%) scaleY(1.02)}100%{opacity:1;transform:translate(-50%,-50%) scaleY(1);filter:brightness(1)}}@keyframes hologram-link{0%{opacity:0;transform:translate(-50%,-50%) scaleX(.05) scaleY(.4);filter:brightness(2)}20%,70%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:brightness(1)}100%{opacity:0;transform:translate(-50%,-50%) scaleY(.05);filter:brightness(1.8)}}@keyframes hologram-beacon{0%,100%{box-shadow:0 0 12px #fa3b9d44}50%{box-shadow:0 0 25px #fa3b9d99}}
@media(max-width:1100px){nav{gap:3px}.nav{font-size:10px}#fullscreen{display:none}}
@media(max-width:720px){#help{font-size:0}#help:after{content:'GUIDE';font-size:10px}.nav{padding:0 3px}#sound{font-size:9px}.hand .tile .num{font-size:25px}}
@media(prefers-reduced-motion:reduce){.materialize,.claim-prompt,.hand .tile.claim-match{animation:none}.meld-flash{animation:meld-flash 1.7s step-end both}}
@media(max-width:1000px){#tableTab{display:none}.nav{font-size:10px}nav{gap:2px}}
@media(max-width:720px){#sfx{font-size:9px;padding:0 3px}.brand{font-size:17px}.nav{padding:0 3px}#buildTab span{display:none}}
@media(min-width:721px) and (min-height:521px){:root{--tile-h:clamp(88px,11vh,110px)}.hand .tile .num{font-size:clamp(28px,2.7vw,36px)}.hand .tile .symbol{font-size:clamp(18px,1.5vw,22px);margin-top:3px}.hand .tile .label{font-size:8px;margin-top:3px}}
@media(max-width:720px) and (min-height:521px){.discpool.p1{right:calc(50% + 55px)}.discpool.p3{left:calc(50% + 55px)}}
.claim-preview .tile .num{font-size:27px}.claim-preview .tile .symbol{font-size:17px;margin-top:2px}.claim-preview .tile .label{font-size:6px;margin-top:2px}.guide-tiles .tile .num{font-size:29px}.guide-tiles .tile .symbol{font-size:19px}.guide-tiles .tile .label{font-size:7px}.projected{animation:discard-project .3s ease-out both}@keyframes discard-project{0%{opacity:0;transform:translateY(-9px) scale(.9);filter:brightness(2)}55%{opacity:1;filter:brightness(1.6)}100%{opacity:1;transform:translateY(0) scale(1);filter:brightness(1)}}
@media(max-height:520px) and (min-width:600px){.seat.west,.seat.east{display:none}.runner:nth-child(1){bottom:4px;left:8px}.runner:nth-child(2){top:7px;left:8px;transform:none}.runner:nth-child(4){top:7px;right:8px;transform:none}.claim-preview .tile .num{font-size:19px}.claim-preview .tile .symbol{font-size:10px}}
@media(prefers-reduced-motion:reduce){.projected{animation:none}}

/* Minimal game HUD and reference palette: #711c91 #ea00d9 #0abdc6 #133e7c #091833. */
:root{--bg:#091833;--panel:#111f42;--line:#623087;--mint:#1ee4ef;--muted:#b9c5e4;--text:#f0f5ff;--gold:#ff7df1;--orange:#ea00d9;--tile-w:clamp(46px,5.4vw,84px);--tile-h:clamp(100px,13vh,132px)}
body{grid-template-rows:52px 0 minmax(0,1fr);background:#091833}header{position:relative;z-index:30;background:#091833;border-bottom:1px solid #711c91;padding:0 16px;gap:16px}.brand{font-size:23px;letter-spacing:-1px}.brandmark{color:#ea00d9;text-shadow:0 0 16px #ea00d966}.brand .mint{color:#0ee8ee}.runbar{display:none!important}header .wind-strip{display:flex!important;position:static;margin:0 auto 0 12px;padding:0;gap:20px;height:100%;background:none;border:0;min-width:0}header .wind-card{gap:8px}header .wind-letter{display:none}header .wind-card .eyebrow{font-size:9px;letter-spacing:1px;margin:0 0 2px;color:#a5b4da}header .wind-card strong{font-size:17px;letter-spacing:1px;color:#f0d8ff}header .your-wind{border-left:1px solid #583377;padding-left:20px}header .your-wind strong{color:#22e9ef}header .wind-strip p{display:none!important}.compact-status{display:flex;align-items:center;gap:20px;font-size:14px;white-space:nowrap}.compact-status #handNum:before{content:'HAND ';font-size:10px;color:#acb9db}.compact-status #credits{color:#ff7df1;font-weight:bold}header nav{gap:12px;flex-shrink:0}header .nav{display:block!important;font-size:12px!important;padding:0 8px;background:none;border:0}header #buildTab span{display:inline;font-size:11px;color:#c8a1ff}header #menuToggle{font-size:14px!important;color:#d7ecff}header #menuToggle[aria-expanded=true]{color:#ff82f3}.game-menu{position:absolute;right:12px;top:calc(100% + 8px);width:230px;padding:15px;background:#101b3bf5;border:1px solid #a634c0;box-shadow:0 10px 45px #02081dcc;backdrop-filter:blur(15px);z-index:60}.game-menu[hidden]{display:none}.game-menu .eyebrow{font-size:11px;color:#b793e9;margin:0 0 10px}.game-menu button{display:block;width:100%;text-align:left;margin-top:6px;background:#182b54;border-color:#563581;font-size:13px;min-height:40px}.game-menu button:hover{background:#3d1d61;border-color:#ea00d9}.game-menu [aria-pressed=true]{color:#26e9ef;border-left:3px solid #0abdc6}.game-menu #fullscreen{display:block}main{padding:8px 10px}.game-column{grid-template-rows:0 minmax(0,1fr) calc(var(--tile-h) + 87px)}.left-panel{inset:8px 10px calc(var(--tile-h) + 95px)}.table-wrap{border-color:#711c91;background:#0d2148;box-shadow:0 0 24px #ea00d917}.table{border-color:#281750;background:radial-gradient(ellipse at 50% 45%,#711c9155,#133e7c33 55%,#091833bb 90%)}.table-edge{border-color:#9222ad99;box-shadow:inset 0 0 40px #711c911f}.hub{background:#101a3bee;border-color:#bd4ee1;box-shadow:0 0 0 5px #221747,0 0 28px #ea00d92e}.hub small{color:#eb9cff}.hub #turnIndicator{color:#0ee8ef}.runner{background:#091b3ce8;border-color:#6340a0}.runner:nth-child(1){border-left-color:#0abdc6}.runner:nth-child(2){border-left-color:#ea00d9}.runner:nth-child(3){border-left-color:#ae4cdb}.runner:nth-child(4){border-right-color:#3568d1}.hand-panel{background:linear-gradient(180deg,#132647,#101c3b);border-color:#64328b;grid-template-rows:27px var(--tile-h) 45px;padding:6px 18px 7px}.hand-top .eyebrow{color:#2de7ed}#handState{color:#bccce6;font-size:12px}.hand{padding-bottom:8px;gap:6px}.hand .tile{width:var(--tile-w);flex-basis:var(--tile-w);max-width:86px;height:calc(var(--tile-h) - 8px);border-radius:0}.hand .tile .num{font-size:clamp(34px,3.5vw,48px);line-height:1.05}.hand .tile .symbol{font-size:clamp(22px,2.3vw,31px);margin-top:7px}.tile{border-radius:0!important;background:repeating-linear-gradient(0deg,#23e7ef0a 0 2px,#0000 2px 5px),linear-gradient(160deg,#133e7ccc,#092241f5);border-color:#0abdc6;color:#35efff;border-bottom:3px solid currentColor;box-shadow:inset 0 0 24px #0abdc62b,0 0 8px #0abdc644;text-shadow:0 0 9px currentColor}.tile.c0{color:#35efff;border-color:#0abdc6;background-color:#0b4e66}.tile.c1{color:#ff77f1;border-color:#ea00d9;background:repeating-linear-gradient(0deg,#ff74f40a 0 2px,#0000 2px 5px),linear-gradient(160deg,#711c91dc,#351251ee);box-shadow:inset 0 0 25px #ea00d933,0 0 9px #ea00d944}.tile.c2{color:#bd81ff;border-color:#a744ec;background:repeating-linear-gradient(0deg,#d99dff0a 0 2px,#0000 2px 5px),linear-gradient(160deg,#512c94dd,#1c204cee);box-shadow:inset 0 0 25px #aa4eff33,0 0 9px #aa4eff44}.tile.c3{color:#89baff;border-color:#568cfa;background:linear-gradient(160deg,#133e7cdd,#102249ee)}.tile.corp{color:#ffa1f9;border-color:#ea00d9;background:linear-gradient(160deg,#711c91cc,#391c60ee)}.tile .label{display:none!important}.tile.small .num{font-size:clamp(18px,1.7vw,25px)}.tile.small .symbol{font-size:12px;margin-top:2px}.tile.last{outline-color:#ea00d9;box-shadow:0 0 18px #ea00d988}.hand .tile.selected{outline-color:#f29cff;box-shadow:0 8px 0 #ea00d933,0 0 28px #ea00d999}.hand .tile.claim-match{outline-color:#ff5feb}.back{border-color:#9742c0;background:linear-gradient(135deg,#711c9155,#133e7c99);box-shadow:inset 0 0 0 2px #711c9155,0 0 8px #711c9144}.back:after{color:#cc83ed}.actions{border-top-color:#613081}.primary{background:linear-gradient(135deg,#0abdc6,#55d9ef);color:#071833;border-color:#58eff7}.primary:hover{background:#66f2ef}.secondary{background:#4a1f70;border-color:#9f37c9;color:#f7d9ff}.claim-prompt{border-color:#ea00d9;box-shadow:0 0 0 5px #711c9133,0 0 65px #ea00d944;background:repeating-linear-gradient(0deg,#ea00d908 0 2px,#0000 2px 5px),linear-gradient(135deg,#351659f7,#0e2543fa)}.claim-prompt h2{color:#ff8df4}.claim-options .secondary{background:#711c91;border-color:#ea00d9}.claim-preview .tile{border-radius:0}.claim-preview .tile .num{font-size:32px}.claim-preview .tile .symbol{font-size:22px;margin-top:5px}.meld-flash{border-color:#ea00d9;background:#32174deb;box-shadow:0 0 60px #ea00d944}.toast{background:#32154f;border-color:#ea00d9;bottom:calc(var(--tile-h) + 104px)}.table-text{display:none}
@media(max-width:900px){header{gap:10px;padding:0 12px}.brand{font-size:21px}.brandmark{display:none}header .wind-strip{margin-left:0;gap:12px}header .your-wind{padding-left:12px}.compact-status{gap:12px;font-size:12px}header nav{gap:5px}header .nav{font-size:11px!important;padding:0 5px}.compact-status #handNum:before{display:none}.hand .tile .num{font-size:clamp(32px,4vw,40px)}.hand .tile .symbol{font-size:24px}}
@media(max-height:720px) and (min-width:721px){:root{--tile-h:96px}body{grid-template-rows:48px 0 minmax(0,1fr)}.game-column{grid-template-rows:0 minmax(0,1fr) 176px}.left-panel{top:8px;bottom:184px}.hand-panel{grid-template-rows:24px 96px 42px;padding-top:4px}.hand .tile .num{font-size:38px}.hand .tile .symbol{font-size:24px;margin-top:5px}}
@media(max-width:720px){:root{--tile-h:136px}body{grid-template-rows:50px 0 minmax(0,1fr)}header{padding:0 8px;gap:8px}.brand{font-size:17px}header .wind-strip{gap:9px;margin:0 auto 0 2px}header .wind-card{gap:0}header .wind-card .eyebrow{font-size:8px;letter-spacing:0}header .wind-card strong{font-size:14px;letter-spacing:0}header .your-wind{padding-left:9px}.compact-status{display:none}header #buildTab{font-size:10px!important}header #buildTab span{display:none}header #menuToggle{font-size:0!important}header #menuToggle:after{content:'☰';font-size:22px}header nav{gap:0}.game-menu{width:220px}.game-column{grid-template-rows:0 minmax(0,1fr) 210px}.left-panel{inset:8px 10px 218px}.hand-panel{grid-template-rows:25px 134px 39px;padding:4px 7px}.hand{display:grid;grid-template-rows:62px 62px;padding:2px 0 4px;gap:5px}.hand .tile{width:100%;height:62px;max-width:none}.hand .tile .num{font-size:30px}.hand .tile .symbol{font-size:18px;margin-top:2px}#handState{font-size:9px}.hand-top .eyebrow{font-size:10px}.tile.small .num{font-size:16px}.tile.small .symbol{font-size:9px;margin-top:1px}.actions p{font-size:10px}.toast{bottom:225px}.claim-preview .tile .num{font-size:28px}.claim-preview .tile .symbol{font-size:18px}}
@media(max-height:520px) and (min-width:600px){:root{--tile-h:74px}body{grid-template-rows:40px 0 minmax(0,1fr)}.game-column{grid-template-rows:0 minmax(0,1fr) 134px}.left-panel{inset:8px 10px 142px}.hand-panel{grid-template-rows:20px 74px 32px;padding:3px 12px}.hand{display:flex;padding:0 0 5px;gap:4px}.hand .tile{height:68px;width:52px;max-width:62px;flex:1}.hand .tile .num{font-size:32px}.hand .tile .symbol{font-size:19px;margin-top:2px}.tile.small .num{font-size:15px}.tile.small .symbol{font-size:8px}.claim-preview .tile .num{font-size:23px}.claim-preview .tile .symbol{font-size:12px;margin-top:2px}.toast{bottom:148px}}
/* The HUD now owns winds; the play area has only table and hand rows. */
body{grid-template-rows:52px minmax(0,1fr)}.game-column{grid-template-rows:minmax(0,1fr) calc(var(--tile-h) + 87px)}
@media(max-height:720px) and (min-width:721px){body{grid-template-rows:48px minmax(0,1fr)}.game-column{grid-template-rows:minmax(0,1fr) 176px}}
@media(max-width:720px){body{grid-template-rows:50px minmax(0,1fr)}.game-column{grid-template-rows:minmax(0,1fr) 210px}}
@media(max-height:520px) and (min-width:600px){body{grid-template-rows:40px minmax(0,1fr)}.game-column{grid-template-rows:minmax(0,1fr) 134px}}

/* Dragon honours retain white / green / red identities at every tile size. */
.tile.corp.dragon-axiom{color:#f3faff;border-color:#e8f4ff;background:repeating-linear-gradient(0deg,#f1faff0d 0 2px,#0000 2px 5px),linear-gradient(155deg,#516b8dcc,#152e4ef5);box-shadow:inset 0 0 23px #e8f4ff33,0 0 12px #e8f4ff44}
.tile.corp.dragon-nova{color:#7dffac;border-color:#24ef83;background:repeating-linear-gradient(0deg,#67ff9c0b 0 2px,#0000 2px 5px),linear-gradient(155deg,#106449d9,#0b2c35f5);box-shadow:inset 0 0 23px #24ef8333,0 0 12px #24ef8344}
.tile.corp.dragon-oni{color:#ff8b96;border-color:#ff3e5b;background:repeating-linear-gradient(0deg,#ff83950c 0 2px,#0000 2px 5px),linear-gradient(155deg,#7b203edc,#2d163bf5);box-shadow:inset 0 0 23px #ff3e5b33,0 0 12px #ff3e5b44}
.hand .tile.corp.selected{outline-color:#f4e7ff;box-shadow:0 7px 0 #c69bff33,0 0 26px currentColor}

/* Dragon corporation marks are vector emblems, with a readable silhouette at discard size. */
.dragon-logo{width:76%;height:78%;max-height:96px;overflow:visible;fill:currentColor;filter:drop-shadow(0 0 5px currentColor);pointer-events:none}.dragon-eye{fill:#091833}.dragon-line{fill:none;stroke:#091833;stroke-width:1.8;stroke-linecap:square;stroke-linejoin:miter}.tile.small .dragon-logo{width:80%;height:84%;filter:drop-shadow(0 0 2px currentColor)}.tile.corp:after{left:22%;right:22%}.tile.hover-match{outline:2px solid #f4e8ff!important;outline-offset:2px;filter:brightness(1.55);box-shadow:0 0 18px currentColor!important;z-index:3}.hand .tile.hover-match{filter:brightness(1.3)}
.action-assist{position:absolute;right:16px;bottom:calc(100% + 10px);display:flex;align-items:center;gap:22px;padding:12px 16px;background:#17244cf2;border:1px solid #36e4ef;box-shadow:0 0 28px #0abdc644;z-index:8;max-width:calc(100% - 32px)}.action-assist[hidden]{display:none}.action-assist b{display:block;color:#55f6f4;font-size:15px;letter-spacing:.6px}.action-assist small{display:block;color:#d2dbf3;font-size:11px;margin-top:5px}.action-assist button{flex-shrink:0}.hand .tile.ready-candidate{border-top:3px solid #ffe5a0}.hand .tile.ready-candidate:before{content:'◆';position:absolute;right:3px;top:2px;font-size:11px;color:#ffe7a8;text-shadow:0 0 7px #ffb840}.hand .tile.ready-candidate.hinted:before{content:'▼'}
.tile-intel{display:grid;grid-template-columns:130px 1fr;gap:25px;align-items:center;margin:25px 0}.intel-art .tile{width:120px;height:164px;pointer-events:none}.intel-art .num{font-size:60px}.intel-art .symbol{font-size:38px}.intel-score{border-left:2px solid #0abdc6;padding-left:15px;color:#d5f5ff!important}.intel-counts{display:flex;gap:30px;padding:18px 0;border-block:1px solid #654287;font-size:11px;color:#bbbce1}.intel-counts b{font-size:23px;color:#57e5ee;margin-right:8px}.intel-tip{font-size:12px!important;color:#c5a0ee!important}.contracts-reference{display:grid;grid-template-columns:1fr 1fr;gap:12px}.contracts-reference article{padding:14px;background:#182441;border:1px solid #58347b}.contracts-reference h4{font-size:15px;color:#a5eaff;margin:0 0 6px}.contracts-reference article>span{font-size:11px;color:#d49aec}.contracts-reference article p{font-size:12px;line-height:1.6;margin:9px 0 0}
/* All four rivers use the same six-column grid, rotated around the table centre. */
.table-wrap{container-type:size}.table{--discard-w:clamp(8px,min(calc(5.6cqh - 3px),calc(5cqw - 2px)),34px);--discard-h:calc(var(--discard-w) * 1.32);--lane-width:calc(var(--discard-w) * 6 + 15px);--lane-height:calc(var(--discard-h) * 4 + 9px);--lane-offset:calc(var(--discard-w) * 3 + 20px)}
.discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{display:grid;grid-template-columns:repeat(6,var(--discard-w));grid-template-rows:repeat(4,var(--discard-h));gap:3px;width:var(--lane-width);height:var(--lane-height);transform-origin:center;right:auto;bottom:auto;align-content:start}.discpool.p0{left:50%;top:calc(50% + var(--lane-offset));transform:translateX(-50%)}.discpool.p2{left:50%;top:auto;bottom:calc(50% + var(--lane-offset));transform:translateX(-50%) rotate(180deg)}.discpool.p1{left:calc(50% - var(--lane-offset) - var(--lane-height) / 2);top:50%;transform:translate(-50%,-50%) rotate(90deg)}.discpool.p3{left:calc(50% + var(--lane-offset) + var(--lane-height) / 2);top:50%;transform:translate(-50%,-50%) rotate(-90deg)}.table .tile.small{width:var(--discard-w);height:var(--discard-h)}.table .tile.small .num{font-size:clamp(8px,calc(var(--discard-w) * .65),23px)}.table .tile.small .symbol{font-size:clamp(5px,calc(var(--discard-w) * .36),12px);margin-top:1px}.table .hub{width:clamp(82px,20cqh,145px);height:clamp(75px,17cqh,112px)}
@media(max-width:720px){.tile-intel{grid-template-columns:85px 1fr;gap:14px}.intel-art .tile{width:80px;height:110px}.intel-art .num{font-size:41px}.intel-art .symbol{font-size:26px}.intel-counts{gap:18px;font-size:9px}.intel-counts b{font-size:18px}.contracts-reference{grid-template-columns:1fr}.action-assist{right:7px;bottom:calc(100% + 7px);max-width:calc(100% - 14px);padding:10px;gap:12px}.action-assist b{font-size:12px}.action-assist small{font-size:9px;line-height:1.5;max-width:210px}.action-assist button{font-size:11px;padding:8px}.runner:nth-child(2){top:82px;transform:none}.runner:nth-child(4){top:auto;bottom:78px;transform:none}.seat.top{left:50%}}
@media(max-height:520px) and (min-width:600px){.action-assist{padding:7px 11px;bottom:calc(100% + 5px)}.action-assist b{font-size:12px}.action-assist small{font-size:9px}.action-assist button{min-height:30px;padding:6px 9px}.table .hub{width:95px;height:70px}.table .hub strong{font-size:22px}.table .hub small{font-size:8px}.table .hub>span{font-size:7px}.table .hub #turnIndicator{font-size:8px}}

/* CEO Invitational: private exchange, corporate identities and fictional capital. */
.executive-title{font-size:8px;letter-spacing:.45px;line-height:1.4;color:#d4c0ef;margin:2px 0 5px;max-width:86px}.runner-name{margin-bottom:1px}.runner-sub{font-size:9px}.runner-score{font-size:16px}.runner:nth-child(1){box-shadow:0 0 0 1px #0abdc633,0 4px 24px #071127cc}.board-identity{position:absolute;right:24px;top:24px;text-align:right;color:#c6b3ed80;pointer-events:none;z-index:1}.board-identity b{display:block;font-size:16px;letter-spacing:4px;font-weight:normal}.board-identity span{display:block;font-size:8px;letter-spacing:2px;margin-top:7px;color:#a7afc280}.table-edge:after{content:'';position:absolute;inset:7px;border:1px solid #0abdc61d;clip-path:polygon(0 0,17% 0,17% 1px,83% 1px,83% 0,100% 0,100% 100%,83% 100%,83% calc(100% - 1px),17% calc(100% - 1px),17% 100%,0 100%);pointer-events:none}.table .hub{height:clamp(98px,20cqh,132px);background:linear-gradient(145deg,#211340ed,#0a2444f5);box-shadow:0 0 0 4px #211338,0 0 0 5px #ba5ace44,0 0 40px #711c9144}.hub .escrow{font-size:9px;margin-top:6px;letter-spacing:1px;color:#f09ce9}.hub strong{margin-top:7px}.compact-status #handNum:before{content:'DEAL '}.runner-score small{font-size:8px;letter-spacing:.5px}
/* Slowly drifting projection intensity, never a rapid or full-screen flash. */
.tile{--holo-delay:0s}.tile:nth-child(7n+1){--holo-delay:-1.7s}.tile:nth-child(7n+2){--holo-delay:-6.3s}.tile:nth-child(7n+3){--holo-delay:-3.1s}.tile:nth-child(7n+4){--holo-delay:-8.5s}.tile:nth-child(7n+5){--holo-delay:-4.9s}.tile:nth-child(7n+6){--holo-delay:-.7s}.tile .num,.tile .symbol,.tile .dragon-logo{animation:projection-breathe 10.7s linear infinite;animation-delay:var(--holo-delay);will-change:opacity}.tile:after{animation:projection-rail 12.3s linear infinite;animation-delay:var(--holo-delay)}.back:after{animation:projection-breathe 13s linear infinite}.back:nth-child(3n):after{animation-delay:-5s}.back:nth-child(3n+1):after{animation-delay:-9s}@keyframes projection-breathe{0%,48%,56%,87%,100%{opacity:1}50%{opacity:.93}53%{opacity:.985}89%{opacity:.96}93%{opacity:1}}@keyframes projection-rail{0%,60%,100%{opacity:.48}66%{opacity:.7}72%{opacity:.45}}
/* A newly drawn asset stays isolated at the right until the next discard. */
.hand .tile.drawn{margin-left:28px;transform:translateY(-6px);outline:2px solid #e6faff;outline-offset:3px;box-shadow:0 0 0 7px #0abdc626,0 0 30px #0abdc655,inset 0 0 25px #a9f8ff22;z-index:3}.hand .tile.drawn:hover{transform:translateY(-10px)}.hand .tile.drawn.selected{transform:translateY(-11px);outline-color:#f4ceff;box-shadow:0 0 0 7px #ea00d922,0 0 32px #ea00d977}.drawn-tag{position:absolute;top:-23px;left:50%;transform:translateX(-50%);padding:3px 6px;font:bold 9px monospace;letter-spacing:1px;line-height:1.2;color:#09243a;background:#adf7ff;border:1px solid #ebfcff;white-space:nowrap;pointer-events:none;text-shadow:none;box-shadow:0 0 13px #0abdc644}.hand .tile.materialize{animation:asset-materialize .85s cubic-bezier(.18,.65,.25,1) both;transform-origin:50% 100%}.arrival-scan{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:4}.arrival-scan:after{content:'';position:absolute;left:0;right:0;top:-10%;height:4px;background:#e4ffff;box-shadow:0 0 18px 8px #0abdc699;animation:arrival-sweep .85s ease-out both}@keyframes asset-materialize{0%{opacity:0;transform:translateY(21px) scaleY(.04);filter:brightness(1.8)}26%{opacity:.8;transform:translateY(-6px) scaleY(.5);filter:brightness(1.5)}63%{opacity:1;transform:translateY(-9px) scaleY(1.025);filter:brightness(1.2)}100%{opacity:1;transform:translateY(-6px) scaleY(1);filter:brightness(1)}}@keyframes arrival-sweep{0%{top:100%;opacity:0}18%{opacity:.8}80%{top:-5%;opacity:.7}100%{top:-10%;opacity:0}}
.dragon-logo{max-height:100px;width:83%;height:84%;fill:currentColor;filter:drop-shadow(0 0 4px currentColor)}.tile.small .dragon-logo{width:88%;height:88%;filter:drop-shadow(0 0 1.5px currentColor)}
/* Settlement sequences: a rising acquisition, a fractured balance sheet, or a balanced market. */
.modal-inner:has(>.settlement-screen){padding:0}.settlement-screen{background:linear-gradient(145deg,#0b1b36,#17112e);overflow:hidden}.settlement-hero{--event:#55edee;position:relative;text-align:center;min-height:247px;padding:24px 22px 23px;overflow:hidden;background:radial-gradient(ellipse at 50% 15%,#0abdc625,#101a38 65%);border-bottom:1px solid #276b7f;isolation:isolate}.settlement-hero.defeat{--event:#ff668e;background:radial-gradient(ellipse at 50% 15%,#ff346f2b,#1c132e 65%);border-bottom-color:#723254}.settlement-hero.draw{--event:#c4a4ff;background:radial-gradient(ellipse at 50% 15%,#9f65f02b,#161b39 65%);border-bottom-color:#594582}.settlement-grid{position:absolute;inset:0;z-index:-1;opacity:.12;background-image:linear-gradient(var(--event) 1px,transparent 1px),linear-gradient(90deg,var(--event) 1px,transparent 1px);background-size:38px 38px;transform:perspective(200px) rotateX(35deg) scale(1.5);transform-origin:50% 100%;mask-image:linear-gradient(transparent,#000)}.settlement-rays{position:absolute;left:50%;top:75px;width:290px;height:290px;transform:translate(-50%,-50%);border:1px solid var(--event);border-radius:50%;opacity:0;animation:market-ring 1.6s .15s ease-out both;z-index:-1}.settlement-emblem{width:82px;height:82px;margin:0 auto 15px;position:relative;color:var(--event);animation:market-emblem 1s cubic-bezier(.2,.75,.25,1) both}.settlement-emblem svg{width:64px;height:64px;position:absolute;left:9px;top:9px;fill:currentColor;filter:drop-shadow(0 0 10px var(--event))}.settlement-emblem i{position:absolute;inset:-5px;border:1px solid var(--event);border-radius:50%;opacity:.7;clip-path:polygon(0 0,100% 0,100% 38%,50% 50%,100% 62%,100% 100%,0 100%,0 62%,50% 50%,0 38%);animation:market-orbit 1.6s ease-out both}.settlement-emblem i+i{inset:-12px;opacity:.25;animation-direction:reverse}.settlement-kicker{font-size:9px;letter-spacing:2.3px;color:#bec6e5;animation:settlement-reveal .6s .18s both}.settlement-hero h2{font:700 clamp(23px,3.5vw,36px)/1.15 'Courier New',monospace;color:var(--event);letter-spacing:-1px;margin:12px 0 9px;text-shadow:0 0 22px color-mix(in srgb,var(--event) 35%,transparent);animation:settlement-reveal .7s .28s both}.settlement-hero>p{font-size:11px!important;margin:0;line-height:1.6;color:#d4cee7!important;letter-spacing:1px;animation:settlement-reveal .7s .4s both}.settlement-particles{position:absolute;inset:0;pointer-events:none;z-index:-1}.settlement-particles i{position:absolute;width:3px;height:8px;background:var(--event);left:50%;top:50%;opacity:0;box-shadow:0 0 8px var(--event);animation:capital-particle 1.8s ease-out both;animation-delay:var(--d)}.defeat .settlement-particles i{animation-name:capital-fall}.draw .settlement-particles i{height:2px;width:10px;animation-name:capital-balance}.defeat .settlement-emblem{animation:market-fracture 1.25s ease-out both}.draw .settlement-emblem{animation:market-balance 1.5s ease-out both}.settlement-details{padding:23px 28px 18px;animation:settlement-reveal .65s .38s both}.settlement-capital{display:grid;grid-template-columns:1.25fr 1fr .8fr;gap:15px;padding-bottom:21px;border-bottom:1px solid #403158;margin-bottom:20px}.settlement-capital>div>span{font-size:9px;letter-spacing:1px;color:#b1b6d4;display:block;margin-bottom:8px}.settlement-capital strong{font-size:31px;font-weight:normal;color:#d7deed}.settlement-capital .positive{color:#6ff6df}.settlement-capital .negative{color:#ff87a2}.settlement-hand>.eyebrow{font-size:10px;margin-bottom:10px}.settlement-hand .result-tiles{gap:5px}.contract-receipts{display:flex;gap:7px;flex-wrap:wrap;margin:17px 0 22px}.contract-receipts>span{font-size:11px;border:1px solid #594078;background:#2a1b46;padding:8px 10px;color:#e4ccff;animation:receipt-stamp .4s both;animation-delay:calc(.7s + var(--receipt) * .09s)}.contract-receipts b{color:#66f1e9;margin-left:12px;font-size:11px}.settlement-details .shop-footer{border-top:1px solid #403158;padding-top:18px}.settlement-footnote{font-size:9px!important;color:#9fa4c2!important;text-align:center;margin:17px 0 0;line-height:1.5!important}.settlement-draw-note{font-size:13px!important;line-height:1.8!important;color:#cec3e6!important;border-left:2px solid #ab83ea;padding:0 0 0 15px;margin:0 0 23px}.result-ranks div>span>small{display:block;color:#a6a8c8;font-size:9px;letter-spacing:1px;margin-top:5px}.result-ranks div{align-items:center}.result-ranks div:first-child{background:#541b7b33}.result-ranks b{font-size:16px}
@keyframes market-ring{0%{opacity:0;transform:translate(-50%,-50%) scale(.15)}35%{opacity:.35}100%{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}@keyframes market-emblem{0%{opacity:0;transform:translateY(25px) scale(.6)}55%{opacity:1;transform:translateY(-5px) scale(1.08)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes market-orbit{from{transform:rotate(-80deg) scale(.7)}to{transform:rotate(0deg) scale(1)}}@keyframes settlement-reveal{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes capital-particle{0%{opacity:0;transform:translate(0,25px)}20%{opacity:.7}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(35deg)}}@keyframes capital-fall{0%{opacity:0;transform:translate(var(--x),-60px)}20%{opacity:.55}100%{opacity:0;transform:translate(var(--x),100px) rotate(-45deg)}}@keyframes capital-balance{0%{opacity:0;transform:translate(0,0)}35%{opacity:.55}100%{opacity:0;transform:translate(var(--x),0)}}@keyframes market-fracture{0%{opacity:0;transform:translateY(-14px) scale(1.14)}25%{opacity:1;transform:translateX(-3px)}36%{transform:translateX(3px)}48%{transform:translateX(0)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes market-balance{0%{opacity:0;transform:rotate(-9deg) scale(.7)}35%{opacity:1;transform:rotate(6deg) scale(1)}65%{transform:rotate(-3deg)}100%{opacity:1;transform:rotate(0)}}@keyframes receipt-stamp{0%{opacity:0;transform:scale(1.07) translateY(-5px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@media(max-width:1100px){.executive-title{font-size:7px;max-width:76px}.runner-score{font-size:14px}.board-identity b{font-size:12px}.board-identity span{font-size:7px}.hand .tile.drawn{margin-left:20px}.drawn-tag{font-size:8px;letter-spacing:.5px}.settlement-hero{min-height:230px;padding-top:22px}}
@media(max-width:720px){.board-identity{display:none}.executive-title{font-size:6px;letter-spacing:0;max-width:54px;line-height:1.2;margin:0 0 3px}.runner-name{font-size:10px}.runner-sub{font-size:7px}.runner-score{font-size:10px}.runner-score small{font-size:6px}.hand .tile.drawn{margin-left:0;transform:translateY(-2px);outline-offset:1px;box-shadow:0 0 0 3px #0abdc622,0 0 18px #0abdc655}.hand .tile.drawn:hover,.hand .tile.drawn.selected{transform:translateY(-4px)}.drawn-tag{top:1px;left:auto;right:1px;transform:none;font-size:6px;padding:2px 3px;letter-spacing:0}.hand .tile.drawn .num{margin-top:8px}.hand .tile.drawn .symbol{margin-top:0}.hand .tile.materialize{animation-name:asset-materialize-mobile}.settlement-hero{min-height:225px;padding:25px 15px 20px}.settlement-emblem{width:72px;height:72px;margin-bottom:13px}.settlement-emblem svg{width:56px;height:56px;left:8px;top:8px}.settlement-kicker{font-size:8px;letter-spacing:1.5px}.settlement-hero h2{font-size:25px}.settlement-hero>p{font-size:10px!important}.settlement-details{padding:20px 17px 15px}.settlement-capital{gap:8px;margin-bottom:17px}.settlement-capital>div>span{font-size:8px;letter-spacing:0;line-height:1.4}.settlement-capital strong{font-size:23px}.settlement-hand .result-tiles{gap:3px}.settlement-hand .result-tiles .tile{width:28px;height:39px}.settlement-hand .result-tiles .tile .num{font-size:20px}.settlement-hand .result-tiles .tile .symbol{font-size:11px;margin-top:2px}.contract-receipts{gap:5px;margin:14px 0 18px}.contract-receipts>span{font-size:10px;padding:7px}.contract-receipts b{margin-left:7px}.settlement-footnote{font-size:8px!important}.settlement-screen .shop-footer{align-items:stretch}.settlement-screen .shop-footer>.primary{flex:1;font-size:11px}.result-ranks div{padding:11px 5px;font-size:12px}.result-ranks b{font-size:13px}.result-ranks div>span>small{font-size:8px}.table .hub{height:102px}.hub .escrow{font-size:7px;letter-spacing:.5px}}
@keyframes asset-materialize-mobile{0%{opacity:0;transform:translateY(10px) scaleY(.1);filter:brightness(1.6)}65%{opacity:1;transform:translateY(-4px) scaleY(1.02)}100%{opacity:1;transform:translateY(-2px) scaleY(1);filter:brightness(1)}}
@media(max-height:520px) and (min-width:600px){.board-identity{top:12px;right:16px}.board-identity b{font-size:9px;letter-spacing:1px}.board-identity span{display:none}.executive-title{font-size:6px;margin-bottom:2px}.runner-name{font-size:10px}.runner-sub{font-size:7px}.runner-score{font-size:11px}.table .hub{height:78px}.hub .escrow{display:none}.drawn-tag{top:-14px;font-size:7px;padding:2px 4px}.hand .tile.drawn{margin-left:16px}.settlement-hero{min-height:160px;padding:12px 20px}.settlement-emblem{width:48px;height:48px;margin-bottom:7px}.settlement-emblem svg{width:40px;height:40px;left:4px;top:4px}.settlement-kicker{font-size:8px}.settlement-hero h2{font-size:24px;margin:7px 0}.settlement-hero>p{font-size:10px!important}.settlement-details{padding:15px 22px}}
@media(prefers-reduced-motion:reduce){.tile .num,.tile .symbol,.tile .dragon-logo,.tile:after,.back:after,.hand .tile.materialize,.arrival-scan:after,.settlement-rays,.settlement-emblem,.settlement-emblem i,.settlement-kicker,.settlement-hero h2,.settlement-hero>p,.settlement-particles i,.settlement-details,.contract-receipts>span{animation:none!important}.arrival-scan,.settlement-rays,.settlement-particles{display:none}.tile .num,.tile .symbol,.tile .dragon-logo{will-change:auto}}
@media(max-width:720px){.hand .tile.drawn .num{font-size:27px}.hand .tile.drawn .dragon-logo{height:74%;margin-top:8px}}
.dragon-legend{gap:24px;margin:24px 0 28px}.dragon-legend figure{margin:0;text-align:center}.dragon-legend figure>.tile{width:84px;height:112px}.dragon-legend figcaption{margin-top:11px;font-size:11px;letter-spacing:1px;color:#d7ddf3}.dragon-legend figcaption span{display:block;margin-top:5px;letter-spacing:0;font-size:10px;color:#b5a3d0}@media(max-width:720px){.dragon-legend{gap:17px}.dragon-legend figure>.tile{width:72px;height:96px}.dragon-legend figcaption{font-size:10px}.dragon-legend figcaption span{font-size:9px}}

/* The Exchange: smoked glass, near-black surfaces and restrained perimeter light. */
:root{--bg:#03060e;--panel:#0b0e1e}body{background:#03060e}header{background:#050914;border-bottom-color:#502768;box-shadow:0 3px 18px #0006}.brand{display:flex;align-items:center;padding:3px 0;width:76px;flex:0 0 76px;height:100%;color:#d8f6ff;line-height:0}.neon-hand-logo{display:block;width:72px;height:46px;overflow:visible}.logo-neon{stroke:#2be5ec;filter:drop-shadow(0 0 2px #0abdc64d)}.logo-hand{stroke:#eef2ff}.logo-divider{stroke:#d249e2;filter:drop-shadow(0 0 3px #ea00d94d)}header .wind-strip{margin-left:5px}.table-wrap{background:#030711;border-color:#4e285f;box-shadow:inset 0 0 0 3px #070b17,0 0 24px #611b7b16}.table{background:radial-gradient(ellipse at 50% 45%,#171021ba 0%,#090d18e8 46%,#030710f2 88%);border-color:#12101e;box-shadow:inset 0 0 75px #0009}.table:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#9673ab08 1px,transparent 1px),linear-gradient(90deg,#9673ab08 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(ellipse at 50% 50%,#000,transparent 75%);pointer-events:none}.table:after{content:'';position:absolute;left:15%;right:15%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,#0abdc64d,transparent);box-shadow:0 0 25px 5px #0abdc60d;pointer-events:none}#city{opacity:.065}.table-edge{border-color:#87518b45;box-shadow:inset 0 0 45px #42165a0a}.table-edge:after{border-color:#32535b22}.board-identity{color:#8b839f99}.board-identity span{color:#7c829599}.runner{background:#080c17ed;border-color:#463050;box-shadow:0 5px 20px #0008}.runner:nth-child(1){box-shadow:0 0 0 1px #0abdc622,0 4px 24px #0009}.hand-panel{background:linear-gradient(180deg,#0a101b,#070b16);border-color:#4d2c60;box-shadow:0 -4px 20px #0007}.actions{border-top-color:#36243f}.table .hub{background:linear-gradient(145deg,#150e23f5,#070e1bee);border-color:#805293;box-shadow:0 0 0 4px #0d0a15,0 0 0 5px #ad6ac133,0 0 32px #711c9122}.back{background:linear-gradient(135deg,#21112cbb,#101c31cc);border-color:#79528b;box-shadow:inset 0 0 0 2px #59266b33,0 0 6px #711c911a}.back:after{color:#aa7bbd}.game-menu{background:#080d1bf7;border-color:#643679}.game-menu button{background:#101328;border-color:#3e2856}.game-menu button:hover{background:#291437;border-color:#c753d0}
/* Side-by-side identity proposals, with a small-tile proof beneath each emblem. */
.symbol-family h3{font-size:12px;letter-spacing:1.5px;margin:22px 0 12px}.symbol-family.green-family h3{color:#7dffac}.symbol-family.red-family h3{color:#ff8b96}.symbol-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.symbol-option{position:relative;display:flex;flex-direction:column;align-items:center;padding:15px 12px 12px;min-height:232px;border:1px solid #3e3b50;background:#080e1b;color:#a8ffca;text-align:center}.red-family .symbol-option{color:#ff98a6}.symbol-option:hover{background:#11201e;border-color:#64d79a}.red-family .symbol-option:hover{background:#26111a;border-color:#ec637e}.symbol-option[aria-pressed=true]{background:#112a20;border-color:#75ffae;box-shadow:inset 0 0 0 1px #75ffae55}.red-family .symbol-option[aria-pressed=true]{background:#2d121d;border-color:#ff7992;box-shadow:inset 0 0 0 1px #ff799255}.symbol-option[aria-pressed=true]:after{content:'✓';position:absolute;right:10px;top:9px;font-size:15px}.symbol-code{align-self:flex-start;font-size:11px;letter-spacing:1px;color:#d0d4e5}.symbol-art{display:flex;align-items:center;justify-content:center;width:100%;height:95px;margin:0 0 8px}.symbol-art>.dragon-logo{width:88px;height:88px;filter:none;animation:none}.symbol-option strong{font-size:13px;font-weight:bold;color:#eef3ff}.symbol-option small{display:block;font-size:11px;line-height:1.5;margin-top:7px;min-height:34px;color:#b5b9cc}.symbol-scale{display:flex;align-items:center;justify-content:center;width:28px;height:38px;border:1px solid currentColor;background:#0c1424;margin-top:10px}.symbol-scale>.dragon-logo{width:23px;height:30px;filter:none;animation:none}.symbol-studio-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid #3d2a4b;padding-top:18px;margin-top:22px}.symbol-studio-footer>span{font-size:12px;line-height:1.6;color:#cdc9dc}.symbol-studio-footer button{flex-shrink:0}.modal-inner:has(.symbol-options){background:#090d19}
@media(max-width:720px){.brand{width:58px;flex-basis:58px}.neon-hand-logo{width:54px;height:39px}header .wind-strip{margin-left:0}.symbol-options{gap:7px}.symbol-option{min-height:225px;padding:12px 7px 10px}.symbol-art{height:73px;margin:5px 0 8px}.symbol-art>.dragon-logo{width:64px;height:64px}.symbol-option strong{font-size:11px}.symbol-option small{font-size:10px;line-height:1.5;min-height:60px}.symbol-code{font-size:10px}.symbol-studio-footer{gap:12px}.symbol-studio-footer>span{font-size:11px}.symbol-studio-footer button{font-size:11px;padding:10px}.symbol-scale{margin-top:8px}.symbol-family h3{font-size:11px}}
@media(max-height:520px) and (min-width:600px){.brand{width:62px;flex-basis:62px}.neon-hand-logo{width:58px;height:34px}}

/* Free local colour schemes. Semantic white/green/red dragon honours are invariant. */
:root{color-scheme:dark;--p-accent:#35e8ef;--p-secondary:#f066e9;--p-third:#bc87ff;--p-background:#03060e;--p-header:#050914;--p-surface:#0a101b;--p-table:#090b14;--p-core:#181020;--p-border:#583167;--p-muted:#bcc6df;--mint:var(--p-accent);--gold:var(--p-secondary);--muted:var(--p-muted);--line:var(--p-border)}
body{background:var(--p-background)}header{background:var(--p-header);border-bottom-color:var(--p-border)}.logo-neon{stroke:var(--p-accent);filter:drop-shadow(0 0 2px color-mix(in srgb,var(--p-accent) 30%,transparent))}.logo-divider{stroke:var(--p-secondary);filter:drop-shadow(0 0 3px color-mix(in srgb,var(--p-secondary) 30%,transparent))}header .your-wind strong{color:var(--p-accent)}.compact-status #credits{color:var(--p-secondary)}.table-wrap{background:var(--p-background);border-color:var(--p-border)}.table{background:radial-gradient(ellipse at 50% 45%,var(--p-core),var(--p-table) 48%,var(--p-background) 90%)}.table:before{background-image:linear-gradient(color-mix(in srgb,var(--p-secondary) 4%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--p-secondary) 4%,transparent) 1px,transparent 1px)}.table:after{background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--p-accent) 30%,transparent),transparent);box-shadow:0 0 25px 5px color-mix(in srgb,var(--p-accent) 5%,transparent)}.table-edge{border-color:color-mix(in srgb,var(--p-secondary) 25%,transparent)}.table .hub{background:linear-gradient(145deg,var(--p-core),var(--p-header));border-color:var(--p-border);box-shadow:0 0 0 4px var(--p-background),0 0 0 5px color-mix(in srgb,var(--p-secondary) 20%,transparent),0 0 32px color-mix(in srgb,var(--p-secondary) 10%,transparent)}.hub small{color:var(--p-secondary)}.hub .escrow{color:var(--p-secondary)}.hub #turnIndicator{color:var(--p-accent)}.runner{background:var(--p-header);border-top-color:var(--p-border);border-bottom-color:var(--p-border)}.hand-panel{background:linear-gradient(180deg,var(--p-surface),var(--p-header));border-color:var(--p-border)}.actions{border-top-color:var(--p-border)}.hand-top .eyebrow{color:var(--p-accent)}.back{background:linear-gradient(135deg,color-mix(in srgb,var(--p-secondary) 13%,var(--p-header)),var(--p-header));border-color:color-mix(in srgb,var(--p-secondary) 45%,var(--p-border));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--p-secondary) 15%,transparent)}.back:after{color:color-mix(in srgb,var(--p-secondary) 60%,#cdd7f0)}
.tile.c0{color:var(--p-accent);border-color:var(--p-accent);background:repeating-linear-gradient(0deg,#ffffff05 0 2px,transparent 2px 5px),linear-gradient(155deg,color-mix(in srgb,var(--p-accent) 20%,var(--p-table)),var(--p-header));box-shadow:inset 0 0 24px color-mix(in srgb,var(--p-accent) 18%,transparent),0 0 8px color-mix(in srgb,var(--p-accent) 25%,transparent)}.tile.c1{color:var(--p-secondary);border-color:var(--p-secondary);background:repeating-linear-gradient(0deg,#ffffff05 0 2px,transparent 2px 5px),linear-gradient(155deg,color-mix(in srgb,var(--p-secondary) 20%,var(--p-table)),var(--p-header));box-shadow:inset 0 0 24px color-mix(in srgb,var(--p-secondary) 18%,transparent),0 0 8px color-mix(in srgb,var(--p-secondary) 25%,transparent)}.tile.c2{color:var(--p-third);border-color:var(--p-third);background:repeating-linear-gradient(0deg,#ffffff05 0 2px,transparent 2px 5px),linear-gradient(155deg,color-mix(in srgb,var(--p-third) 20%,var(--p-table)),var(--p-header));box-shadow:inset 0 0 24px color-mix(in srgb,var(--p-third) 18%,transparent),0 0 8px color-mix(in srgb,var(--p-third) 25%,transparent)}.hand .tile:hover{background-color:color-mix(in srgb,var(--p-secondary) 20%,var(--p-header))}.hand .tile.drawn{outline-color:#effaff;box-shadow:0 0 0 7px color-mix(in srgb,var(--p-accent) 15%,transparent),0 0 30px color-mix(in srgb,var(--p-accent) 35%,transparent),inset 0 0 25px #a9f8ff18}.drawn-tag{background:var(--p-accent);color:var(--p-header);border-color:#e6faff}.primary{background:linear-gradient(135deg,var(--p-accent),color-mix(in srgb,var(--p-accent) 70%,white));color:var(--p-header);border-color:var(--p-accent)}.primary:hover{background:color-mix(in srgb,var(--p-accent) 65%,white)}.secondary{background:color-mix(in srgb,var(--p-secondary) 18%,var(--p-header));border-color:color-mix(in srgb,var(--p-secondary) 65%,var(--p-border));color:#f0e7ff}.game-menu{background:var(--p-header);border-color:var(--p-border);max-height:calc(100dvh - 70px);overflow-y:auto}.game-menu button{background:var(--p-surface);border-color:var(--p-border)}.game-menu button:hover{background:color-mix(in srgb,var(--p-secondary) 18%,var(--p-surface));border-color:var(--p-secondary)}.game-menu [aria-pressed=true]{color:var(--p-accent);border-left-color:var(--p-accent)}.menu-palette{display:block;margin:16px 0 12px;padding-top:12px;border-top:1px solid var(--p-border)}.menu-palette>span:first-child{display:block;font-size:10px;letter-spacing:1px;color:var(--p-muted);margin-bottom:8px}.menu-palette select{font:12px 'Courier New',monospace;display:block;width:100%;min-height:39px;color:#eef3ff;background:var(--p-surface);border:1px solid var(--p-border);padding:8px;cursor:pointer}.menu-palette select:focus-visible{outline:2px solid var(--p-accent);outline-offset:2px}.palette-swatches{display:flex;gap:5px;margin-top:8px}.palette-swatches>span{display:block;height:5px;flex:1}.claim-prompt{background:linear-gradient(135deg,var(--p-core),var(--p-header));border-color:var(--p-secondary);box-shadow:0 0 0 5px color-mix(in srgb,var(--p-secondary) 15%,transparent),0 0 65px color-mix(in srgb,var(--p-secondary) 20%,transparent)}.claim-prompt h2{color:var(--p-secondary)}.claim-options .secondary{background:color-mix(in srgb,var(--p-secondary) 25%,var(--p-header));border-color:var(--p-secondary)}.action-assist{background:var(--p-surface);border-color:var(--p-accent);box-shadow:0 0 28px color-mix(in srgb,var(--p-accent) 20%,transparent)}.action-assist b{color:var(--p-accent)}.toast{background:var(--p-core);border-color:var(--p-secondary)}dialog{background:var(--p-header);border-color:var(--p-border)}.modal-inner h3{color:var(--p-secondary)}.shop-card{background:var(--p-surface);border-color:var(--p-border)}.contracts-reference article{background:var(--p-surface);border-color:var(--p-border)}.contracts-reference h4{color:var(--p-accent)}.contracts-reference article>span{color:var(--p-secondary)}

/* A smaller centred mark leaves winds readable at the left. */
header{position:relative}.brand{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:50px;flex-basis:50px;height:36px;justify-content:center;padding:0}.neon-hand-logo{width:48px;height:32px}header .wind-strip{margin-left:0}header .compact-status{margin-left:auto}
.hand .tile.set-linked{translate:0 -6px}.hand .tile.selected{translate:0 -6px}.hand{padding-top:8px}.hand .tile{transition:translate .2s ease,transform .15s,background .15s}
/* Darken only the outer scenery; critical controls and all tiles sit above it. */
.edge-vignette{position:fixed;inset:0;z-index:8;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 49%,transparent 40%,#0004 78%,#000b 100%);transition:opacity .3s}
html[data-vignette="true"] .edge-vignette{opacity:1}
header,.hand-panel{position:relative;z-index:10}.table .runner,.table .seat,.table .discpool,.table .hub,#ownMelds,#runners{z-index:9}.game-menu{z-index:30}.toast{z-index:40}
html[data-palette="midnight"] .tile.corp.dragon-nova{color:#ffe986;border-color:#f7c948;background:repeating-linear-gradient(0deg,#ffe8830b 0 2px,#0000 2px 5px),linear-gradient(155deg,#604a14e6,#262117f5);box-shadow:inset 0 0 23px #f7c94833,0 0 12px #f7c94844}
@media(max-width:650px){.brand{width:38px;left:48%;height:28px}.neon-hand-logo{width:36px;height:26px}header .wind-strip{gap:8px}header .compact-status{gap:7px}header nav{gap:2px}}
@media(prefers-reduced-motion:reduce){.edge-vignette,.hand .tile{transition:none}}

/* Claims escape table clipping and every scenery/tile stacking context. */
#claimPrompt{position:fixed;z-index:100;left:50%;top:45%;width:min(560px,calc(100vw - 28px));max-height:calc(100dvh - 100px);overflow-y:auto;background:var(--p-header);isolation:isolate}
.bonus-info{display:block;max-width:155px;margin:7px auto 0;padding:5px;font-size:9px;line-height:1.5;color:#ffe6a4;border-color:#796b43;background:#161724;white-space:normal}.bonus-info[hidden]{display:none}.bonus-receipt{padding:10px;border:1px solid #a08c45;color:#ffe6a4!important}

#claimPrompt:after{bottom:2px}

/* CEO speech stays on the portrait rail, above scenery, below claims/dialogs. */
.left-panel{z-index:12}.ceo-call-anchor{position:absolute;top:calc(100% + 9px);left:-1px;width:144px;pointer-events:none;z-index:1}.runner:nth-child(4) .ceo-call-anchor{left:auto;right:-1px}.runner:nth-child(1) .ceo-call-anchor{top:auto;bottom:calc(100% + 9px)}
.ceo-speech{position:relative;background:var(--p-header);border:1px solid var(--p-accent);padding:10px 11px;box-shadow:0 5px 20px #000b;color:#eef2ff;text-align:left;line-height:1.4}.ceo-speech:before{content:'';position:absolute;top:-5px;left:18px;width:8px;height:8px;background:var(--p-header);border-top:1px solid var(--p-accent);border-left:1px solid var(--p-accent);transform:rotate(45deg)}.runner:nth-child(4) .ceo-speech:before{left:auto;right:18px}.runner:nth-child(1) .ceo-speech:before{top:auto;bottom:-5px;transform:rotate(225deg)}
.ceo-speech .speech-sender{display:block;color:var(--p-muted);font-size:8px;letter-spacing:.4px;margin-bottom:5px}.ceo-speech strong{display:block;font-size:14px;color:var(--p-accent);margin-bottom:4px}.ceo-speech>span:last-of-type{display:block;font-size:11px;color:#eef2ff}.ceo-speech small{display:block;font-size:8px;line-height:1.5;color:#ffddbc;border-top:1px solid #75485e;padding-top:6px;margin-top:7px}
.ceo-speech.ready-speech{border:2px solid #ff91b4;box-shadow:0 0 20px #ff547d30,0 6px 20px #000c;background:#190e20}.ready-speech strong{color:#ffacc9;font-size:16px}.ready-speech:before{border-color:#ff91b4;background:#190e20}.runner.ceo-ready{border-top-color:#ff91b4;border-bottom-color:#ff91b4}.ready-tag{color:#ffc1d6;font-size:10px;margin:4px 0;background:#ff547d18;padding:3px 4px;border:1px solid #a34f73;letter-spacing:.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}
@media(max-width:900px){.ceo-call-anchor{width:125px}.ceo-speech{padding:8px}.ceo-speech strong{font-size:12px}.ready-speech strong{font-size:14px}}
@media(max-width:600px){.ceo-call-anchor{width:132px}.ceo-speech{padding:7px}.ceo-speech strong,.ready-speech strong{font-size:12px}.ceo-speech>span:last-of-type{font-size:10px}.ceo-speech .speech-sender{font-size:7px}.ceo-speech small{font-size:7px}.ready-tag{font-size:8px}.runner:nth-child(3) .ceo-call-anchor{left:calc(100% + 8px);top:0}.runner:nth-child(3) .ceo-speech:before{top:14px;left:-5px;transform:rotate(-45deg)}}

header{z-index:30}

.riichi-alert{position:fixed;z-index:80;top:85px;left:50%;transform:translateX(-50%);width:min(510px,calc(100vw - 32px));pointer-events:none;background:linear-gradient(110deg,#170b21fa,#301225fa);border:2px solid #ff8faf;border-left:6px solid #ffb1c6;padding:16px 24px;text-align:center;box-shadow:0 0 45px #ff547d44,0 12px 30px #000b;animation:riichi-impact .4s ease-out}.riichi-alert[hidden],.riichi-pressure[hidden]{display:none}.riichi-alert>span{font-size:9px;color:#ffc6d4;letter-spacing:2px}.riichi-alert strong{display:block;font-size:clamp(18px,2.1vw,29px);color:#fff1f6;margin:7px 0;letter-spacing:1px}.riichi-alert b{display:block;color:#ff90b2;font-size:17px;letter-spacing:6px}.riichi-alert small{display:block;font-size:10px;letter-spacing:1px;color:#ffd2bd;margin-top:9px}.riichi-pressure{position:fixed;z-index:35;top:54px;left:50%;transform:translateX(-50%);pointer-events:none;padding:5px 13px;background:#210e1ef5;border:1px solid #9d4467;color:#ffc8da;font-size:10px;letter-spacing:.7px;max-width:calc(100vw - 20px);text-align:center}
@keyframes riichi-impact{from{opacity:0;translate:0 -10px;box-shadow:0 0 65px #ff547d66}to{opacity:1;translate:0 0}}
@media(max-width:600px){.riichi-alert{top:84px;padding:12px}.riichi-pressure{font-size:8px;padding:4px 8px}}
@media(prefers-reduced-motion:reduce){.riichi-alert{animation:none}}
.ready-speech strong{font-size:14px;white-space:nowrap}@media(max-width:900px){.ready-speech strong{font-size:12px}}
.has-reveal .settlement-hero{min-height:150px;padding:18px 22px}.has-reveal .settlement-emblem{width:48px;height:48px;margin-bottom:8px}.has-reveal .settlement-hero h2{font-size:27px;margin:9px 0}.winning-reveal{padding:18px 24px 12px;background:linear-gradient(130deg,var(--p-header),var(--p-core));border-top:1px solid var(--p-border);border-bottom:1px solid var(--p-border)}.reveal-ceo{display:flex;align-items:center;gap:13px;margin-bottom:18px}.reveal-ceo canvas{width:39px;height:45px;image-rendering:pixelated;border:1px solid var(--p-secondary)}.reveal-ceo span{font-size:9px;letter-spacing:1px;color:var(--p-muted)}.reveal-ceo h3{font-size:18px;color:#f4ecff;margin:4px 0}.reveal-ceo p{font-size:10px!important;color:var(--p-accent)!important;margin:0;line-height:1.5!important}.reveal-portfolio{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:8px 0 22px;overflow:visible}.reveal-set{display:flex;gap:3px;align-items:center;padding:3px;border-bottom:1px solid #ffffff24}.reveal-set.exposed{background:#ffffff09;border-bottom-color:var(--p-secondary)}.reveal-position{position:relative;display:block;animation:portfolio-reveal .3s both;animation-delay:calc(.12s + var(--reveal-order) * .045s)}.reveal-position>.tile{width:42px;height:62px;min-height:0;padding:5px 3px}.reveal-position .num{font-size:24px}.reveal-position .symbol{font-size:15px;margin-top:3px}.reveal-position .dragon-logo{width:32px;height:43px}.reveal-position.completion-tile{animation:winning-connect .85s .95s both}.completion-tile:after{content:'';position:absolute;inset:-4px;border:2px solid #ffe7a1;box-shadow:0 0 20px #ffe7a155;pointer-events:none;animation:portfolio-reveal .2s 1.7s both}.completion-tile>small{position:absolute;left:50%;top:calc(100% + 7px);transform:translateX(-50%);font-size:7px;color:#ffe7a1;white-space:nowrap;animation:portfolio-reveal .3s 1.7s both}.completion-caption{text-align:center;font-size:9px;letter-spacing:1px;color:#ffe7a1;margin:8px 0 3px;animation:portfolio-reveal .3s 1.75s both}.has-reveal .settlement-details{animation-delay:1.9s}
@keyframes portfolio-reveal{from{opacity:0;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes winning-connect{0%{opacity:0;translate:65px -25px;scale:1.15;filter:brightness(1.8)}65%{opacity:1;translate:0 -4px;scale:1.04}100%{opacity:1;translate:0 0;scale:1;filter:brightness(1)}}
@media(max-width:600px){.winning-reveal{padding:14px 10px}.reveal-portfolio{gap:7px}.reveal-position>.tile{width:32px;height:48px}.reveal-position .num{font-size:20px}.reveal-position .symbol{font-size:11px}.reveal-position .dragon-logo{width:24px;height:34px}.reveal-ceo h3{font-size:15px}.has-reveal .settlement-hero h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){.reveal-position,.reveal-position.completion-tile,.completion-tile:after,.completion-tile>small,.completion-caption,.has-reveal .settlement-details{animation:none}}
.hand-tools{display:flex;gap:6px;align-items:center}.hand-tools .quiet{white-space:nowrap}.emote-menu{position:fixed;right:24px;bottom:calc(var(--tile-h) + 90px);z-index:65;width:300px;max-width:calc(100vw - 24px);padding:10px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;background:var(--p-header);border:1px solid var(--p-secondary);box-shadow:0 8px 28px #000c}.emote-menu[hidden]{display:none}.emote-menu button{padding:8px 3px;display:flex;flex-direction:column;align-items:center;gap:6px;background:var(--p-surface);color:var(--p-accent);border-color:var(--p-border);min-height:87px}.emote-menu svg{width:36px;height:36px;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--p-accent) 25%,transparent))}.emote-menu span{font-size:9px;line-height:1.4;color:#e9efff}.ceo-expression{background:var(--p-header);border:1px solid var(--p-accent);display:flex;align-items:center;gap:7px;padding:8px;color:var(--p-accent);box-shadow:0 5px 16px #0008}.ceo-expression svg{width:36px;height:36px;flex-shrink:0}.ceo-expression strong{font-size:10px;line-height:1.5;color:#e7efff}
#modal:has(.deal-presentation){animation:result-open .45s ease-out}#modal:has(.deal-presentation)::backdrop{animation:result-backdrop .5s ease-out}.deal-presentation{position:relative;overflow:hidden}.deal-cutin{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:25px;text-align:center;pointer-events:none;background:radial-gradient(ellipse at center,#30214b,#090c1b 75%);animation:cutin-depart 1.5s both;isolation:isolate}.deal-cutin.defeat{background:radial-gradient(ellipse at center,#481d36,#100a17 75%)}.deal-cutin.draw{background:radial-gradient(ellipse at center,#252940,#090c1b 75%)}.cutin-rail{position:absolute;inset:30% 0;border-top:1px solid var(--p-secondary);border-bottom:1px solid var(--p-accent);background:#ffffff04;z-index:-1;animation:cutin-rail .7s ease-out}.deal-cutin>span{font-size:12px;color:#c3bedb;letter-spacing:2px}.deal-cutin>strong{font-size:clamp(34px,5vw,64px);color:#f5eaff;margin:18px 0 10px;letter-spacing:4px}.deal-cutin>b{font-size:clamp(17px,2.5vw,30px);letter-spacing:3px;color:var(--p-accent)}.deal-cutin.defeat>b{color:#ff99bc}.deal-cutin>small{font-size:10px;letter-spacing:1px;margin-top:20px;color:#c8b9d8}.staged-result{animation:stage-reveal .6s 1.1s both}.staged-result .reveal-position{animation-delay:calc(1.22s + var(--reveal-order) * .045s)}.staged-result .completion-tile{animation:winning-connect .95s 2.05s both}.staged-result .completion-tile:after,.staged-result .completion-tile>small{animation-delay:2.8s}.staged-result .completion-caption{animation-delay:2.9s}.staged-result .settlement-details{animation-delay:3.15s}.staged-result:not(.has-reveal) .settlement-details{animation-delay:1.8s}.staged-result .contract-receipts>span{animation-delay:calc(3.4s + var(--receipt) * .09s)}
@keyframes result-open{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes result-backdrop{from{background:#0000;backdrop-filter:blur(0)}to{background:#020614c9;backdrop-filter:blur(6px)}}@keyframes stage-reveal{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes cutin-depart{0%{opacity:0;scale:1.03}22%,72%{opacity:1;scale:1}100%{opacity:0;scale:1.03;visibility:hidden}}@keyframes cutin-rail{from{translate:-100% 0}to{translate:0 0}}
@media(max-width:600px){.hand-tools{gap:0}.hand-tools .quiet{font-size:9px;padding:5px}.emote-menu{right:12px;bottom:220px}.ceo-expression{gap:4px;padding:5px}.ceo-expression svg{width:27px;height:27px}.ceo-expression strong{font-size:9px}}
@media(prefers-reduced-motion:reduce){#modal:has(.deal-presentation),#modal:has(.deal-presentation)::backdrop,.staged-result,.staged-result .reveal-position,.staged-result .completion-tile,.staged-result .completion-tile:after,.staged-result .completion-tile>small,.staged-result .completion-caption,.staged-result .settlement-details,.staged-result .contract-receipts>span{animation:none}.deal-cutin{display:none}}

#meldFlash{position:fixed;inset:0;z-index:90;pointer-events:none}.hand .tile.illegal-discard{border-bottom-style:dashed;opacity:.65}.hand .tile.illegal-discard:before{content:'NO SWAP';position:absolute;bottom:3px;left:0;right:0;font-size:8px;color:#ffd4df;letter-spacing:.3px}
/* Results use the available viewport; their continuation controls never scroll away. */
#modal:has(.deal-presentation){width:min(1040px,96vw);height:min(760px,96dvh);max-height:96dvh;overflow:hidden}#modal:has(.deal-presentation) #modalContent,#modal:has(.deal-presentation) .modal-inner{height:100%;min-height:0;padding:0}.deal-presentation{height:100%;min-height:0}.deal-presentation>.settlement-screen{height:100%;display:flex;flex-direction:column;min-height:0}.deal-presentation .settlement-hero{min-height:0;flex:0 0 auto;padding:10px 18px}.deal-presentation .settlement-emblem{width:34px;height:34px;margin:0 auto 4px}.deal-presentation .settlement-emblem svg{width:30px;height:30px}.deal-presentation .settlement-hero h2{font-size:23px;margin:6px 0}.deal-presentation .settlement-hero p{font-size:10px;margin:5px 0}.deal-presentation .settlement-kicker{font-size:8px}.deal-presentation .winning-reveal{flex:0 0 auto;padding:12px 20px 8px}.deal-presentation .reveal-ceo{margin-bottom:7px}.deal-presentation .reveal-ceo h3{font-size:15px}.deal-presentation .reveal-ceo canvas{width:29px;height:34px}.deal-presentation .reveal-portfolio{padding:5px 0 16px;gap:9px}.deal-presentation .completion-caption{margin:4px 0 0;font-size:8px}.deal-presentation .settlement-details{flex:1;min-height:0;overflow:auto;padding:12px 22px 8px}.deal-presentation .settlement-capital{padding-bottom:10px;margin-bottom:9px;gap:10px}.deal-presentation .settlement-capital strong{font-size:25px}.deal-presentation .settlement-capital>div>span{font-size:8px;margin-bottom:4px}.deal-presentation .contract-receipts{margin:8px 0;gap:5px}.deal-presentation .contract-receipts>span{padding:6px;font-size:10px}.deal-presentation .bonus-receipt{margin:6px 0;padding:6px;font-size:10px}.deal-presentation .settlement-hand>.eyebrow{display:none}.result-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 22px;background:var(--p-header);border-top:1px solid var(--p-border);flex:0 0 auto;z-index:2}.result-footer button{min-height:44px;font-size:12px}.deal-presentation .settlement-footnote{flex:0 0 auto;margin:0;padding:5px;font-size:8px!important;background:var(--p-header)}.score-summary{display:flex;justify-content:space-between;align-items:center;gap:8px;color:#f5e9b5;font-size:12px;margin:8px 0}.score-summary span{font-size:10px}.escrow-receipt{font-size:10px!important;color:var(--p-accent);margin:5px 0}.fu-table{width:100%;border-collapse:collapse;margin:15px 0}.fu-table th,.fu-table td{padding:9px;border-bottom:1px solid var(--p-border);text-align:left;font-size:12px}.fu-table th:last-child,.fu-table td:last-child{text-align:right}
.instant-result *{animation:none!important}
/* Visible hover and keyboard feedback, with decorative layers never stealing input. */
button:not(:disabled){cursor:pointer;transition:filter .15s,background .15s,border-color .15s,box-shadow .15s}button:not(:disabled):hover{filter:brightness(1.2);border-color:var(--p-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--p-accent) 35%,transparent),0 0 14px color-mix(in srgb,var(--p-accent) 18%,transparent)}button:not(:disabled):focus-visible{outline:2px solid #eff8ff;outline-offset:3px;filter:brightness(1.15)}button:disabled:hover{filter:none;box-shadow:none}.quiet:not(:disabled):hover,.nav:not(:disabled):hover{background:color-mix(in srgb,var(--p-accent) 13%,var(--p-header));color:#f0ffff}.tile:before,.tile:after,.bonus-shimmer,.settlement-grid,.settlement-rays,.settlement-particles{pointer-events:none}
.tile.overclocked{position:relative}.bonus-shimmer{position:absolute;inset:0;overflow:hidden;z-index:1}.bonus-shimmer:after{content:'';position:absolute;inset:-35% -100%;background:linear-gradient(110deg,transparent 43%,#fff2b80a 46%,#fff4c46b 50%,#fff2b80a 54%,transparent 57%);animation:overclock-shimmer 4.8s ease-in-out infinite}.tile.overclocked .num,.tile.overclocked .symbol,.tile.overclocked .dragon-logo{position:relative;z-index:2}.bonus-shimmer~.drawn-tag{z-index:4}@keyframes overclock-shimmer{0%,30%{translate:-50% 0}70%,100%{translate:50% 0}}
@media(max-height:700px){.deal-presentation .settlement-emblem{display:none}.deal-presentation .settlement-hero h2{font-size:20px}.deal-presentation .settlement-hero{padding:7px}.deal-presentation .reveal-position>.tile{width:36px;height:50px}.deal-presentation .reveal-position .num{font-size:22px}.deal-presentation .reveal-ceo{margin-bottom:2px}.deal-presentation .reveal-ceo canvas{display:none}.deal-presentation .winning-reveal{padding:7px 15px}.deal-presentation .settlement-details{padding-top:8px}.deal-presentation .settlement-capital strong{font-size:22px}}
@media(max-width:600px){.result-footer{padding:8px 10px;gap:8px}.result-footer button{font-size:10px;padding:9px;min-height:42px}.score-summary{flex-wrap:wrap}.deal-presentation .reveal-portfolio{gap:5px}.deal-presentation .settlement-details{padding:9px 12px}.deal-presentation .reveal-position>.tile{width:27px;height:43px}.deal-presentation .reveal-position .num{font-size:18px}.deal-presentation .reveal-position .dragon-logo{width:22px;height:30px}}
@media(prefers-reduced-motion:reduce){.bonus-shimmer:after{animation:none;background:linear-gradient(110deg,transparent,#fff4c41a,transparent)}}
@media(min-height:701px) and (min-width:650px){.deal-presentation .settlement-hero h2{font-size:27px}.deal-presentation .reveal-position>.tile{width:50px;height:72px}.deal-presentation .reveal-position .num{font-size:29px}.deal-presentation .reveal-position .symbol{font-size:18px}.deal-presentation .reveal-position .dragon-logo{width:38px;height:50px}.deal-presentation .reveal-ceo h3{font-size:18px}.deal-presentation .reveal-ceo canvas{width:35px;height:41px}.deal-presentation .settlement-capital strong{font-size:31px}.deal-presentation .contract-receipts>span{font-size:12px;padding:8px}.score-summary{font-size:14px}.result-footer button{font-size:13px}}
.objective-card{position:absolute;right:18px;top:18px;z-index:11;width:clamp(175px,18vw,240px);padding:10px 12px;text-align:left;background:var(--p-header);border:1px solid var(--p-border);box-shadow:0 5px 18px #0008}.objective-card[hidden]{display:none}.objective-card>span{display:block;font-size:8px;letter-spacing:.5px;color:var(--p-accent);margin-bottom:5px}.objective-card strong{font-size:13px;color:#f3ecff;display:block;margin-bottom:4px}.objective-card small{display:block;font-size:10px;line-height:1.5;color:var(--p-muted)}.table:has(.objective-card:not([hidden])) .board-identity{display:none}.ability-mark{position:absolute;right:6px;bottom:7px;font-size:15px;color:var(--p-accent);line-height:1;text-shadow:0 0 8px #35e8ef55}.ability-mark.spent{opacity:.4}.ability-draft{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.ability-draft button{display:flex;flex-direction:column;align-items:flex-start;gap:11px;text-align:left;padding:18px;background:var(--p-surface);border-color:var(--p-border)}.ability-draft button>span{font-size:32px;color:var(--p-accent)}.ability-draft strong{font-size:17px;color:#f3ebff;line-height:1.4}.ability-draft button p{font-size:12px;line-height:1.6;margin:0;flex:1;color:var(--p-muted)}.ability-draft button>b{font-size:10px;margin-top:9px;color:var(--p-accent)}.market-event{padding:12px 15px;margin:14px 0 18px;border:1px solid var(--p-secondary);background:var(--p-core)}.market-event>span{font-size:9px;letter-spacing:.6px;color:var(--p-accent)}.market-event h3{margin:7px 0;font-size:17px}.market-event p{margin:0;font-size:12px!important;line-height:1.5!important}.shop-grid.four-offers{grid-template-columns:repeat(4,minmax(0,1fr))}.scrap-options{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.objective-receipt{font-size:11px!important;line-height:1.5!important;color:#a6f2d5;border-left:2px solid #65d6ad;padding-left:8px;margin:7px 0}.ability-public{border-left:2px solid var(--p-accent);padding:8px 10px;background:var(--p-surface);font-size:12px!important;line-height:1.6!important}#abilityButton{color:var(--p-accent)}#abilityButton[hidden]{display:none}
@media(max-width:900px){.objective-card{width:170px;right:12px;top:14px;padding:8px}.objective-card strong{font-size:11px}.objective-card small{font-size:9px}.shop-grid.four-offers{grid-template-columns:repeat(2,minmax(0,1fr))}.hand-tools .quiet{font-size:10px;padding:7px}.ability-draft strong{font-size:14px}}
@media(max-width:600px){.objective-card{width:130px;top:65px;right:10px;padding:7px}.objective-card>span{font-size:7px}.objective-card strong{font-size:10px}.objective-card small{font-size:8px}.ability-draft{grid-template-columns:1fr;gap:8px}.ability-draft button{padding:12px;gap:6px}.ability-draft button>span{font-size:23px}.ability-draft button p{font-size:11px}.shop-grid.four-offers{grid-template-columns:1fr}.hand-tools .quiet{font-size:8px;padding:5px 3px}.ability-mark{font-size:11px;right:3px;bottom:3px}}
.ability-mark{top:7px;bottom:auto}.hand .drawn-tag{top:3px;left:3px;transform:none;font-size:7px;letter-spacing:0;padding:2px 3px;max-width:calc(100% - 6px)}.hand .tile.drawn .num{margin-top:7px}
@media(max-width:600px){.ability-mark{top:4px;bottom:auto}.hand .drawn-tag{font-size:6px;padding:1px 2px}}
.hand-tools{align-self:start}.hand-tools .quiet{min-height:22px;height:22px;padding:4px 6px;line-height:1}.hand .drawn-tag{top:12px}
@media(max-width:600px){.hand-tools .quiet{padding:3px}.hand .drawn-tag{top:8px}}
.coach-bar{display:flex;align-items:center;gap:8px;min-height:0;padding:5px 12px;border:1px solid var(--p-border);background:var(--p-header);z-index:15}.coach-bar[hidden]{display:none}.coach-bar>div{flex:1;min-width:0}.coach-bar strong{display:block;font-size:9px;color:var(--p-accent);letter-spacing:.4px;margin-bottom:3px}.coach-bar p{margin:0;font-size:11px;line-height:1.4;color:#e6e9f7}.coach-bar button{font-size:10px;padding:7px;min-height:30px}.coach-bar .quiet{border:1px solid var(--p-border)}html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) 48px calc(var(--tile-h) + 87px)}html[data-instructions=true] .left-panel{bottom:calc(var(--tile-h) + 143px)}.coach-lessons{display:flex;flex-wrap:wrap;gap:6px;height:auto;margin:15px 0}.coach-lessons button{font-size:10px;padding:7px 9px;background:var(--p-surface);border-color:var(--p-border)}.coach-lessons [aria-pressed=true]{border-color:var(--p-accent);color:var(--p-accent)}.coach-tip,.coach-note{padding:10px 12px;background:var(--p-surface);border-left:2px solid var(--p-accent);color:#e8e9f4;font-size:12px!important;line-height:1.6!important}.coach-note{margin:8px 0}.coach-example{gap:4px;flex-wrap:wrap}.coach-example .tile{width:38px;height:55px}.coach-example .num{font-size:23px}.coach-example .symbol{font-size:13px}.coach-example-label{font-size:9px!important;color:var(--p-muted)}
@media(max-width:600px){html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) 64px 210px}html[data-instructions=true] .left-panel{bottom:282px}.coach-bar{padding:5px 7px;gap:5px}.coach-bar p{font-size:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.coach-bar strong{font-size:8px}.coach-bar button{font-size:9px;padding:5px;min-height:30px}.coach-example .tile{width:29px;height:44px}}
@media(max-height:520px) and (min-width:600px){html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) 40px 134px}html[data-instructions=true] .left-panel{bottom:182px}.coach-bar p{font-size:10px}.coach-bar{padding-top:3px;padding-bottom:3px}}
:root{--coach-height:48px;--coach-hand-height:calc(var(--tile-h) + 87px)}html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) var(--coach-height) var(--coach-hand-height)}html[data-instructions=true] .left-panel{bottom:calc(var(--coach-hand-height) + var(--coach-height) + 8px)}
@media(max-height:720px) and (min-width:900px){:root{--coach-hand-height:176px}}
@media(max-width:600px){:root{--coach-height:64px;--coach-hand-height:210px}}
@media(max-height:520px) and (min-width:600px){:root{--coach-height:40px;--coach-hand-height:134px}}

/* Table clarity pass: stable labels and quiet ornament. */
.table-bottom,.board-identity span,#roundLabel,.executive-title{display:none!important}
.table-edge{border-color:color-mix(in srgb,var(--p-border) 50%,transparent);box-shadow:none}.table-edge:after{display:none}
.hub{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 6px!important}.hub #turnIndicator{position:static!important;line-height:1.3;font-size:10px}.hub strong{line-height:1}.hub .escrow{font-size:8px}.hub>span{line-height:1.2}
.runner{align-items:center}.runner>div:not(.ceo-call-anchor){min-width:0;flex:1}.runner-name{display:flex;flex-wrap:wrap;gap:5px;align-items:center;line-height:1.3;margin-bottom:5px;padding-right:12px}.ready-tag{display:inline-block!important;white-space:nowrap;font-size:8px!important;margin:0!important;padding:2px 4px!important;line-height:1.3}.runner-sub{font-size:9px}.runner-score{margin-top:7px;font-size:17px}.ability-mark{top:5px!important;right:5px!important;font-size:10px!important}.runner-score small{display:none}
.runner.ceo-ready .portrait{animation:ready-holo 4.2s linear infinite;box-shadow:0 0 12px #ff719755}.runner.ceo-ready{box-shadow:inset 0 0 18px #ff547d12,0 0 12px #ff547d20}
@keyframes ready-holo{0%,76%,80%,84%,100%{opacity:1;filter:brightness(1)}77%,82%{opacity:.65;filter:brightness(1.45)}79%{opacity:.9;filter:brightness(1.15)}}
.ceo-speech{padding:9px!important}.ceo-speech strong,.ready-speech strong{font-size:12px!important;margin:0;white-space:normal}.ceo-call-anchor{max-width:165px}
.riichi-pressure{font-size:10px;letter-spacing:.8px;padding:5px 12px;top:62px;max-width:50vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.objective-card{max-width:190px;padding:8px 10px!important}.objective-card>span{font-size:8px!important}.objective-card>strong{font-size:12px!important;margin-top:4px}.objective-card small{display:none}
.hand-top{min-width:0;align-items:center}.hand-top>div:first-child{display:flex;gap:8px;align-items:center;min-width:0}.hand-top .eyebrow{white-space:nowrap;margin:0}.hand-tools{flex-shrink:0;gap:6px}#handState{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}.hand-tools button{font-size:10px!important;padding:3px 7px!important;min-height:24px}
.hand .tile.drawn{transform:none;outline:2px solid #e6faff;outline-offset:2px}.hand .tile.drawn:hover{transform:translateY(-4px)}.hand .tile.drawn.selected{transform:translateY(-5px)}.hand .tile.set-linked{translate:0 -6px}.hand .tile:not(.set-linked):not(.selected){translate:0 0}.hand .tile.materialize{animation:clean-arrival .8s ease-out both}.drawn-tag{top:auto!important;bottom:3px!important;left:50%!important;right:auto!important;transform:translateX(-50%)!important;font-size:7px!important;padding:1px 3px!important;letter-spacing:0!important;box-shadow:none}.hand .tile.drawn .num{margin-top:0}.hand .tile.drawn .symbol{margin-bottom:10px}
@keyframes clean-arrival{0%{opacity:0;scale:1 .08;filter:brightness(1.8)}45%{opacity:.85;scale:1 1.03;filter:brightness(1.35)}100%{opacity:1;scale:1;filter:brightness(1)}}
.actions p:empty{display:none}.actions{min-height:0}.actions>div{margin-left:auto}.actions p{font-size:11px}.game-menu{max-height:calc(100dvh - 78px);overflow-y:auto}
/* A hand is revealed on the physical table before settlement takes focus. */
.table-reveal[hidden]{display:none}.table-reveal{position:absolute;z-index:12;left:50%;top:50%;transform:translate(-50%,-50%);width:min(780px,72%);padding:18px 16px;text-align:center;background:linear-gradient(145deg,#081624f5,#1c102df5);border:1px solid var(--p-accent);box-shadow:0 0 70px #000c,inset 0 0 40px #15d8fa12;backdrop-filter:blur(5px)}
.table-winner-title{display:flex;justify-content:center;align-items:center;gap:12px;margin-bottom:18px}.table-winner-title canvas{width:40px;height:48px;image-rendering:pixelated}.table-winner-title strong{display:block;font-size:25px;color:var(--p-accent);letter-spacing:2px}.table-winner-title span{display:block;color:#e5cde9;font-size:11px;margin-top:6px}.table-reveal .winning-reveal{padding:0;background:none;border:0}.table-reveal .reveal-ceo,.table-reveal .completion-caption,.table-reveal .completion-tile>small{display:none}.table-reveal .reveal-portfolio{flex-wrap:nowrap;gap:8px;padding:0 0 20px}.table-reveal .reveal-set{gap:2px;min-width:0;padding:0}.table-reveal .reveal-position{min-width:0;animation:table-holo-flip .65s both;animation-delay:calc(var(--reveal-order)*.065s)}.table-reveal .reveal-position>.tile{width:clamp(22px,3.4vw,44px);height:clamp(36px,5vw,66px)}.table-reveal .completion-tile:after{animation-delay:1.5s}.table-reveal .reveal-position .num{font-size:clamp(15px,2.3vw,29px)}.table-reveal .reveal-position .symbol{font-size:clamp(9px,1.3vw,17px)}.table-reveal button{min-height:32px;font-size:10px}.runner.table-winner{border-color:var(--p-accent)!important;box-shadow:0 0 0 2px var(--p-accent),0 0 35px #35efff55}.seat-flip{display:block;animation:table-holo-flip .65s both;animation-delay:calc(var(--flip)*.065s)}
@keyframes table-holo-flip{0%{opacity:.2;transform:perspective(400px) rotateY(90deg);filter:brightness(2)}48%{opacity:.8;filter:brightness(1.7)}65%{transform:perspective(400px) rotateY(-12deg)}100%{opacity:1;transform:perspective(400px) rotateY(0);filter:brightness(1)}}
:root[data-revealing=true] .hub,:root[data-revealing=true] .objective-card,:root[data-revealing=true] #riichiPressure,:root[data-revealing=true] #riichiAlert,:root[data-revealing=true] .ceo-call-anchor{visibility:hidden}:root[data-revealing=true] .discpool{opacity:.28}:root[data-revealing=true] #actions{visibility:hidden}
@media(max-width:1100px){.runner-score{font-size:14px}.runner-sub{font-size:8px}.ready-tag{font-size:7px!important}.table-reveal{width:72%;padding:14px 10px}.table-reveal .reveal-portfolio{gap:5px}}
@media(max-width:720px){.runner-name{font-size:10px;padding-right:3px;gap:3px}.runner-sub{font-size:7px}.runner-score{font-size:10px;margin-top:4px}.ready-tag{font-size:6px!important;padding:1px 2px!important}.ability-mark{display:none!important}.riichi-pressure{top:55px;font-size:8px;padding:3px 6px}.hand-tools{gap:1px}.hand-tools button{font-size:8px!important;padding:3px 4px!important}.hand-top .eyebrow{font-size:8px}#handState{display:none}.objective-card{max-width:115px;padding:5px 6px!important}.objective-card strong{font-size:9px!important}.objective-card>span{font-size:7px!important}.hub #turnIndicator{font-size:8px}.hub{gap:4px}.table-reveal{width:94%;padding:14px 5px}.table-winner-title{margin-bottom:14px}.table-winner-title strong{font-size:20px}.table-reveal .reveal-portfolio{gap:4px;flex-wrap:wrap}.table-reveal .reveal-position>.tile{width:24px;height:39px}.table-reveal .reveal-position .num{font-size:17px}.table-reveal .reveal-position .symbol{font-size:10px}}
@media(max-height:520px){.riichi-pressure{top:44px}.table-reveal{padding:8px}.table-winner-title{margin-bottom:8px}.table-winner-title canvas{width:25px;height:30px}.table-winner-title strong{font-size:18px}.table-reveal .reveal-portfolio{padding-bottom:10px}.table-reveal .reveal-position>.tile{height:40px;width:28px}.table-reveal .reveal-position .num{font-size:20px}}
@media(prefers-reduced-motion:reduce){.runner.ceo-ready .portrait,.table-reveal .reveal-position,.seat-flip,.hand .tile.materialize{animation:none!important}}

.riichi-alert{top:24%;padding:13px 20px}.riichi-alert>span,.riichi-alert small{display:none}.riichi-alert strong{font-size:23px}.riichi-alert b{font-size:13px}
.seat.west:has(.seat-flip),.seat.east:has(.seat-flip){display:grid;grid-template-columns:repeat(2,24px);gap:3px}.seat .seat-flip>.tile.small{width:24px;height:32px}.seat .seat-flip .num{font-size:16px}.seat .seat-flip .symbol{font-size:8px}.seat .seat-flip .dragon-logo{width:21px;height:27px}
@media(max-width:720px){.riichi-alert{top:22%;padding:10px}.riichi-alert strong{font-size:18px}.seat.west:has(.seat-flip),.seat.east:has(.seat-flip){grid-template-columns:repeat(7,14px);gap:1px}.seat .seat-flip>.tile.small{width:14px;height:21px}.seat .seat-flip .num{font-size:11px}.seat .seat-flip .symbol{font-size:6px}.seat .seat-flip .dragon-logo{width:12px;height:18px}}
@media(max-width:720px){.seat:has(.seat-flip){visibility:hidden}}

/* Let the incoming hologram land before completed sets rise together. */
.hand.arriving .tile.set-linked:not(.selected){translate:0 0}
@media(prefers-reduced-motion:reduce){.hand .tile{transition:none!important}}

/* Suit silhouettes differ in shape as well as palette. */
.symbol>.suit-icon{display:block;width:.72em;height:.72em;overflow:visible;filter:drop-shadow(0 0 1px currentColor)}.symbol:has(>.suit-icon){display:flex;align-items:center;justify-content:center}.cell-icon{aspect-ratio:1}.suit-key>.suit-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;margin-right:5px}.tile.small .symbol>.suit-icon{width:.9em;height:.9em;filter:none;stroke-width:3}

/* Call names stay immediate; personality text and soft chatter unfold together. */
.ceo-speech .dialogue-line{display:block;min-height:2.6em;margin-top:7px;color:#e8e6f5;font:11px/1.4 'Courier New',monospace;overflow-wrap:normal}.dialogue-line .syllable{opacity:0;animation:dialogue-syllable .001s linear forwards}.dialogue-line .said{opacity:1}.winner-dialogue{min-height:20px;margin:-8px 0 15px;color:#e8d9ff;font-size:13px}.winner-dialogue .dialogue-line{display:block}.ceo-call-anchor{width:165px}.ceo-speech{border-radius:0 0 5px 5px}
@keyframes dialogue-syllable{to{opacity:1}}
@media(max-width:720px){.ceo-call-anchor{width:132px}.ceo-speech .dialogue-line{font-size:10px;margin-top:5px}.winner-dialogue{font-size:11px}}
@media(prefers-reduced-motion:reduce){.dialogue-line .syllable{opacity:1;animation:none}}

.ceo-speech .dialogue-line{overflow-wrap:break-word}.dialogue-line{white-space:normal}
.ceo-call-anchor{width:144px;max-width:144px}@media(max-width:720px){.ceo-call-anchor{width:132px;max-width:132px}}
/* A dedicated standings rail keeps competition information clear of tiles. */
:root{--competition-height:30px}.table{bottom:var(--competition-height)}.competition-bar{position:absolute;z-index:8;left:0;right:0;bottom:0;width:100%;height:var(--competition-height);padding:3px 14px;display:flex;align-items:center;justify-content:center;gap:18px;border:0;border-top:1px solid var(--p-border);background:var(--p-header);color:var(--p-muted);font-size:10px;white-space:nowrap}.competition-bar strong{color:#e6efff;font-size:11px}.competition-stage{color:var(--p-accent)}.competition-link{font-size:9px;color:var(--p-accent)}.competition-bar:hover{background:var(--p-surface);border-color:var(--p-accent)}
.game-column{grid-template-rows:minmax(0,1fr) var(--coach-hand-height)}html[data-instructions=true] .game-column{grid-template-rows:minmax(0,1fr) var(--coach-height) var(--coach-hand-height)}.left-panel{bottom:calc(var(--coach-hand-height) + var(--competition-height) + 8px)}html[data-instructions=true] .left-panel{bottom:calc(var(--coach-hand-height) + var(--coach-height) + var(--competition-height) + 8px)}
html[data-showdown=true] .competition-bar{border-top-color:#e98bbc;background:linear-gradient(90deg,#1c0c20,var(--p-header),#1c0c20)}html[data-showdown=true] .competition-stage{color:#ffc0da;letter-spacing:1px}.competition-ranks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:15px 0 22px}.competition-ranks>div{background:var(--p-surface);border:1px solid var(--p-border);padding:12px}.competition-ranks span{display:block;font-size:12px}.competition-ranks b{display:block;font-size:20px;margin-top:8px;color:#edf3ff}.target-routes{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:15px 0}.target-routes article{padding:12px;border:1px solid var(--p-border);background:var(--p-surface)}.target-routes strong{display:block;color:var(--p-accent);font-size:10px}.target-routes b{display:block;font-size:14px;margin:8px 0;color:#eff0ff}.target-routes span{display:block;font-size:10px;line-height:1.5;color:var(--p-muted)}.competition-caption{font-size:12px!important;line-height:1.6!important}.rival-strategies{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.rival-strategies p{font-size:11px!important;line-height:1.6!important}.showdown-start{width:100%;margin-top:10px;min-height:45px}
@media(max-height:720px) and (min-width:721px){:root{--coach-hand-height:176px}}
@media(max-width:720px){:root{--coach-hand-height:210px;--competition-height:28px}.competition-bar{gap:7px;padding:3px 6px;font-size:8px}.competition-bar strong{font-size:9px}.competition-link{font-size:0}.competition-link:after{content:'↗';font-size:12px}.competition-ranks{grid-template-columns:1fr 1fr}.target-routes{grid-template-columns:1fr}.rival-strategies{grid-template-columns:1fr}}
@media(max-height:520px) and (min-width:600px){:root{--coach-hand-height:134px;--competition-height:24px}.competition-bar{font-size:8px}.competition-bar strong{font-size:9px}.competition-ranks{margin:8px 0}.competition-ranks>div{padding:7px}.competition-ranks b{font-size:16px}.target-routes article{padding:8px}}

#modal:has(.showdown-briefing){max-height:94dvh}.showdown-briefing .modal-intro{font-size:12px!important;line-height:1.5!important;margin:8px 0 12px}.showdown-briefing .competition-ranks{margin:12px 0}.showdown-briefing h3{margin:15px 0 8px;font-size:13px}.showdown-briefing .competition-caption{margin:6px 0;font-size:11px!important}.showdown-briefing .warning{font-size:10px!important;line-height:1.5!important;margin:12px 0}.showdown-briefing .target-routes{margin:10px 0}.showdown-briefing .target-routes article{padding:10px}.showdown-briefing .target-routes b{font-size:13px}.showdown-briefing .competition-ranks>div{padding:9px}.showdown-briefing .competition-ranks b{font-size:18px;margin-top:5px}
@media(max-width:720px){#modal:has(.showdown-briefing) .modal-inner{padding:16px}.showdown-briefing .modal-header h2{font-size:23px;margin:6px 0 10px}.showdown-briefing .target-routes article{padding:8px}.showdown-briefing .target-routes b{margin:5px 0}.showdown-briefing .target-routes span{font-size:9px}.showdown-briefing .competition-ranks span{font-size:10px}}
@media(max-height:520px) and (min-width:600px){#modal:has(.showdown-briefing) .modal-inner{padding:12px 18px}.showdown-briefing .modal-header h2{font-size:21px;margin:4px 0 6px}.showdown-briefing .competition-ranks{margin:8px 0}.showdown-briefing .modal-intro{margin:5px 0}.showdown-briefing .competition-ranks b{font-size:15px}.showdown-briefing .competition-ranks>div{padding:6px}}

@media(min-width:721px) and (min-height:521px){:root{--competition-height:32px}.competition-bar{font-size:11px}.competition-bar strong{font-size:13px}.competition-link{font-size:10px}}
@media(max-width:720px){.competition-bar strong{font-size:11px}}

/* Exact centre stays independent of wind labels and menu width. */
header>.brand{left:50%;top:50%;transform:translate(-50%,-50%)}
.result-brand{display:flex;justify-content:center;align-items:center;margin:0 auto 8px;height:34px}.result-brand .neon-hand-logo{width:48px;height:32px}.result-brand>span{font-size:12px;line-height:1.1;color:var(--p-accent)}.deal-presentation .settlement-emblem{display:none}.deal-presentation .settlement-hero{padding-top:9px}.deal-presentation .settlement-hero h2{font-size:clamp(20px,3vw,28px)}
.runner.ceo-calling{outline:2px solid var(--p-accent);outline-offset:2px;box-shadow:0 0 22px color-mix(in srgb,var(--p-accent) 35%,transparent)}
.call-impact[hidden]{display:none}.call-impact{position:fixed;z-index:95;left:50%;top:30%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 26px));padding:14px 22px;text-align:center;background:linear-gradient(135deg,var(--p-core),var(--p-header));border:2px solid var(--p-accent);box-shadow:0 0 45px #000c,inset 0 0 35px #23e8ef10;pointer-events:none;animation:call-impact-in .22s ease-out}.call-impact-person{display:flex;justify-content:center;gap:9px;align-items:center;color:#f0e9ff;font-size:12px;letter-spacing:1px}.call-impact-person canvas{width:26px;height:30px;image-rendering:pixelated}.call-impact>strong{display:block;font-size:34px;letter-spacing:5px;margin:4px 0;color:var(--p-accent)}.call-impact>span{display:block;font-size:10px;letter-spacing:.6px;color:#e3dbef}.call-impact-tiles{display:flex;justify-content:center;gap:5px;margin-top:11px}.call-impact .tile.small{width:30px;height:43px}.call-impact .num{font-size:23px}.call-impact .symbol{font-size:12px;margin:0}.called-tile{outline:2px solid #ffe4a4;outline-offset:2px}.meld{position:relative}.meld-label{position:absolute;left:0;right:0;top:-12px;text-align:center;color:var(--p-accent);font-size:8px;letter-spacing:1px}
@keyframes call-impact-in{from{opacity:0;scale:.94;filter:brightness(1.4)}to{opacity:1;scale:1;filter:brightness(1)}}
.decision-timer{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:2px 6px;border:1px solid #f7c948;color:#ffe986;background:#262117;font-size:12px;font-weight:bold;font-variant-numeric:tabular-nums}.decision-timer[hidden],.claim-time[hidden]{display:none}.decision-timer[data-urgent=true],.claim-time[data-urgent=true]{color:#ff8791;border-color:#ff3e5b;background:#3a1321;animation:clock-urgent .8s steps(1,end) infinite}.claim-time{display:inline-block;float:right;border:1px solid #f7c948;padding:3px 7px;color:#ffe986;background:#262117;font-size:13px;font-weight:bold}
@keyframes clock-urgent{0%,100%{color:#ff8791;border-color:#ff3e5b;background:#3a1321;box-shadow:0 0 4px #ff3e5b44}50%{color:#fff2f3;border-color:#ff8997;background:#771e33;box-shadow:0 0 13px #ff3e5b99}}
@media(max-width:720px){
 header .wind-strip{max-width:calc(50% - 26px);gap:7px}header .wind-card .eyebrow{font-size:7px}header .wind-card strong{font-size:12px}header .your-wind{padding-left:7px}header nav{margin-left:auto}.brand .neon-hand-logo{width:38px;height:28px}
 .runner{--ceo:#22e8ef;width:88px;height:68px;padding:5px;display:grid;grid-template-columns:20px minmax(0,1fr);gap:5px;align-items:center;border:1px solid var(--p-border);border-bottom:2px solid var(--ceo);border-radius:2px}.runner .portrait{width:20px;height:24px}.runner-name{display:block;padding:0;font-size:10px;line-height:1.2;margin:0 0 3px;white-space:nowrap}.runner-sub{font-size:6.5px;line-height:1.2;white-space:nowrap}.runner-score{font-size:12px;line-height:1.2;margin-top:4px}.runner .ready-tag{position:absolute;bottom:4px;left:3px;padding:1px!important;font-size:5.5px!important;line-height:1.2;width:31px;text-align:center}.runner .ability-mark{display:none!important}
 .runner:nth-child(1){--ceo:#22e8ef;left:50%;right:auto;top:auto;bottom:6px;transform:translateX(-50%)}.runner:nth-child(2){--ceo:#ff51ec;left:5px;right:auto;top:50%;bottom:auto;transform:translateY(-50%)}.runner:nth-child(3){--ceo:#c782ff;left:50%;right:auto;top:6px;bottom:auto;transform:translateX(-50%)}.runner:nth-child(4){--ceo:#759dff;right:5px;left:auto;top:50%;bottom:auto;transform:translateY(-50%)}
 .runner .ceo-call-anchor{display:none}.board-identity{display:none!important}.objective-card{left:7px;right:auto;top:7px;max-width:88px;padding:5px!important}.objective-card>span{font-size:6px!important}.objective-card>strong{font-size:8px!important}
 .table{--discard-w:clamp(10px,3.4cqw,14px);--discard-h:calc(var(--discard-w) * 1.32)}.table .hub{width:72px;height:76px;top:50%;padding:6px 3px!important;gap:2px}.hub strong{font-size:27px;margin:0}.table .hub>span{font-size:6px}.table .hub .escrow{font-size:6px;margin-top:2px;letter-spacing:0}.table .hub #turnIndicator{font-size:6px;margin-top:3px}.hub .bonus-info{display:none}
 .discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{top:calc(50% + 44px);bottom:auto;transform:none;transform-origin:center}.discpool.p0{left:50%;right:auto;transform:translateX(-50%)}.discpool.p1{left:8px;right:auto}.discpool.p3{right:8px;left:auto}.discpool.p2{left:50%;right:auto;top:110px;transform:translateX(-50%)}
 .seat.top{top:80px;left:50%;transform:translateX(-50%);gap:1px}.seat.top .back{width:9px;height:16px}.seat.west,.seat.east{top:calc(50% - 60px);bottom:auto;transform:none;flex-direction:row;gap:1px}.seat.west{left:10px}.seat.east{right:10px}.seat.west .back,.seat.east .back{width:5px;height:13px}
 .own-melds{bottom:5px;right:7px;gap:4px;max-width:calc(50% - 50px);flex-wrap:wrap;justify-content:flex-end}.own-melds .tile.small{width:12px;height:18px}.own-melds .tile.small .num{font-size:9px}.own-melds .tile.small .symbol{font-size:5px}.own-melds .meld-label{font-size:6px;top:-9px}
 .decision-timer{font-size:10px;min-width:43px;padding:2px 4px}.competition-bar{gap:6px}.competition-link{display:none}.call-impact{top:33%;padding:10px 12px}.call-impact>strong{font-size:30px}.call-impact>span{font-size:9px}.call-impact-person{font-size:11px}.call-impact .tile.small{width:28px;height:39px}.call-impact .num{font-size:20px}.call-impact .symbol{font-size:11px}.call-impact-tiles{margin-top:8px}
 .deal-presentation .reveal-ceo h3{font-size:12px}.result-brand{height:28px;margin-bottom:5px}.result-brand .neon-hand-logo{width:40px;height:28px}
 @container(max-height:460px){.seat .back{display:none}.table{--discard-w:10px;--discard-h:13.2px}.discpool.p2{top:82px}.runner{height:62px}.runner-score{font-size:11px}}
}
@media(prefers-reduced-motion:reduce){.call-impact,.decision-timer,.claim-time{animation:none!important}}

.call-impact-dialogue,.ready-dialogue{margin:8px 0 0;font-size:12px;line-height:1.5;color:#eee5ff;min-height:1.5em}.call-impact-dialogue .dialogue-line,.ready-dialogue .dialogue-line{display:block}.ready-dialogue{font-size:11px}
@media(max-width:720px){.runner .ceo-call-anchor{display:block}.runner .ceo-speech{display:none}.call-impact-dialogue{font-size:11px}.runner .ceo-expression{position:relative;z-index:5}}
.ability-draft{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}.ability-draft button{padding:14px;gap:8px}.ability-draft button p{font-size:12px;line-height:1.5}.ability-draft button>span{font-size:26px}.ability-draft strong{font-size:16px}.clock-power-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.clock-power-options button{font-size:12px;min-height:52px;line-height:1.5}.decision-timer[data-reduced=true]:not([data-urgent=true]){box-shadow:inset 0 0 8px #f7c94833}.time-debt{position:absolute;top:-7px;left:50%;transform:translateX(-50%);padding:2px 4px;font-size:8px;line-height:1;color:#ffd5e4;background:#3d1232;border:1px solid #ff79af;white-space:nowrap}
@media(max-width:720px){.ability-draft{grid-template-columns:1fr 1fr;gap:8px}.ability-draft button{padding:10px;gap:5px}.ability-draft strong{font-size:13px;line-height:1.25}.ability-draft button p{font-size:10px;line-height:1.4}.ability-draft button>span{font-size:22px}.ability-draft button>b{font-size:8px;margin-top:5px}.clock-power-options{grid-template-columns:1fr;gap:8px}.clock-power-options button{min-height:44px}.call-impact:has(.call-impact-person) >strong{letter-spacing:3px}}
.signature-receipt{padding:9px 12px!important;border:1px solid #caa968;background:linear-gradient(90deg,#65511c35,#2d193022);color:#ffe6a4!important;margin:9px 0!important;line-height:1.4!important}.signature-receipt b{display:block;font-size:12px}.signature-receipt span{display:block;font-size:9px;color:#e8d5b0;margin-top:5px}.signature-spotlight{color:#ffe2a1;font-size:11px!important;margin:5px 0 14px!important;line-height:1.5!important;letter-spacing:.5px}.signature-guide{display:grid;grid-template-columns:1fr 1fr;gap:10px}.signature-guide article{padding:12px;border:1px solid #8b714c;background:var(--p-surface)}.signature-guide strong{display:block;color:#ffe2a1;font-size:14px}.signature-guide span{display:block;font-size:10px;color:var(--p-accent);margin-top:6px}.signature-guide p{font-size:11px!important;line-height:1.6!important}.result-ranks b>small{display:block;font-size:8px;line-height:1.5;font-weight:normal;color:#e3c989;margin-top:6px;max-width:220px}.result-ranks b{text-align:right}
@media(max-width:720px){.signature-guide{grid-template-columns:1fr}.signature-receipt b{font-size:10px}.signature-receipt span{font-size:8px}.signature-spotlight{font-size:9px!important}.result-ranks b>small{font-size:7px;max-width:145px}}
/* The action buttons and coach already expose these opportunities on a compact screen. */
@media(max-width:720px){.action-assist{display:none!important}.actions #win{background:linear-gradient(135deg,#ffe3a0,#f4bd66);border-color:#fff0c6;color:#171125;box-shadow:0 0 14px #ffd37844}.actions #ready{border-color:#ff9cc8;box-shadow:inset 0 0 10px #ff83b51a}}
html[data-instructions=true] .action-assist{display:none!important}
@media(max-width:720px){.discpool.p2{top:98px}@container(max-height:460px){.discpool.p2{top:82px}}}
/* Table life: the active decision stays attached to its CEO. */
.runner.ceo-active{border-color:#f7c948!important;outline:1px solid #ffe986;box-shadow:0 0 18px #f7c94844,inset 0 0 15px #f7c94812}.ceo-turn{position:absolute;left:50%;top:calc(100% + 3px);transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:5px;width:max-content;max-width:180px;background:#161522;border:1px solid #f7c948;padding:3px 5px;color:#ffe986;white-space:nowrap;z-index:15}.ceo-turn b{font-size:9px;letter-spacing:.4px}.ceo-turn .decision-timer{font-size:10px;min-width:37px;padding:1px 3px;border:0}.runner.you .ceo-turn{top:auto;bottom:calc(100% + 3px)}.mood-frustrated .portrait{filter:saturate(.7);box-shadow:0 0 8px #ff3e5b44}.mood-smug .portrait{box-shadow:0 0 12px #ffe98688}.mood-nervous .portrait{animation:nervous-signal 3.8s linear infinite}.mood-focused .portrait{box-shadow:0 0 9px #ff3e5b66}
@keyframes nervous-signal{0%,92%,96%,100%{filter:none}93%,95%{filter:brightness(1.3);translate:1px 0}94%{translate:-1px 0}}
.table-banter{position:fixed;left:50%;top:18%;transform:translateX(-50%);z-index:45;max-width:calc(100vw - 32px);padding:9px 14px;background:#0c1124f5;border:1px solid var(--p-border);font-size:12px;pointer-events:none}.table-banter[hidden],.capital-flow[hidden]{display:none}.table-banter>strong{color:var(--p-accent);margin-right:8px}.capital-flow{position:fixed;inset:0;z-index:82;pointer-events:none;overflow:hidden}.capital-packet{position:absolute;left:var(--sx);top:var(--sy);padding:4px 6px;color:#ffe986;background:#221c2cf2;border:1px solid #f7c948;font-size:11px;font-weight:bold;white-space:nowrap;animation:capital-transfer 1.7s ease-in-out both;animation-delay:var(--delay)}
@keyframes capital-transfer{0%{transform:translate(-50%,-50%);opacity:0}12%,75%{opacity:1}90%,100%{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy)));opacity:0}}.runner-score.capital-gain{color:#ffe986}.runner-score.capital-loss{color:#ff8997}
@media(max-width:720px){.ceo-turn{gap:3px;padding:2px 3px;max-width:120px}.ceo-turn b{font-size:7px;letter-spacing:0}.ceo-turn .decision-timer{font-size:9px;min-width:30px}.table-banter{top:19%;font-size:10px;width:max-content;max-width:calc(100vw - 32px)}.runner.you .ceo-turn{bottom:calc(100% + 4px)}}
@media(prefers-reduced-motion:reduce){.mood-nervous .portrait,.capital-packet{animation:none}.capital-packet{display:none}}
@media(max-width:720px){.runner[data-ceo="2"] .ceo-turn,.runner.you .ceo-turn{left:calc(100% + 5px);top:50%;bottom:auto;transform:translateY(-50%)}.discpool.p0,.discpool.p1,.discpool.p3{top:calc(50% + 58px)}}
/* Public acquisitions remain visible beside the owning CEO. */
.rival-melds{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(2,max-content);gap:6px;z-index:11}.rival-meld{display:block;padding:2px;background:#090d20f5;border:1px solid var(--p-border);line-height:1;min-width:0}.rival-meld small{display:block;font-size:7px;letter-spacing:.3px;color:#e5d9ee;margin-bottom:3px}.rival-meld>span{display:flex;gap:2px}.rival-meld .tile.small{width:19px;height:26px}.rival-meld .tile.small .num{font-size:14px}.rival-meld .tile.small .symbol{font-size:8px}.runner[data-ceo="2"] .rival-melds{bottom:auto;top:calc(100% + 5px);grid-template-columns:repeat(4,max-content)}
@media(max-width:720px){.table{--discard-w:clamp(11px,4cqw,15.5px);--discard-h:calc(var(--discard-w) * 1.32)}.rival-melds{gap:3px;bottom:calc(100% + 5px)}.rival-meld{padding:1px}.rival-meld small{font-size:5px;letter-spacing:0;margin-bottom:1px}.rival-meld>span{gap:1px}.rival-meld .tile.small{width:12px;height:17px;border-bottom-width:1px}.rival-meld .tile.small .num{font-size:9px}.rival-meld .tile.small .symbol{font-size:5px}.runner[data-ceo="2"] .rival-melds{top:calc(100% + 3px)}@container(max-height:460px){.table{--discard-w:11.5px;--discard-h:15.18px}.rival-melds{bottom:calc(100% + 3px)}}}
@media(max-width:720px){.discpool.p2{top:98px;row-gap:1px;grid-template-rows:repeat(4,calc(var(--discard-w) * 1.25));height:calc(var(--discard-w) * 5 + 3px)}.discpool.p2 .tile.small{height:calc(var(--discard-w) * 1.25)}@container(max-height:460px){.discpool.p2{top:82px}}}

.runner[data-ceo="2"] .rival-melds{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:max-content}
/* Final standings: brand sits near the panel edge, separate from the outcome emblem. */
.settlement-screen:not(.staged-result) .settlement-hero{padding-top:50px}.settlement-screen:not(.staged-result) .result-brand{position:absolute;top:8px;left:50%;transform:translateX(-50%);margin:0;height:28px;z-index:3}
/* Tokyo night / Pixel Cut art direction. All decorative layers stay behind play. */
.game-menu,.shop-card,.claim-prompt,.call-impact{border-radius:0;box-shadow:inset 0 0 0 2px var(--p-header),inset 0 0 0 3px color-mix(in srgb,var(--p-secondary) 25%,transparent),4px 4px 0 #02040b99}
button:not(.tile):not(.rival-meld){border-radius:0}button.primary:not(.tile){background-image:none;background-color:var(--p-accent);border:2px solid color-mix(in srgb,var(--p-accent) 65%,white);box-shadow:inset -3px -3px 0 #07112633,inset 2px 2px 0 #ffffff33,3px 3px 0 #030611;clip-path:polygon(0 5px,5px 5px,5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px))}button.primary:not(.tile):hover{background-color:color-mix(in srgb,var(--p-accent) 80%,white)}button.primary:not(.tile):focus-visible{outline:none;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 5px #101026}button.secondary:not(.tile){background-image:none;background-color:color-mix(in srgb,var(--p-secondary) 16%,var(--p-header));box-shadow:inset 0 0 0 1px #ffffff0b,2px 2px 0 #030611}button.secondary:not(.tile):hover{background-color:color-mix(in srgb,var(--p-secondary) 30%,var(--p-header))}
.settlement-hero,.settlement-hero.defeat,.settlement-hero.draw{background-image:linear-gradient(180deg,#060916a8,#070b19ba 55%,color-mix(in srgb,var(--event) 12%,#080b19) 100%),url('assets/exchange-city.png');background-size:cover;background-position:center,center 52%;border-bottom:2px solid color-mix(in srgb,var(--event) 45%,#182039)}.settlement-grid{opacity:.06}.settlement-screen{box-shadow:inset 0 0 0 2px #050817,inset 0 0 0 3px var(--p-border)}.result-ranks>div{background:color-mix(in srgb,var(--p-header) 72%,transparent)}.result-ranks>div:first-child{border-left:3px solid var(--p-secondary);box-shadow:inset 0 0 0 1px #ffffff0b}
#modal:has(.shop-grid) .modal-header,#modal:has(.mode-choice) .modal-header,#modal:has(.ability-draft) .modal-header{padding:22px 18px;background-image:linear-gradient(90deg,#080d1bf2,#080d1b9c),url('assets/exchange-city.png');background-size:cover;background-position:center;border:1px solid var(--p-border);border-bottom:3px solid var(--p-secondary)}.shop-card .item-art{border:1px solid var(--p-border);background:var(--p-header);box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--p-secondary) 9%,transparent);image-rendering:pixelated}.shop-card h3,.modal-header h2{text-shadow:2px 2px 0 #030612}
@media(max-width:720px){#modal:has(.shop-grid) .modal-header,#modal:has(.mode-choice) .modal-header,#modal:has(.ability-draft) .modal-header{padding:16px 12px}}
.pixel-wordmark .logo-neon{fill:var(--p-accent);stroke:none;filter:drop-shadow(1px 1px 0 #6837c0)}.pixel-wordmark .logo-hand{fill:#eef5ff;stroke:none}.pixel-wordmark .logo-divider{fill:var(--p-secondary);stroke:none;filter:none}.pixel-wordmark{image-rendering:pixelated}

/* Keep the table quiet; Tokyo skyline belongs in the header and menus. */
header{background-image:linear-gradient(90deg,#050914f5,#050914bf 28%,#050914db 46%,#050914db 54%,#050914bf 72%,#050914f5),url('assets/exchange-city.png');background-position:center,center 61%;background-size:cover,cover;background-repeat:no-repeat;border-bottom-width:2px}.wind-card{text-shadow:1px 1px 2px #000}.brand{filter:drop-shadow(0 1px 2px #020611)}
/* The suit exchange occupies the spare corner, without shrinking the table. */
.stock-market{position:absolute;z-index:11;right:12px;top:12px;width:170px;padding:7px 8px;background:#070d1bf5;border:1px solid var(--p-border);box-shadow:inset 0 0 0 2px #030710;cursor:pointer;text-align:left}.stock-market[hidden]{display:none}.stock-market:hover{background:#11152c;border-color:var(--p-accent)}.stock-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.stock-quotes span{display:flex;flex-direction:column;gap:3px}.stock-quotes small{font-size:8px;letter-spacing:.3px}.stock-quotes b{font-size:12px;font-variant-numeric:tabular-nums}.stock-chart{display:block;width:100%;height:auto;margin-top:5px;overflow:visible}.stock-full-chart{background:#050916;border:1px solid var(--p-border);padding:12px;margin:20px 0}.stock-full-chart>span{display:block;font-size:9px;color:var(--p-muted)}.stock-full-chart .stock-chart{margin:8px 0}.stock-detail-quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stock-detail-quotes article{border-top:2px solid var(--quote);padding:8px;background:#080c1b}.stock-detail-quotes h3{margin:0 0 9px;color:var(--quote);font-size:13px}.stock-detail-quotes strong{font-size:23px;color:var(--quote)}.stock-detail-quotes p{font-size:11px!important;line-height:1.5!important}.stock-receipt{margin:10px 0;padding:10px;border:1px solid #36e6ee66;background:#17313c55}.stock-receipt b{display:block;font-size:11px;color:#8af3f5}.stock-receipt span{display:block;font-size:9px;margin-top:7px;color:#ded4f2}.quote-changed{animation:stock-tick .65s ease-out}@keyframes stock-tick{0%{background:#ffffff44;filter:brightness(1.8)}100%{background:transparent;filter:none}}
:root[data-revealing=true] .stock-market{visibility:hidden}
@media(max-width:720px){.stock-market{right:8px;top:8px;width:108px;padding:5px}.stock-quotes{gap:3px}.stock-quotes small{font-size:6px;letter-spacing:0}.stock-quotes b{font-size:9px}.stock-chart{margin-top:3px}.stock-detail-quotes{gap:5px}.stock-detail-quotes article{padding:6px}.stock-detail-quotes h3{font-size:10px}.stock-detail-quotes strong{font-size:19px}.stock-detail-quotes p{font-size:9px!important}}
@media(prefers-reduced-motion:reduce){.quote-changed{animation:none}}
@media(max-width:720px){body:has(#stockMarket:not([hidden])) .runner[data-ceo="2"] .ceo-turn{left:calc(100% + 22px);top:calc(100% + 3px);transform:none}}
.home-screen[hidden]{display:none}.home-screen{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:28px 20px;background:linear-gradient(180deg,#0408169c,#040816a6 45%,#040816f5),url('assets/exchange-city.png') center/cover;color:#eef5ff;overflow:auto}.home-content{width:min(700px,100%);text-align:center}.home-brand{display:flex;justify-content:center;margin:0 auto 18px}.home-brand .neon-hand-logo{width:216px;height:auto;filter:drop-shadow(0 0 18px #111c44)}.home-eyebrow{font-size:10px;letter-spacing:2px;color:#c8c2ee;margin:0 0 14px}.home-content h1{font-size:30px;margin:0 0 10px}.home-intro{font-size:13px;color:#d5d7ee;margin:0 0 28px}.home-continue{width:100%;margin-bottom:15px;min-height:48px;font-size:12px}.home-modes{display:grid;grid-template-columns:1fr 1fr;gap:14px;text-align:left}.home-mode{padding:20px;background:#080e21f2;border:1px solid #6d4b94;box-shadow:inset 0 0 0 3px #060a16,4px 4px 0 #02040b;text-align:left;border-top:3px solid #36e6ee}.home-mode+button{border-top-color:#af8bff}.home-mode>span{display:block;font-size:8px;letter-spacing:1px;color:#c2b4da}.home-mode>strong{display:flex;justify-content:space-between;gap:10px;font-size:20px;color:#70f2f1;margin:12px 0}.home-mode+button>strong{color:#c2a8ff}.home-mode p{font-size:12px;line-height:1.6;margin:0;color:#d2d3e7}.home-mode:hover{background:#19213bf5;border-color:#61ecf3;transform:translateY(-2px)}.home-secondary{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:22px}.home-secondary button{font-size:11px;min-height:40px}.home-footnote{font-size:10px;line-height:1.7;color:#a9adcb;margin:20px 0 0}.final-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.final-actions .primary{flex:1;min-height:44px}.final-actions .secondary{min-height:44px}
@media(max-width:720px){.home-screen{padding:22px 20px;background-position:center,60% center}.home-brand .neon-hand-logo{width:180px}.home-brand{margin-bottom:16px}.home-eyebrow{font-size:8px;letter-spacing:1px}.home-content h1{font-size:25px}.home-intro{font-size:11px;margin-bottom:22px}.home-modes{grid-template-columns:1fr;gap:12px}.home-mode{padding:15px 16px}.home-mode>strong{font-size:18px;margin:8px 0}.home-mode p{font-size:11px}.home-secondary{gap:7px;margin-top:17px}.home-secondary button{font-size:10px;padding:8px}.home-continue{font-size:10px;min-height:43px}.home-footnote{font-size:9px;margin-top:15px}}
@media(max-height:650px){.home-screen{padding:12px 20px}.home-brand .neon-hand-logo{width:120px}.home-brand{margin-bottom:9px}.home-content h1{font-size:20px}.home-eyebrow{margin-bottom:7px}.home-intro{margin-bottom:12px}.home-modes{grid-template-columns:1fr 1fr;gap:10px}.home-mode{padding:12px}.home-mode>strong{font-size:15px}.home-mode p{font-size:10px}.home-secondary{margin-top:12px}.home-footnote{margin-top:10px}}
/* Four public wildcards, using the existing tile footprint. */
.tile.joker{color:#b991ff;border-color:currentColor;background:linear-gradient(145deg,#261847,#0a1127);box-shadow:inset 0 0 14px #b991ff22,0 0 8px #b991ff44}.tile.joker-dragon{color:#ff627e;background:linear-gradient(145deg,#42172f,#0d1126)}.tile.joker-wind{color:#48eafa;background:linear-gradient(145deg,#103745,#0b1127)}.tile.joker-terminal{color:#ffd66b;background:linear-gradient(145deg,#3b2d17,#101326)}.joker-art{width:70%;height:55%;fill:currentColor;filter:drop-shadow(0 0 3px currentColor);animation:joker-pulse 5s steps(2,end) infinite}.joker-caption{font-size:8px;letter-spacing:.3px;font-weight:bold}.joker-as{position:absolute;bottom:2px;left:1px;right:1px;text-align:center;font-size:6px;background:#06101bd9;color:#e5f4ff;white-space:nowrap;overflow:hidden}.tile.small .joker-art{width:85%;height:75%}.tile.small .joker-caption,.tile.small .joker-as{display:none}.factor-3{outline:1px solid #ffbb56;box-shadow:inset 0 0 20px #ffb54755,0 0 12px #ffbb5677!important}.factor-3 .bonus-shimmer:after{background:linear-gradient(110deg,transparent 38%,#ffb93418 44%,#ffcf65a6 50%,#ffb93418 56%,transparent 62%);animation-duration:3.8s}.wall-investment-summary{padding:12px;border:1px solid var(--p-border);background:#081021;margin:14px 0}.wall-investment-summary h3{font-size:10px;margin:0 0 7px;letter-spacing:1px}.wall-investment-summary>b{color:#86eff2;font-size:13px}.wall-investment-summary p{font-size:11px!important;margin:8px 0;line-height:1.5!important}.wall-investment-summary small{color:var(--p-muted);font-size:10px}.investment-ticker{display:flex;flex-wrap:wrap;gap:5px}.investment-ticker span{border-left:2px solid #b991ff;padding:4px 7px;background:#261842;font-size:10px}.investment-offer{border-top:2px solid #b991ff}.investment-offer .item-art{font-size:22px}.joker-wind .joker-art{animation-name:wind-signal}@keyframes joker-pulse{0%,94%,100%{opacity:1}95%,97%{opacity:.8}96%{opacity:.95}}@keyframes wind-signal{0%,90%,100%{filter:drop-shadow(0 0 2px currentColor)}92%,96%{filter:drop-shadow(1px 0 4px currentColor)}}
header:has(.game-menu:not([hidden])){z-index:210}.game-menu{z-index:211;max-height:calc(100dvh - 68px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 12px 45px #000e,inset 0 0 0 2px #090d1c}
@media(max-width:720px){.joker-caption{font-size:6px}.wall-investment-summary{padding:9px}.wall-investment-summary>b{font-size:11px}.investment-ticker span{font-size:9px}.game-menu{max-height:calc(100dvh - 58px)}}@media(prefers-reduced-motion:reduce){.joker-art{animation:none}}
.joker-seal{position:absolute;top:3px;right:3px;font-size:7px;opacity:.85}.tile.small .joker-seal{display:none}
@media(max-width:720px){body:has(#stockMarket:not([hidden])) .runner[data-ceo="2"] .ceo-turn{top:calc(100% + 10px)}}
#modal:has(.shop-grid) .shop-balance{margin:10px 0;font-size:12px}#modal:has(.shop-grid) .market-event{padding:10px;margin:10px 0}#modal:has(.shop-grid) .market-event h3{margin:5px 0;font-size:13px}#modal:has(.shop-grid) .market-event p{font-size:11px;line-height:1.4;margin:4px 0}.wall-investment-summary{padding:10px;margin:10px 0}.wall-investment-summary h3{margin-bottom:5px}.wall-investment-summary p{margin:6px 0}.investment-ticker{margin-top:7px}
@media(max-width:720px){#modal:has(.shop-grid) .modal-header{padding:10px}#modal:has(.shop-grid) .modal-header h2{font-size:20px}#modal:has(.shop-grid) .market-event>span{font-size:7px}.shop-grid,.shop-grid.four-offers{grid-template-columns:1fr 1fr;gap:8px}.shop-card{display:flex;flex-direction:column;padding:10px;gap:6px;min-width:0}.shop-card .item-art{width:32px;height:30px;font-size:19px;flex:0 0 30px}.shop-card h3{font-size:12px;line-height:1.3}.shop-card p{font-size:10px;line-height:1.45;margin:0;flex:1}.shop-card button{font-size:10px;padding:6px 3px;min-height:38px;width:100%;margin-top:3px}.shop-footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;position:sticky;bottom:0;background:var(--p-header);padding:10px 0;z-index:3}.shop-footer button{font-size:9px;min-height:40px;padding:7px 4px}.wall-investment-summary>b{font-size:10px}.wall-investment-summary p{font-size:10px!important}.wall-investment-summary small{font-size:9px}.wall-investment-summary h3{font-size:9px}}
.discpool{cursor:pointer}.discpool:focus-visible{outline:1px solid var(--p-accent)}.river-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:20px 0}.river-gallery .tile.small{width:100%;height:60px}.river-gallery .tile.small .num{font-size:23px}.river-gallery .tile.small .symbol{font-size:13px}
@media(max-width:720px) and (max-height:650px){:root{--coach-height:40px}.coach-bar p{-webkit-line-clamp:1}.coach-bar{padding-top:3px;padding-bottom:3px}}
@media(max-width:720px){@container(max-height:340px){.runner{height:48px}.runner-score{font-size:10px}.rival-meld{padding:1px}.rival-meld .tile.small{width:10px;height:14px}.runner[data-ceo="2"] .rival-melds{top:calc(100% + 1px)}.table .hub{height:62px}.hub strong{font-size:23px}.table .hub>span{font-size:5px}.discpool.p0,.discpool.p1,.discpool.p3{top:calc(50% + 29px)}.discpool.p2{top:80px}.discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{grid-template-rows:repeat(2,calc(var(--discard-w) * 1.2));height:calc(var(--discard-w) * 2.4 + 1px);row-gap:1px}.discpool .tile.small{height:calc(var(--discard-w) * 1.2)}.discpool:after{content:'↗';position:absolute;right:-7px;top:0;font-size:8px;color:#b9b2db}body:has(#stockMarket:not([hidden])) .runner[data-ceo="2"] .ceo-turn{left:calc(100% + 6px);top:calc(100% + 25px)}.ceo-turn b{font-size:6px}}}
@media(max-width:360px){.stock-market{width:88px}.stock-quotes small{font-size:6px}.stock-quotes b{font-size:8px}}
@media(max-width:720px) and (max-height:650px){.runner{height:48px}.runner-score{font-size:10px}.ceo-turn b{font-size:6px}body:has(#stockMarket:not([hidden])) .runner[data-ceo="2"] .ceo-turn{left:calc(100% + 6px);top:calc(100% + 25px)}.runner[data-ceo="2"] .rival-melds{top:calc(100% + 1px)}}

/* Shared midnight-purple housing; six palette inks form original pixel sprites. */
.tile.joker{--joker-violet:#9870ef;--joker-pink:#ee7edb;--joker-cyan:#48dfed;--joker-white:#e8e8ff;--joker-red:#ff577f;--joker-gold:#ffd36c;background:repeating-linear-gradient(0deg,#9b72e908 0 1px,transparent 1px 4px),linear-gradient(145deg,#27153e,#100c20)!important;box-shadow:inset 0 0 0 2px #0c0818,inset 0 0 15px #9755bd22,0 0 7px currentColor;image-rendering:pixelated}.tile.joker .joker-art{width:82%;height:65%;flex-shrink:0;filter:drop-shadow(0 0 1px #b87dff70)}.tile.small.joker .joker-art{width:95%;height:90%}.tile.joker .joker-caption{font-size:clamp(6px,.65vw,8px);line-height:1.1;letter-spacing:.15px}.tile.joker .joker-seal{opacity:.7}
@media(prefers-reduced-motion:reduce){.tile.joker .joker-art{animation:none}}

@media(prefers-reduced-motion:reduce){.factor-3 .bonus-shimmer:after{animation:none;background:linear-gradient(110deg,transparent 20%,#ffbe4b33 50%,transparent 80%)}}

.modifier-wall{padding:12px;border:1px solid #7c5eaf;background:#20132f;margin:12px 0}.modifier-wall h3{margin:0 0 7px;font-size:12px;color:#dfc2ff}.modifier-wall p,.modifier-wall li{font-size:12px!important;line-height:1.5!important;margin:6px 0}.modifier-wall ul{padding-left:18px}.modifier-wall small{color:#7ce6eb;font-size:10px}.modifier-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modifier-ceo{border:1px solid var(--p-border);border-top:2px solid var(--ceo-colour);padding:12px;min-width:0}.modifier-ceo>h3{color:var(--ceo-colour);font-size:13px;margin:0 0 12px;display:flex;justify-content:space-between;gap:8px}.modifier-ceo h3 small{font-size:10px;color:var(--p-muted)}.modifier-entry{border-top:1px solid #ffffff18;padding:9px 0}.modifier-entry>b{font-size:12px}.modifier-entry>span{display:block;color:#dec278;font-size:9px;margin-top:4px}.modifier-entry p{font-size:11px!important;line-height:1.5!important;margin:5px 0!important;color:var(--p-muted)!important}.modifier-muted{font-size:11px!important;color:var(--p-muted)!important}.modifier-footer{position:sticky;bottom:0;padding:12px 0 0;background:var(--p-core);z-index:2;display:flex;justify-content:flex-end}.modifier-footer button{min-height:44px}@media(max-width:540px){.modifier-grid{grid-template-columns:1fr;gap:8px}.modifier-ceo{padding:10px}.modifier-footer button{width:100%}}

.modifier-entry summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;min-height:26px}.modifier-entry summary:before{content:'+';font-size:13px;color:var(--p-muted)}.modifier-entry[open] summary:before{content:'−'}.modifier-entry summary::-webkit-details-marker{display:none}.modifier-entry summary b{font-size:12px;flex:1}.modifier-entry summary span{font-size:9px;color:#dec278;white-space:nowrap}.modifier-entry summary:focus-visible{outline:1px solid var(--p-accent);outline-offset:3px}

.restructure-options{display:flex;justify-content:center;gap:12px;margin:20px 0}.restructure-options button{padding:8px;display:flex;flex-direction:column;align-items:center;gap:10px;min-width:0}.restructure-options .tile{width:62px;height:90px;pointer-events:none}.restructure-options small{font-size:10px}.intel-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.intel-grid>span{display:flex;justify-content:space-between;gap:8px;border:1px solid var(--p-border);padding:8px;font-size:11px}.intel-grid strong{color:var(--p-accent);white-space:nowrap}@media(max-width:420px){.restructure-options{gap:7px}.restructure-options .tile{width:55px;height:82px}.intel-grid{grid-template-columns:1fr}}
/* Update: separate market and objectives; compact fixed-screen Black Market. */
.stock-market{left:12px;right:auto;top:12px;width:210px;padding:10px}.stock-quotes small{font-size:10px}.stock-quotes b{font-size:16px}.stock-market .stock-chart{height:62px}.stock-chart-key{display:flex;justify-content:space-between;color:var(--p-muted);font-size:9px;margin-top:5px}.objective-card{left:auto;right:12px;top:12px;width:175px;max-width:175px}.objective-card>span{color:#ffd66b}
#modal:has(.compact-shop){width:min(850px,96vw);height:min(680px,96dvh);max-height:96dvh;overflow:hidden}#modal:has(.compact-shop) .modal-inner{height:100%;padding:18px;overflow:hidden;box-sizing:border-box}.compact-shop{display:grid;grid-template-rows:auto auto minmax(100px,1fr) auto auto auto auto;gap:12px;height:100%;min-height:0}.compact-shop .modal-header{padding:12px 16px;background:linear-gradient(90deg,#080d1be8,#080d1ba8),url('assets/exchange-city.png') center/cover;border-bottom:2px solid var(--p-secondary)}.compact-shop .modal-header h2{font-size:25px;margin:5px 0 0}.shop-status{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px}.shop-status>b{font-size:25px;color:#ffd66b}.shop-status>span:last-child{color:var(--p-muted);text-align:right}.compact-shop .shop-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(2,minmax(0,1fr));gap:9px;margin:0;min-height:0}.shop-offer{display:flex;align-items:center;gap:12px;text-align:left;background:#11142b;border:1px solid var(--p-border);padding:12px;min-height:0;min-width:0}.shop-offer.chosen{background:#1c2140;border-color:var(--p-accent);box-shadow:inset 3px 0 var(--p-accent)}.shop-offer:hover{border-color:var(--p-accent)}.shop-offer>span:nth-child(2){flex:1;min-width:0}.shop-offer small{display:block;color:var(--p-muted);font-size:9px;margin-bottom:6px}.shop-offer strong{display:block;font-size:14px;line-height:1.3}.shop-offer>b{font-size:18px;color:#ffd66b}.shop-offer .item-art{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;color:var(--p-accent)}.shop-offer .item-art svg{width:36px;height:36px}.shop-offer .item-art .joker-pixel{width:40px;height:40px}.shop-detail{display:flex;align-items:center;gap:14px;min-height:68px;padding:12px;border:1px solid var(--p-border);background:#080d1b}.shop-detail>div{flex:1}.shop-detail strong{font-size:13px}.shop-detail p{font-size:12px!important;line-height:1.4!important;margin:6px 0 0!important}.shop-detail button{flex:0 0 145px;font-size:12px;min-height:44px}.shop-rig{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shop-rig>span,.shop-rig>button{border:1px solid var(--p-border);padding:9px;font-size:10px;min-width:0;display:flex;justify-content:space-between;align-items:center;color:var(--p-muted);min-height:38px}.shop-rig button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shop-rig button b{margin-left:6px;color:#ff6488;font-size:18px}.shop-shared{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;font-size:11px}.shop-shared b{color:var(--p-accent)}.shop-shared small{width:100%;font-size:10px;color:var(--p-muted);line-height:1.35}.compact-shop .shop-footer{position:static;padding:0;margin:0;display:flex;justify-content:space-between;gap:12px}.compact-shop .shop-footer button{min-height:44px;font-size:12px}.restructure-hand{display:flex;justify-content:center;gap:3px;margin:20px 0;flex-wrap:nowrap}.restructure-hand .tile{width:clamp(18px,4.8vw,44px);height:clamp(32px,7vw,68px);min-width:0}.restructure-hand .num{font-size:clamp(14px,3vw,26px)}.restructure-hand .symbol{font-size:10px}.restructure-hand .drawn{outline:2px solid #ffd66b;outline-offset:2px;margin-left:5px}
@media(max-width:720px){.stock-market{left:7px;right:auto;top:7px;width:112px;padding:5px}.stock-quotes small{font-size:6px}.stock-quotes b{font-size:10px}.stock-market .stock-chart{height:30px}.stock-chart-key{font-size:6px}.objective-card{left:auto;right:7px;top:7px;width:105px;max-width:105px}.compact-shop{gap:9px}#modal:has(.compact-shop){height:min(700px,96dvh)}#modal:has(.compact-shop) .modal-inner{padding:12px}.compact-shop .modal-header{padding:10px}.compact-shop .modal-header h2{font-size:21px}.shop-status{font-size:9px}.shop-status>b{font-size:22px}.shop-offer{padding:9px;gap:7px;flex-wrap:wrap;align-content:center}.shop-offer .item-art{width:30px;height:30px;flex-basis:30px}.shop-offer .item-art svg{width:28px;height:28px}.shop-offer strong{font-size:12px}.shop-offer small{font-size:7px;margin-bottom:4px}.shop-offer>b{font-size:15px;margin-left:auto}.shop-detail{padding:9px;gap:8px;min-height:90px}.shop-detail strong{font-size:12px}.shop-detail p{font-size:11px!important}.shop-detail button{flex-basis:98px;font-size:10px;padding:8px 4px}.shop-shared{font-size:10px}.shop-rig{gap:5px}.shop-rig>span,.shop-rig>button{font-size:8px;padding:6px}.compact-shop .shop-footer button{font-size:10px}}
@media(max-height:570px){#modal:has(.compact-shop) .modal-inner{padding:8px}.compact-shop{gap:5px;grid-template-rows:auto auto minmax(70px,1fr) auto auto auto auto}.compact-shop .modal-header{padding:5px 10px}.compact-shop .modal-header h2{font-size:18px}.compact-shop .modal-header .eyebrow{font-size:8px}.shop-status>b{font-size:18px}.compact-shop .shop-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr;gap:5px}.shop-offer{padding:6px;gap:5px;flex-wrap:wrap}.shop-offer .item-art{display:none}.shop-offer strong{font-size:11px}.shop-offer small{font-size:7px}.shop-offer>b{font-size:14px}.shop-detail{min-height:46px;padding:6px}.shop-detail p{font-size:10px!important;margin-top:3px!important}.shop-rig>span,.shop-rig>button{min-height:28px;padding:4px}.shop-shared{font-size:9px}.shop-shared small{font-size:8px}.compact-shop .shop-footer button{min-height:34px;padding:6px 10px}.shop-detail button{min-height:34px}}
#modal:has(.compact-shop) #modalContent{height:100%}#modal:has(.compact-shop) .modal-header{padding:12px 16px}#modal:has(.compact-shop) .modal-header h2{margin:5px 0 0}#modal:has(.compact-shop) .shop-footer{flex-wrap:nowrap}
@media(max-width:720px){#modal:has(.compact-shop) .modal-header{padding:9px}}
@media(max-height:570px){#modal:has(.compact-shop) .modal-header{padding:5px 10px}}
.dora-guide{display:flex;gap:16px;flex-wrap:wrap;margin:20px 0}.dora-guide>div{display:flex;align-items:center;gap:8px}.dora-guide .tile{width:45px;height:67px}.dora-guide .num{font-size:26px}.dora-guide>div>span:not(.tile){color:var(--p-muted)}
.hand .tile.ready-ineligible{opacity:.22;filter:grayscale(1);transform:none!important;cursor:not-allowed;box-shadow:none;animation:none}.hand .tile .wait-count{position:absolute;bottom:4px;left:2px;right:2px;font-size:10px;background:#070e24eb;color:#ffd66b;line-height:17px;letter-spacing:0;text-shadow:none;border-top:1px solid #ffd66b77}.ready-preview{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%);width:min(560px,94vw);background:#080d1bf5;border:1px solid #ffd66b;padding:10px 14px;z-index:15;box-shadow:0 6px 30px #000b}.ready-preview[hidden]{display:none}.ready-preview-heading{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#ffd66b}.ready-preview-heading>span{font-size:11px}.ready-waits{display:flex;gap:12px;margin:9px 0;flex-wrap:wrap}.ready-waits>span{display:flex;align-items:center;gap:5px}.ready-waits .tile{width:24px;height:35px}.ready-waits .tile .num{font-size:17px}.ready-waits .tile .symbol{font-size:8px}.ready-waits b{font-size:13px;color:#fff}.ready-preview>small{display:block;color:var(--p-muted);font-size:10px;line-height:1.4}
@media(max-width:720px){.hand .tile .wait-count{font-size:8px;line-height:13px;bottom:2px}.ready-preview{padding:8px 10px}.ready-preview-heading{font-size:10px}.ready-preview-heading>span{font-size:9px}.ready-waits{gap:8px;margin:6px 0}.ready-preview>small{font-size:9px}}
#modal:has(.compact-review){height:min(640px,96dvh);overflow:hidden}#modal:has(.compact-review) #modalContent{height:100%}#modal:has(.compact-review) .modal-inner{height:100%;padding:18px;box-sizing:border-box;overflow:hidden}.compact-review{height:100%;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:14px}.compact-review .modal-header h2{font-size:23px;margin:5px 0}.review-wall{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;border:1px solid var(--p-border);padding:12px;font-size:12px}.review-wall>b{color:var(--p-accent)}.review-wall small{width:100%;color:var(--p-muted);font-size:10px}.review-ceos{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:8px;min-height:0}.review-ceos article{display:flex;align-items:center;gap:14px;border-left:3px solid var(--ceo-colour);background:#14152d;padding:10px;min-width:0}.review-ceos article>b{width:56px;flex:0 0 56px;color:var(--ceo-colour);font-size:13px}.review-ceos article div{min-width:0}.review-ceos strong,.review-ceos span,.review-ceos small{display:block;line-height:1.4}.review-ceos strong{font-size:12px}.review-ceos span{font-size:11px;margin-top:3px;color:#d7d2e4}.review-ceos small{font-size:10px;margin-top:3px;color:var(--p-accent)}
@media(max-width:720px){#modal:has(.compact-review) .modal-inner{padding:12px}.compact-review{gap:9px}.compact-review .modal-header h2{font-size:20px}.review-wall{font-size:10px;padding:9px;gap:6px}.review-ceos article{gap:8px;padding:8px}.review-ceos article>b{width:42px;flex-basis:42px;font-size:11px}.review-ceos strong{font-size:10px}.review-ceos span{font-size:10px}.review-ceos small{font-size:9px}.compact-review>button{min-height:44px;font-size:12px}}
@media(max-height:500px){#modal:has(.compact-review) .modal-inner{padding:10px}.compact-review{gap:8px}.review-ceos{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.review-ceos article{padding:7px}.review-ceos article>b{width:42px;flex-basis:42px;font-size:11px}.review-ceos strong,.review-ceos span{font-size:10px}.review-ceos small{font-size:9px}.compact-review .modal-header h2{font-size:19px}.review-wall{padding:7px;font-size:10px}}
.hand-panel:has(.ready-preview:not([hidden])){z-index:13}.ready-preview{background:#080d1b}.ready-preview>small{color:#c7c2d9}
.hand .tile.ready-ineligible{opacity:.4}
/* Tile content must stay inside its own frame, including compact result tiles. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.tile.joker{overflow:hidden;min-width:0}.tile.joker .joker-caption{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:0 0 auto}.tile.joker .joker-as{display:flex;align-items:center;justify-content:center;gap:2px;max-width:calc(100% - 2px);height:12px;line-height:1;font-size:9px;letter-spacing:0;overflow:hidden}.joker-as b{font:inherit;font-weight:bold}.joker-as .suit-icon{width:9px;height:9px;flex:0 0 9px;margin:0}.joker-as .dragon-logo{width:10px!important;height:10px!important;flex:0 0 10px}.tile.joker:has(.joker-as) .joker-caption{visibility:hidden}.tile.joker:has(.joker-as) .joker-art{height:60%;margin-bottom:8px}
.winning-reveal{min-width:0;max-width:100%}.winning-reveal .reveal-portfolio{max-width:100%;gap:10px 7px;padding:7px 4px 10px;align-items:flex-start}.winning-reveal .reveal-set{max-width:100%;min-width:0;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:3px;padding:5px 5px 3px}.winning-reveal .reveal-position{flex:0 0 auto;min-width:0;padding-bottom:18px}.winning-reveal .reveal-position>.tile{flex:none;max-width:100%}.winning-reveal .completion-tile:after{inset:-4px -4px 14px}.winning-reveal .completion-tile>small{left:0;right:0;top:auto;bottom:0;transform:none;text-align:center;font-size:8px;line-height:10px;letter-spacing:0;white-space:nowrap}.winning-reveal .tile.joker .joker-caption,.winning-reveal .tile.joker .joker-seal{display:none}.winning-reveal .tile.joker .joker-art{width:90%;height:82%;margin:0}.winning-reveal .tile.joker:has(.joker-as) .joker-art{height:64%;margin-bottom:10px}.winning-reveal .tile.joker .joker-as{height:11px;font-size:8px;bottom:2px}.winning-reveal .reveal-position .symbol{flex:0 0 auto}.winning-reveal .reveal-position .dragon-logo{max-width:90%;max-height:85%;flex:0 0 auto}
@media(max-width:720px){.runner .runner-name{white-space:normal;line-height:1.15;margin-bottom:2px;min-width:0}.runner.ceo-ready .runner-score{margin-top:2px}.winning-reveal .reveal-portfolio{gap:7px 4px;padding-left:0;padding-right:0}.winning-reveal .reveal-set{padding-left:4px;padding-right:4px}.winning-reveal .tile.joker .joker-as{font-size:7px;height:10px}.winning-reveal .joker-as .suit-icon{width:8px;height:8px;flex-basis:8px}}
.table-reveal .winning-reveal .reveal-position{padding-bottom:0}.table-reveal .winning-reveal .completion-tile:after{inset:-3px}
.winning-reveal .reveal-set{flex:0 0 auto;gap:6px}.table-reveal .winning-reveal .reveal-portfolio{flex-wrap:wrap}
@media(max-height:500px){.deal-presentation .settlement-hero{padding:5px 12px}.deal-presentation .result-brand{height:24px;margin:0;font-size:8px;line-height:1}.deal-presentation .result-brand .neon-hand-logo{height:22px;width:35px}.deal-presentation .settlement-kicker,.deal-presentation .settlement-hero>p,.deal-presentation .completion-caption,.deal-presentation .settlement-footnote{display:none}.deal-presentation .settlement-hero h2{font-size:18px;line-height:1.1;margin:4px 0}.deal-presentation .winning-reveal{padding:5px 12px}.deal-presentation .reveal-ceo{margin-bottom:3px}.deal-presentation .reveal-ceo canvas,.deal-presentation .reveal-ceo>div>span{display:none}.deal-presentation .reveal-ceo h3{font-size:12px;margin:0 0 3px}.deal-presentation .reveal-ceo p{font-size:9px!important;line-height:1.2!important}.deal-presentation .reveal-portfolio{padding:4px 0 0;gap:5px}.deal-presentation .reveal-position>.tile{width:27px;height:42px}.deal-presentation .reveal-position .num{font-size:18px}.deal-presentation .reveal-position .symbol{font-size:10px;margin-top:2px}.deal-presentation .reveal-position .dragon-logo{width:22px;height:30px}.deal-presentation .result-footer{padding:6px 12px}.deal-presentation .result-footer button{min-height:34px;padding:6px 10px;font-size:11px}}
@media(max-width:720px){.runner .ready-tag{position:absolute;left:3px;right:auto;top:auto;bottom:3px;width:26px;max-width:26px;box-sizing:border-box;display:flex!important;align-items:center;justify-content:center;margin:0!important;padding:1px!important;font-size:6px!important;line-height:1.1;letter-spacing:0;text-overflow:clip}.runner.ceo-ready .portrait{transform:translateY(-4px)}.runner.ceo-ready .runner-score{font-size:11px;line-height:1.1;margin-top:2px}}

@media(max-width:720px){.runner .runner-sub{font-size:6px;line-height:1.1;letter-spacing:0;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}}
.compact-shop .shop-status{border-bottom:1px solid #ffd66b66;padding-bottom:5px}.compact-shop .shop-status>b{color:#ffd66b;background:#ffd66b12;border-left:3px solid #ffd66b;padding:2px 8px;font-weight:bold;text-shadow:0 0 9px #ffd66b44;white-space:nowrap}
/* Cohesive deal flow: compact status, details on demand, distinct payout sources. */
.offer-duration{display:block;color:#ffd66b;font-size:9px;line-height:1.3;margin-top:4px;letter-spacing:.05em}.analysis-status{display:flex;justify-content:space-between;color:var(--p-muted);font-size:11px}.analysis-status b{color:var(--p-accent)}.deal-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px;padding:12px 0;border-bottom:1px solid var(--p-border)}.deal-breakdown>div{display:flex;justify-content:space-between;gap:8px;font-size:11px;min-width:0}.deal-breakdown span{color:var(--p-muted);font-size:9px}.deal-breakdown b{white-space:nowrap;color:var(--p-accent)}.deal-breakdown>small{grid-column:1/-1;color:var(--p-muted);font-size:10px;line-height:1.4}@media(max-width:720px){#buildTab{font-size:9px;padding:6px}.deal-breakdown{gap:7px}.deal-breakdown>div{font-size:10px}.deal-breakdown span{font-size:8px}.offer-duration{font-size:8px}}@media(max-height:570px){.offer-duration{font-size:7px;margin-top:2px}.deal-breakdown{padding:7px 0}}

/* Claims stay compact; the player's hand remains visible below the decision. */
#claimPrompt{width:min(520px,calc(100vw - 24px));padding:14px;max-height:56dvh;top:42%;overflow-y:auto}#claimPrompt h2{font-size:22px;margin:7px 0 10px}#claimPrompt .claim-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}#claimPrompt .claim-options button{font-size:12px;min-height:42px;padding:8px;white-space:normal;overflow-wrap:anywhere}#claimPrompt .claim-options #pass{grid-column:1/-1;min-height:34px}#claimPrompt .claim-preview>.tile{width:36px;height:52px}#claimPrompt .claim-preview .num{font-size:26px}#claimPrompt .claim-preview .symbol{font-size:15px;margin-top:2px}#claimPrompt p{margin:8px 0;font-size:11px}#claimPrompt .claim-kicker{font-size:10px}
@media(max-width:720px){#claimPrompt{top:40%;padding:11px;max-height:49dvh}#claimPrompt h2{font-size:18px}#claimPrompt .claim-preview{display:none}#claimPrompt .claim-options button{font-size:11px;min-height:40px}#claimPrompt .claim-time{font-size:12px}#claimPrompt p{font-size:10px;margin:6px 0}}
@media(max-height:500px){#claimPrompt{top:45%;max-height:65dvh}#claimPrompt .claim-preview{display:none}#claimPrompt h2{font-size:17px;margin:4px 0}#claimPrompt p{margin:4px 0}#claimPrompt .claim-options button{min-height:32px;padding:5px}}

/* Market summary stays on the table; explanations expand on demand. */
.portfolio-mini{font-size:9px;margin-top:4px;color:var(--p-accent);display:flex;justify-content:space-between;gap:4px}.portfolio-estimate{padding:12px;border:1px solid var(--p-border);margin:12px 0;background:var(--p-surface)}.portfolio-estimate strong{font-size:22px;color:#ffd66b}.portfolio-factors{display:flex;flex-wrap:wrap;gap:8px;font-size:11px}.market-rules summary{cursor:pointer;color:var(--p-accent);padding:10px 0}.market-rules:focus-within{outline-color:var(--p-accent)}@media(max-width:720px){.portfolio-mini{font-size:7px}.stock-market .stock-chart{height:24px}.portfolio-estimate strong{font-size:18px}}

/* Contextual feedback only: no additional table panels. */
#claimPrompt .claim-options [aria-pressed=true]{border-color:#ffd66b;box-shadow:inset 0 0 0 1px #ffd66b;color:#ffd66b}#claimPrompt .claim-options .claim-confirm{grid-column:1/-1;min-height:38px}.last-caller{outline:2px solid var(--p-accent);outline-offset:1px}.last-called-set{border-color:#ffd66b!important;background:#ffd66b12!important}.equipment-fired{animation:equipment-pulse .8s ease-out 2}.equipment-receipt{grid-column:1/-1;font-size:10px;color:var(--p-muted)}.equipment-receipt summary{cursor:pointer;color:var(--p-accent)}.equipment-receipt>span{display:flex;justify-content:space-between;padding:5px 0}.equipment-receipt b{color:#ffd66b}@keyframes equipment-pulse{50%{box-shadow:inset 0 0 15px #ffd66b66;border-color:#ffd66b}}@media(prefers-reduced-motion:reduce){.equipment-fired{animation:none;border-color:#ffd66b}}

/* Visual claims: always show the discard and the actual selected set. */
#claimPrompt{top:50%;left:50%;transform:translate(-50%,-50%);max-height:72dvh;text-align:center;box-sizing:border-box}#claimPrompt .claim-options.single-choice>[data-claim]{grid-column:1/-1}.claim-visual{display:flex;justify-content:center;align-items:center;gap:12px;margin:10px 0 12px}.claim-visual small{display:block;font-size:9px;letter-spacing:.07em;margin-bottom:7px;color:var(--p-muted)}.claim-visual .claim-result>div{display:flex;gap:5px;justify-content:center}.claim-visual .tile{width:42px;height:62px;flex:0 0 42px}.claim-visual .tile .num{font-size:28px}.claim-visual .tile .symbol{font-size:16px;margin-top:2px}.claim-arrow{font-size:22px;color:var(--p-muted);margin-top:18px}.claim-visual .claim-source{outline:2px solid #ffd66b;outline-offset:2px}.claim-visual .claim-acquired{box-shadow:inset 0 0 0 2px #ffd66b,0 0 12px #ffd66b44}.claim-visual .claim-acquired:before{content:'↓';position:absolute;top:-12px;left:50%;transform:translateX(-50%);font-size:12px;color:#ffd66b}.claim-visual .joker-caption,.claim-visual .joker-seal{display:none}
@media(max-width:720px){#claimPrompt{top:50%;max-height:72dvh}.claim-visual{gap:9px;margin:8px 0 10px}.claim-visual .tile{width:34px;height:50px;flex-basis:34px}.claim-visual .tile .num{font-size:24px}.claim-visual .tile .symbol{font-size:13px}.claim-visual small{font-size:8px}.claim-visual .claim-result>div{gap:4px}#claimPrompt .claim-kicker{display:block;padding:0 38px}#claimPrompt p{line-height:1.3}}
@media(max-height:500px){#claimPrompt{top:50%;max-height:92dvh;padding:8px}.claim-visual{margin:5px 0;gap:10px}.claim-visual .tile{width:29px;height:41px;flex-basis:29px}.claim-visual .tile .num{font-size:21px}.claim-visual .tile .symbol{font-size:11px}.claim-visual small{margin-bottom:4px;font-size:7px}#claimPrompt .claim-options{gap:5px}#claimPrompt .claim-options .claim-confirm{min-height:30px}}

.bonus-eligibility{border-left:3px solid #ffd66b;padding:9px 12px;color:#ffd66b;background:#ffd66b0b}.review-inspect{font-size:9px;padding:3px 0;min-height:24px;color:var(--p-muted);text-align:left;border:0;background:none}.review-ceos article{min-height:0}.review-ceos article>div{min-width:0}.review-ceos span{overflow-wrap:anywhere}.review-inspect:hover{color:var(--p-accent)}@media(max-height:500px){.review-inspect{font-size:8px;min-height:20px}.review-ceos article{gap:7px}.review-ceos span{font-size:9px}}
/* Character-first roster: four seats, extensible character definitions. */
#modal:has(.character-select){width:min(850px,96vw);height:min(740px,96dvh)}#modal:has(.character-select) .modal-inner{height:100%;box-sizing:border-box;padding:18px}#modal:has(.character-select) #modalContent{height:100%}.character-select{display:flex;flex-direction:column;gap:14px;height:100%;min-height:0}.character-select .modal-header{padding:12px 16px;flex-shrink:0}.character-select .modal-header h2{font-size:25px;margin:5px 0}.character-roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;flex-shrink:0}.character-roster>button{display:flex;align-items:center;flex-direction:column;gap:6px;padding:12px 5px;min-width:0;background:var(--p-surface);border:1px solid var(--p-border);color:var(--character-colour)}.character-roster>button[aria-pressed=true]{border-color:var(--character-colour);box-shadow:inset 0 0 0 1px var(--character-colour);background:color-mix(in srgb,var(--character-colour) 12%,var(--p-header))}.character-roster canvas{width:48px;height:56px;image-rendering:pixelated}.character-roster strong{font-size:15px}.character-roster small{font-size:9px;color:var(--p-muted)}.character-profile{display:flex;align-items:center;gap:24px;flex:1;min-height:0;background:linear-gradient(120deg,color-mix(in srgb,var(--character-colour) 12%,var(--p-header)),var(--p-header));border:1px solid var(--p-border);padding:18px}.character-profile>canvas{image-rendering:pixelated;width:120px;height:140px;flex-shrink:0;filter:drop-shadow(0 0 16px color-mix(in srgb,var(--character-colour) 25%,transparent))}.character-profile>div{min-width:0}.character-profile span{font-size:10px;letter-spacing:.13em;color:var(--p-muted)}.character-profile h2{font-size:34px;margin:8px 0;color:var(--character-colour)}.character-profile b{font-size:13px}.character-profile p{font-size:12px!important;margin:10px 0!important}.character-profile blockquote{font-size:12px;line-height:1.5;color:var(--character-colour);margin:10px 0 0}.character-power{border-left:3px solid var(--p-accent);padding:8px 12px;background:var(--p-surface);flex-shrink:0}.character-power small{display:block;font-size:9px;color:var(--p-muted)}.character-power strong{display:block;font-size:15px;margin:5px 0;color:var(--p-accent)}.character-power p{font-size:12px!important;line-height:1.4!important;margin:4px 0!important}.character-power summary{cursor:pointer;font-size:10px;color:var(--p-muted);padding:6px 0}.character-power details[open]{max-height:110px;overflow:auto}.character-select>#chooseCharacter{flex-shrink:0;min-height:45px;font-size:13px}
@media(max-width:720px){#modal:has(.character-select) .modal-inner{padding:10px}.character-select{gap:9px}.character-select .modal-header{padding:9px}.character-select .modal-header h2{font-size:20px}.character-roster{gap:5px}.character-roster>button{padding:8px 3px;gap:4px}.character-roster canvas{width:36px;height:42px}.character-roster strong{font-size:11px}.character-roster small{font-size:7px;line-height:1.3}.character-profile{gap:12px;padding:12px}.character-profile>canvas{width:72px;height:84px}.character-profile h2{font-size:25px;margin:5px 0}.character-profile span{font-size:8px}.character-profile b{font-size:11px}.character-profile p,.character-profile blockquote{font-size:10px!important;line-height:1.4}.character-power p{font-size:11px!important}.character-select>#chooseCharacter{font-size:11px}}
@media(max-height:550px){#modal:has(.character-select) .modal-inner{padding:8px}.character-select{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:8px}.character-select .modal-header{grid-column:1/-1;padding:5px 10px}.character-select .modal-header h2{font-size:18px}.character-roster{grid-column:1;grid-row:2;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.character-roster>button{padding:5px;gap:2px}.character-roster canvas{width:24px;height:28px}.character-roster strong{font-size:11px}.character-roster small{font-size:7px}.character-profile{grid-column:2;grid-row:2;padding:8px;gap:8px}.character-profile>canvas{width:48px;height:56px}.character-profile h2{font-size:20px}.character-profile p,.character-profile blockquote{font-size:9px!important;margin:4px 0!important}.character-power{grid-column:1;grid-row:3;padding:5px 8px}.character-power strong{font-size:12px;margin:2px 0}.character-power p{font-size:9px!important}.character-power small,.character-power summary{font-size:8px}.character-select>#chooseCharacter{grid-column:2;grid-row:3;align-self:stretch;font-size:11px}.character-power details[open]{max-height:55px}}

.character-roster{max-height:30dvh;overflow:auto;align-content:start}@media(max-height:550px){.character-roster{max-height:none;overflow:auto}}

.shop-offer.sold .item-art{opacity:.4}.shop-offer.sold>b{color:var(--p-muted)}.shop-offer.sold strong{text-decoration:line-through;text-decoration-color:var(--p-muted)}
/* Tier 2 retains the same equipment slot and has a consistent purple treatment. */
.tier-two{border-color:#b678ff!important;background:linear-gradient(135deg,#44206488,#17112c)!important}.tier-two strong,.tier-two>b,.tier-two .item-art,.tier-two small{color:#d9b5ff!important}.shop-offer.tier-two.chosen{box-shadow:inset 0 0 0 1px #b678ff,0 0 12px #a566ff33}.shop-detail.tier-two .primary{background:#bf87ff;border-color:#e3c9ff;color:#180b2a}.modifier-entry.tier-two{border-left:3px solid #b678ff}
/* Sidebar controls use one readable text scale; no tiny sound/help exceptions. */
#gameMenu button,#gameMenu label,#gameMenu label>span:first-child,#gameMenu select,#gameMenu>.eyebrow{font-size:12px!important;line-height:1.35}#gameMenu #help:after{content:none}#gameMenu button{letter-spacing:.03em;min-height:38px}#gameMenu #help{font-size:12px!important}.shop-footer #shopContracts{font-size:10px;min-height:38px;padding:7px;color:var(--p-accent)}.partnership-guide{border-left:3px solid var(--p-accent);padding:8px 12px;background:var(--p-surface)}@media(max-width:720px){.compact-shop .shop-footer{gap:6px}.shop-footer #shopContracts{font-size:9px;padding:5px}.compact-shop .shop-footer button{font-size:9px}}
/* No visible scrollbars; long contract references use fixed-screen pages. */
*{scrollbar-width:none}*::-webkit-scrollbar{display:none}
#modal:has(.contract-pager){width:min(740px,96vw);height:min(700px,96dvh);overflow:hidden}#modal:has(.contract-pager) .modal-inner{height:100%;box-sizing:border-box;overflow:hidden;padding:14px}#modal:has(.contract-pager) #modalContent{height:100%}.contract-pager{height:100%;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto auto;gap:10px;min-height:0}.contract-pager .modal-header{padding:10px 12px}.contract-pager .modal-header h2{font-size:22px;margin:5px 0}.contract-intro{font-size:11px!important;line-height:1.35!important;margin:0!important}.contract-pager .partnership-guide{padding:8px 10px}.contract-pager .partnership-guide b{font-size:10px;color:var(--p-accent)}.contract-pager .partnership-guide p{font-size:11px!important;line-height:1.35!important;margin:4px 0 0!important}.contract-pager .signature-guide{margin:0;min-height:0;grid-template-columns:1fr 1fr;gap:8px}.contract-pager .signature-guide article{padding:12px;min-width:0}.contract-pager .signature-guide strong{font-size:13px}.contract-pager .signature-guide span{font-size:10px}.contract-pager .signature-guide p{font-size:12px!important;line-height:1.4!important;margin:8px 0 0!important}.contract-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.contract-nav span{font-size:11px;color:var(--p-muted)}.contract-nav button{min-height:36px;font-size:11px;padding:7px 10px}.contract-pager>button{min-height:40px;font-size:12px}
@media(max-width:720px){#modal:has(.contract-pager) .modal-inner{padding:10px}.contract-pager{gap:8px}.contract-pager .signature-guide{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.contract-pager .signature-guide article{padding:9px}.contract-pager .signature-guide p{font-size:11px!important;margin:5px 0 0!important}.contract-pager .signature-guide strong{font-size:12px}.contract-pager .modal-header h2{font-size:19px}}
@media(max-height:500px){#modal:has(.contract-pager) .modal-inner{padding:8px}.contract-pager{gap:5px}.contract-pager .modal-header{padding:4px 8px}.contract-pager .modal-header h2{font-size:17px;margin:3px 0}.contract-pager .modal-header .eyebrow{font-size:8px}.contract-intro{font-size:9px!important}.contract-pager .partnership-guide{padding:5px 8px}.contract-pager .partnership-guide p{font-size:9px!important}.contract-pager .signature-guide{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.contract-pager .signature-guide article{padding:6px}.contract-pager .signature-guide strong{font-size:11px}.contract-pager .signature-guide span{font-size:9px}.contract-pager .signature-guide p{font-size:10px!important;line-height:1.25!important;margin:4px 0 0!important}.contract-nav button,.contract-pager>button{min-height:30px;padding:5px 8px;font-size:10px}}
@media(max-width:720px){.deal-presentation .settlement-capital strong{font-size:clamp(16px,5vw,23px);letter-spacing:0;white-space:nowrap}.deal-presentation .settlement-capital>div{min-width:0}}

/* Table feedback lanes: permanent sets below their CEO, transient speech inward. */
.runner[data-ceo="1"] .rival-melds,.runner[data-ceo="3"] .rival-melds{top:calc(100% + 9px);bottom:auto;left:0;right:auto;transform:none;grid-template-columns:repeat(2,max-content)}
.runner[data-ceo="3"] .rival-melds{left:auto;right:0}
.runner[data-ceo="1"] .ceo-call-anchor{left:calc(100% + 10px);right:auto;top:0;bottom:auto}
.runner[data-ceo="3"] .ceo-call-anchor{right:calc(100% + 10px);left:auto;top:0;bottom:auto}
.runner[data-ceo="2"] .ceo-call-anchor{left:0;right:auto;top:calc(100% + 10px)}
.runner.you .ceo-call-anchor{left:calc(100% + 10px);top:auto;bottom:0}
.runner[data-ceo="1"] .ceo-turn,.runner[data-ceo="3"] .ceo-turn{top:auto;bottom:calc(100% + 5px)}
.runner .ceo-call-anchor{z-index:25}.runner .rival-melds{z-index:10}.runner .ceo-turn{z-index:20}
.runner:has(.ceo-call-anchor:not(:empty)){z-index:8}
.runner.ceo-calling .ceo-speech{display:none} /* The central call banner already carries its voice/text. */
.ceo-expression{overflow-wrap:anywhere}.ceo-expression strong{min-width:0}.ceo-expression svg{flex:none}

.discpool:has(.tile:nth-child(25)):after{content:'↗';position:absolute;right:-12px;top:0;color:var(--p-accent);font-size:10px}
#claimPrompt{position:fixed;z-index:110}
.call-impact{z-index:90;top:42%;max-height:calc(100dvh - 100px);overflow:hidden}
.riichi-alert{z-index:95;top:24%;max-height:calc(100dvh - 90px);overflow:hidden}
.emote-menu{z-index:100;max-height:calc(100dvh - 90px);overflow:auto}
html[data-claiming=true] .table-banter,html[data-claiming=true] .ceo-call-anchor,html[data-claiming=true] .riichi-alert,html[data-claiming=true] .emote-menu{visibility:hidden}
body:has(#callImpact:not([hidden])) .table-banter,body:has(#riichiAlert:not([hidden])) .table-banter{visibility:hidden}
header:has(.game-menu:not([hidden])){z-index:210}
@media(max-width:720px){
 .runner[data-ceo="1"] .rival-melds,.runner[data-ceo="3"] .rival-melds{top:calc(100% + 5px);gap:3px}
 .runner[data-ceo="2"] .rival-melds{left:50%;transform:translateX(-50%);grid-auto-flow:row;grid-template-columns:repeat(2,max-content)}
 .runner .ceo-call-anchor{width:88px;max-width:88px}
 .runner[data-ceo="1"] .ceo-call-anchor,.runner[data-ceo="3"] .ceo-call-anchor{top:-48px}
 .runner[data-ceo="2"] .ceo-call-anchor{left:calc(100% + 5px);top:0}
 .runner.you .ceo-call-anchor{left:auto;right:calc(100% + 5px);bottom:0}
 .ceo-expression{flex-direction:column;gap:2px;padding:4px}.ceo-expression svg{width:24px;height:24px}.ceo-expression strong{font-size:7px;line-height:1.2;text-align:center}
 .runner[data-ceo="1"] .ceo-turn,.runner[data-ceo="3"] .ceo-turn{max-width:90px;gap:2px}.ceo-turn b{overflow:hidden;text-overflow:ellipsis}
}
@media(max-height:500px) and (min-width:721px){
 .stock-market{width:155px;padding:6px}.stock-market .stock-chart{height:30px}.stock-quotes b{font-size:12px}
 .runner[data-ceo="1"] .rival-melds,.runner[data-ceo="3"] .rival-melds{grid-template-columns:repeat(2,max-content);gap:3px}
 .rival-meld .tile.small{width:12px;height:17px}.rival-meld .tile.small .num{font-size:10px}.rival-meld .tile.small .symbol{font-size:6px}
 .runner .ceo-call-anchor{width:110px;max-width:110px}.ceo-expression{padding:4px}.ceo-expression svg{width:24px;height:24px}
}
@media(min-width:721px){
 .runner[data-ceo="1"] .rival-melds{left:calc(100% + 10px);right:auto}
 .runner[data-ceo="3"] .rival-melds{right:calc(100% + 10px);left:auto}
 .runner[data-ceo="2"] .rival-melds{left:0;transform:none;grid-auto-flow:row;grid-template-columns:repeat(2,max-content)}
}
/* Emotes temporarily replace the portrait, preserving names, sets and river space. */
.runner .ceo-call-anchor{left:8px!important;right:auto!important;top:50%!important;bottom:auto!important;transform:translateY(-50%);width:35px;max-width:35px}
.runner:has(.ceo-expression) .portrait{visibility:hidden}
.ceo-expression{border:0;background:transparent;box-shadow:none;padding:0;display:flex;justify-content:center}
.ceo-expression svg{width:32px;height:32px}.ceo-expression strong{display:none}
@media(max-width:720px){
 .runner .ceo-call-anchor{left:5px!important;width:20px;max-width:20px}.ceo-expression svg{width:20px;height:24px}
 .runner[data-ceo="2"] .rival-melds{left:calc(100% + 7px);right:auto;top:calc(100% + 8px);transform:none;grid-template-columns:repeat(2,max-content)}
}
@media(min-width:721px){.runner[data-ceo="2"] .rival-melds{grid-template-columns:max-content;grid-auto-flow:row}}
@media(max-width:720px){
 body:has(.runner[data-ceo="1"] .rival-melds) .discpool.p1,body:has(.runner[data-ceo="3"] .rival-melds) .discpool.p3{top:calc(50% + 104px)}
 body:has(.runner[data-ceo="2"] .rival-melds) .discpool.p2{width:calc(var(--discard-w) * 6 + 10px)}
 .runner[data-ceo="2"] .rival-melds{left:calc(100% + 9px)}
}
@media(max-height:500px) and (min-width:721px){
 .stock-market{width:110px}.stock-quotes small{font-size:7px}.stock-quotes b{font-size:10px}
 .runner[data-ceo="2"]{left:calc(50% - 240px)}
}
@media(max-width:720px){.runner[data-ceo="2"] .rival-melds{left:calc(100% + 18px)}}
@media(min-width:721px){.table{--lane-offset:calc(var(--discard-w) * 3 + 10px)}}
html[data-claiming=true] .runner:has(.ceo-expression) .portrait{visibility:visible}
/* Compact table controls: all desktop options fit together, fullscreen stays in the header. */
header>.header-fullscreen{display:flex!important;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:32px;padding:0;background:transparent;border:1px solid var(--p-border);color:var(--p-accent);font-size:22px;line-height:1}
.game-menu{display:grid;gap:5px;padding:12px;width:242px;max-height:calc(100dvh - 76px);overflow-y:auto}
.game-menu[hidden]{display:none}.game-menu .eyebrow{margin:0 0 3px}.game-menu button{margin:0;min-height:32px;padding:6px 9px;line-height:1.2}
.game-menu .menu-palette{margin:2px 0;padding-top:6px}.game-menu .menu-palette>span:first-child{margin-bottom:4px;letter-spacing:0}
.game-menu .menu-palette select{min-height:32px;padding:4px 7px}.game-menu .palette-swatches{margin-top:4px;height:6px}
@media(min-width:721px){.game-menu{overflow:hidden}}
@media(max-width:720px){header>.header-fullscreen{width:26px;flex-basis:26px;height:28px;font-size:20px}header .wind-strip{gap:5px;max-width:calc(50% - 50px);margin-left:0}header .wind-card .eyebrow{font-size:6px}header .your-wind{padding-left:5px}.game-menu{width:230px;gap:4px}}
@media(max-height:500px){.game-menu{width:min(460px,calc(100vw - 24px));grid-template-columns:1fr 1fr;gap:4px 8px;padding:8px}.game-menu>.eyebrow{grid-column:1/-1}.game-menu button{min-height:28px;padding:4px 7px}.game-menu .menu-palette{padding-top:3px;margin:0}.game-menu .menu-palette select{min-height:28px}.game-menu .palette-swatches{display:none}}
@media(min-width:721px) and (max-height:650px){.game-menu{width:min(460px,calc(100vw - 24px));grid-template-columns:1fr 1fr;gap:4px 8px;padding:8px}.game-menu>.eyebrow{grid-column:1/-1}.game-menu .palette-swatches{display:none}}
.rig-synergy{display:block;margin-top:5px;color:var(--p-accent);font-size:10px;line-height:1.35}
.shop-offer>span:nth-child(2){min-width:0;flex:1 1 0}.shop-offer strong{overflow-wrap:anywhere}
@media(max-width:720px){.shop-offer .item-art{width:20px;height:24px;flex-basis:20px}.shop-offer .item-art svg{width:20px;height:24px}.shop-offer{gap:5px}.shop-offer strong{font-size:11px}}

/* Symmetrical desktop table: four equal CEOs and four matching river lanes. */
@media(min-width:721px){
 :root{--ceo-card-w:144px;--ceo-card-h:82px;--ceo-inset:12px;--side-gap:100px;--meld-w:18px;--meld-h:25px}
 .runner{width:var(--ceo-card-w);height:var(--ceo-card-h);padding:8px;gap:8px;align-items:center}
 .runner .runner-name{font-size:12px;line-height:1.15;padding:0;margin:0 0 3px;white-space:normal}
 .runner .runner-sub{font-size:8px;line-height:1.2}.runner .runner-score{font-size:17px;line-height:1.2;margin-top:4px}
 .runner:nth-child(1){left:50%;right:auto;top:auto;bottom:var(--ceo-inset);transform:translateX(-50%)}
 .runner:nth-child(2){left:var(--ceo-inset);right:auto;top:50%;bottom:auto;transform:translateY(-50%)}
 .runner:nth-child(3){left:50%;right:auto;top:var(--ceo-inset);bottom:auto;transform:translateX(-50%)}
 .runner:nth-child(4){left:auto;right:var(--ceo-inset);top:50%;bottom:auto;transform:translateY(-50%)}
 .rival-melds{gap:5px}.rival-meld{padding:2px}.rival-meld .tile.small{width:var(--meld-w);height:var(--meld-h)}
 .runner[data-ceo="2"] .rival-melds{left:50%;right:auto;top:calc(100% + 8px);bottom:auto;transform:translateX(-50%);display:flex;flex-flow:row nowrap}
 .runner[data-ceo="1"] .rival-melds{left:calc(100% + var(--side-gap));right:auto;top:50%;bottom:auto;transform:translateY(-50%);grid-template-columns:max-content;grid-auto-flow:row}
 .runner[data-ceo="3"] .rival-melds{left:auto;right:calc(100% + var(--side-gap));top:50%;bottom:auto;transform:translateY(-50%);grid-template-columns:max-content;grid-auto-flow:row}
 .own-melds{left:50%;right:auto;bottom:calc(var(--ceo-inset) + var(--ceo-card-h) + 8px);transform:translateX(-50%);display:flex;flex-wrap:nowrap;justify-content:center;max-width:none;gap:8px}
 .own-melds .tile.small{width:var(--meld-w);height:var(--meld-h)}.own-melds .meld-label{font-size:7px;top:-10px}
 .seat.top{left:50%;top:calc(var(--ceo-inset) + var(--ceo-card-h) + 8px);transform:translateX(-50%)}
 .seat.top .back{width:14px;height:24px}
 .seat.west,.seat.east{top:50%;bottom:auto;transform:translateY(-50%);flex-direction:column}
 .seat.west{left:calc(var(--ceo-inset) + var(--ceo-card-w) + var(--side-gap))}.seat.east{right:calc(var(--ceo-inset) + var(--ceo-card-w) + var(--side-gap))}
 .table{--discard-w:clamp(10px,min(4.8cqh,2.7cqw),30px);--discard-h:calc(var(--discard-w) * 1.32);--hub-size:clamp(60px,16cqh,96px);--lane-width:calc(var(--discard-w) * 6 + 15px);--lane-height:calc(var(--discard-h) * 2 + 3px);--lane-offset:calc(var(--hub-size) / 2 + 12px)}
 .discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{grid-template-columns:repeat(6,var(--discard-w));grid-template-rows:repeat(2,var(--discard-h));width:var(--lane-width);height:var(--lane-height);gap:3px;right:auto;bottom:auto}
 
 .discpool:has(.tile:nth-child(13)):after{content:'↗';position:absolute;right:-12px;top:0;color:var(--p-accent);font-size:10px}
 .discpool.p0{left:50%;top:calc(50% + var(--lane-offset));transform:translateX(-50%)}
 .discpool.p2{left:50%;top:auto;bottom:calc(50% + var(--lane-offset));transform:translateX(-50%) rotate(180deg)}
 .discpool.p1{left:calc(50% - var(--lane-offset) - var(--lane-height) / 2);top:50%;transform:translate(-50%,-50%) rotate(90deg)}
 .discpool.p3{left:calc(50% + var(--lane-offset) + var(--lane-height) / 2);top:50%;transform:translate(-50%,-50%) rotate(-90deg)}
 .table .hub{width:var(--hub-size);height:var(--hub-size);padding:6px!important;gap:2px;justify-content:center}
 .table .hub strong{font-size:28px;margin:0;flex:none}.table .hub>span{font-size:7px}.table .hub #turnIndicator{font-size:8px;margin:3px 0 0}.table .hub .bonus-info{display:none}
 .runner[data-ceo="2"] .ceo-turn,body:has(#stockMarket:not([hidden])) .runner[data-ceo="2"] .ceo-turn{left:calc(100% + 8px);right:auto;top:50%;bottom:auto;transform:translateY(-50%)}
 .runner.you .ceo-turn{left:auto;right:calc(100% + 8px);top:50%;bottom:auto;transform:translateY(-50%)}
}
@media(min-width:721px) and (max-height:760px){:root{--ceo-card-h:64px;--ceo-inset:8px;--meld-w:15px;--meld-h:21px}.runner .portrait{width:28px;height:35px}.rival-meld small{font-size:6px}.runner .runner-score{font-size:15px}.runner .runner-name{font-size:11px}}
@media(min-width:721px) and (max-width:1100px){:root{--side-gap:60px}.stock-market{width:170px}}
@media(min-width:721px){@container(max-height:380px){
 .runner{width:100px;height:44px;padding:4px;gap:5px}.runner .portrait{width:20px;height:25px}.runner .runner-name{font-size:9px;margin:0}.runner .runner-sub{font-size:7px}.runner .runner-score{font-size:11px;margin:2px 0 0}.runner:nth-child(1){bottom:6px}.runner:nth-child(3){top:6px}
 .seat{display:none}.table{--discard-w:clamp(8px,4.8cqh,16px);--lane-height:var(--discard-h);--hub-size:60px}
 .discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{grid-template-rows:var(--discard-h);height:var(--discard-h)}
 .rival-meld .tile.small,.own-melds .tile.small{width:10px;height:14px}.rival-meld small{font-size:5px}.rival-meld .tile.small .num{font-size:8px}.rival-meld .tile.small .symbol{font-size:5px}
 .runner[data-ceo="2"] .rival-melds{left:auto;right:calc(100% + 8px);top:50%;transform:translateY(-50%)}
 .own-melds{left:calc(50% + 58px);bottom:18px;transform:none;gap:5px}.own-melds .meld-label{font-size:5px;top:-8px}
 .runner[data-ceo="1"] .rival-melds{left:calc(100% + 40px)}.runner[data-ceo="3"] .rival-melds{right:calc(100% + 40px)}
 .stock-market{width:110px;padding:6px}.stock-market .stock-chart{height:30px}.stock-quotes small{font-size:7px}.stock-quotes b{font-size:10px}
}}
/* Match the human's exposed-set frame to the rival set frames. */
.own-melds .meld{display:block;padding:2px;border:1px solid var(--p-border);background:#090d20f5;white-space:nowrap;line-height:1}
.own-melds .meld-label{position:static;display:block;font-size:7px;line-height:1;margin:0 0 3px;letter-spacing:.3px}
.own-melds .meld>.tile+.tile{margin-left:2px}
@media(min-width:721px){.table{--lane-offset:calc(var(--hub-size) / 2 + 5px)}}
@media(min-width:721px) and (max-height:820px){:root{--ceo-card-h:64px;--ceo-inset:8px;--meld-w:15px;--meld-h:21px}.runner .portrait{width:28px;height:35px}.rival-meld small{font-size:6px}.runner .runner-score{font-size:15px}.runner .runner-name{font-size:11px}}
@media(min-width:721px) and (max-height:650px){
 .runner{width:100px;height:44px;padding:4px;gap:5px}.runner .portrait{width:20px;height:25px}.runner .runner-name{font-size:9px;margin:0}.runner .runner-sub{font-size:7px}.runner .runner-score{font-size:11px;margin:2px 0 0}.runner:nth-child(1){bottom:6px}.runner:nth-child(3){top:6px}
 .runner[data-ceo="2"] .rival-melds{left:auto;right:calc(100% + 8px);top:50%;transform:translateY(-50%)}
 .runner[data-ceo="1"] .rival-melds{left:calc(100% + 40px)}.runner[data-ceo="3"] .rival-melds{right:calc(100% + 40px)}
 .rival-meld .tile.small,.own-melds .tile.small{width:10px;height:14px}.rival-meld small,.own-melds .meld-label{font-size:5px}.rival-meld .tile.small .num{font-size:8px}.rival-meld .tile.small .symbol{font-size:5px}
 .own-melds{left:calc(50% + 58px);bottom:18px;transform:none;gap:5px}.stock-market{width:110px;padding:6px}.stock-market .stock-chart{height:30px}.stock-quotes small{font-size:7px}.stock-quotes b{font-size:10px}
}
@media(max-width:720px){
 .runner{height:56px}.runner .runner-name{font-size:9px;line-height:1.1}.runner .runner-score{font-size:11px;margin-top:3px}
 .runner[data-ceo="2"] .rival-melds{left:50%;right:auto;top:calc(100% + 8px);bottom:auto;transform:translateX(-50%);display:flex;flex-flow:row nowrap;gap:4px}
 .own-melds{left:50%;right:auto;bottom:76px;transform:translateX(-50%);display:flex;flex-wrap:nowrap;max-width:none;gap:4px}
 .own-melds .tile.small{width:12px;height:17px}.own-melds .meld-label{font-size:5px;margin-bottom:1px}
 .table{--discard-w:11.5px;--discard-h:15.18px}
 .discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{grid-template-rows:repeat(2,var(--discard-h));height:calc(var(--discard-h) * 2 + 2px);row-gap:2px}.discpool .tile.small{height:var(--discard-h)}
 .discpool.p2{top:100px}.discpool.p0{top:calc(50% + 40px)}
}
@media(min-width:721px){.own-melds{bottom:calc(var(--ceo-inset) + var(--ceo-card-h) + 2px)}}
@media(min-width:721px) and (max-height:650px){.own-melds{bottom:18px}.objective-card{width:110px;max-width:110px}.objective-card>strong{font-size:9px}}
@media(max-width:720px){.runner[data-ceo="2"] .rival-melds{top:calc(100% + 14px)}.own-melds{bottom:64px}}
/* Leave the corners between rivers clear; preserve Ready on its CEO card. */
@media(min-width:721px){.table{--discard-w:clamp(10px,min(3.5cqh,2.7cqw),26px);--lane-offset:calc(var(--discard-w) * 3 + 10px)}.runner .ready-tag{position:absolute;left:8px;bottom:4px;width:35px;font-size:6px!important;line-height:1.1;margin:0;padding:1px!important;text-align:center}}
@media(min-width:721px){@container(max-height:380px){.table{--discard-w:clamp(8px,4.8cqh,16px)}}}
.riichi-pressure{display:none}
@media(max-width:720px){.own-melds{bottom:58px}}
@media(min-width:721px) and (max-height:500px){
 .runner{height:36px;padding:3px}.runner .runner-name{font-size:8px}.runner .runner-sub{font-size:6px}.runner .runner-score{font-size:10px;line-height:1;margin-top:2px}
 .stock-market .stock-chart{display:none}.objective-card{height:36px;padding:5px!important;overflow:hidden}.objective-card>span{display:none}.objective-card>strong{font-size:8px}
 .runner[data-ceo="1"] .rival-melds,.runner[data-ceo="3"] .rival-melds{grid-template-columns:repeat(2,max-content)}
 .table{--lane-offset:calc(var(--discard-w) * 3 + 8px)}
}
@media(max-width:720px){
 .table .hub{width:56px;height:64px;padding:4px!important;gap:1px}.table .hub strong{font-size:24px}
 .runner[data-ceo="1"] .rival-melds{left:calc(100% + 4px);right:auto;top:50%;bottom:auto;transform:translateY(-50%);grid-template-columns:max-content}
 .runner[data-ceo="3"] .rival-melds{left:auto;right:calc(100% + 4px);top:50%;bottom:auto;transform:translateY(-50%);grid-template-columns:max-content}
 .runner[data-ceo="1"] .rival-meld .tile.small,.runner[data-ceo="3"] .rival-meld .tile.small{width:9px;height:13px}
 .runner[data-ceo="1"] .rival-meld .tile.small .num,.runner[data-ceo="3"] .rival-meld .tile.small .num{font-size:8px}
 .table{--discard-w:clamp(11.5px,3.2vw,14px);--discard-h:calc(var(--discard-w) * 1.32)}
 .discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3,body:has(.runner[data-ceo="2"] .rival-melds) .discpool.p2{grid-template-columns:repeat(4,var(--discard-w));width:calc(var(--discard-w) * 4 + 6px);column-gap:2px}
 
}
@media(max-width:720px){.discpool.p2{top:95px}.discpool:has(.tile:nth-child(9)):after{content:'↗';position:absolute;right:-7px;top:0;color:var(--p-accent);font-size:8px}}
@media(min-width:721px) and (max-height:500px){
 .table{--hub-size:52px;--lane-width:calc(var(--discard-w) * 4 + 9px);--lane-offset:calc(var(--discard-w) * 3 + 2px)}
 .discpool.p0,.discpool.p1,.discpool.p2,.discpool.p3{grid-template-columns:repeat(4,var(--discard-w));width:var(--lane-width)}
 .discpool:has(.tile:nth-child(5)):after{content:'↗';position:absolute;right:-7px;top:0;color:var(--p-accent);font-size:8px}
 .table .hub{padding:3px!important;gap:0}.table .hub strong{font-size:22px}.table .hub>span{font-size:5px}.table .hub #turnIndicator{font-size:6px;margin-top:2px}
}
@media(max-width:720px){.seat.top{top:76px}}
@media(min-width:721px) and (max-height:820px){.runner .ceo-call-anchor{width:28px;max-width:28px}.runner .ceo-expression svg{width:28px;height:28px}}
@media(min-width:721px) and (max-height:650px){.runner .ceo-call-anchor{left:4px!important;width:20px;max-width:20px}.runner .ceo-expression svg{width:20px;height:20px}.runner[data-ceo="1"] .ceo-turn,.runner[data-ceo="3"] .ceo-turn{left:0;right:auto;top:calc(100% + 4px);bottom:auto;transform:none}}
@media(min-width:721px) and (max-height:650px){.own-melds{bottom:8px}}
@media(min-width:721px) and (max-height:500px){.own-melds{bottom:4px}}
@media(max-width:720px){.stock-market .stock-chart{height:20px}.runner[data-ceo="2"] .rival-melds{top:calc(100% + 8px)}.own-melds{bottom:64px}.discpool.p0{top:calc(50% + 34px)}}

/* Six CEOs, equal roster cells; no scrolling roster. */
.character-roster{grid-template-columns:repeat(6,minmax(0,1fr));max-height:none;overflow:visible}.character-roster small{display:none}.character-build{color:var(--character-colour)}
@media(max-width:720px) and (min-height:551px){.character-roster{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.character-roster>button{flex-direction:row;justify-content:center;padding:4px}.character-roster canvas{width:24px;height:28px}.character-profile{padding:8px;gap:8px}.character-profile>canvas{width:48px;height:56px}.character-profile blockquote{display:none}.character-select{gap:6px}.character-profile p{margin:4px 0!important}}
@media(max-height:550px){.character-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.character-profile blockquote{display:none}.character-profile>canvas{width:36px;height:42px}}
