:root{--bg: #101418;--panel: #1a2129;--panel-2: #222b36;--text: #dfe7ef;--muted: #8494a7;--accent: #e23636;--accent-2: #4a90d9;--ok: #3fa66a;--warn: #d9a04a;--danger: #d94a4a;--border: #32404f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,sans-serif}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1.2rem;background:var(--panel);border-bottom:1px solid var(--border)}.brand{font-weight:700;letter-spacing:.05em;color:var(--accent);text-transform:uppercase}.topbar nav{display:flex;gap:1rem;align-items:center}.topbar a{color:var(--text);text-decoration:none;padding:.2rem .5rem;border-radius:4px}.topbar a:hover{background:var(--panel-2)}main{flex:1;padding:1.2rem;max-width:1200px;margin:0 auto;width:100%}h2{margin-top:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1rem}.form{display:flex;flex-direction:column;gap:.8rem;max-width:480px}.form-row{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center}label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted)}input,select{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);padding:.5rem .7rem;font-size:1rem}button{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.5rem .9rem;cursor:pointer;font-size:.95rem}button:hover:not(:disabled){border-color:var(--accent-2)}button.primary{background:var(--accent);border-color:var(--accent);font-weight:600}button.danger{border-color:var(--danger);color:var(--danger)}button.linklike{background:none;border:none;color:var(--accent-2);padding:.2rem;text-decoration:underline}.pick-cards{display:flex;flex-wrap:wrap;gap:.6rem;align-items:flex-start}.pick-card{display:flex;flex-direction:column;align-items:center;gap:.3rem;background:none;padding:.4rem;max-width:120px;font-size:.8rem;line-height:1.25}.pick-card img{display:block;width:100px;height:auto;border-radius:5px}.pick-card-name{overflow-wrap:anywhere;text-align:center}.pick-manual{display:flex;flex-direction:column;gap:.6rem}button.bug-report-btn{display:inline-flex;align-items:center;gap:.35rem;min-height:30px;padding:.25rem .6rem;font-size:.95rem;color:var(--text, #dfe7ef);background:none;border:none;border-radius:6px}button.bug-report-btn:hover{color:#fff;background:#788ca02e}.user-menu{position:relative}.user-menu-btn{display:inline-flex;align-items:center;gap:.35rem}.user-menu-caret{font-size:.7em;opacity:.7;transition:transform .12s}.user-menu-btn[aria-expanded=true] .user-menu-caret{transform:rotate(180deg)}.user-menu-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:500;display:flex;flex-direction:column;min-width:9rem;padding:.3rem;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000073}.user-menu-panel button{text-align:left;background:none;border:none}a.button{display:inline-block;background:var(--accent);color:#fff;padding:.5rem .9rem;border-radius:6px;text-decoration:none;font-weight:600}.row{display:flex;gap:.8rem;align-items:center}.row.wrap{flex-wrap:wrap}.row.space-between{justify-content:space-between}.muted{color:var(--muted);font-size:.85rem}.error{color:var(--danger);white-space:pre-line}.victory{color:var(--ok);font-weight:700}.defeat{color:var(--danger);font-weight:700}.login-wrap{display:flex;justify-content:center;padding-top:4rem}.login{width:360px}.deck-list{display:flex;flex-direction:column;gap:.6rem;margin-top:1rem}.deck-invalid-badge{margin-left:.5rem;padding:.05rem .45rem;border:1px solid var(--danger);border-radius:999px;color:var(--danger);font-size:.75rem;white-space:nowrap}.deck-issues{margin:0 0 1rem;padding:.8rem 1rem;border:1px solid var(--danger);border-radius:.6rem;background:#dc3c3c14}.deck-issues strong{color:var(--danger)}.deck-issues ul{margin:.5rem 0 .25rem;padding-left:1.2rem}.deck-issues li{margin:.15rem 0;font-size:.85rem}.clickable{cursor:pointer}.clickable:hover{border-color:var(--accent-2)}.deck-layout{display:grid;grid-template-columns:400px minmax(0,1fr);gap:1.2rem;align-items:start}.deck-side{display:flex;flex-direction:column;gap:.8rem;position:sticky;top:1rem}.deck-back{margin:0}.deck-hero{padding:0;overflow:hidden}.dhp-header{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.9rem;row-gap:.1rem;padding:.7rem 1rem;border-bottom:1px solid rgba(0,0,0,.4)}.dhp-header strong{font-size:1.15rem}.dhp-header span{opacity:.92}.dhp-header.an-hero{background:linear-gradient(90deg,#46586e,#2e3b4b)}.dhp-header.an-aggression{background:linear-gradient(90deg,#a03030,#6e2020)}.dhp-header.an-justice{background:linear-gradient(90deg,#2c7a4b,#1d5433)}.dhp-header.an-leadership{background:linear-gradient(90deg,#a97e2f,#6e5220)}.dhp-header.an-protection{background:linear-gradient(90deg,#6a49a8,#452e70)}.dhp-header.an-basic{background:linear-gradient(90deg,#4a5666,#303947)}.dhp-stats-strip{gap:.4rem;padding:.6rem 1rem}.dhp-stat{display:inline-flex;align-items:center;gap:.3rem;padding:.1rem .5rem;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);font-weight:700}.dhp-body{display:flex;gap:1rem;padding:.9rem;align-items:stretch}.dhp-faces{display:flex;flex-direction:column;gap:.7rem;width:132px;flex-shrink:0}.dhp-face{border-radius:8px;line-height:0;transition:box-shadow .15s ease}.dhp-face:hover{box-shadow:0 0 0 2px var(--accent-2)}.dhp-face img{width:100%;border-radius:8px}.dhp-details{flex:1;min-width:0;display:flex;flex-direction:column;gap:.55rem}.dhp-label{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.dhp-detail{display:flex;flex-direction:column;gap:.15rem}.dhp-detail-key{font-size:.78rem;color:var(--muted);letter-spacing:.05em}.dhp-aspects{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.dhp-aspects .deck-chip{background:var(--panel-2)}.deck-main{min-width:0}.deck-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--panel);font-size:.85rem}.deck-cols{columns:2;column-gap:1.6rem}.deck-group{break-inside:auto;margin-bottom:1.4rem}.deck-group h3{margin:0 0 .4rem;padding-bottom:.25rem;border-bottom:1px solid var(--border);break-after:avoid}.deck-row{display:flex;align-items:center;gap:.5rem;padding:.25rem .3rem;border-radius:6px;cursor:pointer;break-inside:avoid}.deck-row:hover{background:var(--panel-2)}.deck-count{min-width:1.8rem;flex-shrink:0;text-align:right;font-weight:700;color:var(--muted)}.deck-thumb{display:inline-flex;flex-shrink:0}.deck-thumb img{border-radius:4px}.deck-row .deck-thumb img{width:42px}.cost-pill{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;border-radius:50%;border:1.5px solid currentColor;background:#ffffff0f;font-size:.82rem;font-weight:700}.cost-pill.empty{visibility:hidden}.deck-name{flex:1;min-width:0;font-weight:600}.deck-name .uniq{opacity:.9}.deck-pips{display:inline-flex;align-items:center;gap:2.5px;flex-shrink:0}.deck-pips .pip{display:inline-flex}.res-icon{vertical-align:-.14em;filter:drop-shadow(.7px 1.1px 0 rgba(28,12,7,.45))}.an-aggression{color:#ef6b60}.an-justice{color:#55b87a}.an-leadership{color:#d9a04a}.an-protection{color:#a985e8}.an-basic{color:#96a3b4}.an-pool{color:#e86bb0}.dot{width:.7rem;height:.7rem;border-radius:50%;display:inline-block;flex-shrink:0}span.dot.an-aggression{background:#ef6b60}span.dot.an-justice{background:#55b87a}span.dot.an-leadership{background:#d9a04a}span.dot.an-protection{background:#a985e8}span.dot.an-basic{background:#96a3b4}span.dot.an-pool{background:#e86bb0}span.dot.an-hero{background:#7d8ea3}@media (max-width: 1100px){.deck-layout{grid-template-columns:1fr}.deck-side{position:static}.deck-cols{columns:1}}@media (max-width: 520px){.dhp-body{flex-direction:column}.dhp-faces{flex-direction:row;width:auto}.dhp-face{flex:1}}.games-table{width:100%;border-collapse:collapse}.games-table th,.games-table td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border)}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.8rem}.encounter-zone,.player-zone{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.8rem;margin-bottom:.8rem}.player-zone.exhausted{opacity:.85}.entity{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:90px;position:relative}.entity.exhausted{filter:grayscale(.8) brightness(.7)}.entity img{border-radius:6px}.entity-label{font-size:.78rem;text-align:center}.entity-label .hp{color:var(--warn);font-weight:600}.entity-label .hp.low{color:var(--danger)}.entity-label .threat{color:var(--accent-2);font-weight:600}.entity-label .threat.high{color:var(--danger)}.crisis{color:var(--danger);font-size:.72rem;text-transform:uppercase}.badge{background:var(--accent-2);color:#fff;border-radius:4px;padding:0 .3rem;font-size:.68rem;margin-left:.3rem;vertical-align:middle}.hand{margin-top:.6rem;padding-top:.6rem;border-top:1px dashed var(--border)}.hand-card img{transition:transform .1s}.hand-card:hover img{transform:translateY(-6px)}.question-zone{position:sticky;bottom:0;background:#101418eb;padding:.6rem 0;border-top:1px solid var(--border)}.question{max-width:none}.choices{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}.choice{display:inline-flex;align-items:center;gap:.4rem;max-width:280px;text-align:left}.choice.selected{border-color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.choice.end-turn{border-color:var(--danger)}.choice.form{border-color:var(--warn)}.choice.play{border-color:var(--accent-2)}.choice.power{border-color:var(--ok)}.card-zoom{position:fixed;top:14vh;bottom:14vh;width:calc(50vw - 24px);display:flex;align-items:center;z-index:10000;pointer-events:none;animation:cardZoomFadeIn .15s ease-out}.card-zoom-left{left:12px;justify-content:flex-start}.card-zoom-right{right:12px;justify-content:flex-end}.card-zoom-frame{position:relative;display:flex;align-items:center;max-width:100%}.card-zoom .card-zoom-text{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;padding:clamp(12px,2vh,20px) clamp(12px,1.6vw,20px);background:#080f17db;border-radius:10px;color:#e8dcc8;font-size:13px;line-height:1.5;text-align:left;pointer-events:none}.card-zoom .card-zoom-text p{margin:8px 0 0;white-space:pre-line}.preview-anchor{position:fixed;left:50%;top:50%;width:1px;height:1px;pointer-events:none}.card-zoom-touch{left:50%;right:auto;top:50%;bottom:auto;width:min(88vw,620px);height:min(82vh,860px);transform:translate(-50%,-50%);justify-content:center;pointer-events:auto}.card-zoom-touch:before{content:"";position:fixed;top:-100vh;right:-100vw;bottom:-100vh;left:-100vw;background:#00000070;z-index:-1}.card-zoom img{display:block;width:auto;height:auto;max-width:100%;max-height:72vh;object-fit:contain;border-radius:12px;filter:drop-shadow(2px 4px 12px rgba(0,0,0,.75))}@keyframes cardZoomFadeIn{0%{opacity:0}to{opacity:1}}.log summary{cursor:pointer;color:var(--muted)}.log pre{max-height:300px;overflow:auto;background:var(--panel);padding:.6rem;border-radius:6px;font-size:.78rem}.log-line.log-major{font-weight:600;color:var(--warn)}.log-line.log-minor{opacity:.55}.boot-gate{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}.boot-gate[aria-busy=true]:before{content:"";width:28px;height:28px;border-radius:50%;border:3px solid #9aa4ad;border-top-color:transparent;animation:boot-spin .9s linear infinite}@keyframes boot-spin{to{transform:rotate(360deg)}}.lobby{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:1rem}.lobby .card{display:flex;flex-direction:column;gap:.7rem}.lobby-invite{display:flex;gap:.5rem}.lobby-invite input{flex:1;font-family:Cascadia Code,Consolas,monospace;font-size:.9rem}.lobby-rows{display:flex;flex-direction:column;gap:.4rem}.lobby-row{display:flex;align-items:center;gap:.6rem;padding:.45rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--panel-2)}.lobby-row.open{border-style:dashed;opacity:.65}.lobby-row .grow{flex:1}.tag-host{margin-left:.5rem;padding:.05rem .45rem;border:1px solid var(--warn);border-radius:999px;color:var(--warn);font-size:.75rem}.lobby-action{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;border-top:1px solid var(--border);padding-top:.7rem}.lobby-picker{display:flex;gap:.5rem;flex:1}.lobby-picker select{flex:1}.builder-layout{display:flex;gap:1rem;align-items:flex-start}.app:has(.builder-layout) main{max-width:1600px}.builder-side{flex:0 0 330px;display:flex;flex-direction:column;gap:.8rem;position:sticky;top:1rem}.builder-main{flex:1 1 52%;min-width:0;display:flex;flex-direction:column;gap:1rem}.builder-pool{flex:1 1 40%;min-width:0;display:flex;flex-direction:column;gap:.5rem;position:sticky;top:1rem;max-height:calc(100vh - 5.5rem)}.builder-pool-list{overflow-y:auto;min-height:4rem;border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:.4rem}.builder-search{flex:1;min-width:10rem}.builder-chips{display:flex;flex-wrap:wrap;gap:.35rem}.builder-chip{padding:.15rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--muted);font-size:.85rem;cursor:pointer}.builder-chip.active{border-color:var(--accent-2);color:var(--text)}.builder-pool-count{font-size:.8rem;margin:0}.builder-more{margin:.4rem auto;display:block}.builder-aspects{display:flex;flex-wrap:wrap;gap:.35rem}.aspect-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .6rem;border:1px solid var(--border);border-radius:999px;background:var(--panel-2);color:var(--muted);font-size:.85rem;cursor:pointer}.aspect-pill.active{border-color:var(--accent-2);color:var(--text)}.aspect-pill:disabled{opacity:.65;cursor:default}.builder-mode{font-size:.78rem;margin-top:.3rem}.builder-row .deck-pips{flex-shrink:0}.builder-controls{margin-left:auto;display:inline-flex;gap:.3rem;flex-shrink:0}.builder-btn{width:1.7rem;height:1.7rem;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);font-weight:700;line-height:1;cursor:pointer}.builder-btn:disabled{opacity:.35;cursor:default}button.builder-add:not(:disabled){color:var(--ok)}.builder-lock{margin-left:auto;flex-shrink:0;opacity:.75}.builder-size-ok{color:var(--ok)}.builder-size-low{color:var(--danger)}.builder-size-high{color:var(--warn)}.builder-legal{border:1px solid var(--ok);background:#3fa66a1f;border-radius:10px;padding:.6rem .8rem;color:var(--ok);font-weight:600}.builder-save{display:flex;flex-direction:column;gap:.5rem}.builder-save input{width:100%}.builder-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:1000}.builder-modal-card{max-width:26rem;box-shadow:0 .6rem 2rem #00000080}.hero-grid{margin-top:.8rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.8rem}.hero-card{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.6rem;cursor:pointer;text-align:center}.hero-card img{width:100%;border-radius:6px;margin-bottom:.3rem}.hero-pack{font-size:.75rem}.hotseat{position:fixed;left:16px;bottom:16px;z-index:900}.hotseat-fab{width:44px;height:44px;border-radius:50%;border:1px solid #46586c;background:#10141beb;font-size:20px;cursor:pointer;box-shadow:0 6px 18px #00000073;display:grid;place-items:center;padding:0}.hotseat-fab:hover{border-color:#6f8db4}.hotseat-panel{position:absolute;left:0;bottom:54px;width:min(300px,86vw);background:#10141bf7;border:1px solid #46586c;border-radius:12px;padding:12px 14px;box-shadow:0 16px 44px #0009}.hotseat-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.hotseat-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.hotseat-list li{display:flex;align-items:center;gap:6px}.hotseat-name{flex:1;text-align:left;background:none;border:1px solid transparent;border-radius:8px;padding:7px 10px;color:inherit;font-size:14px;cursor:pointer;display:flex;align-items:center;gap:8px}.hotseat-name:hover:not(:disabled){border-color:#46586c;background:#46586c33}.hotseat-name:disabled{cursor:default}.hotseat-list li.current .hotseat-name{color:#9fd6a8}.hotseat-here{font-size:11px;padding:1px 7px;border-radius:999px;background:#78c88c2e;border:1px solid rgba(120,200,140,.5)}.hotseat-remove{background:none;border:none;color:#8494a7;font-size:18px;cursor:pointer;padding:2px 8px;border-radius:6px}.hotseat-remove:hover{color:#ff9a92;background:#c85a5a26}.hotseat-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;width:100%}.hotseat-note{font-size:11px;margin:10px 0 0}.board-page{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:#0b0e12}.board-viewport{position:relative;flex:1;overflow:hidden;background:radial-gradient(1200px 700px at 50% 38%,#232a35,#14181f 55%,#0b0e12)}.board-camera{position:absolute;width:1920px;height:1080px;transform-origin:top left;will-change:transform}.board-scene{position:relative;width:100%;height:100%}.gcard{position:absolute;left:0;top:0;width:var(--w, 127px);height:var(--h, 176px);--s: 1;--rot: 0deg;--z: 2;transform:translate3d(var(--x),var(--y),0) rotate(var(--rot)) scale(var(--s));transition:transform calc(var(--anime-move-time, .3s)) ease-out,opacity .25s ease;z-index:var(--z);cursor:pointer}.gcard-motion{position:relative;width:100%;height:100%;isolation:isolate}.gcard-in{position:relative;width:100%;height:100%;z-index:1;rotate:0deg;transition:rotate .42s cubic-bezier(.19,1,.22,1),scale .2s cubic-bezier(.19,1,.22,1);will-change:rotate}.gcard-in.exhausted{rotate:90deg}.gcard:hover{z-index:120}.gcard:hover .gcard-in{scale:1.1}.gcard-img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px/4.2px;border:1px solid #000;outline:2px solid var(--pc, #555);outline-offset:-2px;box-shadow:0 2px 4px #00000073,0 6px 14px #00000059;-webkit-user-select:none;user-select:none}.gcard.k-hand:hover{transform:translate3d(var(--x),calc(var(--y) - 34px),0) rotate(var(--rot)) scale(1.14);z-index:140}.gcard.koed .gcard-in{filter:grayscale(1) brightness(.55)}.gcard.koed:after{content:"✕";position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:64px;font-weight:900;color:#d94a4ad9;text-shadow:0 0 8px #000;z-index:6}.gcard-back{width:100%;height:100%;border-radius:6px/4.2px;border:1px solid #000;outline:2px solid var(--pc, #555);outline-offset:-2px;box-shadow:0 4px 10px #00000080;background-position:center;background-size:cover}.gcard-back.encounter{background-image:url(/textures/encounter.jpg)}.gcard-back.player{background-image:url(/textures/player.jpg)}.gcard-back.villain{background-image:url(/textures/villain.jpg)}.gcard-back.empty-discard{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.03) 0 8px,transparent 8px 16px),radial-gradient(circle at 50% 40%,#1d2f5c,#101b38 60%,#0a1124);opacity:.75;border-style:dashed}.gcard.pile{cursor:default}.gcard-back.pile-layer{position:absolute;top:0;right:0;bottom:0;left:0}.gcard-img.pile-top{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.gcard-img.pile-top.pile-top-landscape{width:176px;height:127px;left:-24.5px;top:24.5px;object-fit:cover;transform:rotate(90deg)}.pile-count{position:absolute;top:-12px;right:-10px;min-width:30px;height:30px;padding:0 4px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#2c2c2c,#0d0d0d);border:2px solid #b8860b;color:gold;font-size:15px;font-weight:900;font-style:italic;text-shadow:0 1px 2px #000;z-index:4}.scene-dim{position:absolute;top:0;right:0;bottom:0;left:0;background:#04060a8c;z-index:40;pointer-events:none;animation:scene-dim-in .22s ease-out}@keyframes scene-dim-in{0%{opacity:0}to{opacity:1}}.gcard.hl-play,.gcard.hl-target,.gcard.hl-ability,.gcard.hl-pay,.gcard.hl-selected{z-index:50}.gcard.k-pile-deck,.gcard.k-pile-discard,.gcard.k-pile-sideDeck,.gcard.k-pile-sideDiscard{cursor:pointer}.gcard.k-pile-deck:hover .gcard-in,.gcard.k-pile-discard:hover .gcard-in,.gcard.k-pile-sideDeck:hover .gcard-in,.gcard.k-pile-sideDiscard:hover .gcard-in{scale:1.06}.board-action-btn{position:absolute;z-index:60;display:flex;align-items:center;gap:6px;height:44px;padding:0 16px;border-radius:22px;border:1px solid rgba(0,0,0,.7);font-size:15px;font-weight:700;letter-spacing:.04em;cursor:pointer;color:#f0e8d8;text-shadow:0 1px 1px rgba(0,0,0,.7);box-shadow:inset 0 1px #ffffff47,inset 0 -2px 4px #00000059,0 4px #00000073,0 7px 14px #00000080;transition:transform .1s,box-shadow .1s,filter .1s}.board-action-btn .abi-icon{font-size:17px}.board-action-btn:hover{filter:brightness(1.15)}.board-action-btn:active{transform:translateY(3px);box-shadow:inset 0 1px #fff3,inset 0 -2px 4px #0006,0 1px #00000073,0 3px 8px #0006}.board-action-btn.recover{background:linear-gradient(#4f9d6c,#2c6e45 55%,#1e5032)}.board-action-btn.endturn{background:linear-gradient(#b04b45,#8c312c 55%,#6b2320)}.board-action-btn.undo{background:linear-gradient(#4d7fae,#30568a 55%,#23406b)}.board-action-btn:disabled{opacity:.6;cursor:default}.board-action-btn:disabled:hover{filter:brightness(.9)}.board-action-btn:disabled:active{transform:none}.entity-menu{position:absolute;top:0;right:0;bottom:0;left:0;background:#04060a99;display:grid;place-items:center;z-index:310}.entity-menu-body{width:min(520px,92vw);max-height:70vh;overflow:auto;background:#10141bf7;border:1px solid #46586c;border-radius:12px;padding:14px 18px;box-shadow:0 20px 60px #0009}.entity-menu-choices{display:flex;flex-direction:column;gap:6px;padding-top:10px}.entity-menu-choices .choice{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#22303f;border:1px solid #3c5064;border-radius:8px;color:var(--text, #dfe7ef);font-size:14px;cursor:pointer;text-align:left}.entity-menu-choices .choice:hover{background:#2d4056;border-color:#5b8ab5}.entity-menu-choices .choice img{border-radius:3px}.pile-modal{position:absolute;top:0;right:0;bottom:0;left:0;background:#04060ab8;display:grid;place-items:center;z-index:300}.pile-modal-body{width:min(1100px,94vw);max-height:82vh;overflow:auto;background:#10141bf7;border:1px solid #46586c;border-radius:12px;padding:14px 18px;box-shadow:0 20px 60px #0009}.pile-grid{display:flex;flex-wrap:wrap;gap:8px;padding-top:10px}.pile-grid img{border-radius:4px}.gcard-tokens{position:absolute;top:-10px;left:-8px;display:flex;gap:2px;z-index:5}.tok{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;border:2px solid rgba(0,0,0,.75);color:#fff;font-size:13px;font-weight:900;text-shadow:0 1px 2px #000;box-shadow:0 2px 5px #00000080}.tok-stun{background:#e28c1d}.tok-confuse{background:#5b325e;font-style:italic}.tok-tough{background:#c4a951;color:#241d06}.tok-guard{background:#2e6da8}.tok-first{background:#d94a4a}.tok-accel{background:#b03030;font-size:11px}.gcard-topright{position:absolute;top:-9px;right:-8px;display:flex;gap:3px;z-index:5}.chip{min-width:24px;height:24px;padding:0 5px;display:grid;place-items:center;border-radius:12px;border:2px solid rgba(0,0,0,.75);font-size:13px;font-weight:900;color:#fff;text-shadow:0 1px 2px #000;box-shadow:0 2px 5px #00000080}.chip-stage{background:linear-gradient(#3c3c3c,#111);color:gold}.chip-count{background:linear-gradient(#128a94,#0b5560)}.chip-boost{background:linear-gradient(#c22a2a,#7c1414)}.chip.number-tag,.stat.number-tag,.tag.number-tag{position:relative}.number-tag{touch-action:manipulation;-webkit-touch-callout:none}.number-tag:before{content:attr(data-tag);position:absolute;left:50%;bottom:calc(100% + 8px);translate:-50% 3px;min-width:max-content;max-width:180px;padding:5px 8px;color:#fff5df;background:#070d13f5;border:1px solid rgba(226,180,98,.86);border-radius:5px;box-shadow:0 6px 18px #000000b8;font-size:11px;font-style:normal;font-weight:700;line-height:1.15;text-align:center;text-shadow:none;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;z-index:80;transition:opacity .12s ease,translate .12s ease,visibility 0s linear .36s}.number-tag:hover:before,.number-tag:focus-visible:before,.number-tag[data-tag-visible=true]:before{translate:-50% 0;opacity:1;visibility:visible;transition-delay:.36s,.36s,0s}.number-tag[data-tag-visible=true]:before{transition-delay:0s}.gcard-topright .number-tag:before,.pile-count.number-tag:before{top:calc(100% + 8px);bottom:auto;translate:-50% -3px}.gcard-topright .number-tag:hover:before,.gcard-topright .number-tag:focus-visible:before,.gcard-topright .number-tag[data-tag-visible=true]:before,.pile-count.number-tag:hover:before,.pile-count.number-tag:focus-visible:before,.pile-count.number-tag[data-tag-visible=true]:before{translate:-50% 0}.hp-badge{position:absolute;right:-12px;bottom:20px;display:inline-block;z-index:5}.hp-badge .stat-token{width:36px;height:36px;display:block;filter:drop-shadow(0 3px 4px rgba(0,0,0,.55))}.stat-token-num{fill:#fff;stroke:#1a1013;stroke-width:3px;paint-order:stroke;font-weight:900;font-style:italic;font-family:inherit}.hp-badge.low{animation:hp-low-pulse 1.1s ease-in-out infinite}@keyframes hp-low-pulse{0%,to{filter:drop-shadow(0 0 0 rgba(255,40,40,0))}50%{filter:drop-shadow(0 0 7px rgba(255,64,40,.95))}}.threat-bar{position:absolute;left:auto;right:-15px;bottom:10px;z-index:4}.threat-bar .stat-token{width:40px;height:40px;display:block;filter:drop-shadow(0 3px 4px rgba(0,0,0,.55))}.threat-bar.high .stat-token{animation:threat-high-pulse .9s ease-in-out infinite}@keyframes threat-high-pulse{0%,to{filter:drop-shadow(0 3px 4px rgba(0,0,0,.55))}50%{filter:drop-shadow(0 0 8px rgba(255,90,60,.95))}}.gcard-stats{position:absolute;left:3px;bottom:4px;display:flex;gap:3px;z-index:4}.stat{padding:1px 5px;border-radius:3px;background:#050505c7;border:1px solid rgba(255,255,255,.12);font-size:11px;font-weight:800;text-shadow:0 1px 1px #000}.stat-atk{color:#ff8d80}.stat-thw{color:#7db9ff}.stat-sch{color:#ffc46b}.gcard-schemetags{position:absolute;left:-8px;bottom:-8px;display:flex;gap:3px;z-index:5}.tag{min-width:24px;height:24px;padding:0 5px;display:grid;place-items:center;border-radius:12px;font-size:12px;font-weight:900;color:#fff;border:2px solid rgba(0,0,0,.75);box-shadow:0 2px 5px #00000080}.tag-crisis{background:linear-gradient(#7c14a0,#46075c)}.tag-hazard{background:linear-gradient(#947412,#5c4708)}.board-hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:200}.board-hud>*{pointer-events:auto}.hud-top{position:absolute;top:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:6px 14px;background:#0a0d12d1;border:1px solid var(--border, #32404f);border-radius:20px;font-size:13px;white-space:nowrap;box-shadow:0 4px 12px #0006}.hud-top .victory{color:#7be09a;font-weight:700}.hud-top .defeat{color:#ff6b5e;font-weight:700}.question-collapsed{position:absolute;left:14px;bottom:14px;display:flex;align-items:center;gap:10px;max-width:min(560px,60vw);padding:5px 14px;background:#0c0f14cc;border:1px solid #3a4a5c;border-radius:16px;font-size:12px;cursor:pointer;white-space:nowrap;overflow:hidden;box-shadow:0 4px 12px #00000059}.question-collapsed:hover{border-color:#5b8ab5}.question-collapsed .q-prompt{overflow:hidden;text-overflow:ellipsis;max-width:380px}.question-collapsed .q-selected-count{min-width:22px;height:22px;display:grid;place-items:center;border-radius:11px;background:#d94a4a;color:#fff;font-weight:700;font-size:12px}.board-hud .question{position:absolute;left:14px;bottom:52px;width:min(560px,92vw);max-height:46vh;overflow:auto;background:#0c0f14f0;border:1px solid #46586c;border-radius:10px;box-shadow:0 10px 30px #0000008c;padding:10px 14px}.board-hud .question .choices{display:flex;flex-wrap:wrap;gap:6px}.board-hud .question .choice{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#22303f;border:1px solid #3c5064;border-radius:6px;color:var(--text, #dfe7ef);font-size:13px;cursor:pointer;transition:background .12s,border-color .12s,transform .12s}.board-hud .question .choice:hover:not(:disabled){background:#2d4056;border-color:#5b8ab5;transform:translateY(-1px)}.board-hud .question .choice.selected{border-color:#d94a4a;box-shadow:0 0 0 1px #d94a4a}.board-hud .question .choice:disabled{opacity:.45;cursor:not-allowed}.board-hud .question .choice img{border-radius:3px}.payment-icons{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.payment-icon{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:#e8dbc2;font-size:12px}.payment-icon.missing{border-color:#d94a4a;color:#ffb8b8}.payment-icon.met{border-color:#60be7d99;color:#bdf0c9}.tutorial-toggle{width:36px;height:36px;border-radius:50%;border:1px solid rgba(224,162,63,.45);background:#16202adb;color:#f2dcae;font-weight:800;box-shadow:0 4px 14px #00000059}.tutorial-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:grid;place-items:center;background:#0000005c;pointer-events:auto}.tutorial-card{width:min(520px,calc(100vw - 32px));border:1px solid rgba(224,162,63,.42);border-radius:14px;background:#0b141df0;-webkit-backdrop-filter:blur(18px) saturate(130%);backdrop-filter:blur(18px) saturate(130%);box-shadow:0 20px 60px #00000094;padding:18px}.tutorial-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.tutorial-card p{line-height:1.7;color:#eadfc8}.tutorial-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.chat-widget{position:absolute;right:18px;bottom:18px;z-index:330;pointer-events:none}.chat-fab,.chat-panel{pointer-events:auto}.chat-fab{position:absolute;right:0;bottom:0;display:flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border-radius:50%;border:1px solid rgba(224,162,63,.5);background:linear-gradient(180deg,#283642eb,#0e161ef2);color:#f4e7c9;box-shadow:0 8px 24px #0000007a}.chat-unread{position:absolute;top:-4px;right:-4px;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#c33;color:#fff;font-size:11px;line-height:20px;font-weight:700}.chat-panel{position:absolute;right:0;bottom:58px;width:min(360px,calc(100vw - 36px));max-height:min(62vh,560px);display:flex;flex-direction:column;border:1px solid rgba(224,162,63,.38);border-radius:12px;background:#0a121ae0;-webkit-backdrop-filter:blur(16px) saturate(130%);backdrop-filter:blur(16px) saturate(130%);box-shadow:0 14px 40px #0000008c;overflow:hidden}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.chat-list{min-height:140px;max-height:300px;overflow-y:auto;padding:9px 12px}.chat-line{margin:5px 0;line-height:1.4;overflow-wrap:anywhere}.chat-name{color:#e9b85f;font-weight:700;margin-right:6px}.chat-line.spectator .chat-name{color:#9db1c4}.chat-line.spectator .chat-name:after{content:"👁";margin-left:4px;font-size:11px}.chat-text{white-space:pre-wrap}.chat-phrases{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-top:1px solid rgba(255,255,255,.07)}.chat-phrases button{padding:4px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:#e8dbc2;font-size:12px}.chat-compose{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.08)}.chat-compose textarea{resize:none;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#0000003d;color:#f4e7c9;padding:8px;font:inherit}@media (max-width: 1450px){.chat-widget{right:12px;bottom:12px}.chat-panel{width:min(330px,calc(100vw - 24px))}}.voice-widget{position:absolute;right:78px;bottom:18px;z-index:330;pointer-events:none}.voice-fab,.voice-panel{pointer-events:auto}.voice-fab.on{border-color:#5ec582bf;color:#7be3a6}.voice-fab.on.talking{animation:voice-glow 1.2s ease-in-out infinite}@keyframes voice-glow{0%,to{box-shadow:0 8px 24px #0000007a}50%{box-shadow:0 0 18px #5ec5828c}}.voice-fab-muted{position:absolute;top:-6px;right:-6px;font-size:13px}.voice-panel{position:absolute;right:0;bottom:58px;width:min(280px,calc(100vw - 36px));display:flex;flex-direction:column;border:1px solid rgba(224,162,63,.38);border-radius:12px;background:#0a121ae0;-webkit-backdrop-filter:blur(16px) saturate(130%);backdrop-filter:blur(16px) saturate(130%);box-shadow:0 14px 40px #0000008c;overflow:hidden}.voice-error{margin:0;padding:8px 12px;color:#e0908d;font-size:12px;line-height:1.45;border-bottom:1px solid rgba(255,255,255,.08)}.voice-join{display:flex;flex-direction:column;gap:10px;padding:12px}.voice-join .muted{margin:0;font-size:12px;line-height:1.5}.voice-roster{display:flex;flex-direction:column;gap:6px;padding:10px 12px;max-height:260px;overflow-y:auto}.voice-chip{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.1);background:#ffffff0a;transition:border-color .15s,box-shadow .15s}.voice-chip.speaking{border-color:#5ec582d9;box-shadow:0 0 0 2px #5ec58238,0 0 12px #5ec5824d}.voice-chip.spectator .voice-badge{opacity:.75}.voice-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-muted-mark{font-size:12px}.voice-controls{display:flex;gap:8px;padding:10px 12px;border-top:1px solid rgba(255,255,255,.08)}.voice-controls button{flex:1;padding:6px 8px;font-size:13px}.voice-controls .voice-leave{border-color:#c85a508c;color:#e0908d}@media (max-width: 1450px){.voice-widget{right:70px;bottom:12px}.voice-panel{width:min(260px,calc(100vw - 96px))}}.hud-log{position:absolute;top:52px;right:10px;width:340px;max-height:60vh;overflow:auto;background:#0a0d12e0;border:1px solid var(--border, #32404f);border-radius:8px;font-size:12px}.hud-log summary{cursor:pointer;padding:6px 10px;font-weight:700;-webkit-user-select:none;user-select:none}.hud-log .log-body{padding:0 10px 8px}.hud-log .log-line{padding:2px 0;border-bottom:1px solid rgba(255,255,255,.05);line-height:1.45}.hud-log .log-major{color:#ffd27a;font-weight:600}.hud-log .log-minor{color:#8494a7}.card-arg{border-bottom:1px dotted #6f8db4;cursor:help;color:#bcd3ec}.scheme-story{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ab8;display:grid;place-items:center;z-index:600}.scheme-story-body{width:min(480px,94vw);max-height:88vh;overflow:auto;background:#10141bf7;border:1px solid #46586c;border-radius:12px;padding:14px 18px;box-shadow:0 20px 60px #0009}.scheme-story-cards{display:flex;justify-content:center;padding-top:10px}.error-toast{position:absolute;right:14px;bottom:60px;max-width:min(420px,80vw);padding:10px 16px;background:#5a1414f2;border:1px solid #c96060;border-radius:8px;color:#ffd7d0;font-size:13px;z-index:320;box-shadow:0 8px 24px #00000080;animation:error-toast-in .2s ease-out}@keyframes error-toast-in{0%{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}.hud-controls{position:absolute;top:10px;right:10px;display:flex;gap:6px;align-items:center}.hud-left{position:absolute;top:10px;left:10px;display:flex;gap:6px;align-items:center}.hud-home{display:inline-flex;align-items:center;gap:.38rem;min-height:32px;padding:4px 10px;background:#222b36eb;color:var(--text, #dfe7ef);border:1px solid var(--border, #32404f);border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}.hud-home:hover{border-color:#5b8ab5}.hud-home.confirm{color:#ffe1b8;background:linear-gradient(180deg,#966018f2,#4e2f0cf5);border-color:#eba042cc;animation:hud-home-pulse 1s ease-in-out infinite}@keyframes hud-home-pulse{50%{box-shadow:0 0 12px #eba04273}}.hud-toggle{padding:5px 12px;background:#222b36e6;color:var(--text, #dfe7ef);border:1px solid var(--border, #32404f);border-radius:6px;cursor:pointer;font-size:13px}.hud-toggle.on{border-color:#5b8ab5}.hud-endturn{padding:5px 14px;background:#5a2828eb;color:#ffd7d0;border:1px solid #8a4040;border-radius:6px;cursor:pointer;font-size:13px;font-weight:600}.hud-endturn:hover{border-color:#d94a4a;background:#782d2df2}.confirm-bar{position:absolute;left:50%;bottom:32vh;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:8px 16px;background:#0c0f14eb;border:1px solid #46586c;border-radius:10px;box-shadow:0 8px 24px #00000080;z-index:210}.confirm-bar button{padding:5px 14px;border-radius:6px;border:1px solid #3c5064;background:#22303f;color:var(--text, #dfe7ef);cursor:pointer;font-size:13px}.confirm-bar button.primary{background:#a33c3c;border-color:#c96060;font-weight:700}.confirm-bar button:hover{filter:brightness(1.15)}.hud-toggle:hover{border-color:#5b8ab5}body.fx-off *,body.fx-off *:before,body.fx-off *:after{animation:none!important;transition:none!important}.gcard.hl-play .gcard-img{box-shadow:0 0 0 3px #c8bc2fe6,0 0 18px #5ee23d8c,0 6px 14px #00000059}.gcard.hl-target .gcard-img{box-shadow:0 0 0 3px #aa00ffe6,0 0 20px #8c28be99,0 6px 14px #00000059;animation:hl-flash .5s ease-out 2}.gcard.hl-ability .gcard-img{box-shadow:0 0 0 3px #ffd700d9,0 0 16px #ffc83c80,0 6px 14px #00000059}.gcard.hl-pay .gcard-img{box-shadow:0 0 0 3px #e9e275e6,0 0 14px #e9e27573,0 6px 14px #00000059}@keyframes hl-flash{0%,to{filter:brightness(1)}50%{filter:brightness(1.45)}}.gcard.hl-selected .gcard-img{box-shadow:0 0 0 3px #d94a4af2,0 0 22px #d94a4a99,0 6px 14px #00000059}.gcard.hl-selected:before{content:attr(data-sel);position:absolute;top:-14px;left:50%;translate:-50% 0;z-index:7;min-width:34px;height:34px;padding:0 4px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d94a4a,#8c1d1d);border:2px solid #2b0808;color:#fff;font-size:18px;font-weight:900;text-shadow:0 1px 2px #000}.board-page .board-msg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:16px;color:#8494a7}.fx-float{position:absolute;z-index:300;transform:translate(-50%);font-size:40px;font-weight:900;font-style:italic;font-family:Segoe UI,system-ui,sans-serif;text-shadow:0 2px 0 #000,0 0 6px #000,2px 0 0 #000,-2px 0 0 #000,0 -2px 0 #000;pointer-events:none;animation:fx-float-rise calc(var(--anime-time, 1) * 1.9s) ease-out forwards;animation-delay:calc(var(--i, 0) * .2s);opacity:0}@keyframes fx-float-rise{0%{opacity:0;scale:1.6;translate:0 0}12%{opacity:.95;scale:1.25}70%{opacity:.9}to{opacity:0;translate:0 -90px;scale:1}}.fx-float-dmg{color:#ff5f4d}.fx-float-heal{color:#38d95f}.fx-float-threat{color:#e9e275}.fx-float-thwart{color:#7db9ff}.fx-float-counter{color:#4fd8e0;font-size:30px}.fx-arrow{position:absolute;z-index:290;height:10px;width:0;transform-origin:0 50%;border-radius:5px;pointer-events:none;background:repeating-linear-gradient(-45deg,var(--ac, #ff5f4d) 0 12px,transparent 12px 24px);box-shadow:inset 0 0 5px var(--ac, #ff5f4d),0 0 8px color-mix(in srgb,var(--ac, #ff5f4d) 60%,transparent);border:1px solid color-mix(in srgb,var(--ac, #ff5f4d) 70%,#000);animation:fx-arrow-shot 1.2s ease-out forwards}.fx-arrow-attack{--ac: #ff5f4d}.fx-arrow-threat{--ac: #e9a04a}.fx-arrow-thwart{--ac: #5aa9ff}@keyframes fx-arrow-shot{0%{width:0;opacity:0}12%{opacity:1}35%{width:var(--len)}75%{width:var(--len);opacity:1}to{width:var(--len);opacity:0}}.gcard.fx-shake .gcard-in{animation:fx-shake .5s linear}.gcard.fx-shake .gcard-in:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px/4.2px;background:#ff1e146b;mix-blend-mode:color-burn;z-index:8;pointer-events:none;animation:fx-tint 1s ease-out forwards}@keyframes fx-shake{0%,to{translate:0 0}10%{translate:-5px 2px}20%{translate:5px -3px}30%{translate:-4px -2px}40%{translate:4px 3px}50%{translate:-3px 1px}60%{translate:3px -2px}70%{translate:-2px 2px}80%{translate:2px -1px}90%{translate:-1px 0}}@keyframes fx-tint{0%{opacity:1}to{opacity:0}}.gcard.fx-lunge{z-index:160;animation:fx-lunge 1.2s cubic-bezier(.3,0,.4,1)}.gcard.fx-lunge .gcard-img{box-shadow:0 0 0 3px #ff3c28d9,0 0 22px #ff3c28cc,0 6px 14px #00000059}@keyframes fx-lunge{0%{transform:translate3d(var(--x),var(--y),0) rotate(var(--rot)) scale(var(--s))}22%{transform:translate3d(calc(var(--x) + var(--lx)),calc(var(--y) + var(--ly)),0) rotate(calc(var(--rot) + var(--lrot))) scale(calc(var(--s) * 1.1))}40%{transform:translate3d(calc(var(--x) + var(--lx)),calc(var(--y) + var(--ly)),0) rotate(calc(var(--rot) + var(--lrot))) scale(calc(var(--s) * 1.1))}to{transform:translate3d(var(--x),var(--y),0) rotate(var(--rot)) scale(var(--s))}}.gcard.fx-status .gcard-tokens{animation:fx-token-pop .45s cubic-bezier(.19,1,.22,1)}@keyframes fx-token-pop{0%{scale:.2}60%{scale:1.35}to{scale:1}}.gcard.fx-entering{animation:fx-enter .32s ease-out backwards}@keyframes fx-enter{0%{opacity:0;scale:.55}to{opacity:1;scale:1}}.gcard.fx-exit{z-index:150;pointer-events:none;animation:fx-exit .6s ease-in forwards}@keyframes fx-exit{0%{opacity:1}to{opacity:0;transform:translate3d(calc(var(--x) - 120px),calc(var(--y) + 220px),0) rotate(calc(var(--rot) + 40deg)) scale(.5)}}.board-page{overflow:hidden;color:#f4ead6;font-family:Inter,Segoe UI Variable,Microsoft YaHei,system-ui,sans-serif;isolation:isolate}.board-viewport{flex:1 1 100%;min-height:0;background:radial-gradient(ellipse at 50% 38%,rgba(34,88,119,.3) 0%,rgba(10,31,47,.12) 35%,transparent 64%),radial-gradient(circle at 20% 78%,rgba(138,67,26,.16),transparent 34%),linear-gradient(145deg,#08131f,#07101a 48%,#03080e);box-shadow:inset 0 0 0 2px #b889409e,inset 0 0 0 8px #211b16f0,inset 0 0 0 10px #6749227a,inset 0 0 90px 24px #000000db}.board-viewport:before,.board-viewport:after{content:"";position:absolute;pointer-events:none;z-index:1}.board-viewport:before{top:10px;right:10px;bottom:10px;left:10px;opacity:.2;background-image:linear-gradient(30deg,transparent 48%,rgba(190,219,230,.09) 49%,transparent 51%),linear-gradient(-30deg,transparent 48%,rgba(190,219,230,.07) 49%,transparent 51%);background-size:54px 94px;-webkit-mask-image:radial-gradient(ellipse at center,#000 5%,transparent 78%);mask-image:radial-gradient(ellipse at center,#000 5%,transparent 78%)}.board-viewport:after{top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,rgba(0,0,0,.62),transparent 9%,transparent 91%,rgba(0,0,0,.62)),linear-gradient(rgba(0,0,0,.42),transparent 11%,transparent 86%,rgba(0,0,0,.72))}.board-camera{z-index:2}.board-scene{background:radial-gradient(ellipse at 50% 18%,rgba(124,28,35,.16),transparent 34%),radial-gradient(ellipse at 50% 69%,rgba(21,108,142,.11),transparent 48%)}.table-ornament{position:absolute;width:170px;height:170px;z-index:0;pointer-events:none;opacity:.72;background:linear-gradient(135deg,rgba(226,184,105,.9),rgba(81,50,25,.2) 24%,transparent 25%),repeating-linear-gradient(45deg,rgba(205,155,80,.22) 0 3px,transparent 3px 10px);clip-path:polygon(0 0,100% 0,100% 10%,30% 10%,10% 30%,10% 100%,0 100%);filter:drop-shadow(0 0 10px rgba(212,152,68,.2))}.table-ornament-nw{left:18px;top:18px}.table-ornament-ne{right:18px;top:18px;transform:scaleX(-1)}.table-ornament-sw{left:18px;bottom:18px;transform:scaleY(-1)}.table-ornament-se{right:18px;bottom:18px;transform:scale(-1)}.enemy-command-rail,.player-command-rail,.battle-divider{position:absolute;left:110px;right:110px;height:1px;pointer-events:none;z-index:0;background:linear-gradient(90deg,transparent,rgba(189,139,65,.65) 18%,rgba(226,191,126,.8) 50%,rgba(189,139,65,.65) 82%,transparent);box-shadow:0 0 12px #c1853542}.enemy-command-rail{top:246px}.battle-divider-upper{top:402px;opacity:.32}.battle-divider-lower{top:590px;opacity:.38}.player-command-rail{top:884px}.enemy-command-rail:after,.player-command-rail:after{content:"◆";position:absolute;left:50%;top:50%;translate:-50% -50%;padding:0 20px;color:#d9a555;background:#09131d;text-shadow:0 0 10px rgba(241,189,94,.55)}.gcard{filter:drop-shadow(0 10px 12px rgba(0,0,0,.5))}.gcard-in{transition:rotate .36s cubic-bezier(.2,.75,.15,1),scale .18s cubic-bezier(.2,.75,.15,1),filter .18s ease,opacity .18s ease}.gcard-img,.gcard-back{border:1px solid rgba(239,204,137,.5);outline:2px solid color-mix(in srgb,var(--pc, #8a6c42) 56%,#a57b3b);outline-offset:-2px;box-shadow:0 0 0 1px #000000eb,0 8px 18px #000000a8,inset 0 0 0 1px #ffecbf24}.gcard-back.placeholder{display:grid;place-items:center;overflow:hidden;background-image:radial-gradient(circle at center,rgba(220,172,89,.2) 0 3%,transparent 4% 18%,rgba(220,172,89,.18) 19% 20%,transparent 21%),conic-gradient(from 45deg,#142d45,#08101a,#4a1a24,#08101a,#142d45)}.gcard-back.placeholder span{width:52%;aspect-ratio:1;display:grid;place-items:center;border:1px solid rgba(227,188,111,.55);rotate:45deg;color:#f5d697cc;font-size:30px;text-shadow:0 0 12px rgba(255,199,92,.5)}.gcard:hover .gcard-in{scale:1.12;filter:brightness(1.08) saturate(1.08)}.gcard:hover .gcard-img,.gcard:hover .gcard-back{outline-color:#e8bd66;box-shadow:0 0 0 2px #f5c35de0,0 0 24px #eea93b8c,0 14px 28px #000000b8}.gcard.k-hand:hover{transform:translate3d(var(--x),calc(var(--y) - 72px),0) rotate(0) scale(1.2)}.gcard.k-hand .gcard-in{transform-origin:50% 100%}.gcard-in.exhausted{rotate:90deg;filter:grayscale(.82) saturate(.35) brightness(.58);opacity:.76}.gcard.k-hero .gcard-in.exhausted,.gcard.k-villain .gcard-in.exhausted{rotate:0deg}.gcard.k-hero,.gcard.k-villain{filter:drop-shadow(0 12px 17px rgba(0,0,0,.74))}.character-fx{position:absolute;top:-12px;right:-12px;bottom:-12px;left:-12px;z-index:0;overflow:hidden;border-radius:50%;pointer-events:none}.gcard.k-villain .character-fx{border:1px solid rgba(213,52,61,.52);background:repeating-linear-gradient(180deg,transparent 0 8px,rgba(255,80,72,.13) 9px,transparent 10px),radial-gradient(circle,rgba(125,12,25,.2),transparent 68%);box-shadow:0 0 12px #b514216b,inset 0 0 16px #db2e342e;animation:villain-danger-pulse 2.8s ease-in-out infinite}.gcard.k-hero .gcard-motion{animation:hero-card-float 3.8s ease-in-out infinite}.gcard.k-hero .character-fx{border:1px solid rgba(105,179,235,.42);background:conic-gradient(from 210deg,#488fda1f,#e6b95933,#488fda1f);box-shadow:0 0 12px #4991da4d,0 0 20px #daaa492e;animation:hero-energy-breathe 3.8s ease-in-out infinite}@keyframes villain-danger-pulse{0%,to{opacity:.58;background-position:0 0,center;box-shadow:0 0 10px #b5142157,inset 0 0 14px #db2e3424}50%{opacity:.92;background-position:0 18px,center;box-shadow:0 0 22px #d01c2a8c,inset 0 0 20px #ea373c3d}}@keyframes hero-energy-breathe{0%,to{opacity:.5;scale:.985}50%{opacity:.9;scale:1.025;box-shadow:0 0 19px #4991da6b,0 0 30px #daaa4942}}@keyframes hero-card-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}.gcard.k-hero .gcard-in,.gcard.k-villain .gcard-in,.gcard.k-hero .gcard-img,.gcard.k-villain .gcard-img,.gcard.k-hero .gcard-back,.gcard.k-villain .gcard-back{border-radius:50%}.gcard.k-hero .gcard-img,.gcard.k-villain .gcard-img{object-position:50% 22%;border:5px solid #261c12;outline:3px solid #b98b43;outline-offset:-5px}.gcard.k-hero .gcard-in:before,.gcard.k-villain .gcard-in:before{content:"";position:absolute;top:-11px;right:-11px;bottom:-11px;left:-11px;z-index:-1;border-radius:50%;background:conic-gradient(from -90deg,#62d484 0 var(--hp-progress),rgba(32,42,45,.9) var(--hp-progress) 360deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));mask:radial-gradient(farthest-side,transparent calc(100% - 9px),#000 calc(100% - 8px));box-shadow:0 0 0 2px #c19a55}.gcard.k-villain .gcard-in:before{background:conic-gradient(from -90deg,#db5055 0 var(--hp-progress),rgba(41,28,31,.94) var(--hp-progress) 360deg)}.gcard.k-hero.is-active-player .gcard-in{box-shadow:0 0 0 7px #f3bb4b33,0 0 34px 14px #f4ae307a;animation:active-player-glow 2.2s ease-in-out infinite}@keyframes active-player-glow{50%{box-shadow:0 0 0 10px #f3bb4b1a,0 0 44px 18px #f4ae309e}}.portrait-name{position:absolute;left:50%;bottom:-18px;translate:-50% 0;min-width:112px;max-width:172px;padding:5px 13px 6px;overflow:hidden;color:#fff2d5;background:linear-gradient(180deg,#4c3822,#15100c 64%);border:1px solid #c79a52;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,8px 100%,0 50%);font-size:12px;font-weight:800;line-height:1;text-align:center;white-space:nowrap;text-overflow:ellipsis;z-index:7}.gcard.k-scheme .gcard-in{border-radius:8px;background:linear-gradient(135deg,#382919,#0a121a 38%,#0a1722 70%,#3c2a17);box-shadow:0 0 0 2px #17100a,0 0 0 4px #a97c3d,0 12px 28px #000000a8}.gcard.k-scheme .gcard-img{border-radius:7px;object-position:center}.gcard.k-scheme.is-main-scheme:before,.gcard.k-scheme.is-main-scheme:after{content:"";position:absolute;top:50%;width:46px;height:72px;translate:0 -50%;z-index:-1;background:linear-gradient(135deg,#bc8c47,#2b1c10 55%,#80572d);clip-path:polygon(0 0,100% 18%,80% 50%,100% 82%,0 100%,24% 50%)}.gcard.k-scheme.is-main-scheme:before{left:-38px}.gcard.k-scheme.is-main-scheme:after{right:-38px;transform:scaleX(-1)}.gcard-tokens{top:-12px;left:-11px;gap:4px}.tok{width:27px;height:27px;border:2px solid #c9a15c;box-shadow:0 0 0 2px #000c,0 4px 9px #000000a3}.gcard-topright{top:-12px;right:-12px}.chip{border-color:#c49a52;box-shadow:0 0 0 2px #000000c2,0 4px 10px #00000094}.hp-badge{right:-17px;bottom:14px}.hp-badge .stat-token{width:40px;height:40px}.gcard-stats{left:auto;right:-15px;top:20px;bottom:auto;flex-direction:column;gap:7px}.stat{width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;gap:1px;border-radius:50%;color:#fff;border:2px solid rgba(255,239,201,.72);font-size:16px;font-weight:900;box-shadow:0 0 0 3px #080a0ce6,0 4px 9px #0009}.stat-icon{font-size:11px;opacity:.86}.stat-atk{background:radial-gradient(circle at 35% 28%,#ff7567,#9f241d 68%,#4f0f0c)}.stat-thw{background:radial-gradient(circle at 35% 28%,#ffe47b,#b47b12 68%,#634006);color:#211504;text-shadow:none}.stat-sch{background:radial-gradient(circle at 35% 28%,#b682dc,#63358a 68%,#301746)}.threat-bar{right:-15px;bottom:10px}.threat-bar .stat-token{width:44px;height:44px}.gcard.k-scheme.is-main-scheme .threat-bar{right:12px;bottom:11px}.gcard.k-scheme.is-main-scheme .threat-bar .stat-token{width:52px;height:52px}.gcard.k-scheme .gcard-schemetags{left:8px;bottom:-12px}.pile-count{background:radial-gradient(circle at 35% 25%,#d2aa64,#5d3c16 72%);border-color:#e2bb70;color:#fff4d8;box-shadow:0 0 0 3px #181009,0 5px 12px #0000009e}.hud-top{top:14px;min-height:34px;padding:6px 24px;color:#f7e8c9;background:linear-gradient(180deg,#2d2319eb,#080f16e0);border:1px solid #a27b42;border-radius:4px;clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,12px 100%,0 50%);box-shadow:0 8px 22px #0000008f,0 0 18px #c288361f;letter-spacing:.025em}.hud-controls{top:14px;right:18px}.hud-toggle{min-height:32px;color:#eadfc9;background:#091119d1;border:1px solid rgba(177,134,73,.58);border-radius:16px;-webkit-backdrop-filter:blur(12px) saturate(125%);backdrop-filter:blur(12px) saturate(125%)}.hud-log{top:58px;right:18px;width:310px;color:#dcd1be;background:#070e15d1;border-color:#ae844980;border-radius:4px;-webkit-backdrop-filter:blur(16px) saturate(130%);backdrop-filter:blur(16px) saturate(130%)}.question-collapsed{left:50%;bottom:14px;transform:translate(-50%);max-width:min(760px,calc(100vw - 32px));min-width:360px;min-height:40px;padding:7px 20px;color:#f2e5cc;background:linear-gradient(180deg,#2d261fd6,#080f16e6);border:1px solid rgba(210,164,88,.72);border-radius:22px;box-shadow:0 10px 32px #000000a3,inset 0 1px #fff0ca1f;-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%)}.question-collapsed:hover{border-color:#edbd6b;box-shadow:0 10px 34px #000000a8,0 0 18px #e0a23f3d}.question-collapsed .q-toggle{color:#e9b85f;font-size:17px}.board-hud .question{left:50%;bottom:14px;transform:translate(-50%);width:min(980px,calc(100vw - 36px));max-height:min(38vh,360px);padding:18px 22px 20px;color:#f3e7d1;background:linear-gradient(180deg,#23272ad6,#080e15f0),radial-gradient(circle at 50% 0,rgba(209,151,64,.16),transparent 50%);border:1px solid rgba(217,169,92,.75);border-radius:18px 18px 6px 6px;box-shadow:0 -12px 44px #0000009e,inset 0 1px #ffefc729;-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%);animation:drawer-materialize .22s cubic-bezier(.2,.75,.15,1)}.board-hud .game-over-panel{display:flex;align-items:center;justify-content:center;gap:20px;width:min(680px,calc(100vw - 36px))}.game-over-panel p{margin:0;font-size:16px;font-weight:800}.game-over-panel .primary{min-height:40px;padding:8px 20px;white-space:nowrap}@keyframes drawer-materialize{0%{opacity:0;transform:translate(-50%,18px) scale(.98);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}to{opacity:1;transform:translate(-50%) scale(1);-webkit-backdrop-filter:blur(24px) saturate(145%);backdrop-filter:blur(24px) saturate(145%)}}.board-hud .question .choices{gap:9px;padding-top:12px}.board-hud .question .choice{min-height:44px;padding:7px 14px;color:#f1e5cf;background:linear-gradient(180deg,#36444feb,#141f2af0);border-color:#a4855699;border-radius:8px;box-shadow:inset 0 1px #ffffff14,0 4px 9px #0000004d}.board-hud .question .choice:hover:not(:disabled){background:linear-gradient(180deg,#465e70,#263c4c);border-color:#e0ad5b;box-shadow:0 0 14px #dc9d3c33}.confirm-bar{bottom:min(41vh,386px);color:#f0e2c8;background:#080f16e6;border-color:#b98c49;border-radius:22px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.board-action-btn{border-color:#d9af66b3;color:#fff0d4}.card-zoom img{border-radius:10px;outline:2px solid #d6a556;box-shadow:0 0 30px #e3a64470,0 24px 60px #000000c7}@media (max-width: 1450px){.hud-top{top:10px;max-width:44vw;overflow:hidden;text-overflow:ellipsis}.hud-controls{top:10px;right:12px}.hud-left{top:10px;left:12px}.hud-home span:last-child{display:none}.hud-log{top:50px;right:12px;width:276px;max-height:46vh}.question-collapsed{bottom:10px;min-width:320px;max-width:64vw}.board-hud .question{bottom:10px;max-height:42vh}}@media (prefers-reduced-motion: reduce){.gcard,.gcard-in,.question,.question-collapsed{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.gcard-motion,.character-fx,.card-zoom{animation:none!important;transform:none!important}}@media (prefers-reduced-transparency: reduce){.board-hud .question,.question-collapsed,.hud-log,.hud-toggle{background:#0b151f;-webkit-backdrop-filter:none;backdrop-filter:none}}
