:root{--bg: #07141f;--bg-2: #0d2233;--panel: #10293b;--panel-2: #163550;--line: #24506b;--text: #e8eef2;--muted: #8fa7b6;--gold: #d8b05a;--gold-2: #f2d48a;--teal: #2aa6a0;--danger: #e0645c;--radius: 12px;--card-w: 84px;--card-h: 118px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:radial-gradient(120% 80% at 50% 0%,var(--bg-2),var(--bg));color:var(--text)}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.35;overflow-x:hidden;min-height:100vh}h1,h2,h3{margin:0}h1{color:var(--gold);letter-spacing:.04em}.btn{min-height:44px;min-width:44px;padding:10px 18px;border-radius:10px;border:1px solid var(--gold);background:transparent;color:var(--gold-2);font:inherit;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn-primary{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1b1405;border-color:var(--gold)}.btn-ghost{border-color:var(--line);color:var(--text)}.btn:disabled{opacity:.45;cursor:not-allowed}.chip{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--gold-2);font-size:11px;white-space:nowrap}.setup{max-width:1000px;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:16px}.brand p{margin:4px 0 0;color:var(--muted)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}.field{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:13px}input[type=text],input:not([type]),textarea{width:100%;min-height:44px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit}textarea{font-family:ui-monospace,Consolas,monospace;font-size:13px;resize:vertical}.issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}.issues .error{color:var(--danger)}.issues .warning{color:var(--gold-2)}.issues .ok{color:var(--teal)}.start{width:100%}.pass-overlay{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}.pass-overlay h1{font-size:26px}.pass-overlay p{color:var(--muted);margin:0}.screen{min-height:100vh;min-height:100dvh}.screen-in{animation:screen-in .25s ease-out}@keyframes screen-in{0%{opacity:.6;transform:translateY(14px)}}.table{--mat: #13284a;--mat-2: #0f2140;--br: rgba(160, 190, 230, .55);height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--mat-2)}.btn-small{min-height:44px;padding:6px 12px;font-size:13px}.pill-wrap{position:absolute;left:0;right:0;display:flex;justify-content:center;pointer-events:none;z-index:35}.statusbar-pill{pointer-events:auto;display:flex;align-items:baseline;gap:10px;max-width:min(92%,820px);padding:4px 14px;border-radius:999px;background:#07141fe0;border:1px solid var(--gold);box-shadow:0 4px 14px #00000073;white-space:nowrap;overflow:hidden}.statusbar-pill .statusbar-line{flex:none;font-size:12px}.statusbar-pill .statusbar-hint{overflow:hidden;text-overflow:ellipsis;font-size:13px}.statusbar{padding:6px 10px}.statusbar-line{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statusbar-hint{font-weight:600;color:var(--gold-2);font-size:14px}.rotate-hint{margin:0;padding:6px 12px;text-align:center;font-size:13px;background:var(--panel-2);color:var(--gold-2);border-bottom:1px solid var(--line)}.toast{position:fixed;left:50%;transform:translate(-50%);width:min(520px,calc(100vw - 32px));bottom:24vh;z-index:80;background:var(--danger);color:#fff;padding:12px 14px;border-radius:10px;font-weight:600;min-height:44px;box-shadow:0 8px 24px #00000080}.toast-info{background:var(--panel);color:var(--text);border:1px solid var(--gold);bottom:calc(24vh + 64px)}.table-body{flex:1 1 auto;min-height:0;display:flex}.stage-host{flex:1 1 auto;min-width:0;position:relative;overflow:hidden;background:radial-gradient(90% 70% at 50% 50%,var(--mat),var(--mat-2))}.stage{position:absolute;left:0;top:0;transform-origin:0 0;font-size:16px;background:linear-gradient(rgba(140,170,220,.05) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(90deg,rgba(140,170,220,.05) 1px,transparent 1px) 0 0 / 40px 40px,radial-gradient(80% 60% at 50% 50%,#183160,var(--mat))}.stage>*{position:absolute}.mat{inset:0;pointer-events:none}.stage .mat>*{position:absolute;pointer-events:auto}.brk{--bl: 18px;background:linear-gradient(var(--br),var(--br)) top left / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) top left / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) top right / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) top right / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) bottom left / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) bottom left / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) bottom right / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) bottom right / 1.5px var(--bl) no-repeat}.brk.drop-ok{--br: var(--gold-2);background-color:#f2d48a14;box-shadow:inset 0 0 0 2px #f2d48a8c,0 0 24px #f2d48a40;animation:drop-pulse 1.2s ease-in-out infinite;cursor:pointer}.brk.drop-no{opacity:.75}@keyframes drop-pulse{50%{box-shadow:inset 0 0 0 2px #f2d48af2,0 0 34px #f2d48a73}}.zone-count{position:absolute;right:10px;top:6px;font-size:15px;font-weight:700;color:#cfe0f5;scale:var(--inv, 1);transform-origin:right top;z-index:4;text-shadow:0 1px 3px #000}.zone-drop-btn{position:absolute;left:12px;top:50%;translate:0 -50%;z-index:5}.zone-drop-btn:empty{display:none}.drop-target{box-shadow:0 0 14px #f2d48ab3;scale:var(--inv, 1);transform-origin:left center}.at-foe-banish{left:18px;top:12px}.at-foe-trash{left:122px;top:12px}.at-foe-deck{left:226px;top:12px}.at-foe-hand{left:520px;top:-44px;width:560px;height:134px}.at-foe-floating{left:1150px;top:14px}.at-foe-runedeck{left:1282px;top:12px}.at-foe-name{left:1394px;top:12px}.at-foe-track{left:1494px;top:88px}.at-foe-legend{left:14px;top:160px;width:226px;height:144px}.at-foe-base{left:250px;top:160px;width:700px;height:144px}.at-foe-runes{left:958px;top:160px;width:516px;height:144px}.at-bf-0{left:160px;top:312px;width:650px;height:370px}.at-bf-1{left:824px;top:312px;width:650px;height:370px}.at-me-base{left:160px;top:688px;width:1210px;height:140px}.at-me-legend{left:1380px;top:688px;width:212px;height:140px}.at-me-track{left:24px;top:512px}.at-me-name{left:10px;top:900px}.at-me-runedeck{left:176px;top:860px}.at-me-floating{left:282px;top:872px}.at-me-deck{left:1282px;top:860px}.at-me-trash{left:1386px;top:860px}.at-me-banish{left:1490px;top:860px}.at-foe-legend,.at-foe-base,.at-foe-runes,.at-me-legend{padding:5px 8px;display:flex;align-items:center}.at-me-legend{justify-content:center}.card-row{display:flex;align-items:center}.card-row.align-center{justify-content:center;margin:0 auto}.row-slot{flex:none;display:flex;align-items:center;justify-content:center;position:relative}.row-slot:hover{z-index:10}.base-strip{display:flex;padding:2px 8px}.base-runes,.base-units{position:relative;display:flex;align-items:center;height:100%}.base-runes{width:540px}.base-units{flex:1 1 auto;border-left:1px dashed rgba(160,190,230,.25);padding-left:10px}.at-foe-runes{justify-content:flex-start}.bf-zone{background-color:#0a183240}.bf-units{position:absolute;left:15px;width:620px;height:112px}.bf-units.foe-side{top:10px}.bf-units.me-side{bottom:10px}.bf-card{position:absolute;left:50%;top:50%;translate:-50% -50%;--card-w: 130px;--card-h: 182px}.bf-status{position:absolute;left:12px;top:120px;scale:var(--inv, 1);transform-origin:left top;z-index:4;font-size:14px;color:#b9cbe4;background:#081226b3;padding:2px 8px;border-radius:6px}.bf-status.hot{color:#1b1405;background:var(--gold-2);font-weight:700}.bf-might{position:absolute;right:10px;scale:var(--inv, 1);z-index:4;font-size:16px;font-weight:700;color:#e7eefa;background:#081226b3;padding:1px 8px;border-radius:6px}.bf-might.foe-side{top:8px;transform-origin:right top}.bf-might.me-side{bottom:8px;transform-origin:right bottom}.bf-notice{position:absolute;left:50%;top:-22px;translate:-50% 0;scale:min(var(--inv, 1),1.4);transform-origin:center top;z-index:8;display:flex;align-items:center;gap:10px;background:#1f6b46;border:2px solid #8fd6a8;color:#fff;padding:6px 8px 6px 16px;border-radius:8px;font-weight:700;font-size:18px;white-space:nowrap;box-shadow:0 6px 18px #00000073}.bf-notice.kind-contested,.bf-notice.kind-scoreDenied,.bf-notice.kind-finalPointDenied{background:#6b4a1f;border-color:var(--gold-2)}.bf-notice button{all:unset;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:#0000004d}.pile{position:relative;box-sizing:border-box;width:92px;height:128px;--card-w: 92px;--card-h: 128px;display:block;cursor:default}button.pile{cursor:pointer;border:0;padding:0;margin:0;background:none;color:inherit;font:inherit}.pile>.card{position:absolute;inset:0;cursor:pointer}.pile-stack{position:absolute;inset:0}.pile-back,.pile-empty{position:absolute;inset:0;border-radius:8px}.pile-back{background:radial-gradient(circle at 50% 50%,transparent 22px,rgba(216,176,90,.5) 23px,transparent 25px),repeating-linear-gradient(45deg,#17406a,#17406a 6px,#123457 6px 12px);border:2px solid #4f7fb0;box-shadow:3px 3px #0b1c33,6px 6px #0a1830,0 6px 14px #00000080}.pile-empty{border:1.5px dashed rgba(160,190,230,.35)}.pile-count{position:absolute;right:-8px;top:-10px;min-width:38px;height:34px;padding:0 6px;display:grid;place-items:center;border-radius:8px;background:#25344d;border:1px solid #6a85ad;color:#fff;font-weight:800;font-size:20px;z-index:3;scale:var(--inv, 1);transform-origin:right top}.pile-label{position:absolute;left:0;right:0;bottom:-2px;text-align:center;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#cfe0f5;background:#081226bf;border-radius:0 0 8px 8px;padding:2px 0;z-index:2}.floating{display:flex;flex-direction:column;gap:2px;font-size:17px;color:#d7e3f4;scale:min(var(--inv, 1),1.8);transform-origin:left top}.floating-title{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#8fa7c6}.floating b{color:#fff;margin-left:6px}.name-plate{width:150px;height:66px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:linear-gradient(180deg,#1b2c47,#111d33);border:1px solid #2c4569;border-radius:6px;color:#fff;font-size:18px}.name-plate span{font-size:12px;color:#8fa7c6;text-transform:uppercase;letter-spacing:.1em}.name-plate.turn{border-color:var(--gold-2);box-shadow:0 0 16px #f2d48a73}.score-track{width:100px;height:368px}.score-line{position:absolute;left:0;top:0;overflow:visible}.score-line polyline{fill:none;stroke:#8caadc59;stroke-width:1.5;stroke-dasharray:3 4}.score-dot{position:absolute;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 40% 35%,#263c60,#14223a);border:2px solid #2f4a72;color:#d7e3f4;font-weight:800;font-size:20px}.score-dot.past{color:#8fa7c6;border-color:#3e5b85}.score-dot.on{width:52px;height:52px;margin:-4px;border:3px solid #bfe9ff;color:#fff;box-shadow:0 0 0 4px #2aa6a059,0 0 22px #78dcffb3}.score-num{display:inline-block}.hand-fan{position:relative}.fan-slot{position:absolute;top:0;width:var(--card-w);height:var(--card-h);transform:translateY(var(--arc)) rotate(var(--rot));transform-origin:50% 130%;transition:transform .18s ease-out}.hand-dock{position:absolute;z-index:36}.hand-dock .fan-slot{transform:translateY(calc(var(--arc) + var(--peek))) rotate(var(--rot));transform-origin:50% 100%}.hand-dock .fan-slot:hover,.hand-dock .fan-slot.up{transform:translateY(calc(var(--card-h) * -.12)) rotate(0) scale(var(--lift));z-index:60!important}.hand-dock .fan-slot.up:not(:hover){transform:translateY(calc(var(--card-h) * -.1)) rotate(0) scale(calc((var(--lift) + 1) / 2))}.fan-slot.dragging{z-index:100!important;transition:none}.hand-fan.flip .fan-slot{transform-origin:50% -30%}.card{all:unset;box-sizing:border-box;flex:0 0 auto;width:var(--card-w);height:var(--card-h);border-radius:8px;border:2px solid #0b1424;background:var(--bg);cursor:pointer;position:relative;overflow:visible;display:block;box-shadow:0 4px 10px #00000073;transition:box-shadow .15s}.card .card-face{border-radius:6px;overflow:hidden}.card-back{cursor:default}.card.legal{border-color:var(--gold-2);animation:legal-pulse 1.6s ease-in-out infinite}@keyframes legal-pulse{0%,to{box-shadow:0 0 6px #f2d48a73}50%{box-shadow:0 0 18px #f2d48af2}}.card.selected{outline:3px solid var(--teal);outline-offset:1px}.card:focus-visible{outline:3px solid var(--gold-2)}.card.draggable{cursor:grab;touch-action:none}.card.ghost{opacity:.35}.marquee{position:fixed;z-index:60;border:1.5px dashed var(--teal);background:#2aa6a026;pointer-events:none}.stack-badge{position:absolute;right:4px;top:4px;z-index:6;min-width:34px;height:34px;padding:0 6px;border-radius:17px;display:grid;place-items:center;background:var(--teal);color:#07141f;font-weight:900;font-size:18px;border:2px solid #fff;box-shadow:0 4px 10px #00000080}.card-face{display:block;width:100%;height:100%;position:relative}.card-face img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.card.landscape{width:var(--card-h);height:var(--card-w)}.card-placeholder{position:absolute;inset:0;background:linear-gradient(135deg,var(--panel-2),var(--panel))}.card-img{opacity:0}.card-img.loaded{opacity:1}.card-back-face{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%,transparent 30%,rgba(216,176,90,.45) 31%,transparent 34%),repeating-linear-gradient(45deg,#17406a,#17406a 6px,#123457 6px 12px);border:1px solid #4f7fb0;color:var(--gold);font-weight:800;letter-spacing:.1em}.card-text-tile{display:flex;flex-direction:column;gap:2px;padding:5px;height:100%;overflow:hidden;background:var(--panel);font-size:10px;line-height:1.2}.card-name{font-size:12px;color:var(--gold-2)}.card-meta{color:var(--muted);font-size:11px}.card-rules{color:var(--text);overflow:hidden}.card-badges{position:absolute;left:3px;bottom:3px;right:3px;display:flex;gap:3px;align-items:center}.badge{min-width:24px;height:24px;padding:0 5px;border-radius:12px;display:grid;place-items:center;font-size:14px;font-weight:800;background:#000c;color:#fff;scale:min(var(--inv, 1),2);transform-origin:left bottom}.badge.dmg{background:#c0392b;color:#fff;border:2px solid #ffb3a8}.badge.buff{background:var(--gold);color:#1b1405}.badge.might{color:var(--gold-2)}.dmg-float{position:absolute;left:50%;top:30%;translate:-50% 0;z-index:20;font-size:30px;font-weight:900;color:#ff6b5b;text-shadow:0 2px 6px #000;pointer-events:none}.card.marked{outline:3px dashed var(--danger);outline-offset:2px;box-shadow:0 0 12px var(--danger)}.card.flash{animation:card-flash .5s ease-in-out 3}@keyframes card-flash{50%{filter:brightness(1.6);box-shadow:0 0 22px var(--gold-2)}}.action-dock{left:1484px;top:575px;translate:0 -50%;width:112px;display:flex;flex-direction:column;gap:10px;transform-origin:right center;scale:min(var(--inv, 1),2);z-index:40}.action-main{display:flex;flex-direction:column;gap:10px}.btn-big{min-height:60px;padding:8px 10px;font-size:16px;text-transform:uppercase;letter-spacing:.04em;line-height:1.1;box-shadow:0 6px 18px #00000080}.action-icons{position:relative;display:flex;gap:8px;justify-content:space-between}.btn-icon{width:52px;height:52px;padding:0;font-size:24px;background:#1b2c47;border-color:#3b5784}.settings-pop{position:absolute;right:calc(100% + 10px);bottom:0;width:320px;background:#13213a;border:1px solid #3b5784;border-radius:10px;padding:6px;display:flex;flex-direction:column;gap:2px;box-shadow:0 10px 30px #0009}.toggle{display:flex;align-items:center;gap:10px;min-height:48px;padding:4px 10px;font-size:14px;color:var(--text);border-radius:8px;cursor:pointer}.toggle:hover,.menu-item:hover{background:#1b2c47}.menu-item{all:unset;box-sizing:border-box;display:flex;align-items:center;min-height:48px;padding:4px 10px;font-size:14px;color:var(--gold-2);border-radius:8px;cursor:pointer}.menu-item:focus-visible{outline:2px solid var(--gold-2)}.toggle input{width:22px;height:22px;accent-color:var(--teal)}.sidepanel{--sp-w: 320px;--br: rgba(216, 176, 90, .7);--bl: 12px;z-index:42;display:flex;flex-direction:column;min-height:0;color:var(--text);font-size:13px;background:linear-gradient(180deg,#0f2140,#0a172b)}.sp-side{flex:none;width:var(--sp-w);border-left:1px solid #2c4569}.sp-body{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;padding:10px;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.sp-body[hidden]{display:none}.sp-section{position:relative;display:flex;flex-direction:column;gap:8px;padding:12px;min-width:0;background-color:#13284a8c}.sp-section h2{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:#8fa7c6;font-weight:700}.sp-chain h2{color:var(--gold-2)}.sp-empty{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.sp-fold{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;width:100%;min-height:28px;cursor:pointer;text-transform:inherit;letter-spacing:inherit;color:inherit;font-weight:inherit;font-size:inherit}.sp-fold:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.sp-count{font-weight:600;letter-spacing:0;color:#6f87a8}.sp-caret{margin-left:auto;color:var(--gold)}.sp-activity.is-open{flex:1 1 220px;min-height:180px}.sp-activity .log{flex:1 1 0;min-height:0;max-height:46vh}.sp-x{min-height:32px;min-width:32px;padding:0 8px}.chain-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:flex-start;row-gap:6px}.chain-item{position:relative;border-radius:8px;animation:chain-in .22s ease-out;transition:opacity .15s ease,transform .15s ease,box-shadow .15s ease}.chain-top{flex:0 0 100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 8px 10px;border:1px solid rgba(80,120,170,.35);border-left:3px solid rgba(80,120,170,.5);background:#07141f80}.chain-item.is-next{border-left-color:var(--gold)}.chain-item.is-glow,.chain-item.is-result{border-color:var(--gold-2);border-left-color:var(--gold-2);background:#d8b05a1f;box-shadow:0 0 18px #f2d48a59}.chain-item.is-glow{animation:chain-glow .4s ease-in-out infinite alternate}.chain-item.is-out{opacity:0;transform:translate(28px)}@keyframes chain-in{0%{opacity:0;transform:translateY(-8px)}}@keyframes chain-glow{to{box-shadow:0 0 26px #f2d48aa6}}.chain-art{position:relative;width:min(100%,calc(min(44vh,400px)*.716));aspect-ratio:.716;flex:none}.chain-art .card{width:100%;height:100%;border-radius:12px;cursor:default;box-shadow:0 10px 26px #0009}.chain-art .card .card-face{border-radius:10px}.chain-art .card-text-tile{font-size:13px}.chain-badge{position:absolute;left:50%;bottom:14%;translate:-50% 0;max-width:92%;padding:5px 14px;border-radius:999px;font-size:18px;font-weight:800;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1b1405;background:var(--gold-2);border:2px solid #fff3d0;box-shadow:0 6px 16px #0009;animation:badge-pop .22s ease-out;z-index:4}.chain-badge.outcome-fizzled{background:#f0a49e;border-color:#fff}.chain-badge.outcome-partial{background:#f0c690}@keyframes badge-pop{0%{opacity:0;transform:scale(.6)}}.chain-cap{display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center;min-width:0;width:100%;font-size:13px}.chain-first{color:var(--gold-2);font-weight:700;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.chain-name{font-size:14px;line-height:1.2}.chain-ctrl{color:var(--muted);font-size:12px}.chain-targets{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:center;font-size:12px;color:var(--muted)}.chain-targets-label{text-transform:uppercase;letter-spacing:.08em;font-size:10px}.chain-under{flex:0 0 40px;height:134px;transition:transform .15s ease}.chain-under:hover,.chain-under:focus-within{z-index:40!important;transform:translateY(-6px)}.chain-under.is-glow,.chain-under.is-result{box-shadow:0 0 18px #f2d48a80}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cthumb{--tw: 36px;display:inline-block;position:relative;flex:none;width:var(--tw);aspect-ratio:.716;vertical-align:middle}.cthumb.is-btn{all:unset;box-sizing:border-box;display:inline-block;position:relative;flex:none;width:var(--tw);aspect-ratio:.716;vertical-align:middle;cursor:pointer;border-radius:5px}.cthumb.is-btn:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.cthumb .card{width:100%;height:100%;border-width:1px;border-radius:5px;cursor:inherit;box-shadow:0 2px 6px #00000080}.cthumb .card .card-face{border-radius:4px}.cthumb .card-badges,.cthumb .stack-badge,.cthumb .dmg-float,.cthumb .ability-badge{display:none}.cthumb .card-text-tile{font-size:6px;padding:2px}.cthumb .card-name{font-size:7px}.cthumb-sm{--tw: 34px}.cthumb-md{--tw: 48px}.cthumb-fan{--tw: 96px}.cthumb-fan .card{border-width:2px;border-radius:8px}.cthumb:hover .card{box-shadow:0 0 0 2px var(--gold-2),0 4px 12px #0009}.log-thumbs{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.chip .cthumb{--tw: 24px;margin-right:6px}.chip.chip-card{display:inline-flex;align-items:center;padding-left:6px}.decision-head{display:flex;align-items:center;gap:10px}.decision-head .cthumb{--tw: 64px}.assign-name .cthumb{--tw: 30px;margin-right:8px}.movebar-thumbs{display:flex;gap:4px;flex-wrap:wrap}.spot-layer{position:absolute;z-index:44;pointer-events:none;display:flex;align-items:center;justify-content:center}.spot{display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.spot-img{position:relative;width:100%;flex:none}.spot-img .card{width:100%;height:100%;border-radius:16px;border:3px solid var(--gold-2);cursor:default;box-shadow:0 0 0 2px #07141fcc,0 0 64px #f2d48a99,0 24px 50px #000000b3}.spot-img .card .card-face{border-radius:12px}.spot-img .card-text-tile{font-size:15px}.spot-cap{padding:3px 14px;border-radius:999px;background:#07141feb;border:1px solid var(--gold);color:var(--gold-2);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.spot-targets{display:flex;gap:6px;padding:5px 8px;border-radius:10px;background:#07141fd9;border:1px solid #3b5784}.spot-badge{position:absolute;left:50%;bottom:12%;translate:-50% 0;padding:6px 18px;border-radius:999px;font-size:24px;font-weight:900;white-space:nowrap;color:#1b1405;background:var(--gold-2);border:3px solid #fff3d0;box-shadow:0 8px 22px #000000b3;z-index:4}.spot-badge.outcome-fizzled{background:#f0a49e}.spot-badge.outcome-partial{background:#f0c690}.chain-prio{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.chain-prio li{padding-left:10px;border-left:2px solid transparent}.chain-prio .has-prio{color:var(--gold-2);font-weight:700;border-left-color:var(--gold-2)}.chain-prio .did-pass{color:#8fa7c6;border-left-color:#3b5784}.chain-hint{margin:0;color:var(--muted);font-size:12px;line-height:1.35}.sp-pass{position:sticky;bottom:0;z-index:45;box-shadow:0 -8px 12px #0a172be6;width:100%;min-height:52px;font-size:14px;letter-spacing:.02em;text-transform:none}.chain-closed{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--gold);border-radius:6px;background:#d8b05a1a;animation:chain-in .22s ease-out}.chain-closed header{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--gold-2)}.chain-closed ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:2px;font-size:12px}.chain-closed p{margin:0;font-size:12px;color:var(--text)}.sp-decision{--br: rgba(42, 166, 160, .85)}.sp-decision h2{color:#7fd6d1}.sp-decision .choice,.decision-card{background:#07141f80;border:1px solid rgba(42,166,160,.4);border-radius:6px;padding:10px;display:flex;flex-direction:column;gap:8px}.decision-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}.decision-card h3{font-size:14px;color:var(--gold-2)}.sp-decision .movebar{border-width:1px;border-radius:6px;background:#07141f80}.sp-decision .btn{min-height:44px;padding:6px 12px}.sp-decision .zone-empty,.sp-decision .target-picker legend{font-size:12px}.log{list-style:none;margin:0;padding:0 2px 0 0;overflow-y:auto;display:flex;flex-direction:column;gap:5px;font-size:12px;line-height:1.35}.log li{padding:2px 0 5px 8px;border-left:2px solid #2f8f6a;border-bottom:1px solid #1b2c47}.log li.manual{color:var(--gold-2);border-left-color:var(--gold)}.log li[data-type=chainClosed],.log li[data-type=chainResult]{border-left-color:var(--gold-2)}.log li[data-type=chainClosed]{font-weight:600}.log-time{color:#6f87a8;font-size:11px;margin-right:6px}.log .chip{min-height:0;padding:0 6px;font-size:11px}.sp-tab{position:fixed;top:0;right:0;bottom:0;width:min(300px,46vw);transform:translate(100%);transition:transform .22s ease;border-left:1px solid #2c4569;box-shadow:-10px 0 30px #00000080}.sp-tab.is-open{transform:none}.sp-sheet{position:fixed;left:0;right:0;bottom:0;max-height:66vh;max-height:66dvh;transform:translateY(100%);transition:transform .22s ease;border-top:1px solid #2c4569;box-shadow:0 -10px 30px #00000080}.sp-sheet.is-open{transform:none}.sp-handle{position:absolute;z-index:2;min-height:44px;min-width:36px;padding:6px 8px;border:1px solid var(--gold);background:#0f2140;color:var(--gold-2);font:inherit;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 14px #00000080}.sp-handle.is-busy,.sp-handle.has-decision{background:var(--gold);color:#1b1405}.sp-tab .sp-handle{left:-37px;top:50%;translate:0 -50%;writing-mode:vertical-rl;border-right:none;border-radius:10px 0 0 10px;min-height:96px}.sp-sheet .sp-handle{right:12px;top:-45px;border-bottom:none;border-radius:10px 10px 0 0}.card.hl{outline:3px solid var(--gold-2);outline-offset:2px;box-shadow:0 0 18px var(--gold-2);z-index:5}.zoom-layer{position:fixed;inset:0;z-index:70;pointer-events:none}.zoom-backdrop{pointer-events:auto;background:#00000059}.zoom{position:absolute;right:16px;bottom:16px;display:flex;flex-direction:row-reverse;gap:12px;align-items:flex-end;max-width:calc(100vw - 32px)}.zoom-img{flex:none;height:min(50vh,560px);aspect-ratio:.716;--card-w: 100%;--card-h: 100%}.zoom-img .card{width:100%;height:100%;border-radius:16px;border-width:3px;box-shadow:0 0 0 2px #07141fcc,0 20px 50px #000000bf;cursor:default}.zoom-img .card .card-face{border-radius:13px}.zoom-img .card-text-tile{font-size:15px}.zoom-landscape .zoom-img{aspect-ratio:1.396;height:min(38vh,400px)}.zoom-info{width:230px;max-height:min(50vh,560px);overflow-y:auto;background:#0d1a2ef5;border:1px solid #3b5784;border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.zoom-info header{display:flex;justify-content:space-between;align-items:center;gap:8px}.zoom-info h2{color:var(--gold-2);font-size:17px}.zoom:not(.zoom-pinned) .card-rules-full{display:none}.zoom-pinned{pointer-events:auto}.zoom-pinned .zoom-info{width:290px}.has-side .zoom{right:calc(var(--sp-w, 320px) + 16px);max-width:calc(100vw - var(--sp-w, 320px) - 32px)}@media(max-width:640px){.zoom{inset:auto 16px 12px;flex-direction:column;align-items:center}.zoom-img{height:min(44vh,380px)}.zoom-info{width:100%;max-height:30vh}}@media(max-height:460px){.zoom{inset:8px 16px auto auto;flex-direction:row;align-items:flex-start}.zoom-img{height:calc(100vh - 24px);height:calc(100dvh - 24px)}.zoom-info{max-height:calc(100dvh - 24px);width:260px}}.sheet-backdrop{position:fixed;inset:0;z-index:50;background:#0009;display:flex;align-items:flex-end;justify-content:center;animation:fade-in .2s ease-out}.sheet{width:100%;max-width:560px;max-height:80vh;overflow-y:auto;background:var(--panel);border-top:2px solid var(--gold);border-radius:16px 16px 0 0;padding:14px 16px 24px;display:flex;flex-direction:column;gap:8px;animation:sheet-up .25s ease-out}.sheet-wide{max-width:760px}.inspect-group h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:4px 0}.sheet header{display:flex;justify-content:space-between;align-items:center;gap:8px}.sheet h2{color:var(--gold-2);font-size:18px}.sheet .zone-cards{display:flex;flex-wrap:wrap;gap:8px;--card-w: 96px;--card-h: 134px}@keyframes sheet-up{0%{transform:translateY(40px);opacity:0}}@keyframes fade-in{0%{opacity:0}}.zone-empty{margin:0;color:var(--muted);font-size:13px;opacity:.7}.stats{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0}.stats dt{color:var(--muted)}.stats dd{margin:0}.card-rules-full{white-space:pre-wrap;margin:0}.reason{margin:0;color:var(--danger);font-weight:600}.reason.ok{color:var(--teal)}@media(min-width:600px){.setup-grid{grid-template-columns:1fr 1fr}}@media(max-width:760px),(max-height:500px){.statusbar{padding:3px 10px}.statusbar-line{display:none}.statusbar-hint{font-size:13px}}.choice{background:var(--panel-2);border:1px solid var(--gold);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px}.choice p{margin:0}.assign-row,.manual-row{display:flex;align-items:center;gap:8px}.quick-effects{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.quick-effects .btn{min-height:44px}.quick-effects input[type=number]{width:64px;text-align:center}.assign-name{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.assign-row input[type=number],.manual-row input[type=number]{width:72px;flex:0 0 72px;text-align:center}input[type=number]{min-height:44px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:10px;font:inherit}.movebar{background:var(--panel);border:2px solid var(--teal);border-radius:var(--radius);padding:8px 12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.movebar>span:first-child{flex:1 1 100%;font-weight:600}.movebar-hint{flex:1 1 auto;color:var(--muted);font-size:13px}.dest-list,.manual-grid{display:flex;flex-wrap:wrap;gap:8px}.manual-group{border:1px solid var(--line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:8px;min-width:0;margin:0}.manual-group legend{color:var(--gold-2);padding:0 6px}.payment{margin:0}.chip{font:inherit;font-size:13px;min-height:44px;padding:4px 12px;border-radius:999px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer}.chip-on{background:var(--teal);color:#07141f;border-color:var(--teal);font-weight:700}.target-picker{border:1px solid var(--line);border-radius:10px;padding:8px;margin:0;display:flex;flex-direction:column;gap:6px}.target-picker legend{color:var(--gold-2);font-weight:600;padding:0 4px}.target-group-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.target-chips{display:flex;flex-wrap:wrap;gap:6px}.auto-pass{display:flex;align-items:center;gap:8px;min-height:44px;font-size:13px;color:var(--muted)}.auto-pass input{width:22px;height:22px}@media(prefers-reduced-motion:reduce){.card.legal,.brk.drop-ok,.card.flash{animation:none}.card.flash{outline:4px solid var(--gold-2);outline-offset:2px;box-shadow:0 0 20px var(--gold-2)}.fan-slot,.sp-tab,.sp-sheet,.chain-item{transition:none}.chain-item,.chain-item.is-glow,.chain-badge,.chain-closed{animation:none}.sheet,.sheet-backdrop,.screen-in{animation:fade-in .15s}}.deck-filter{width:100%;min-height:44px}.deck-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.deck-card{width:100%;min-height:64px;display:flex;gap:10px;align-items:center;text-align:left;background:var(--panel);color:inherit;border:1px solid var(--line);border-radius:var(--radius);padding:8px;cursor:pointer}.deck-thumb{width:44px;height:62px;object-fit:cover;border-radius:4px;flex:none;background:var(--line)}.deck-meta{display:flex;flex-direction:column;min-width:0;font-size:13px;overflow-wrap:anywhere}.deck-credit{font-size:13px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.deck-credit a{display:inline-flex;align-items:center;min-height:44px}.transport-kind{font-size:13px;color:var(--gold-2)!important}.banner{background:var(--danger);color:#fff;padding:10px 14px;border-radius:10px;font-weight:600;margin:8px 6px;display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between;overflow-wrap:anywhere}.banner-info{background:var(--panel-2);color:var(--text);border:1px solid var(--gold);font-weight:400}.banner-warn{background:var(--panel);color:var(--gold-2);border:1px solid var(--gold-2);font-weight:400}.lobby-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.lobby-head h2{margin:0}.game-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.game-list li{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.game-list li>span{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.game-id{font-size:11px;color:var(--muted);overflow-wrap:anywhere;word-break:break-all}.open-by-id{display:flex;align-items:flex-end;gap:8px;margin-top:12px}.open-by-id .field{flex:1;min-width:0}.open-by-id input{width:100%;min-height:44px}.online-screen{text-align:center;align-items:center}@media(min-width:720px){.start-choices{grid-template-columns:1fr 1fr}}.stars{color:var(--gold-2);letter-spacing:1px}.stars-off{opacity:.25}.puzzle-done{color:#6fcf8f;font-weight:700}.puzzle-intro{padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line);font-size:13px;line-height:1.35;max-height:38vh;overflow-y:auto}.puzzle-intro header{display:flex;gap:10px;align-items:center}.puzzle-intro header .btn{margin-left:auto}.puzzle-intro p{margin:4px 0}.puzzle-goal{color:var(--gold-2);font-weight:600}.puzzle-hints{margin:4px 0;padding-left:20px}.puzzle-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:6px}.puzzle-result{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:60;width:min(92vw,520px);max-height:80vh;overflow-y:auto;padding:18px;background:var(--panel);border:2px solid var(--gold);border-radius:var(--radius);box-shadow:0 12px 40px #0009}.puzzle-result h2{margin:0 0 8px;color:var(--gold-2)}.puzzle-failed{border-color:#c0605a}.puzzle-failed h2{color:#e8928c}.ability-badge{position:absolute;left:3%;top:3%;padding:1px 5px;border-radius:8px;font-size:10px;font-weight:700;background:var(--teal);color:#04121a;pointer-events:none}.abilities{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px}.ability{display:flex;flex-wrap:wrap;align-items:center;gap:8px;border:1px solid var(--teal);border-radius:var(--radius);padding:8px}.ability-text{flex:1 1 180px}.ability .btn{min-height:44px;min-width:44px}.ability .reason{flex:1 1 100%;margin:0}.goal-chip{display:inline-block;margin-right:6px;padding:0 9px;border-radius:999px;border:1px solid var(--gold);background:#07141f99;font-size:11px;font-weight:700;color:var(--gold-2);vertical-align:1px}.turn-counter{margin-right:6px;font-weight:700;color:var(--text)}.rival-acting{color:var(--muted);font-style:italic;font-size:12px}.puzzle-question-backdrop{align-items:center;padding:12px}.puzzle-question{border:2px solid var(--gold);border-radius:16px;max-width:640px}.puzzle-question p{margin:0;line-height:1.4}.q-options{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.q-option{flex:1 1 120px;max-width:160px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px;border-radius:8px;border:2px solid var(--line);background:#07141f99;color:var(--text);font:inherit;font-size:13px;cursor:pointer;min-height:44px}.q-option:hover{border-color:var(--gold)}.q-option:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.q-option.is-wrong{border-color:#c0605a}.q-option.is-right,.q-option.is-answer{border-color:#6fcf8f}.q-art{width:100%;max-width:120px;aspect-ratio:5 / 7;object-fit:cover;border-radius:6px}.q-art-empty{display:block;background:#07141fcc;border:1px solid var(--line)}.q-feedback{min-height:1.4em}.q-right strong{color:#6fcf8f}.q-bad strong{color:#e8928c}.extra-cost{display:flex;flex-direction:column;gap:6px}.extra-cost .btn{white-space:normal;text-align:left}.cast-hint{margin:0;padding:6px 10px;border-left:3px solid var(--gold-2);background:#d8b05a1f;font-size:13px;line-height:1.35;color:var(--gold-2)}.chain-wait{padding:6px 10px;border-left:3px solid #3b5784;background:#3b578433;color:var(--text);font-weight:600}.chain-wait-who{color:var(--muted);font-weight:400}.statusbar-pill{flex-direction:column;align-items:center;gap:0;padding:5px 22px 7px;border-radius:18px;max-width:min(94%,900px);text-align:center}.statusbar-pill .statusbar-line{font-size:13px;line-height:1.25;color:var(--muted)}.statusbar-pill .statusbar-hint{max-width:100%;font-size:19px;line-height:1.25;font-weight:800;color:#fff4d2}.chain-first{font-size:13px}.chain-name{font-size:16px}.chain-ctrl,.chain-hint,.chain-prio,.sp-empty,.chain-closed ul,.chain-closed p,.movebar-hint,.reason{font-size:14px}.chain-closed header strong{font-size:16px}.chain-targets-label{font-size:12px}.sp-section h2{font-size:13px}.cast-hint{font-size:16px;font-weight:700;line-height:1.3}.spot-cap{font-size:18px;letter-spacing:.02em;text-transform:none;padding:5px 18px}.toast{font-size:16px}.log{font-size:14px;gap:3px}.log>li{padding:0;border-left-width:3px}.log>li.by-me{border-left-color:var(--teal)}.log>li.by-foe{border-left-color:var(--danger)}.log>li[data-type=chainResult]{border-left-color:var(--gold-2)}.log-main{display:flex;align-items:baseline;gap:8px;width:100%;min-height:32px;padding:5px 4px 5px 8px;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.log-main:hover{background:#ffffff0a}.log-text{flex:1 1 auto;min-width:0;line-height:1.3}.log-time{font-size:12px;flex:none}.log-more{flex:none;padding:0 7px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line);color:var(--gold-2);font-size:12px;font-weight:700}.log .cn{color:var(--gold-2);font-weight:700}.log .who-me{color:#6fd8d1;font-weight:700}.log .who-foe{color:#f1928b;font-weight:700}.log-details{list-style:none;margin:0 0 6px 10px;padding:0 0 0 10px;border-left:1px dashed var(--line);display:flex;flex-direction:column;gap:3px;font-size:13px;color:#b9c9d8}.log-details .chip{margin-left:6px;font-size:11px;opacity:.8}.log>li>.log-thumbs{padding:0 8px 6px}.turn-banner-wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:70}.turn-banner{display:flex;flex-direction:column;align-items:center;gap:2px;max-width:88vw;padding:14px 44px;border-radius:18px;text-align:center;background:#07141fed;border:2px solid var(--gold);box-shadow:0 10px 40px #0009;animation:tb-in 1.2s ease both}.turn-banner strong{font-size:36px;line-height:1.15;color:#fff4d2}.turn-banner span{font-size:20px;font-weight:700;color:var(--gold-2)}.tb-turn-me{border-color:var(--teal)}.tb-turn-foe{border-color:var(--danger)}.tb-score{border-color:var(--gold-2)}@keyframes tb-in{0%{opacity:0;transform:scale(.85)}14%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0}}@keyframes tb-static{0%,90%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.turn-banner{animation:tb-static 1.2s linear both}}@media(max-width:760px),(max-height:500px){.statusbar-pill{padding:3px 14px 4px}.statusbar-pill .statusbar-line{display:none}.statusbar-pill .statusbar-hint{font-size:16px}.turn-banner{padding:8px 28px}.turn-banner strong{font-size:26px}.turn-banner span{font-size:16px}.log-details{font-size:13px}}.ctx-menu{--br: var(--gold-2);--bl: 14px;position:fixed;z-index:90;width:max-content;min-width:236px;max-width:min(340px,calc(100vw - 16px));max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;overscroll-behavior:contain;padding:8px 6px 6px;display:flex;flex-direction:column;gap:1px;background-color:#0b1a33;border:1px solid rgba(216,176,90,.55);border-radius:6px;box-shadow:0 14px 40px #000000b3,0 0 0 1px #07141fe6;transform-origin:top left;color:var(--text);font-size:14px}.cm-title{padding:2px 10px 6px;color:var(--gold-2);font-weight:800;font-size:13px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid rgba(216,176,90,.3);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cm-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:8px 4px 2px;padding:4px 6px 2px;border-top:1px solid rgba(216,176,90,.3);color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.cm-head em{font-style:normal;font-weight:500;letter-spacing:0;text-transform:none;color:var(--muted);font-size:11px}.cm-item{all:unset;box-sizing:border-box;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:0;width:100%;min-height:44px;padding:8px 10px;border-radius:6px;color:var(--text);font-size:15px;cursor:pointer;align-content:center}.cm-item:hover,.cm-item:focus-visible{background:#1b2c47;outline:1px solid var(--gold-2);outline-offset:-1px}.cm-label{flex:1 1 auto;font-weight:600}.cm-hint{color:var(--gold-2);font-size:12px}.cm-reason{flex:1 1 100%;color:var(--muted);font-size:12px;line-height:1.25}.cm-item.is-off{opacity:.62;cursor:not-allowed}.cm-item.is-off:hover{background:transparent;outline-color:#8fa7b699}.cm-nested{padding-left:26px;background:#ffffff08}.cm-sub .cm-caret{color:var(--gold)}.cm-sub.is-open{color:var(--gold-2)}.cm-custom{padding:2px 4px}.cm-step{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:44px;padding:4px 6px;font-weight:600}.cm-step output{min-width:24px;text-align:center;font-weight:900;font-size:18px;color:var(--gold-2)}.cm-stepbtn{all:unset;box-sizing:border-box;width:40px;height:40px;display:grid;place-items:center;border-radius:8px;border:1px solid #3b5784;background:#1b2c47;color:var(--gold-2);font-size:20px;font-weight:800;cursor:pointer}.cm-stepbtn:disabled{opacity:.35;cursor:default}.cm-stepbtn:focus-visible,.cm-go:focus-visible{outline:2px solid var(--gold-2)}.cm-go{all:unset;box-sizing:border-box;min-height:40px;padding:0 14px;display:inline-grid;place-items:center;border-radius:8px;background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1b1405;font-weight:800;cursor:pointer;margin-left:auto}.cm-go[aria-disabled=true]{opacity:.5;cursor:not-allowed}@media(pointer:coarse),(max-height:500px){.cm-item{min-height:46px}}.pile-art{position:absolute;inset:0;display:block}.pile-hit{all:unset;position:absolute;inset:-4px;z-index:4;cursor:pointer;border-radius:10px}.pile-hit:focus-visible{outline:3px solid var(--gold-2)}.pile{transition:filter .15s}@media(hover:hover){.pile.is-live:hover,button.pile:hover{filter:drop-shadow(0 0 10px rgba(242,212,138,.9)) brightness(1.08)}}.pile.is-live:focus-within{filter:drop-shadow(0 0 10px rgba(242,212,138,.9))}.sheet-backdrop.center{align-items:center;padding:12px}.viewer{--br: var(--gold);--bl: 18px;background-color:#0e2038;width:min(960px,100%);max-width:960px;max-height:min(90vh,900px);max-height:min(90dvh,900px);border-top:0;border-radius:12px;border:1px solid rgba(216,176,90,.5);box-shadow:0 18px 60px #000000b3;padding:14px 18px 16px}.viewer-note{margin:0;color:var(--muted);font-size:13px}.viewer-sub{color:var(--gold);font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:6px 0 2px}.viewer-grid,.look-row,.search-grid{--card-w: 132px;--card-h: 184px}.viewer .zone-cards.viewer-grid{gap:12px;justify-content:flex-start}.vtile-wrap{position:relative;display:inline-block}.vtile{all:unset;box-sizing:border-box;display:block;position:relative;width:var(--card-w);height:var(--card-h);cursor:pointer;border-radius:10px;transition:transform .12s}.vtile .card{width:100%;height:100%;cursor:pointer}.vtile:hover,.vtile:focus-visible{transform:translateY(-4px)}.vtile:hover .card,.vtile:focus-visible .card{box-shadow:0 0 0 2px var(--gold-2),0 0 22px #f2d48a8c}.vtile:focus-visible{outline:2px solid var(--gold-2);outline-offset:3px}.look-row{display:flex;flex-wrap:wrap;gap:14px;margin:0;padding:4px 0 6px;list-style:none}.look-card{list-style:none;display:flex;flex-direction:column;align-items:center;gap:6px}.look-pos{position:absolute;left:-6px;top:-8px;min-width:28px;height:28px;padding:0 6px;display:grid;place-items:center;border-radius:14px;background:var(--gold-2);color:#1b1405;font-weight:900;border:2px solid #fff3d0;z-index:3}.look-ctl{display:flex;flex-wrap:wrap;justify-content:center;gap:4px;max-width:var(--card-w)}.look-ctl .btn{min-height:44px;padding:4px 10px;font-size:13px}.search-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px 12px;margin:0;padding:0;list-style:none}.viewer-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.viewer-filter input,.viewer-filter select{min-height:44px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font:inherit}.viewer-filter input{flex:1 1 160px}.viewer-count{color:var(--muted);font-size:13px}.viewer-foot{position:sticky;bottom:-16px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 0 0;margin-top:4px;background:linear-gradient(0deg,#0e2038 70%,transparent)}.shuffle-ask{display:flex;flex-wrap:wrap;align-items:center;gap:8px}@media(max-width:760px),(max-height:500px){.viewer-grid,.look-row,.search-grid{--card-w: 96px;--card-h: 134px}.search-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.viewer{padding:10px 12px 12px;max-height:96dvh}.look-row{gap:10px}}@media(prefers-reduced-motion:reduce){.vtile,.pile{transition:none}.vtile:hover,.vtile:focus-visible{transform:none}}@media(max-height:900px){.look-row{--card-w: 108px;--card-h: 151px;gap:12px}.look-ctl{max-width:calc(var(--card-w) + 44px);gap:3px}.look-ctl .btn{min-height:40px;min-width:40px;padding:2px 8px;font-size:12px}.viewer-sub{margin:2px 0 0}.viewer{gap:6px}}.viewer>:last-child:not(.viewer-foot){padding-bottom:4px}.cm-title{position:sticky;top:-8px;z-index:1;background:#0b1a33}@media(max-height:500px){.ctx-menu{font-size:13px;padding-top:6px}.cm-item{min-height:40px;padding:4px 10px;font-size:14px}.cm-head{margin-top:4px}.cm-reason{font-size:11px}}.badge.temp{background:#1b1405eb;color:var(--gold-2);border:2px dashed var(--gold)}.btn-hand{height:44px;padding:0 14px;font-size:15px;font-weight:700;white-space:nowrap;background:#1b2c47;border-color:#3b5784}.btn-hand:disabled{opacity:.5}.zone-add{position:absolute;left:12px;bottom:8px;z-index:6;width:44px;height:44px;border-radius:22px;border:2px dashed var(--gold);background:#081226c7;color:var(--gold-2);font-size:26px;font-weight:800;line-height:1;cursor:pointer;scale:var(--inv, 1);transform-origin:left bottom}.zone-add:hover,.zone-add:focus-visible{background:#283c64f2}.token-grid{display:flex;flex-wrap:wrap;gap:8px}.token-opt{display:grid;justify-items:center;gap:4px;min-width:64px;min-height:44px;padding:6px;border-radius:8px;border:2px solid transparent;background:#08122699;color:inherit;cursor:pointer}.token-opt.is-sel{border-color:var(--gold);background:#46370a8c}.token-name{font-size:12px;font-weight:700}.discard-hand{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.discard-pick{min-width:44px;min-height:44px;padding:3px;border-radius:8px;border:2px solid transparent;background:transparent;cursor:pointer}.discard-pick.is-sel{border-color:#ff8a7a;background:#c0392b59;transform:translateY(-3px)}.oog{--br: rgba(216, 176, 90, .55);position:relative;isolation:isolate;max-width:920px;padding:20px 16px 32px}.oog:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(rgba(140,170,220,.045) 1px,transparent 1px) 0 0 / 40px 40px,linear-gradient(90deg,rgba(140,170,220,.045) 1px,transparent 1px) 0 0 / 40px 40px,radial-gradient(70% 45% at 50% 0%,rgba(216,176,90,.13),transparent 70%),radial-gradient(90% 70% at 50% 40%,#183160,#0f2140 70%,var(--bg))}.oog:after{content:"";position:fixed;inset:10px;z-index:-1;pointer-events:none;--bl: 22px;background:linear-gradient(var(--br),var(--br)) top left / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) top left / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) top right / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) top right / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) bottom left / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) bottom left / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) bottom right / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) bottom right / 1.5px var(--bl) no-repeat}.oog :is(button,a,input,textarea,select):focus-visible,.oog .file-btn:focus-within{outline:2px solid var(--gold-2);outline-offset:2px}.oog .panel{background-color:#0b1b2eb8;border:0;border-radius:6px;padding:16px 14px}.oog .panel h2{color:var(--gold-2);font-size:17px;letter-spacing:.03em;display:flex;align-items:center;gap:8px}.oog input[type=text],.oog input:not([type]),.oog textarea{background:#07141fb3;border-color:#24506be6}.oog input:focus,.oog textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 2px #d8b05a59}.oog .btn:not(:disabled):hover{box-shadow:0 0 14px #d8b05a40}.oog .btn-primary:not(:disabled):hover{filter:brightness(1.06)}.oog .banner{margin:0;border-radius:6px}.oog .brand{text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 0 4px}.oog .brand h1{font-size:clamp(34px,11vw,56px);line-height:1.05;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(180deg,#fff1c9,var(--gold) 70%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 2px 14px rgba(216,176,90,.25))}.oog .brand p{margin:2px 0 0;color:var(--muted)}.brand-rift{display:flex;align-items:center;gap:10px;width:min(260px,70%);margin-bottom:6px}.brand-rift i{flex:1;height:1.5px;background:linear-gradient(90deg,transparent,var(--gold))}.brand-rift i:last-child{background:linear-gradient(270deg,transparent,var(--gold))}.brand-rift b{width:10px;height:10px;rotate:45deg;border:1.5px solid var(--gold-2);box-shadow:0 0 10px #f2d48a99}.oog .transport-kind{display:inline-block;margin-top:8px!important;padding:3px 12px;border:1px solid var(--gold);border-radius:999px;background:#07141f99;font-size:12px}.oog .transport-kind.kind-local{color:var(--muted)!important;border-color:var(--line)}.home{min-height:100vh;min-height:100dvh;justify-content:center;gap:28px}.start-choices{display:grid;gap:14px;grid-template-columns:1fr}.start-choice{position:relative;flex-direction:column;gap:4px;min-height:112px;padding:18px 16px 16px;border:0;border-radius:6px;--br: rgba(26, 18, 4, .55);font-size:18px;text-align:center;box-shadow:0 8px 24px #00000059;transition:box-shadow .15s}.start-choice:before{content:"";position:absolute;inset:6px;pointer-events:none;--bl: 14px;background:linear-gradient(var(--br),var(--br)) top left / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) top left / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) top right / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) top right / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) bottom left / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) bottom left / 1.5px var(--bl) no-repeat,linear-gradient(var(--br),var(--br)) bottom right / var(--bl) 1.5px no-repeat,linear-gradient(var(--br),var(--br)) bottom right / 1.5px var(--bl) no-repeat}.start-choice:not(:disabled):hover{box-shadow:0 12px 30px #00000073,0 0 18px #d8b05a4d}.start-choice .choice-icon{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.start-choice small{font-size:13px;font-weight:400;opacity:.8}.choice-progress{margin-top:4px;padding:1px 10px;border-radius:999px;background:#1b14052e;font-size:12px;font-weight:700}.back-row{padding-top:0}.setup-grid{display:grid;gap:16px;grid-template-columns:1fr}.seat-badge{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--gold);color:var(--gold-2);font-size:13px;font-weight:700}.deck-cover{--br: rgba(216, 176, 90, .5);margin:0;display:flex;gap:14px;align-items:stretch;padding:12px;background-color:#07141f8c;border-radius:4px;min-width:0}.cover-art{position:relative;flex:none;width:96px;aspect-ratio:5 / 7;border-radius:6px;overflow:hidden;background:var(--bg);box-shadow:0 6px 16px #00000080,0 0 0 1px #d8b05a59}.cover-img{width:100%;height:100%;object-fit:cover;display:block}.cover-skeleton{background:linear-gradient(135deg,#12304a,#0a1a2b)}.cover-skeleton.loading{background:linear-gradient(100deg,#12304a 30%,#1d4a6b,#12304a 70%) 0 0 / 200% 100%;animation:shimmer 1.3s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.cover-glyph{position:absolute;inset:0;display:grid;place-items:center;font-size:34px;color:#d8b05a73}.deck-cover figcaption{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1;font-size:13px;color:var(--muted);overflow-wrap:anywhere}.cover-name{color:var(--text);font-size:16px;line-height:1.2}.cover-legend{color:var(--gold-2)}.cover-badge{align-self:flex-start;margin-top:auto;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid currentColor}.badge-ok{color:var(--teal)}.badge-warn{color:var(--gold-2)}.badge-invalid{color:var(--danger)}.badge-empty,.cover-empty .cover-name{color:var(--muted)}.deck-actions{display:flex;gap:8px;flex-wrap:wrap}.deck-actions .btn{flex:1 1 160px}.start-row{display:flex;flex-direction:column;gap:8px;align-items:stretch}.start-hint{margin:0;text-align:center;color:var(--muted);font-size:13px}.sheet .deck-card{background:#07141f99;border-radius:6px;transition:border-color .15s}.sheet .deck-card:hover{border-color:var(--gold)}.sheet .deck-card:focus-visible,.sheet .deck-filter:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px}.sheet .deck-thumb{width:52px;height:73px;border-radius:4px;box-shadow:0 0 0 1px #d8b05a59}.sheet .muted{color:var(--muted);text-align:center;padding:18px 0}.game-list li{padding:8px 10px;border-radius:4px;background:#07141f80;border:1px solid rgba(36,80,107,.7)}.lobby .zone-empty{opacity:1;padding:6px 2px}.busy-note{display:flex;align-items:center;gap:10px;margin:0;padding:8px 12px;border-radius:6px;background:#07141fb3;border:1px solid var(--gold);color:var(--gold-2)}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(216,176,90,.3);border-top-color:var(--gold-2);animation:spin .8s linear infinite}@keyframes spin{to{rotate:360deg}}.online-screen{text-align:center;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;gap:18px}.online-screen h1{font-size:clamp(24px,7vw,36px)}.online-body{display:flex;flex-direction:column;gap:12px;align-items:center;max-width:520px;color:var(--muted)}.online-body p{margin:0}.online-body .game-id-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;color:var(--text)}.game-id-row .game-id{font-size:14px;color:var(--gold-2);padding:4px 8px;border:1px dashed var(--gold);border-radius:4px}.rift-orb{display:block;width:54px;height:54px;rotate:45deg;border:1.5px solid var(--gold-2);position:relative;box-shadow:0 0 22px #f2d48a59}.rift-orb:after{content:"";position:absolute;inset:10px;border:1.5px solid rgba(242,212,138,.6)}.orb-waiting,.orb-loading{animation:orb-pulse 1.8s ease-in-out infinite}.orb-error{border-color:var(--danger);box-shadow:0 0 22px #e0645c59}.orb-error:after{border-color:#e0645c99}@keyframes orb-pulse{50%{box-shadow:0 0 40px #f2d48ab3;scale:1.08}}.puzzle-progress{gap:8px}.progress-text{margin:0;color:var(--muted)}.progress-text strong{color:var(--gold-2);font-size:20px}.progress-bar{height:8px;border-radius:999px;background:#07141fcc;border:1px solid var(--line);overflow:hidden}.progress-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-2));transition:width .3s ease-out}.puzzle-filters{display:flex;flex-direction:column;gap:8px}.chip-row{display:flex;gap:6px;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:thin}.fchip{flex:none;min-height:44px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:#07141f99;color:var(--text);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;transition:border-color .15s}.fchip:hover{border-color:var(--gold)}.fchip[aria-pressed=true]{background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#1b1405;border-color:var(--gold);font-weight:700}.fchip-n{margin-left:4px;opacity:.7;font-size:11px}.filter-count{margin:0;color:var(--muted);font-size:13px}.empty-state{align-items:center;text-align:center;color:var(--muted)}.empty-state p{margin:0}.puzzle-cards{list-style:none;margin:0;padding:0;display:grid;gap:12px;grid-template-columns:1fr}.puzzle-card{--br: rgba(216, 176, 90, .45);width:100%;height:100%;min-height:112px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;text-align:left;padding:14px 16px;border:0;border-radius:4px;background-color:#0b1b2ec7;color:var(--text);cursor:pointer;font:inherit;transition:background-color .15s,box-shadow .15s}.puzzle-card:hover{background-color:#122c48e6;box-shadow:0 8px 22px #0006;--br: var(--gold-2)}.puzzle-card:focus-visible{outline:2px solid var(--gold-2);outline-offset:2px;--br: var(--gold-2)}.puzzle-card.is-done{background-color:#123430c7}.puzzle-card-head{display:flex;gap:10px;align-items:center;justify-content:space-between;width:100%}.puzzle-card-head strong{font-size:16px;color:var(--gold-2)}.puzzle-card-goal{font-size:13px;color:var(--muted)}.puzzle-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto}.puzzle-tag{padding:1px 9px;border-radius:999px;border:1px solid var(--line);background:#07141f99;font-size:11px;color:var(--muted)}.puzzle-done{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#6fcf8f2e;border:1px solid #6fcf8f;color:#6fcf8f;font-size:13px;font-weight:700}@media(min-width:640px){.start-choices{grid-template-columns:repeat(3,1fr)}.setup-grid,.puzzle-cards{grid-template-columns:1fr 1fr}.cover-art{width:112px}}@media(prefers-reduced-motion:reduce){.orb-waiting,.orb-loading,.spinner,.cover-skeleton.loading{animation:none}.start-choice,.puzzle-card,.sheet .deck-card{transition:none}}.bf-pick{align-items:center;text-align:center;gap:16px}.bf-hint,.bf-wait{color:var(--muted);margin:0}.bf-wait{color:var(--gold-2);font-weight:600}.bf-options{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;--card-w: 150px;--card-h: 210px}.bf-opt{all:unset;box-sizing:border-box;cursor:pointer;padding:10px;border-radius:12px;--br: var(--gold);transition:transform .15s,box-shadow .15s}.bf-opt .card{width:var(--card-h);height:var(--card-w)}.bf-opt:hover,.bf-opt:focus-visible{transform:translateY(-4px) scale(1.03);box-shadow:0 0 22px #f2d48a73;outline:none;--br: var(--gold-2)}.bf-opt.is-chosen{cursor:default;box-shadow:0 0 22px #f2d48a73}.start-options{display:flex;justify-content:center;margin:8px 0}.bf-option select{min-height:44px}.dice-overlay{position:fixed;z-index:70;left:50%;top:50%;translate:-50% -50%;width:min(92vw,560px);max-height:92vh;overflow:auto;display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 20px;background:#07141ff0;border:1px solid var(--gold);border-radius:14px;--br: var(--gold-2);text-align:center;box-shadow:0 12px 40px #0009}.dice-screen .dice-overlay{position:static;translate:none}.dice-overlay h2{color:var(--gold-2);font-size:20px}.dice-bfs{display:flex;gap:14px;justify-content:center;--card-w: 84px;--card-h: 118px}.dice-bf{margin:0;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;color:var(--muted);animation:dice-reveal .5s ease-out both}.dice-bf .card{width:var(--card-h);height:var(--card-w)}.dice-row{display:flex;gap:28px;justify-content:center}.die-box{display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:600}.die-who{color:var(--text)}.die{display:grid;place-items:center;width:84px;height:84px;border-radius:16px;background:linear-gradient(145deg,var(--panel-2),var(--panel));border:2px solid var(--gold);box-shadow:0 6px 16px #0000008c}.die-face{font-size:34px;font-weight:800;color:var(--gold-2);font-variant-numeric:tabular-nums}.die.rolling{animation:die-tumble 1s ease-out both}.is-winner .die{border-color:var(--gold-2);box-shadow:0 0 24px #f2d48a99}.dice-ties{margin:0;font-size:12px;color:var(--muted)}.dice-result{margin:0;font-weight:700;color:var(--gold-2)}.dice-wait{margin:0;color:var(--gold-2);font-weight:600}.dice-choice{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;animation:dice-choice-in .3s 1s ease-out both}.dice-choice .btn{min-height:52px;padding:12px 22px;font-size:16px}@keyframes die-tumble{0%{transform:translateY(-34px) rotate(-200deg) scale(.8)}60%{transform:translateY(4px) rotate(20deg) scale(1.05)}to{transform:none}}@keyframes dice-reveal{0%{opacity:0;transform:rotateY(90deg) scale(.85)}to{opacity:1;transform:none}}@keyframes dice-choice-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.die.rolling,.dice-bf,.dice-choice{animation:none}.bf-opt{transition:none}}
