:root{--bg: #0b0e14;--bg-2: #121722;--raised: #182031;--card: #1d2637;--line: #2a3446;--text: #eef1f7;--text-dim: #8b95a9;--accent: #ff7a45;--accent-2: #ffb066;--gold: #ffd166;--blue: #64b5f6;--danger: #ff5f56;--sq-light-a: #f2ebda;--sq-light-b: #e4d9c0;--sq-dark-a: #74926a;--sq-dark-b: #5d7a55;--ease: cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;min-height:100%;color:var(--text);background:var(--bg);font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-feature-settings:"ss01","cv01";overscroll-behavior:none;touch-action:manipulation;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(120% 60% at 50% -10%,rgba(255,122,69,.16),transparent 60%),radial-gradient(90% 50% at 50% 110%,rgba(100,181,246,.1),transparent 65%),linear-gradient(180deg,var(--bg-2),var(--bg) 45%)}.app{position:relative;max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:env(safe-area-inset-top) max(10px,env(safe-area-inset-left)) calc(10px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-right))}.stage{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:0}.piece-defs{position:absolute;width:0;height:0;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 2px 10px}.brand{display:flex;align-items:center;gap:8px}.brand-mark{font-size:1.35rem;line-height:1;color:var(--accent);filter:drop-shadow(0 2px 6px rgba(255,122,69,.5))}.brand h1{margin:0;font-size:1.18rem;font-weight:800;letter-spacing:-.03em}.brand h1 span{background:linear-gradient(100deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.actions{display:flex;gap:6px}.icon-btn{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--line);background:linear-gradient(180deg,#ffffff0d,#ffffff03);color:var(--text-dim);cursor:pointer;transition:color .15s,border-color .15s,transform .12s var(--ease)}.icon-btn:active{transform:scale(.92)}.icon-btn.on{color:var(--accent);border-color:#ff7a4580;background:#ff7a451f}.strip{display:flex;align-items:center;gap:8px;padding:6px 8px;margin:3px 0;border-radius:12px;border:1px solid transparent;min-height:38px;transition:background .25s,border-color .25s}.strip-active{background:#ff7a4517;border-color:#ff7a4547}.avatar{width:26px;height:26px;display:grid;place-items:center;font-size:.95rem;border-radius:9px;background:var(--raised);border:1px solid var(--line);flex:none}.strip-name{font-size:.82rem;font-weight:700;letter-spacing:-.01em;flex:none}.strip-captured{display:flex;flex-wrap:wrap;flex:1;min-width:0;align-items:center}.mini-piece{width:17px;height:17px;margin-right:-4px;display:inline-flex;opacity:.85}.advantage{font-size:.75rem;font-weight:800;color:var(--gold);font-variant-numeric:tabular-nums;flex:none}.thinking-dots{display:inline-flex;gap:3px;flex:none}.thinking-dots i{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:bounce 1s infinite var(--ease)}.thinking-dots i:nth-child(2){animation-delay:.15s}.thinking-dots i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.45}30%{transform:translateY(-4px);opacity:1}}.board-frame{padding:9px;border-radius:20px;margin:2px auto;width:min(100%,calc(58dvh + 18px));background:linear-gradient(150deg,#303b4e,#1a2030 55%,#131926);box-shadow:0 22px 44px -16px #000000d9,0 2px #ffffff0d inset,0 0 0 1px #ffffff0d;transition:width .34s var(--ease)}.sheet-open .board-frame{width:min(100%,max(190px,calc(100dvh - var(--sheet-h, 300px) - 232px)))}.sheet-open .stage{justify-content:flex-start}.sheet-open.sheet-min .stage{justify-content:center;padding-bottom:var(--peek-h, 62px)}.board{display:grid;grid-template-columns:repeat(8,1fr);width:100%;aspect-ratio:1;border-radius:11px;overflow:hidden;box-shadow:0 0 0 1px #00000073 inset}.board-disabled{pointer-events:none}.square{position:relative;border:0;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;isolation:isolate}.sq-light{background:linear-gradient(155deg,var(--sq-light-a),var(--sq-light-b))}.sq-dark{background:linear-gradient(155deg,var(--sq-dark-a),var(--sq-dark-b))}.sq-lava:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:repeating-linear-gradient(45deg,#ff5e149e 0,#ff5e149e 7px,#ffa31a80 7px,#ffa31a80 14px);background-size:200% 200%;animation:lava 3.5s linear infinite}@keyframes lava{to{background-position:40px 0}}.sq-last:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:#ffd16657;box-shadow:0 0 0 2px #ffd16666 inset}.sq-selected:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:#ff7a4552;box-shadow:0 0 0 3px var(--accent) inset}.sq-check:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(circle at 50% 45%,#ff5f56f2,#ff5f5600 72%);animation:check-pulse 1.15s ease-in-out infinite}@keyframes check-pulse{50%{opacity:.45}}.piece-wrap{position:absolute;top:0;right:0;bottom:0;left:0;padding:6%;z-index:2;pointer-events:none;display:block}.piece-sliding{animation:slide-in .26s var(--ease)}@keyframes slide-in{0%{transform:translate(var(--dx),var(--dy))}}.piece{width:100%;height:100%;display:block;filter:drop-shadow(0 2px 2.5px rgba(0,0,0,.4));transition:transform .16s var(--ease)}.sq-selected .piece{transform:scale(1.09);filter:drop-shadow(0 4px 6px rgba(0,0,0,.55))}.piece-w{fill:url(#acW);stroke:#7c7263;stroke-width:1.15;stroke-linejoin:round}.piece-b{fill:url(#acB);stroke:#05070c;stroke-width:1.15;stroke-linejoin:round}.piece-w .detail{fill:#7c7263;stroke:none}.piece-b .detail{fill:#cbd2e0;stroke:none}.piece .detail-line{fill:none;stroke-width:1;opacity:.5}.hint{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;pointer-events:none;animation:hint-in .16s var(--ease)}@keyframes hint-in{0%{opacity:0;transform:scale(.5)}}.hint-move:after{content:"";position:absolute;left:50%;top:50%;width:28%;height:28%;transform:translate(-50%,-50%);border-radius:50%;background:#141a2466;box-shadow:0 1px 2px #00000040}.hint-capture:after{content:"";position:absolute;top:7%;right:7%;bottom:7%;left:7%;border-radius:50%;border:3.5px solid rgba(255,95,86,.9);box-shadow:0 0 10px #ff5f568c}.sq-target:active .hint{opacity:.5}.coord{position:absolute;z-index:4;font-size:clamp(7px,2vw,10px);font-weight:700;pointer-events:none;opacity:.5}.sq-light .coord{color:#5d7a55}.sq-dark .coord{color:#eee7d6}.coord-rank{top:2px;left:3px}.coord-file{bottom:1px;right:3px}.status{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 0 2px;min-height:34px}.status-text{font-size:.95rem;font-weight:700;letter-spacing:-.01em}.status-check .status-text{color:var(--danger);animation:check-flash 1.1s ease-in-out infinite}@keyframes check-flash{50%{opacity:.55}}.engine-tag{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim);background:var(--raised);border:1px solid var(--line);border-radius:999px;padding:3px 8px}.effects{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;padding:6px 2px 12px;min-height:36px}.effects-empty{color:var(--text-dim);font-size:.78rem}.chip{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;font-size:.73rem;font-weight:700;border-radius:999px;background:var(--card);border:1px solid var(--line);animation:chip-in .3s var(--ease);color:var(--text);font-family:inherit;cursor:pointer;transition:transform .12s var(--ease),border-color .15s}.chip:active{transform:scale(.94);border-color:var(--accent)}@keyframes chip-in{0%{opacity:0;transform:translateY(6px) scale(.9)}}.chip-perm{border-color:#ffd16673;background:linear-gradient(180deg,#ffd16629,#ffd1660d)}.chip-expiring{border-color:#ff5f5666}.chip-time{color:var(--accent);font-variant-numeric:tabular-nums;font-size:.7rem}.chip-perm .chip-time{color:var(--gold)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background:#06090e57;animation:fade-in .25s ease-out}@keyframes fade-in{0%{opacity:0}}.sheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,var(--drag-y, 0px));touch-action:none;width:min(480px,100vw);z-index:10;padding:8px 12px calc(14px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;background:linear-gradient(180deg,#1b2231,#141a26);border-top:1px solid rgba(255,255,255,.08);box-shadow:0 -18px 50px #000000a6;animation:sheet-rise .34s var(--ease);transition:transform .34s var(--ease)}.sheet-collapsed{transform:translate(-50%,calc(100% - var(--peek-h, 62px) + var(--drag-y, 0px)))}.sheet-dragging{transition:none}@keyframes sheet-rise{0%{transform:translate(-50%,100%)}}.sheet-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:100%;min-height:52px;padding:4px 0 8px;border:0;background:none;color:var(--text-dim);font-family:inherit;font-size:.74rem;font-weight:700;cursor:pointer}.sheet-toggle-label{display:inline-flex;align-items:center;gap:5px}.sheet-toggle:active .sheet-toggle-label{color:var(--accent)}.grabber{display:block;width:38px;height:4px;border-radius:999px;background:var(--line)}.sheet-title{text-align:center;margin-bottom:12px}.sheet-kicker{display:block;font-size:.66rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.sheet-title h2{margin:3px 0 0;font-size:1.14rem;font-weight:800;letter-spacing:-.02em}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px 11px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(180deg,var(--card),#161d2b);color:var(--text);text-align:center;cursor:pointer;animation:card-deal .4s var(--ease) backwards;transition:transform .14s var(--ease),border-color .18s}@keyframes card-deal{0%{opacity:0;transform:translateY(22px) rotate(-3deg) scale(.94)}}.card:before{content:"";position:absolute;top:0;left:14%;right:14%;height:2px;border-radius:999px;background:var(--blue);opacity:.75}.card-perm:before{background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:1}.card-perm{border-color:#ffd1666b;background:linear-gradient(180deg,#2a2617,#1a1a20)}.card-glow{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.card-perm .card-glow:after{content:"";position:absolute;top:-60%;left:-60%;width:45%;height:220%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,226,165,.22),transparent);animation:shine 2.6s ease-in-out infinite}@keyframes shine{0%{left:-60%}55%,to{left:130%}}.card:active{transform:scale(.95);border-color:var(--accent)}.card-icon{font-size:1.55rem;line-height:1;filter:drop-shadow(0 2px 5px rgba(0,0,0,.45))}.card-name{font-size:.8rem;font-weight:800;line-height:1.15;letter-spacing:-.01em}.card-duration{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:2.5px 8px;border-radius:999px}.card-duration.perm{color:#1b1607;background:linear-gradient(180deg,var(--gold),#f0a93c)}.card-duration.temp{color:var(--blue);background:#64b5f624}.card-desc{font-size:.685rem;line-height:1.32;color:var(--text-dim)}.skip{display:block;width:100%;margin-top:11px;padding:11px;border:0;border-radius:12px;background:#ffffff0b;color:var(--text-dim);font-size:.8rem;font-weight:600;cursor:pointer}.skip:active{background:#ffffff17}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;padding:20px;background:#06090eb8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:fade-in .22s ease-out}.panel{width:min(340px,100%);padding:22px;text-align:center;border-radius:22px;background:linear-gradient(180deg,#1c2433,#141a26);border:1px solid var(--line);box-shadow:0 26px 60px #000000b3;animation:panel-pop .32s var(--ease)}@keyframes panel-pop{0%{opacity:0;transform:scale(.9) translateY(12px)}}.panel-title{margin:0 0 12px;font-weight:700;font-size:.95rem}.promo-choices{display:flex;gap:8px;justify-content:center}.promo-choices button{width:60px;height:60px;padding:7px;border-radius:14px;border:1px solid var(--line);background:linear-gradient(180deg,#232c3d,#1a212f);cursor:pointer;transition:transform .12s var(--ease),border-color .15s}.promo-choices button:active{transform:scale(.93);border-color:var(--accent)}.over-emoji{font-size:3rem;display:block;animation:trophy .6s var(--ease) .1s backwards}@keyframes trophy{0%{opacity:0;transform:scale(.3) rotate(-25deg)}}.panel-over h2{margin:10px 0 16px;font-size:1.2rem;font-weight:800;letter-spacing:-.02em}.over-stats{display:flex;justify-content:center;gap:8px;margin-bottom:18px}.over-stats span{flex:1;display:flex;flex-direction:column;gap:2px;padding:9px 4px;border-radius:12px;background:#ffffff0a;font-size:.63rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.over-stats b{font-size:1.15rem;color:var(--text);font-variant-numeric:tabular-nums}.primary{width:100%;min-height:48px;border:0;border-radius:14px;background:linear-gradient(180deg,var(--accent-2),var(--accent));color:#1b1007;font-size:.98rem;font-weight:800;letter-spacing:-.01em;cursor:pointer;box-shadow:0 8px 20px -6px #ff7a4599;transition:transform .12s var(--ease)}.primary:active{transform:scale(.97)}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.confetti i{position:absolute;top:-14px;width:8px;height:13px;border-radius:2px;opacity:.95;animation:fall 2.6s linear infinite}@keyframes fall{0%{transform:translateY(-10px) rotate(0)}to{transform:translateY(102dvh) rotate(calc(var(--spin) * 620deg))}}@media (min-width: 520px){.sheet{bottom:14px;border-radius:24px;width:min(468px,calc(100vw - 24px))}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.panel-detail h2{margin:10px 0 12px;font-size:1.15rem;font-weight:800;letter-spacing:-.02em}.detail-icon{display:block;font-size:2.6rem;line-height:1;filter:drop-shadow(0 3px 8px rgba(0,0,0,.5));animation:trophy .4s var(--ease) backwards}.detail-desc{margin:14px 0 0;font-size:.92rem;line-height:1.45}.detail-note{margin:10px 0 18px;font-size:.75rem;line-height:1.4;color:var(--text-dim)}
