:root{--bg: #06080d;--bg2: #0e1420;--panel: #151c2a;--line: #314057;--text: #edf3ff;--muted: #93a0b8;--cyan: #3de0ff;--gold: #f0c14b;--danger: #ff4d6d;--ok: #3dff9a;--warn: #ffb020;--teal: #2eb8a6;--purple: #c45cff;--asphalt: #12151c;--accent: var(--cyan);--glow: rgba(61,224,255,.35);--radius: 12px;--shadow: 0 10px 28px rgba(0,0,0,.45);--font: "Outfit", "Segoe UI", sans-serif;--display: "Bebas Neue", "Arial Narrow", Impact, sans-serif;--sheet: 320 / 582;--hand-card-w: 100px;--hand-card-h: 182px;--motion: .52s;--touch: 44px;--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--z-log: 80;--z-detail: 200;--z-toast: 300}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font)}html{height:100%;height:-webkit-fill-available}body:has(#game-root),body:has(.title-screen),body:has(.gallery-screen){height:100%;height:100dvh;height:-webkit-fill-available;max-height:100dvh;overflow:hidden;overscroll-behavior:none;touch-action:manipulation;padding:var(--safe-top) var(--safe-right) 0 var(--safe-left)}button{font:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.btn{background:linear-gradient(180deg,#243044,#1b2436);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:8px 12px;min-height:var(--touch);transition:transform .12s ease,border-color .15s ease,box-shadow .15s ease;box-shadow:0 2px #00000059}.btn:hover{border-color:var(--cyan);box-shadow:0 0 16px #3de0ff2e}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:none}.btn.primary{background:linear-gradient(135deg,#8a4a2a,#155868);border-color:#3de0ff73;font-weight:700}.btn.ghost{background:transparent;box-shadow:none}.btn.sm{min-height:40px;padding:6px 10px;font-size:.85rem}.btn.pulse,.menu-btn.pulse{animation:endPulse 1.4s ease-in-out infinite}@keyframes endPulse{0%,to{box-shadow:0 0 #3de0ff59}50%{box-shadow:0 0 0 8px #3de0ff00}}.screen{min-height:100%;overflow:auto;padding:18px;background:radial-gradient(ellipse at 18% 12%,rgba(61,224,255,.12),transparent 48%),radial-gradient(ellipse at 82% 88%,rgba(240,193,75,.1),transparent 46%),linear-gradient(160deg,#070b12,#101820 40%,#0a1210)}.splash-card,.panel{max-width:980px;margin:0 auto;background:#0e141ef5;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow),inset 0 1px #ffffff0d}.brand{margin:0 0 6px;font-family:var(--display);font-size:clamp(1.8rem,5vw,2.6rem);letter-spacing:.04em;font-weight:400;background:linear-gradient(105deg,#9af0ff 0%,var(--cyan) 35%,var(--gold) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.tag{color:var(--muted);margin:0 0 12px;line-height:1.45}.err{color:var(--danger);margin:8px 0}.input{background:#12141c;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:10px 12px;width:min(280px,100%)}.actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.zone-block{margin-top:14px}.zone-block h3{margin:0 0 8px;font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.title-screen{position:relative;height:100dvh;max-height:100dvh;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0;background:#05070b}.title-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse 90% 55% at 50% 0%,rgba(61,224,255,.16),transparent 60%),radial-gradient(ellipse 70% 50% at 80% 100%,rgba(240,193,75,.1),transparent 55%),radial-gradient(ellipse 50% 40% at 10% 70%,rgba(46,184,166,.08),transparent 50%),linear-gradient(180deg,#0a1018,#070b12 42%,#05070b)}.title-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(61,224,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(61,224,255,.04) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 35%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 35%,#000 20%,transparent 75%);opacity:.55;animation:titleGridDrift 28s linear infinite}@keyframes titleGridDrift{0%{transform:translateY(0)}to{transform:translateY(48px)}}.title-fog{position:absolute;top:-10%;right:-5%;bottom:-10%;left:-5%;background:radial-gradient(ellipse at 30% 60%,rgba(120,150,180,.12),transparent 45%),radial-gradient(ellipse at 70% 40%,rgba(40,80,90,.18),transparent 40%);filter:blur(28px);animation:titleFog 12s ease-in-out infinite alternate}@keyframes titleFog{0%{transform:translate(-3%) scale(1);opacity:.7}to{transform:translate(4%) scale(1.08);opacity:1}}.title-rain{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(105deg,transparent 0 14px,rgba(180,210,240,.045) 14px 15px,transparent 15px 28px);animation:titleRain 1.1s linear infinite;opacity:.55;-webkit-mask-image:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent);mask-image:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent)}@keyframes titleRain{0%{transform:translateY(-8%)}to{transform:translateY(8%)}}.title-neon{position:absolute;left:50%;top:18%;width:min(420px,80vw);height:120px;transform:translate(-50%);background:radial-gradient(ellipse,rgba(61,224,255,.22),transparent 70%);filter:blur(24px);animation:titleNeonPulse 3.2s ease-in-out infinite}@keyframes titleNeonPulse{0%,to{opacity:.55;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.12)}}.title-fan{position:absolute;left:50%;top:6%;width:min(560px,96vw);height:min(52vh,420px);transform:translate(-50%);display:grid;place-items:center}.title-fan{pointer-events:none}.title-slot{position:absolute;width:clamp(92px,22vw,138px);animation:titleCardFloat 5.5s ease-in-out infinite;filter:drop-shadow(0 16px 28px rgba(0,0,0,.55))}.title-slot .dss-card{width:100%;--hand-card-w: 100%;cursor:default;pointer-events:none}.title-slot.c1{left:6%;top:18%;rotate:-18deg;animation:titleCardFloat 5.5s ease-in-out infinite,titleCardSwayL 5.5s ease-in-out infinite}.title-slot.c2{left:22%;top:4%;rotate:-8deg;animation-delay:-.8s;z-index:2}.title-slot.c3{left:50%;top:0;z-index:3;width:clamp(110px,26vw,158px);animation:titleCardFloatC 5.5s ease-in-out infinite;animation-delay:-1.6s}.title-slot.c4{right:22%;top:6%;rotate:9deg;animation-delay:-2.4s;z-index:2}.title-slot.c5{right:6%;top:20%;rotate:17deg;animation:titleCardFloat 5.5s ease-in-out infinite,titleCardSwayR 5.5s ease-in-out infinite;animation-delay:-3.2s}@keyframes titleCardFloat{0%,to{translate:0 0}50%{translate:0 -10px}}@keyframes titleCardFloatC{0%,to{translate:-50% 0}50%{translate:-50% -12px}}@keyframes titleCardSwayL{0%,to{rotate:-18deg}50%{rotate:-14deg}}@keyframes titleCardSwayR{0%,to{rotate:17deg}50%{rotate:13deg}}.title-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 18px calc(18px + var(--safe-bottom));background:linear-gradient(180deg,transparent 0%,rgba(5,7,11,.55) 18%,rgba(5,7,11,.92) 48%,#05070b 100%);animation:titleContentIn .7s cubic-bezier(.2,.85,.2,1) both}@keyframes titleContentIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.title-plate{width:min(360px,100%);display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 16px 16px;border-radius:16px;border:1px solid rgba(255,255,255,.14);border-top:3px solid var(--cyan);background:linear-gradient(180deg,rgba(255,255,255,.06),transparent 28%),linear-gradient(165deg,#121a28f0,#080c12f5);box-shadow:0 18px 40px #00000080,0 0 28px #3de0ff1f,inset 0 1px #ffffff1a}.title-brand{margin:0;font-family:var(--display);font-size:clamp(2.6rem,12vw,4.4rem);line-height:.9;letter-spacing:.03em;font-weight:400;color:#f2f7ff;text-shadow:0 0 28px rgba(61,224,255,.35),0 4px 0 rgba(0,0,0,.35),0 18px 40px rgba(0,0,0,.55)}.title-brand span{display:block;background:linear-gradient(105deg,#b8f6ff,var(--cyan) 40%,var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 12px rgba(61,224,255,.35))}.title-tag{margin:0 0 4px;max-width:28ch;color:#aebbcd;font-size:clamp(.92rem,2.8vw,1.05rem);line-height:1.4;font-weight:500}.title-name{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%;text-align:left}.title-name>span{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.title-name .input{width:100%;background:#0a0e16d9;border:1px solid rgba(61,224,255,.28);border-radius:12px;padding:12px 14px;font-weight:600;box-shadow:inset 0 0 0 1px #ffffff0a,0 0 20px #3de0ff14;transition:border-color .2s ease,box-shadow .2s ease}.title-name .input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px #3de0ff2e,0 0 28px #3de0ff29}.title-menu{display:flex;flex-direction:column;gap:8px;width:100%;margin-top:4px}.menu-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.14);border-top-color:color-mix(in srgb,var(--btn-accent, var(--cyan)) 70%,#fff);background:linear-gradient(180deg,rgba(255,255,255,.07),transparent 40%),linear-gradient(135deg,color-mix(in srgb,var(--btn-accent, var(--cyan)) 22%,#121826),#0d121c 70%);color:var(--text);font-family:var(--font);font-weight:700;font-size:1rem;letter-spacing:.02em;box-shadow:0 8px 22px #0006,0 0 18px color-mix(in srgb,var(--btn-accent, var(--cyan)) 18%,transparent),inset 0 1px #ffffff1a;transition:transform .14s ease,box-shadow .2s ease,border-color .2s ease,filter .2s ease;overflow:hidden}.menu-btn:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.12) 50%,transparent 65%);transform:translate(-120%);transition:transform .55s ease}.menu-btn:hover{transform:translateY(-1px);border-color:var(--btn-accent, var(--cyan));box-shadow:0 10px 28px #00000073,0 0 28px color-mix(in srgb,var(--btn-accent, var(--cyan)) 32%,transparent);filter:brightness(1.06)}.menu-btn:hover:before{transform:translate(120%)}.menu-btn:active{transform:scale(.98)}.menu-btn.primary{--btn-accent: var(--cyan);min-height:58px;font-size:1.08rem;background:linear-gradient(180deg,rgba(255,255,255,.1),transparent 42%),linear-gradient(135deg,#1a5a68,#8a4528 120%);border-color:#3de0ff80;animation:menuPrimaryPulse 2.8s ease-in-out infinite}@keyframes menuPrimaryPulse{0%,to{box-shadow:0 8px 22px #0006,0 0 18px #3de0ff38,inset 0 1px #ffffff1a}50%{box-shadow:0 8px 22px #0006,0 0 32px #3de0ff6b,inset 0 1px #ffffff1a}}.menu-btn.pvp{--btn-accent: var(--gold)}.menu-btn.join{--btn-accent: var(--teal)}.menu-btn.ghost{--btn-accent: #7a90b0;background:#0c10188c;box-shadow:none;border-style:dashed;font-weight:600;min-height:46px;font-size:.92rem}.menu-btn.ghost:hover{box-shadow:0 0 18px #7a90b033}.title-join{width:100%;display:none;flex-direction:column;gap:8px;padding:12px;border-radius:14px;border:1px solid rgba(46,184,166,.35);background:#0a1016e6;box-shadow:0 0 24px #2eb8a61f;animation:titleContentIn .35s ease both}.title-join.open{display:flex}.title-join label{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:left}.title-join .input{width:100%;text-align:center;letter-spacing:.2em;font-weight:800;text-transform:uppercase;border-radius:12px;border-color:#2eb8a666}.title-lobby{width:100%;display:flex;flex-direction:column;gap:10px;align-items:center}.title-code{font-family:var(--display);font-size:clamp(2.4rem,10vw,3.4rem);letter-spacing:.18em;color:var(--cyan);text-shadow:0 0 24px rgba(61,224,255,.45);padding:8px 18px;border-radius:14px;border:1px solid rgba(61,224,255,.35);background:#080e16bf;animation:titleNeonPulse 2.4s ease-in-out infinite}.title-seats{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;width:100%}.title-seat{padding:10px 8px;border-radius:12px;border:1px solid var(--line);background:#0e141ed9;font-size:.85rem;font-weight:700}.title-seat.ready{border-color:var(--ok);color:var(--ok);box-shadow:0 0 16px #3dff9a33}.title-seat.waiting{color:var(--muted);animation:seatBlink 1.6s ease-in-out infinite}@keyframes seatBlink{0%,to{opacity:1}50%{opacity:.55}}.title-vs{font-family:var(--display);font-size:1.4rem;letter-spacing:.08em;color:var(--gold);text-shadow:0 0 12px rgba(240,193,75,.35)}@media(max-height:700px){.title-fan{top:2%;height:min(42vh,280px)}.title-slot{width:clamp(72px,18vw,110px)}.title-slot.c3{width:clamp(86px,20vw,124px)}.title-brand{font-size:clamp(2.2rem,10vw,3.2rem)}.title-plate{padding:14px 12px 12px;gap:8px}.menu-btn{min-height:46px}.menu-btn.primary{min-height:50px}}@media(prefers-reduced-motion:reduce){.title-grid,.title-fog,.title-rain,.title-neon,.title-slot,.menu-btn.primary,.title-code,.title-seat.waiting{animation:none!important}}.gallery-screen{height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:radial-gradient(ellipse at 50% 0%,rgba(61,224,255,.1),transparent 50%),linear-gradient(180deg,#0a1018,#06080d)}.gallery-top{flex:0 0 auto;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#0e141efa,#0a0e16f0);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.gallery-heading{min-width:0;text-align:left}.gallery-heading .brand{margin:0;font-size:clamp(1.4rem,5vw,1.9rem)}.gallery-heading .tag{margin:2px 0 0;font-size:.78rem}.gallery-err{padding:0 12px}.gallery-scroll{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px 12px calc(16px + var(--safe-bottom))}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px;justify-items:center;max-width:980px;margin:0 auto}.gallery-grid .dss-card{width:min(148px,100%);--hand-card-w: 100%}.deck-bar{flex:0 0 auto;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);background:#0a0e16f5}.deck-bar-mid{min-width:0;display:flex;flex-direction:column;gap:4px}.deck-progress-nums{display:flex;align-items:baseline;gap:2px;justify-content:center;font-family:var(--display);line-height:1;color:var(--cyan)}.deck-progress-nums b{font-size:1.5rem;font-weight:400}.deck-progress-nums span{font-size:.85rem;color:var(--muted)}.deck-progress-nums.ready{color:var(--ok)}.deck-progress-track{height:4px;border-radius:999px;overflow:hidden;background:#ffffff14}.deck-progress-track i{display:block;height:100%;background:linear-gradient(90deg,var(--cyan),var(--gold));border-radius:inherit;transition:width .35s ease}.deck-build{flex:0 0 auto;padding:8px 12px 10px;border-bottom:1px solid var(--line);background:#080c12c7}.deck-build-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.deck-guide{margin:0;font-size:.8rem;font-weight:600;color:#c9d3e6}.deck-build-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:min(300px,100%);margin:0 auto}.deck-build-grid .dss-card,.deck-slot-wrap .dss-card{width:100%;--hand-card-w: 100%}.deck-slot-wrap{position:relative}.deck-slot-remove{position:absolute;z-index:6;top:4px;right:4px;width:20px;height:20px;border-radius:999px;background:#000000bf;color:#fff;font-size:14px;font-weight:800;line-height:20px;text-align:center;pointer-events:none;box-shadow:0 2px 6px #00000073}.dss-card.deck-empty{border-style:dashed;border-color:#7a90b066;box-shadow:none;background:#0c1018a6;cursor:default;pointer-events:none;aspect-ratio:var(--sheet)}.dss-card.deck-empty .dss-art{background:repeating-linear-gradient(45deg,rgba(61,224,255,.04) 0 6px,transparent 6px 12px),#0c1018}.dss-card.deck-empty.next{border-color:#3de0ff8c;box-shadow:0 0 14px #3de0ff2e}.dss-card.deck-empty.next .deck-empty-mark{color:var(--cyan)}.deck-empty-mark{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;font-family:var(--display);font-size:1.35rem;color:#93a0b866;letter-spacing:.06em}.dss-card.deck-flash{animation:deckSlotFlash .55s ease}@keyframes deckSlotFlash{0%{transform:scale(.9);filter:brightness(1.35)}to{transform:none;filter:none}}.deck-catalog-head{flex:0 0 auto;padding:8px 12px 0}.deck-filters{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.deck-filters::-webkit-scrollbar{display:none}.deck-filter{flex:0 0 auto;border:1px solid var(--line);background:#0e141ee6;color:var(--muted);border-radius:999px;padding:6px 11px;font-size:.75rem;font-weight:700;min-height:34px;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}.deck-filter.on{color:#051018;background:var(--cyan);border-color:transparent;box-shadow:0 0 14px #3de0ff40}.deck-catalog{padding-top:8px;padding-bottom:8px}.deck-pick-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}.deck-pick{width:100%;position:relative}.deck-pick .dss-card{width:100%;--hand-card-w: 100%}.deck-pick .dss-card.in-deck,.gallery-grid .dss-card.in-deck{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent, var(--cyan)) 75%,transparent),0 8px 18px #00000073,0 0 18px var(--glow, transparent)}.deck-pick.locked .dss-card{opacity:.55}.count-badge.add{background:var(--cyan);color:#051018;font-size:.85rem;padding:0 7px}.count-badge.max{background:#ffffff2e;color:#fff}.deck-footer{flex:0 0 auto;padding:10px 12px calc(12px + var(--safe-bottom));border-top:1px solid rgba(61,224,255,.18);background:linear-gradient(180deg,#0a0e16f0,#06080cfa);box-shadow:0 -10px 24px #0000004d}.deck-ready{width:100%;margin:0}.deck-ready:disabled{opacity:.55;animation:none;filter:grayscale(.15)}@media(max-height:720px){.deck-build-grid{width:min(250px,100%);gap:6px}.deck-guide{font-size:.72rem}}.deck-stepper{display:grid;grid-template-columns:52px 1fr 52px;gap:10px;align-items:center;width:100%;padding:6px;border-radius:14px;border:1px solid rgba(61,224,255,.28);background:#0a0e16e6}.deck-step{width:52px;height:52px;border-radius:12px;border:1px solid rgba(255,255,255,.16);background:linear-gradient(180deg,#243044,#1b2436);color:var(--text);font-size:1.5rem;font-weight:700;box-shadow:0 2px #00000059}.deck-step:disabled{opacity:.35}.deck-step:not(:disabled):active{transform:scale(.95)}.deck-step-count{text-align:center;display:flex;flex-direction:column;gap:2px}.deck-step-count b{font-size:1.45rem;font-weight:800;color:var(--cyan)}.deck-step-count span{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.card-stage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-detail) + 50);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:16px 16px calc(18px + var(--safe-bottom));pointer-events:none}.card-stage-scrim{position:absolute;top:0;right:0;bottom:0;left:0;border:0;padding:0;cursor:pointer;background:radial-gradient(ellipse at 50% 35%,rgba(61,224,255,.12),transparent 55%),#020408d1;pointer-events:auto;animation:titleContentIn .25s ease both}.card-stage-focus{position:relative;z-index:1;flex:1 1 auto;display:grid;place-items:center;width:100%;pointer-events:none;animation:stageCardIn .35s cubic-bezier(.2,.85,.2,1) both}@keyframes stageCardIn{0%{opacity:0;transform:translateY(24px) scale(.92)}to{opacity:1;transform:none}}.card-stage-focus .dss-card{pointer-events:none;width:min(240px,62vw);--hand-card-w: 100%}.card-stage-dock{position:relative;z-index:2;width:min(340px,100%);display:flex;flex-direction:column;gap:8px;pointer-events:auto;animation:titleContentIn .35s ease .05s both}.dss-card{position:relative;width:var(--hand-card-w);aspect-ratio:var(--sheet);border-radius:11px;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-top:2px solid var(--accent, var(--line));background:#0a0c10;color:inherit;padding:0;cursor:pointer;transform-origin:50% 100%;box-shadow:0 8px 18px #00000073,inset 0 1px #ffffff1f,0 0 12px var(--glow, transparent);transition:transform var(--motion) cubic-bezier(.2,.85,.2,1),box-shadow var(--motion) ease,filter var(--motion) ease,border-color var(--motion) ease}.dss-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:4;border-radius:inherit;background:linear-gradient(165deg,rgba(255,255,255,.1),transparent 28%,transparent 72%,rgba(0,0,0,.18))}.dss-art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background-color:#12151c;background-size:100% 100%;background-repeat:no-repeat;background-position:center top}.card-chrome-top{position:absolute;z-index:3;left:5%;right:5%;top:3.8%;height:7.5%;display:flex;align-items:center;justify-content:space-between;gap:4px;pointer-events:none}.card-cat{flex:0 0 auto;width:1.15em;height:1.15em;display:grid;place-items:center;font-size:clamp(10px,2.2vw,13px);line-height:1;border-radius:999px;background:color-mix(in srgb,var(--accent, var(--cyan)) 88%,#061018);box-shadow:0 1px 3px #00000073;filter:drop-shadow(0 0 4px var(--glow, transparent))}.card-chrome-bot{position:absolute;z-index:3;left:7%;right:7%;top:80%;bottom:3%;padding:3px 2px 1px;display:flex;flex-direction:column;background:linear-gradient(180deg,transparent,rgba(4,7,12,.7) 28%,rgba(4,7,12,.94));border-radius:0 0 6px 6px;pointer-events:none;text-align:left;overflow:hidden}.card-blurb{flex:1 1 auto;min-height:0;font-size:11px;line-height:1.2;color:#e8eef8;text-shadow:0 1px 2px #000;overflow:hidden;white-space:normal;word-break:break-word;opacity:.98}.cost-chips{display:flex;flex-wrap:nowrap;gap:2px;justify-content:flex-end;align-items:center;margin-left:auto}.chip{font-size:clamp(8px,1.55vw,10px);font-weight:800;line-height:1;border-radius:999px;padding:2px 4px;background:#080c14d1;color:#e8f0ff;border:1px solid rgba(255,255,255,.12);white-space:nowrap;box-shadow:0 1px 2px #00000059}.chip.ap{background:var(--cyan);color:#051018;border-color:transparent;min-width:1.1em;text-align:center}.chip.money{background:var(--gold);color:#201400;border-color:transparent}.chip.hide{background:#00000073;padding:1px 3px}.chip.kind,.chip.hp{background:#ff4d6dd9;color:#fff;border-color:transparent}.chip.burn{background:var(--purple);color:#fff;border-color:transparent}.dss-card.selected{border-color:var(--accent, var(--cyan));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent, var(--cyan)) 80%,transparent),0 0 28px var(--glow, rgba(61,224,255,.55)),0 18px 36px #0009;filter:brightness(1.08)}.hand .dss-card.selected{transform-origin:50% 85%}.hand .dss-card.selected .card-chrome-bot{top:76%}.hand .dss-card.selected .card-blurb{font-size:11px;line-height:1.22}.dss-card.dim{filter:saturate(.75) brightness(.88)}.dss-card.sel-target{outline:2px solid var(--gold);animation:targetPulse 1.1s ease-in-out infinite}.dss-card.sm{--hand-card-w: 78px}.dss-card.sm .card-chrome-top{top:3%;left:4%;right:4%;height:9%}.dss-card.sm .card-cat{font-size:9px}.dss-card.sm .card-chrome-bot{top:78%;left:5%;right:5%;bottom:2.5%;padding:2px}.dss-card.sm .card-blurb{font-size:8px;line-height:1.15}.dss-card.sm .chip{font-size:7.5px;padding:1px 3px}.dss-card.md{--hand-card-w: 132px}.dss-card.lg{--hand-card-w: 180px}.dss-card.lg .card-chrome-top{top:3.5%;height:7%}.dss-card.lg .card-chrome-bot{top:78%}.dss-card.lg .card-blurb{font-size:12px;line-height:1.25}.dss-card.xl{--hand-card-w: min(240px, 62vw)}.dss-card.xl .card-chrome-top{top:3.2%;height:6.5%}.dss-card.xl .card-chrome-bot{top:76%}.dss-card.xl .card-blurb{font-size:13px;line-height:1.28}.dss-card.xl .chip{font-size:10px;padding:2px 5px}.cat-family,.dss-card.FAMILY{--accent: #9ad0a0;--glow: rgba(154,208,160,.35)}.cat-street,.dss-card.STREET{--accent: var(--teal);--glow: rgba(46,184,166,.35)}.cat-conflict,.dss-card.CONFLICT{--accent: var(--danger);--glow: rgba(255,77,109,.35)}.cat-state,.dss-card.STATE{--accent: var(--purple);--glow: rgba(196,92,255,.4)}.cat-hustle,.dss-card.HUSTLE{--accent: var(--gold);--glow: rgba(240,193,75,.35)}.dss-back{background:repeating-linear-gradient(45deg,rgba(61,224,255,.06) 0 6px,transparent 6px 12px),linear-gradient(160deg,#182033,#0d121c);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-family:var(--display);color:#7a90b0}.dss-back .mark{font-size:1.6rem;filter:drop-shadow(0 0 8px rgba(61,224,255,.35))}.dss-back .cap{font-size:.65rem;color:var(--muted)}.count-badge{position:absolute;top:5px;right:5px;z-index:5;background:var(--gold);color:#111;border-radius:999px;padding:0 6px;font-weight:800;font-size:.72rem}.grid-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;max-height:56vh;overflow:auto;padding:4px 2px 10px}#game-root{height:100%;height:100dvh;max-height:100dvh;display:flex;flex-direction:column;overflow:hidden}.layout{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;overflow:hidden}.table{flex:1;min-height:0;display:flex;flex-direction:column;padding:6px 8px 0;gap:4px;overflow:hidden;background:linear-gradient(180deg,#080c128c,#060a0ebf),radial-gradient(ellipse at 50% 30%,#1a2a22 0%,var(--asphalt) 55%,#0a0c10 100%)}.table-scroll{flex:1 1 auto;min-height:0;overflow:hidden;display:flex;flex-direction:column;gap:5px}.fighter{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:8px 10px;align-items:center;padding:4px 2px;flex:0 0 auto;border:0;background:transparent}.fighter-id{display:flex;align-items:center;gap:8px;min-width:0}.avatar{width:32px;height:32px;border-radius:50%;flex:0 0 auto;background:radial-gradient(circle at 30% 28%,#6a7ea0,#1a2233 62%);border:1px solid rgba(255,255,255,.16);display:grid;place-items:center;font-weight:800;font-size:.85rem}.fighter.enemy .avatar{border-color:#c45cff73}.fighter.self .avatar{border-color:#3de0ff73}.fighter-who{min-width:0;display:flex;flex-direction:column;gap:1px}.fighter-who strong{font-size:.8rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fighter-who span{font-size:.62rem;color:var(--muted)}.fighter-stats{display:flex;flex-direction:column;gap:3px;min-width:0}.bar-row{display:flex;align-items:center;gap:4px}.lbl{color:var(--muted);font-size:.62rem;width:18px;font-weight:700}.bar{position:relative;height:11px;min-width:0;flex:1;background:#080c12d9;border-radius:999px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.bar .fill{height:100%;transition:width 1.15s cubic-bezier(.22,.7,.2,1)}.bar.hp.ok .fill{background:linear-gradient(90deg,#1f8f5f,var(--ok))}.bar.hp.warn .fill{background:linear-gradient(90deg,#a56a00,var(--warn))}.bar.hp.danger .fill{background:linear-gradient(90deg,#8a1030,var(--danger))}.bar.stiha .fill{background:linear-gradient(90deg,#5a2a80,var(--purple))}.bar span{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:grid;place-items:center;font-size:.55rem;font-weight:700;text-shadow:0 1px 2px #000}.ap-seg{display:flex;align-items:center;gap:3px}.ap-seg i{width:10px;height:10px;border-radius:3px;background:#243044;display:inline-block;border:1px solid var(--line);transition:background .6s ease,box-shadow .6s ease}.ap-seg i.on{background:var(--cyan);box-shadow:0 0 7px #3de0ff8c}.ap-n{margin-left:3px;color:var(--muted);font-size:.65rem}.money{font-weight:800;color:var(--gold);font-size:.9rem;text-align:right;white-space:nowrap}.phase-strip{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 2px;border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06)}.phase-strip.go .phase-copy strong{color:var(--cyan)}.phase-copy{min-width:0;display:flex;flex-direction:column;gap:1px}.phase-copy strong{font-size:.82rem;font-weight:800;letter-spacing:.02em}.phase-copy span{font-size:.68rem;color:var(--muted)}.phase-copy em{font-style:normal;font-size:.68rem;color:#c9d3e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:58vw}.phase-tools{display:flex;gap:2px;flex:0 0 auto}.phase-tools .btn{min-height:34px;padding:4px 8px;font-size:.72rem}.win-banner{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 4px;text-align:center}.win-banner .menu-btn{width:min(280px,100%)}.board-zone{background:transparent;border:0;border-radius:0;padding:2px 0;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.zone-label{font-size:.58rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;display:flex;justify-content:space-between;flex:0 0 auto}.street{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-content:center;flex:1 1 auto;min-height:0;overflow:hidden}.street.empty-street{align-items:center;min-height:52px}.empty-hint{color:var(--muted);font-size:.72rem;border:1px dashed rgba(80,100,130,.45);border-radius:8px;padding:8px 12px}.board-tile{--bt-w: 86px;width:var(--bt-w);min-height:96px;border-radius:10px;border:1px solid rgba(255,255,255,.16);background:#0f141e;color:var(--text);padding:0;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;box-shadow:0 4px 12px #0006;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease;position:relative}.board-tile:active{transform:scale(.97)}.board-tile.mine{border-color:#3de0ff59}.board-tile.foe{border-color:#c45cff4d}.board-tile.kind-trap{border-color:#ff4d6d8c}.board-tile.kind-invest{border-color:#f0c14b8c}.board-tile.mature{box-shadow:0 0 0 1px #3dff9a59,0 4px 14px #00000073}.board-tile.sel-target,.board-tile.probeable:hover{outline:2px solid var(--gold);animation:targetPulse 1.1s ease-in-out infinite}.board-tile.probeable{cursor:crosshair}.board-zone.zone-probe .zone-label span:last-child{color:var(--gold)}.bt-art{flex:0 0 42%;min-height:36px;background:#12151c center top / cover no-repeat}.bt-body{flex:1;min-height:0;padding:4px 5px 5px;display:flex;flex-direction:column;gap:2px;background:linear-gradient(180deg,#080c12bf,#070a10);text-align:left}.bt-status{font-size:.55rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.bt-status.active{color:var(--ok)}.bt-status.ticking{color:var(--warn)}.bt-kind{font-size:.62rem;font-weight:800;line-height:1.1;display:flex;align-items:center;gap:3px}.bt-kind.kind-trap,.board-tile.kind-trap .bt-kind{color:var(--danger)}.bt-kind.kind-invest,.board-tile.kind-invest .bt-kind{color:var(--gold)}.bt-kind.mystery{color:#c9d3e6;justify-content:center}.bt-name{font-size:.68rem;font-weight:700;line-height:1.15;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.bt-timer{margin-top:auto;display:flex;align-items:baseline;gap:3px;font-size:.58rem;color:var(--muted)}.bt-timer b{font-size:.95rem;font-weight:900;color:var(--cyan);font-variant-numeric:tabular-nums}.bt-back{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px 4px;background:repeating-linear-gradient(45deg,rgba(61,224,255,.05) 0 5px,transparent 5px 10px),linear-gradient(160deg,#182033,#0d121c)}.bt-mark{font-size:1.45rem;filter:drop-shadow(0 0 8px rgba(61,224,255,.35))}.bt-hint{font-size:.55rem;font-weight:700;color:var(--gold);text-transform:uppercase;letter-spacing:.03em}.board-tile.tile-in{animation:tileIn .7s ease}@keyframes tileIn{0%{opacity:0;transform:translateY(10px) scale(.92)}to{opacity:1;transform:none}}.hand-dock{flex:0 0 auto;display:flex;flex-direction:column;gap:4px;align-items:stretch;padding:0 4px calc(6px + var(--safe-bottom));background:linear-gradient(180deg,transparent,rgba(5,8,12,.96) 28%);z-index:45;position:relative;overflow:visible}@media(min-width:641px){.hand-dock{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:end}.hand-stage{grid-column:1;grid-row:1}.hand-action-bar{grid-column:1;grid-row:2;justify-self:center}.hand-actions{grid-column:2;grid-row:1 / span 2;align-self:end}}.hand-stage{position:relative;width:100%;height:calc(var(--hand-card-h) + 32px);max-height:36dvh;overflow:visible;touch-action:manipulation}.hand{position:absolute;top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none}.hand.fan-dimmed .dss-card:not(.selected){filter:brightness(.55) saturate(.75);opacity:.78}.hand .dss-card{position:absolute;top:28px;left:0;width:var(--hand-card-w);height:var(--hand-card-h);pointer-events:auto;will-change:transform;transition:transform var(--motion) cubic-bezier(.2,.85,.2,1),box-shadow var(--motion) ease,filter var(--motion) ease,border-color var(--motion) ease,opacity var(--motion) ease}.hand .dss-card.entering{opacity:0}.empty-hand{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:var(--muted);font-size:.85rem;pointer-events:none}.hand-actions{display:flex;flex-direction:column;gap:4px;min-width:112px;padding-bottom:2px}@media(max-width:640px){.table{padding:4px 6px 0;gap:3px}.table-scroll{gap:4px;overflow:hidden}.fighter{gap:6px 8px;padding:2px 0}.avatar{width:28px;height:28px;font-size:.78rem}.fighter-who strong{font-size:.72rem}.bar{height:10px}.bar span{font-size:.5rem}.money{font-size:.78rem}.ap-seg i{width:9px;height:9px}.phase-copy em{max-width:48vw;font-size:.62rem}.board-zone{padding:1px 0}.zone-label{font-size:.52rem;margin-bottom:1px}.street{gap:5px}.board-tile{--bt-w: 78px;min-height:88px}.bt-name{font-size:.64rem}.bt-timer b{font-size:.88rem}.empty-hint{font-size:.66rem;padding:6px 10px}.hand-dock{display:flex;flex-direction:column;align-items:stretch;gap:2px;padding:0 4px calc(4px + var(--safe-bottom))}.hand-stage{max-height:32dvh;grid-column:auto}.hand .dss-card{top:30px}.hand .dss-card .card-chrome-bot{top:80%}.hand .dss-card .card-blurb{font-size:9.5px;line-height:1.18}.hand .dss-card .chip{font-size:8px;padding:1px 3px}.hand .dss-card .card-cat{font-size:11px}.hand-actions{flex-direction:row;flex-wrap:nowrap;width:100%;min-width:0;gap:3px;padding:0;overflow:visible}.hand-actions .btn{flex:1 1 0;min-width:0;min-height:38px;padding:6px 3px;font-size:.7rem;white-space:nowrap}.hand-actions label.tag{flex:0 0 auto;font-size:.62rem;white-space:nowrap;align-self:center}.log-backdrop{z-index:calc(var(--z-detail) + 55)}.log-panel{top:calc(44px + var(--safe-top));left:6px;right:6px;bottom:calc(6px + var(--safe-bottom));width:auto;max-width:none;border-radius:12px;z-index:calc(var(--z-detail) + 60)}}@media(max-width:390px){.board-tile{--bt-w: 72px;min-height:84px}.hand-actions .btn{font-size:.66rem;padding:5px 2px;min-height:36px}}.hand-zoom-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-detail) + 10);background:#00000061;pointer-events:auto}body:has(#hand-action-bar) .hand-dock{z-index:calc(var(--z-detail) + 30)}.hand-action-bar{position:relative;z-index:2;width:min(300px,100%);margin:0 auto;flex:0 0 auto;background:#0a0e16f7;border:1px solid var(--accent, var(--cyan));border-radius:10px;padding:4px 6px;box-shadow:var(--shadow);pointer-events:auto}.hand-action-bar .detail-actions{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:4px}.hand-action-bar .detail-actions .btn{flex:0 1 auto;min-height:34px;min-width:0;padding:5px 10px;font-size:.78rem}.hand-action-bar .bar-reason{margin-top:2px;font-size:.65rem;color:var(--warn);text-align:center;line-height:1.2}.hand-dock.has-selection .hand-actions{opacity:.92}.log-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:calc(var(--z-log) - 1);display:none}.log-backdrop.open{display:block}.log-panel{position:fixed;top:52px;right:8px;bottom:12px;width:min(320px,calc(100vw - 16px));background:#0a0e16fa;border:1px solid var(--line);border-radius:14px;padding:10px;display:none;flex-direction:column;gap:6px;z-index:var(--z-log);box-shadow:var(--shadow)}.log-panel.open{display:flex}.log-panel h3{margin:0;font-size:.85rem;color:var(--cyan);display:flex;justify-content:space-between;align-items:center}.log{overflow:auto;flex:1;font-size:.72rem;line-height:1.3;display:flex;flex-direction:column;gap:4px;min-height:0;-webkit-overflow-scrolling:touch}.log-item{padding:5px 7px;background:#121826;border-radius:7px;border:1px solid #1c2433;border-left:3px solid var(--cyan)}.deck-info{font-size:.68rem;color:var(--muted);border-top:1px solid var(--line);padding-top:6px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000c2;display:grid;place-items:center;z-index:calc(var(--z-detail) + 40);padding:14px}.modal{background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:18px;width:min(560px,100%);max-height:90vh;overflow:auto;box-shadow:var(--shadow)}.modal.wide{width:min(920px,100%)}.modal h3{margin:0 0 10px}.choice-list{display:flex;flex-direction:column;gap:8px;margin:12px 0}.detail-preview{display:flex;justify-content:center;margin:8px 0 12px}.float-stack{position:fixed;top:calc(12px + var(--safe-top));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:flex;flex-direction:column;align-items:center;gap:2px;pointer-events:none;width:min(92vw,440px)}.float-line{margin:0;padding:0;border:0;background:none;box-shadow:none;font-family:var(--display);font-size:clamp(1.35rem,6vw,1.9rem);letter-spacing:.04em;line-height:1.05;color:#f2f7ff;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.95),0 0 18px rgba(0,0,0,.75);animation:floatLine 2.2s ease forwards}.float-line.bad{color:#ff7a90}.float-line.good{color:#6dffb0}.float-line.gold{color:#ffd76a}@keyframes floatLine{0%{opacity:0;transform:translateY(-8px)}12%{opacity:1;transform:translateY(0)}70%{opacity:1}to{opacity:0;transform:translateY(-14px)}}@keyframes targetPulse{0%,to{box-shadow:0 0 #f0c14b8c}50%{box-shadow:0 0 0 6px #f0c14b00}}.dice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-toast) + 10);display:grid;place-items:center;background:#0000008c;pointer-events:none;animation:floatLine .35s ease}.dice-card{width:min(240px,calc(100vw - 40px));background:#0c1018fa;border:2px solid var(--gold);border-radius:18px;padding:18px 16px 14px;text-align:center;box-shadow:var(--shadow),0 0 28px #f0c14b40;transform:scale(.92) rotate(-4deg);transition:transform .2s ease,border-color .2s ease}.dice-overlay.landed .dice-card{transform:scale(1) rotate(0)}.dice-card.good{border-color:var(--ok)}.dice-card.bad{border-color:var(--danger)}.dice-face{font-size:3.4rem;line-height:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.55));animation:diceSpin .07s linear infinite}.dice-overlay.landed .dice-face{animation:none}.dice-num{font-size:1.6rem;font-weight:900;color:var(--gold);font-variant-numeric:tabular-nums;margin-top:2px}.dice-title{margin-top:8px;font-size:1.05rem;font-weight:800}.dice-tip{margin-top:4px;font-size:.78rem;color:var(--muted);line-height:1.3}@keyframes diceSpin{0%{transform:rotate(-12deg) scale(.96)}to{transform:rotate(12deg) scale(1.04)}}.play-flash .dss-card.selected{animation:playFlash .9s ease}@keyframes playFlash{0%{filter:brightness(1)}40%{filter:brightness(1.45) saturate(1.2)}to{filter:brightness(1)}}
