:root{--bg: #12201d;--bg-deep: #0a1311;--panel: rgba(255, 255, 255, .045);--panel-edge: rgba(255, 255, 255, .09);--slate: #0e1a17;--chalk: #eef4ec;--chalk-dim: #a7bdb2;--chalk-faint: #6c857a;--gold: #ffd23f;--gold-deep: #b38f12;--gold-ink: #3b2d00;--good: #5fe0a2;--bad: #ff6b7a;--blue: #7db6ff;--violet: #b99dff;--ink: #1d2230;--ivory: #fbf5e6;--ivory-2: #ece2c8;--ivory-edge: #c4b38a;--card-paper: #f4efe2;--op-add: #2fb276;--op-sub: #e65656;--op-mul: #3c82f0;--op-div: #9a68f0;--op-dbl: #ef8a24;--op-sq: #11a39a;--op-root: #5b6f93;--op-mirror: #d6457a;--op-fact: #b8860b;--op-pow: #e0482f;--sanity: #ff9fc4;--f-display: "Lilita One", "Arial Rounded MT Bold", system-ui, sans-serif;--f-body: "Atkinson Hyperlegible", system-ui, -apple-system, "Segoe UI", sans-serif;--f-mono: "JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:radial-gradient(130% 90% at 50% -10%,#1f3a34 0%,var(--bg) 50%,var(--bg-deep) 100%) fixed var(--bg);color:var(--chalk);font:15px/1.45 var(--f-body);overflow-x:hidden;-webkit-tap-highlight-color:transparent}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;background:radial-gradient(120% 100% at 50% 40%,transparent 55%,rgba(0,0,0,.45) 100%)}#bg{position:fixed;inset:0;z-index:0;pointer-events:none}#app{position:relative;z-index:1;min-height:100%}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--gold);outline-offset:3px}h1,h2,h3{font-family:var(--f-display);font-weight:400;margin:0;letter-spacing:.01em;text-wrap:balance}p{margin:0}code{font-family:var(--f-mono)}.muted{color:var(--chalk-dim)}.small{font-size:13px}.empty{color:var(--chalk-faint);font-style:italic;padding:10px 0}.mini-h{font:800 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-faint)}.lbl{font:800 10.5px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-dim)}[hidden]{display:none!important}.screen{min-height:100%;padding-block:14px 32px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));animation:screen-in .45s ease both}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.panel{background:linear-gradient(180deg,#ffffff0e,#ffffff05);border:1.5px solid var(--panel-edge);border-radius:22px;box-shadow:0 20px 40px -24px #000000b3,inset 0 1px #ffffff0f}.btn{border:0;cursor:pointer;border-radius:14px;padding:13px 20px;font:700 16px/1 var(--f-body);color:var(--ink);background:var(--chalk);box-shadow:0 5px #8fa59a,0 12px 18px -6px #00000080;transition:transform .1s ease,box-shadow .1s ease,filter .2s ease}.btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.06)}.btn{position:relative}.btn:after,button.tile:after,button.op:after,.slot-total:after{content:"";position:absolute;inset:0;border-radius:inherit}.btn:hover:not(:disabled):after{inset:-2px -2px -6px}button.tile:not(:disabled):hover:after{inset:-10px -10px -22px}button.op:not(:disabled):hover:after{inset:-12px -12px -26px}.slot-total.target:hover:after{inset:-4px -4px -10px}.btn:active:not(:disabled){transform:translateY(4px);box-shadow:0 1px #8fa59a,0 4px 8px #0006}.btn.primary{background:linear-gradient(180deg,#ffe17a,var(--gold));color:var(--gold-ink);box-shadow:0 5px 0 var(--gold-deep),0 12px 18px -6px #00000080}.btn.primary:active:not(:disabled){box-shadow:0 1px 0 var(--gold-deep),0 4px 8px #0006}.btn.big{font-size:19px;padding:17px 30px;border-radius:16px}.btn:disabled{cursor:not-allowed;filter:grayscale(1) brightness(.55);box-shadow:none;transform:translateY(5px)}.link{background:none;border:0;color:var(--gold);cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:4px}.tile{--rx: 0deg;--ry: 0deg;--lift: 0px;--tc: var(--ink);position:relative;width:64px;height:74px;flex:none;padding:0;border:0;border-radius:14px;display:grid;place-items:center;color:var(--tc);font:38px/1 var(--f-display);background:linear-gradient(180deg,var(--ivory) 0%,var(--ivory-2) 100%);box-shadow:0 6px 0 var(--ivory-edge),0 12px 18px -4px #00000073,inset 0 2px #fff,inset 0 -3px #0000000f;transform:perspective(520px) translateY(var(--lift)) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .18s ease,box-shadow .18s ease;user-select:none}.tile:before{content:"";position:absolute;inset:6px;border-radius:10px;border:1.5px solid color-mix(in srgb,var(--tc) 18%,transparent);pointer-events:none}.tile .num{position:relative;text-shadow:0 1px 0 rgba(255,255,255,.85)}.tile .key{position:absolute;top:5px;left:7px;font:800 9px/1 var(--f-mono);color:#1d223059}button.tile{cursor:default}button.tile:not(:disabled){cursor:pointer}button.tile:not(:disabled):hover{--lift: -9px;box-shadow:0 10px 0 var(--ivory-edge),0 18px 24px -6px #00000080,inset 0 2px #fff}.tile.v0{--tc: #6b7280}.tile.v1{--tc: #2563d9}.tile.v2{--tc: #15925a}.tile.v3{--tc: #d33c36}.tile.v4{--tc: #7446d4}.tile.v5{--tc: #dd7410}.tile.v6{--tc: #0e8a84}.tile.v7{--tc: #c02f76}.tile.v8{--tc: #4652d0}.tile.v9{--tc: #95660c}.tile.big{--tc: var(--ink);font-size:30px}.tile.neg{--tc: var(--ivory);background:linear-gradient(180deg,#3b4256,#232838);box-shadow:0 6px #10131c,0 12px 18px -4px #00000073,inset 0 2px #ffffff26}.tile.neg .num{text-shadow:none}.tile.temp{background:repeating-linear-gradient(-45deg,var(--ivory) 0 7px,#f1e6cb 7px 14px)}.tile.sm{width:38px;height:44px;border-radius:10px;font-size:22px;box-shadow:0 4px 0 var(--ivory-edge),0 6px 10px -2px #0006,inset 0 1.5px #fff}.tile.sm:before{inset:4px;border-radius:7px}.tile.xl{width:88px;height:100px;border-radius:18px;font-size:54px;box-shadow:0 8px 0 var(--ivory-edge),0 18px 28px -6px #0000008c,inset 0 2px #fff}.tile.xl:before{inset:8px;border-radius:12px}.tile.drawn{animation:float 2.2s ease-in-out infinite}.tile.target{animation:target-pulse 1.3s ease-in-out infinite}.tile.merged{animation:none;box-shadow:0 6px 0 var(--ivory-edge),0 0 0 4px var(--gold),0 0 30px #ffd23f99}.tile.flying{animation:none}@keyframes target-pulse{0%,to{box-shadow:0 6px 0 var(--ivory-edge),0 0 #ffd23f00,0 12px 18px -4px #00000073,inset 0 2px #fff}50%{box-shadow:0 6px 0 var(--ivory-edge),0 0 0 4px #ffd23fe6,0 0 26px #ffd23f73,inset 0 2px #fff}}@keyframes float{0%,to{translate:0 0;rotate:-2deg}50%{translate:0 -7px;rotate:2deg}}.op{--c: var(--op-add);--rx: 0deg;--ry: 0deg;--lift: 0px;--rot: 0deg;position:relative;width:100px;height:132px;flex:none;border:0;border-radius:16px;padding:12px 8px;color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:radial-gradient(circle at 1px 1px,rgba(255,255,255,.14) 1px,transparent 1.6px) 0 0 / 10px 10px,radial-gradient(120% 85% at 30% 10%,color-mix(in srgb,var(--c) 62%,#fff) 0%,var(--c) 46%,color-mix(in srgb,var(--c) 68%,#000) 100%);box-shadow:0 6px color-mix(in srgb,var(--c) 50%,#000),0 16px 24px -8px #0009,inset 0 0 0 2px #fff3,inset 0 0 0 6px #0000000f;transform:perspective(620px) translateY(var(--lift)) rotate(var(--rot)) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .18s ease,filter .2s ease,box-shadow .18s ease;user-select:none}button.op{cursor:pointer}.op-add{--c: var(--op-add)}.op-sub{--c: var(--op-sub)}.op-mul{--c: var(--op-mul)}.op-div{--c: var(--op-div)}.op-dbl{--c: var(--op-dbl)}.op-sq{--c: var(--op-sq)}.op-root{--c: var(--op-root)}.op-mirror{--c: var(--op-mirror)}.op-fact{--c: var(--op-fact)}.op-pow{--c: var(--op-pow)}.op-dbl .op-sym,.op-sq .op-sym,.op-fact .op-sym,.op-pow .op-sym{scale:.74}.op-sym{flex:1;display:grid;place-items:center;font:66px/1 var(--f-display);text-shadow:0 4px 0 rgba(0,0,0,.22)}.op-name{font:800 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase}.op .key{position:absolute;top:8px;left:10px;font:800 10px/1 var(--f-mono);opacity:.6}.op-odds{position:absolute;top:-11px;right:-8px;font:800 12px/1 var(--f-mono);padding:6px 8px;border-radius:999px;background:var(--ink);border:2px solid currentColor;box-shadow:0 4px 10px #0006}button.op:not(:disabled):hover{--lift: -12px;--rot: -2.5deg;box-shadow:0 10px color-mix(in srgb,var(--c) 50%,#000),0 26px 30px -10px #000000a6,inset 0 0 0 2px #ffffff4d}button.op:not(:disabled):active{--lift: -4px;transition-duration:.06s}button.op:disabled{cursor:not-allowed;filter:saturate(.25) brightness(.62)}.op.sm{width:66px;height:88px;border-radius:12px;padding:7px 4px 8px}.op.sm .op-sym{font-size:42px}.op.sm .op-name{font-size:8px;letter-spacing:.1em}.icon-btn{cursor:pointer;flex:none;width:40px;height:40px;display:grid;place-items:center;border-radius:12px;border:1.5px solid var(--panel-edge);background:#00000038;color:var(--chalk-dim);font:700 18px/1 var(--f-body);transition:border-color .15s,color .15s,background .15s}.icon-btn:hover{border-color:var(--chalk-dim);color:var(--chalk)}.nav-btns{display:flex;gap:8px}.mini-bag{display:inline-grid;width:22px;height:22px;flex:none}.mini-bag svg{width:100%;height:100%}.pips{display:inline-flex;gap:4px;align-items:center}.pips i{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--blue);background:transparent}.pips i.on{background:var(--blue);box-shadow:0 0 8px #7db6ff99}.hud{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;padding:8px 12px;border-radius:18px;background:#00000038;border:1.5px solid var(--panel-edge)}.brand{font:22px/1 var(--f-display);white-space:nowrap}.brand-one{display:inline-grid;place-items:center;width:26px;height:30px;margin-left:2px;border-radius:7px;background:linear-gradient(180deg,var(--ivory),var(--ivory-2));color:#2563d9;box-shadow:0 3px 0 var(--ivory-edge);font-size:20px;transform:rotate(6deg)}.progress{display:flex;gap:6px;align-items:center}.dot{width:12px;height:12px;border-radius:4px;background:#ffffff1f;border:1.5px solid rgba(255,255,255,.2);transition:transform .2s}.dot.elite{border-radius:50%}.dot.shop{border-radius:50%;border-style:dashed}.dot.boss{width:15px;height:15px;border-radius:4px;transform:rotate(45deg);border-color:#ff6b7a99}.dot.done{background:var(--good);border-color:var(--good)}.dot.now{background:var(--gold);border-color:var(--gold);box-shadow:0 0 12px #ffd23fb3}.hud-stats{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:center}.hstat{display:flex;align-items:center;gap:8px}.hstat b{font:22px/1 var(--f-display);font-variant-numeric:tabular-nums}.hstat.moves b{color:var(--blue)}.hstat.kp b{color:var(--gold);display:inline-block}.hstat .lbl .short{display:none}.hud-end{display:flex;gap:8px;align-items:center;margin-left:auto}.hud-btn{cursor:pointer;display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 12px;border-radius:12px;border:1.5px solid var(--panel-edge);background:#00000038;font:700 14px/1 var(--f-body);color:var(--chalk);transition:border-color .15s,background .15s}.hud-btn b{font:18px/1 var(--f-display)}.hud-btn:hover{border-color:var(--gold);background:#ffd23f12}.screen.game,.screen.mapscreen,.screen.shopscreen{height:100vh;height:100dvh;min-height:0;overflow:hidden;padding-block:max(10px,env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-bottom,0px))}.game{--tile-w: clamp(38px, min(7.6dvh, 5.6vw), 70px);--tile-h: calc(var(--tile-w) * 1.15);--op-w: clamp(46px, min(11dvh, 7.4vw), 100px);--op-h: calc(var(--op-w) * 1.3);max-width:1380px;margin:0 auto;display:grid;gap:12px;grid-template-columns:clamp(220px,21vw,290px) minmax(0,1fr);grid-template-rows:auto minmax(0,max-content);grid-template-areas:"top top" "enemy table";align-content:safe center}.game>*{min-width:0;min-height:0}.game>.hud{grid-area:top}.game.flash-bad:before{content:"";position:fixed;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle,transparent 40%,rgba(255,60,80,.35));animation:flash .7s ease forwards}@keyframes flash{0%{opacity:1}to{opacity:0}}.enemy-card{grid-area:enemy;padding:12px;display:flex;flex-direction:column;gap:12px;align-self:start;max-height:100%;overflow:hidden}.enemy-stage{position:relative;flex:none;width:100%;aspect-ratio:1 / .88;max-height:34dvh;border-radius:16px;background:radial-gradient(circle at 50% 38%,#fffaf0 0%,var(--card-paper) 52%,#ddd3bb 100%);box-shadow:inset 0 0 0 2px #1d223026,inset 0 -18px 30px -18px #1d223059}.enemy-stage:before,.next-art:before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:linear-gradient(rgba(29,34,48,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(29,34,48,.06) 1px,transparent 1px);background-size:14px 14px;pointer-events:none}.tier-concept.enemy-stage,.tier-concept.next-art,.tier-concept.boss-portrait{background:radial-gradient(circle at 50% 38%,#fbf7ff,#ece4fb 55%,#d4c6f0)}.tier-problem.enemy-stage,.tier-problem.next-art,.tier-problem.boss-portrait{background:radial-gradient(circle at 50% 38%,#fff6f2,#fbe3dc 55%,#efc1b5)}.tier-millennium.enemy-stage,.tier-millennium.next-art,.tier-millennium.boss-portrait{background:radial-gradient(circle at 50% 38%,#fffbea,#fbefc2 55%,#edd27e)}.tier-ai.enemy-stage,.tier-ai.next-art,.tier-ai.boss-portrait{background:radial-gradient(circle at 50% 38%,#f2fffb,#d4f5ec 55%,#9fdcca)}.enemy-art{position:absolute;inset:8% 8% 2%}.enemy-art>svg,.enemy-art>img{position:absolute;inset:0;width:100%;height:100%;overflow:visible;object-fit:contain}.portrait-img{display:block;transform-origin:50% 100%}.enemy-art .body,.companion-art .body,.next-art .body{animation:bob 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}.enemy-art .shadow,.companion-art .shadow{animation:breathe 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.enemy-art .eyes,.companion-art .eyes,.next-art .eyes{animation:blink 5.2s infinite;transform-box:fill-box;transform-origin:center}@keyframes bob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.015,.985)}}@keyframes breathe{0%,to{transform:scale(1);opacity:.22}50%{transform:scale(.86);opacity:.15}}@keyframes blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.08)}}.enemy-art.hurt .body{animation:hurt .6s ease both}.enemy-art.gloat .body{animation:gloat .45s ease 3}.enemy-art.defeated>*{animation:defeated .9s cubic-bezier(.5,-.4,.7,1) forwards}@keyframes hurt{0%{transform:none}20%{transform:translate(-7px) scale(1.1,.88)}45%{transform:translate(7px) scale(.92,1.08)}70%{transform:translate(-3px)}to{transform:none}}@keyframes gloat{0%,to{transform:none}40%{transform:translateY(-12px) scale(.96,1.05) rotate(-3deg)}70%{transform:translateY(0) scale(1.06,.94)}}@keyframes defeated{0%{transform:none;opacity:1}30%{transform:scale(1.12) rotate(-6deg)}to{transform:translateY(30px) scale(.2) rotate(200deg);opacity:0}}.speech{position:absolute;left:50%;top:8px;z-index:4;max-width:94%;width:max-content;padding:8px 12px;border-radius:14px;background:#fff;color:var(--ink);font:700 13.5px/1.25 var(--f-body);box-shadow:0 8px 18px #00000059,0 0 0 2px var(--ink);transform:translate(-50%,-10%) scale(.6);opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(.2,1.6,.4,1),opacity .2s ease}.speech:after{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:14px;background:#fff;transform:translate(-50%) rotate(45deg);box-shadow:2px 2px 0 var(--ink)}.speech.show{opacity:1;transform:translate(-50%) scale(1)}.enemy-info{display:grid;gap:8px;padding:0 4px 2px}.enemy-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.step{font:800 11px/1 var(--f-mono);color:var(--chalk-faint);white-space:nowrap}.enemy-info h2{font-size:clamp(22px,2.3vw,30px);line-height:1}.range-big{display:flex;align-items:baseline;gap:10px}.range-big b{font:clamp(28px,2.8vw,36px)/1 var(--f-display);color:var(--good);font-variant-numeric:tabular-nums}.chip{display:inline-flex;align-items:center;font:800 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 9px;border-radius:999px;border:1.5px solid currentColor;white-space:nowrap}.chip.figure{color:var(--chalk-dim)}.chip.concept{color:var(--violet)}.chip.problem{color:var(--bad)}.chip.shop{color:var(--good)}.chip.millennium{color:var(--gold)}.chip.ai{color:#80ffdb}.rule{display:grid;gap:3px;padding:9px 11px;border-radius:12px;background:#ff6b7a1a;border:1.5px solid rgba(255,107,122,.3);font-size:13.5px;line-height:1.35}.rule b{font:800 10.5px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bad)}.rule.plain{background:#ffffff0a;border-color:var(--panel-edge);color:var(--chalk-dim)}.board{grid-area:table;display:grid;gap:12px;grid-template-rows:auto auto auto;align-content:start;min-height:0}.row-label{font:800 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--chalk-faint)}.ruler{padding:30px 22px 36px;border-radius:18px;background:#0003;border:1.5px solid var(--panel-edge)}.track{position:relative;height:14px;border-radius:999px;background:#ffffff12;box-shadow:inset 0 2px 4px #0006}.track .zone{position:absolute;top:-4px;bottom:-4px;border-radius:6px;background:linear-gradient(180deg,#7bf0b8,#2fbf7c);box-shadow:0 0 18px #5fe0a28c;transition:left .45s ease,width .45s ease}.track .over-zone{position:absolute;right:0;top:0;bottom:0;border-radius:0 999px 999px 0;background:repeating-linear-gradient(-45deg,rgba(255,107,122,.4) 0 6px,transparent 6px 12px);transition:left .45s ease}.tick{position:absolute;top:24px;transform:translate(-50%);font:800 12px/1 var(--f-mono);color:var(--chalk-faint);white-space:nowrap;transition:left .45s ease}.tick.zero{left:0}.tick.lo,.tick.hi{color:var(--good)}.tick.end{opacity:.6}.marker{position:absolute;bottom:12px;transform:translate(-50%);display:grid;justify-items:center;transition:left .45s cubic-bezier(.3,1.4,.5,1);z-index:2}.marker b{font:16px/1 var(--f-display);padding:5px 8px 4px;border-radius:8px;background:var(--chalk);color:var(--ink);box-shadow:0 4px 10px #0006;font-variant-numeric:tabular-nums}.marker i{width:0;height:0;border:7px solid transparent;border-top-color:var(--chalk);border-bottom:0}.marker.in b{background:var(--good)}.marker.in i{border-top-color:var(--good)}.marker.over b{background:var(--bad);color:#fff}.marker.over i{border-top-color:var(--bad)}.marker.ghost{bottom:auto;top:12px;z-index:3}.marker.ghost i{order:-1;border-top-color:transparent;border-bottom:7px solid var(--chalk);border-top-width:0}.marker.ghost b{outline:2px dashed var(--ink);outline-offset:-4px}.marker.ghost.in i{border-bottom-color:var(--good)}.marker.ghost.over i{border-bottom-color:var(--bad)}.marker.ghost.pv b{outline-color:var(--gold-ink);box-shadow:0 0 0 2px var(--gold),0 4px 10px #0006}.midrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.6fr);gap:12px}.score{padding:12px 16px 14px;border-radius:20px;display:grid;justify-items:center;align-content:center;gap:4px;text-align:center;background:radial-gradient(120% 120% at 50% 0%,#1b302b,var(--slate));box-shadow:inset 0 0 50px #0000008c,0 20px 30px -22px #000c;transition:border-color .2s}.score.in{border-color:#5fe0a273}.score.over{border-color:#ff6b7a73}.score-top{display:flex;gap:10px;align-items:center;justify-content:center}.total-num{font:clamp(48px,8dvh,88px)/.92 var(--f-display);font-variant-numeric:tabular-nums;text-shadow:0 0 22px rgba(238,244,236,.25),0 4px 0 rgba(0,0,0,.35);display:inline-block}.score.in .total-num{color:var(--good);text-shadow:0 0 26px rgba(95,224,162,.45),0 4px 0 rgba(0,0,0,.35)}.score.over .total-num{color:var(--bad)}.score.morph .total-num{animation:morph .42s ease}@keyframes morph{0%{transform:none;filter:none}50%{transform:scaleX(-1) skew(10deg);filter:blur(2px) hue-rotate(90deg)}to{transform:none;filter:none}}.status-chip{font:800 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;padding:5px 8px;border-radius:999px;border:1.5px solid currentColor;white-space:nowrap}.status-chip.in{color:var(--good)}.status-chip.over{color:var(--bad)}.status-chip.under{color:var(--chalk-faint)}.total-sub{font-size:12.5px;color:var(--violet)}.total-sub:empty,.preview:empty{display:none}.preview{display:grid;justify-items:center;gap:5px;width:100%;padding-top:7px;margin-top:2px;border-top:1.5px dashed rgba(255,255,255,.1)}.pv-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:4px 8px;font:700 15px/1.2 var(--f-mono)}.pv-line .expr{color:var(--chalk-dim)}.pv-line b{font:26px/1 var(--f-display)}.pv-line.in b{color:var(--good)}.pv-line.over b{color:var(--bad)}.pv-line.under b{color:var(--chalk)}.pv-tf{font-size:12.5px;color:var(--violet)}.pv-foot{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;align-items:center}.pv-hint{font-size:13px;color:var(--gold)}.live-props{display:flex;flex-wrap:wrap;justify-content:center;gap:5px}.live-props:empty{display:none}.lp{font:800 10px/1 var(--f-mono);letter-spacing:.04em;text-transform:uppercase;padding:5px 7px;border-radius:6px;background:#ffffff14;color:var(--chalk)}.lp.mul{background:var(--gold);color:var(--gold-ink)}.action-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:8px}.btn.confirm{min-width:96px;display:inline-flex;align-items:baseline;justify-content:center;gap:8px;font-size:18px;padding:13px 16px}.btn.confirm .eq{font:28px/.7 var(--f-display)}.btn.confirm .res{font:24px/.7 var(--f-display);font-variant-numeric:tabular-nums}.btn.confirm.ready{animation:ready 1.4s ease-in-out infinite}.btn.stand{min-width:128px;font-size:16px;padding:14px 16px}.btn.stand.ready{background:linear-gradient(180deg,#8ff5c5,var(--good));box-shadow:0 5px #239866,0 12px 18px -6px #00000080;animation:ready-good 1.6s ease-in-out infinite}@keyframes ready{0%,to{box-shadow:0 5px 0 var(--gold-deep),0 0 #ffd23f00}50%{box-shadow:0 5px 0 var(--gold-deep),0 0 0 8px #ffd23f33}}@keyframes ready-good{0%,to{box-shadow:0 5px #239866,0 0 #5fe0a200}50%{box-shadow:0 5px #239866,0 0 0 8px #5fe0a233}}.stage{position:relative;border-radius:20px;border:2px dashed rgba(255,255,255,.12);display:grid;align-content:center;justify-items:center;gap:10px;padding:10px;min-height:0;transition:border-color .2s,background .2s}.stage.active{border-color:#ffd23f66;background:radial-gradient(circle at 50% 40%,rgba(255,210,63,.09),transparent 70%)}.stage-row{display:flex;align-items:center;gap:12px}.stage-hint{font-size:13px;color:var(--chalk-dim);text-align:center;max-width:28ch}.stage.active .stage-hint{color:var(--gold)}.slot-empty{display:grid;place-items:center;border:2px dashed rgba(255,255,255,.14);color:#fff3;font:26px/1 var(--f-display)}.slot-empty.op-slot{width:calc(var(--op-w) * .66);height:calc(var(--op-h) * .66);border-radius:12px}.slot-empty.tile-slot{width:calc(var(--tile-w) * 1.25);height:calc(var(--tile-h) * 1.25);border-radius:16px}.stage .tile.xl{width:calc(var(--tile-w) * 1.25);height:calc(var(--tile-h) * 1.25);font-size:calc(var(--tile-w) * .72)}.stage .op.sm{width:calc(var(--op-w) * .66);height:calc(var(--op-h) * .66)}.stage .op.sm .op-sym{font-size:calc(var(--op-w) * .42)}.targets{display:grid;gap:6px}.target-row{display:flex;align-items:center;gap:12px;min-height:calc(var(--tile-h) + 10px);padding-top:8px}.target-row .sep{width:1.5px;align-self:stretch;background:var(--panel-edge);margin:0 2px}.hand{display:flex;flex-wrap:nowrap;gap:12px;min-width:0}.board .tile{width:var(--tile-w);height:var(--tile-h);font-size:calc(var(--tile-w) * .58);border-radius:calc(var(--tile-w) * .2)}.slot-total{position:relative;flex:none;cursor:default;height:var(--tile-h);min-width:calc(var(--tile-w) * 1.35);padding:0 12px;border-radius:calc(var(--tile-w) * .2);border:2px dashed rgba(255,255,255,.16);background:radial-gradient(120% 120% at 50% 0%,#1b302b,var(--slate));display:grid;place-content:center;justify-items:center;gap:4px;color:var(--chalk);transition:border-color .15s,transform .15s,box-shadow .15s}.slot-total b{font:calc(var(--tile-w) * .5)/1 var(--f-display);font-variant-numeric:tabular-nums}.slot-total.target{cursor:pointer;border-color:#ffd23fb3;animation:total-pulse 1.3s ease-in-out infinite}.slot-total.target:hover{transform:translateY(-4px)}.slot-total.selected,.slot-total.selected:hover{animation:none;border-style:solid;border-color:var(--gold);box-shadow:0 0 0 3px #ffd23f59,0 0 24px #ffd23f59;transform:translateY(-8px)}@keyframes total-pulse{0%,to{box-shadow:0 0 #ffd23f00}50%{box-shadow:0 0 18px 1px #ffd23f4d}}.tile.selected,.tile.selected:not(:disabled):hover{animation:none;--lift: -12px;box-shadow:0 6px 0 var(--ivory-edge),0 0 0 4px var(--gold),0 0 26px #ffd23f8c,inset 0 2px #fff}.tile .order{position:absolute;bottom:3px;right:5px;font:800 11px/1 var(--f-mono);color:var(--gold-deep)}.actions{display:grid;gap:8px}.moves-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.moves-tag{display:inline-flex;align-items:center;gap:8px;color:var(--blue);letter-spacing:.08em}.ops{display:flex;flex-wrap:nowrap;gap:14px;padding-top:10px}.board .op{width:var(--op-w);height:var(--op-h);padding:calc(var(--op-w) * .1) 4px;border-radius:calc(var(--op-w) * .16)}.board .op .op-sym{font-size:calc(var(--op-w) * .62)}.board .op .op-name{font-size:clamp(8px,calc(var(--op-w) * .11),11px)}.op .count{position:absolute;right:-8px;top:-9px;font:800 12px/1 var(--f-mono);padding:5px 7px;border-radius:999px;background:var(--ink);color:var(--chalk);border:2px solid rgba(255,255,255,.5);box-shadow:0 4px 10px #0006}.op.sm .count{font-size:10.5px;padding:3px 5px;right:-7px;top:-7px}.op-odds{position:absolute;top:-11px;left:-8px;font:800 11.5px/1 var(--f-mono);padding:5px 7px;border-radius:999px;background:var(--ink);border:2px solid currentColor;box-shadow:0 4px 10px #0006}.op-odds.good{color:var(--good)}.op-odds.meh{color:var(--gold)}.op-odds.bad{color:var(--bad)}.overlay{z-index:55}.sheet{width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:18px 18px 20px;border-radius:22px;background:linear-gradient(180deg,#1f3832,#142520);border:2px solid var(--panel-edge);box-shadow:0 30px 60px -20px #000c;display:grid;gap:14px;animation:drop-in .4s cubic-bezier(.2,1.4,.4,1) both}.sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.sheet-head h2{font-size:28px}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tab{cursor:pointer;border:1.5px solid var(--panel-edge);background:transparent;border-radius:999px;padding:8px 12px;font:700 13.5px/1 var(--f-body);color:var(--chalk-dim)}.tab[aria-pressed=true]{background:var(--chalk);color:var(--ink);border-color:var(--chalk)}.bag-view{display:grid;gap:14px}.bag-groups{display:flex;flex-wrap:wrap;gap:14px 12px;padding-top:6px}.group{position:relative}.badge{position:absolute;right:-8px;top:-8px;font:800 10.5px/1 var(--f-mono);padding:4px 5px;border-radius:999px;background:var(--ink);color:var(--chalk);border:1.5px solid var(--chalk-faint)}.dist{display:grid;gap:5px}.dist-row{display:grid;grid-template-columns:22px 1fr 38px;align-items:center;gap:8px;font:700 12px/1 var(--f-mono)}.dv{text-align:right;color:var(--chalk-dim)}.dbar{height:8px;border-radius:999px;background:#ffffff12;overflow:hidden}.dbar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),#b7d6ff)}.dp{color:var(--chalk-faint);text-align:right}.drawn{display:grid;gap:8px}.drawn-row{display:flex;flex-wrap:wrap;gap:8px}.drawn-row .tile{opacity:.6;transform:scale(.85)}.drawn-row.in-hand .tile{opacity:1}.kit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kit-stats>div{display:grid;gap:4px;padding:10px 12px;border-radius:14px;background:#00000038;border:1.5px solid var(--panel-edge)}.kit-stats b{font:28px/1 var(--f-display);color:var(--blue)}.kit-ops,.kit-bag{display:flex;flex-wrap:wrap;gap:12px;padding-top:6px}.options{display:grid;gap:4px}.opt-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 4px;border-bottom:1px solid var(--panel-edge)}.opt-row b{font-size:15.5px}.opt-stack{flex-direction:column;align-items:stretch;gap:8px}.opt-preview{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.opt-foot{display:flex;justify-content:flex-end;padding-top:12px}.small-btn{padding:10px 14px;font-size:14px}.switch{cursor:pointer;flex:none;position:relative;width:50px;height:30px;border-radius:999px;border:1.5px solid var(--panel-edge);background:#00000059;transition:background .15s,border-color .15s}.switch:after{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;border-radius:50%;background:var(--chalk-faint);transition:transform .18s ease,background .15s}.switch[aria-checked=true]{background:var(--good);border-color:var(--good)}.switch[aria-checked=true]:after{transform:translate(20px);background:#fff}.help .howto{max-width:none}.mapscreen,.shopscreen{max-width:1240px;margin:0 auto;display:grid;gap:12px;grid-template-rows:auto minmax(0,1fr)}.mapscreen>*,.shopscreen>*{min-width:0;min-height:0}.map-board{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(260px,340px);min-height:0}.map-board>*{min-height:0}.map-frame{border-radius:20px;background:#0000002e;border:1.5px solid var(--panel-edge);display:grid;place-items:center;min-height:0;padding:8px}.map-svg{width:100%;height:100%;min-height:0;display:grid;place-items:center}.map-svg svg{width:100%;height:100%;display:block}.edge{fill:none;stroke:#fff3;stroke-width:2.5;stroke-dasharray:1 7;stroke-linecap:round}.edge.taken{stroke:var(--gold);stroke-dasharray:1 6;stroke-width:4;opacity:.9}.edge.live{stroke:#ffd23fb3;stroke-dasharray:4 6;animation:march .9s linear infinite}@keyframes march{to{stroke-dashoffset:-20}}.node .disc{fill:#1a2c27;stroke:var(--chalk-faint);stroke-width:2.5}.node .halo{fill:none;stroke:none}.node .glyph{fill:var(--chalk-dim);font:19px var(--f-display);pointer-events:none}.node.elite .disc{stroke:var(--violet)}.node.elite .glyph{fill:var(--violet)}.node.shop .disc{stroke:var(--good)}.node.shop .glyph{fill:var(--good);font-size:20px}.node.boss .disc{fill:#5a1d26;stroke:var(--bad);stroke-width:3.5}.node.boss{cursor:pointer}.node.boss.closed{opacity:1}.node.boss.picked .disc{fill:#5a1d26;stroke:var(--gold)}.boss-face .boss-bg{fill:#fbe3dc}.boss-face.tier-concept .boss-bg{fill:#ece4fb}.boss-face.tier-millennium .boss-bg{fill:#fbefc2}.boss-face.tier-ai .boss-bg{fill:#d4f5ec}.boss-face .boss-wob{transform-box:fill-box;transform-origin:50% 92%}.nlabel{fill:var(--bad);font:13px var(--f-display);letter-spacing:.02em;pointer-events:none}.nsmall{fill:var(--chalk-faint);font:800 10px var(--f-mono);letter-spacing:.12em}.node.start .disc{fill:var(--chalk-dim);stroke:none}.node.start.here .disc{fill:var(--gold)}.node.closed{opacity:.42}.node.done .disc{fill:#ffd23f2e;stroke:var(--gold)}.node.done .glyph{fill:var(--gold)}.node.here .halo{stroke:var(--gold);stroke-width:2.5}.node.open{cursor:pointer}.node.open .disc{stroke-width:3.5;filter:drop-shadow(0 0 6px rgba(255,210,63,.45))}.node.open .halo{stroke:#ffd23f8c;stroke-width:2;stroke-dasharray:3 5;animation:spin 6s linear infinite;transform-box:fill-box;transform-origin:center}.node.open:hover .disc,.node.open:focus-visible .disc{fill:#26403a}.node.picked .disc{fill:var(--gold);stroke:var(--gold)}.node.picked .glyph{fill:var(--gold-ink)}.node.picked .halo{stroke:var(--gold);stroke-dasharray:none;animation:none}.node:focus{outline:none}@keyframes spin{to{transform:rotate(360deg)}}.map-info{padding:18px;display:grid;gap:12px;align-content:start;overflow:hidden}.map-info h2{font-size:28px;line-height:1}.map-foe{display:grid;grid-template-columns:104px minmax(0,1fr);gap:14px;align-items:center}.next-art{position:relative;width:104px;aspect-ratio:1 / 1;padding:6px;border-radius:16px;background:radial-gradient(circle at 50% 40%,#fffaf0,var(--card-paper) 60%,#ddd3bb)}.next-art svg,.next-art img{position:relative;width:100%;height:100%;overflow:visible;object-fit:contain}.next-art.companion-mini{background:radial-gradient(circle at 50% 40%,#234a40,#142520)}.next-art.mystery{display:grid;place-items:center;background:radial-gradient(circle at 50% 40%,#234a40,#142520);font:46px/1 var(--f-display);color:var(--chalk-dim)}.next-art.mystery:before{display:none}.next-art.mystery.elite{color:var(--violet)}.next-info{display:grid;gap:6px;justify-items:start}.goal-num{font:26px/1 var(--f-display);color:var(--good)}.rule-line{font-size:14px}.rule-line b{color:var(--bad)}.map-info .btn{justify-self:start}.legend{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:13.5px;color:var(--chalk-dim)}.map-info .btn+.legend{margin-top:10px;padding-top:12px;border-top:1px solid var(--panel-edge)}.lg{display:inline-flex;align-items:center;gap:6px}.lg i{font:15px/1 var(--f-display);font-style:normal;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;border:2px solid var(--chalk-faint)}.lg.elite i{border-color:var(--violet);color:var(--violet)}.lg.shop i{border-color:var(--good);color:var(--good)}.lg.boss i{border-color:var(--bad);background:#5a1d26;color:#fff}.map-info .link{padding:0}.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));background:#040a0999;backdrop-filter:blur(3px);animation:fade-in .25s ease both;overflow-y:auto}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.result{width:min(500px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:22px 22px 20px;border-radius:24px;background:linear-gradient(180deg,#1f3832,#142520);border:2px solid var(--panel-edge);box-shadow:0 30px 60px -20px #000c;display:grid;gap:14px;animation:drop-in .55s cubic-bezier(.2,1.4,.4,1) both}@keyframes drop-in{0%{transform:translateY(-40px) scale(.85);opacity:0}to{transform:none;opacity:1}}.result h2{font-size:clamp(40px,8vw,54px);line-height:.95;text-align:center}.result.hit h2{color:var(--good)}.result.bj h2{color:var(--gold);text-shadow:0 0 30px rgba(255,210,63,.5)}.result.miss h2{color:var(--bad)}.result.bj{border-color:#ffd23f80}.stood{text-align:center;color:var(--chalk-dim)}.stood b{color:var(--chalk);font-family:var(--f-display);font-weight:400;font-size:1.2em}.result-body{display:grid;gap:12px}.kp-rows{display:grid;gap:4px}.kp-row{display:flex;justify-content:space-between;padding:7px 10px;border-radius:9px;background:#ffffff0a;font-size:14.5px}.kp-row b{font:18px/1 var(--f-display);color:var(--blue)}.kp-row.sum{background:#7db6ff1f}.chips{display:flex;flex-wrap:wrap;gap:7px;justify-content:center}.chip-prop{font:800 13px/1 var(--f-mono);padding:9px 11px;border-radius:10px;border:2px solid var(--chalk);background:#ffffff0f}.chip-prop.mul{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.chip-prop.plain{border-color:var(--chalk-faint);color:var(--chalk-faint)}.kp-mult{display:flex;justify-content:space-between;align-items:baseline;padding:8px 10px;border-radius:9px;background:#ffd23f1a}.kp-mult b{font:700 14px/1.2 var(--f-mono);color:var(--gold)}.kp-total{display:flex;justify-content:center;align-items:baseline;gap:6px;font:54px/1 var(--f-display);color:var(--gold);text-shadow:0 0 30px rgba(255,210,63,.4);font-variant-numeric:tabular-nums}.kp-total .unit{font-size:20px;color:var(--chalk-dim);text-shadow:none}.miss-line{text-align:center;font-size:16px}.run-over{justify-self:center;font:28px/1 var(--f-display);color:var(--bad)}.result-actions{display:flex;justify-content:center;padding-top:4px}.flavor{font-size:13.5px;font-style:italic;color:var(--chalk-faint)}.pop-in{animation:pop-in .42s cubic-bezier(.2,1.6,.4,1) both}@keyframes pop-in{0%{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}.spark{position:fixed;z-index:60;pointer-events:none;margin:-14px 0 0 -10px;font:26px/1 var(--f-display);text-shadow:0 2px 0 rgba(0,0,0,.35)}.float{position:fixed;z-index:60;pointer-events:none;font:20px/1 var(--f-display);color:var(--chalk);text-shadow:0 2px 0 rgba(0,0,0,.5),0 0 14px rgba(0,0,0,.5);white-space:nowrap}.float.good{color:var(--good);font-size:26px}.float.rule{color:var(--violet);font-size:28px}.toasts{position:fixed;z-index:70;top:max(14px,env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);display:grid;gap:8px;width:min(420px,calc(100% - 32px));pointer-events:none}.toast{padding:11px 14px;border-radius:12px;background:var(--chalk);color:var(--ink);font-weight:700;box-shadow:0 10px 24px #00000073;animation:pop-in .35s cubic-bezier(.2,1.6,.4,1) both;transition:opacity .3s,transform .3s}.toast.warn{background:var(--gold);color:var(--gold-ink)}.toast.out{opacity:0;transform:translateY(-10px)}.title{position:relative;display:grid;justify-items:center;align-content:center;gap:clamp(12px,2.6dvh,22px);text-align:center;min-height:100vh;min-height:100dvh;padding-block:24px}.title-corner{position:absolute;top:max(12px,env(safe-area-inset-top,0px));right:max(16px,env(safe-area-inset-right,0px))}.logo{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center}.carry{font:clamp(54px,11vw,104px)/.9 var(--f-display);text-shadow:0 6px 0 rgba(0,0,0,.35),0 0 40px rgba(238,244,236,.15)}.one-wrap{position:relative;display:inline-grid}.one-wrap .tile{transform:rotate(8deg);animation:one-bounce 2.4s ease-in-out infinite}.hop{position:absolute;top:-26px;right:-18px;z-index:2;font:30px/1 var(--f-display);color:var(--gold);text-shadow:0 3px 0 var(--gold-deep);animation:hop 2.4s ease-in-out infinite}@keyframes one-bounce{0%,to{transform:rotate(8deg) translateY(0)}50%{transform:rotate(4deg) translateY(-8px)}}@keyframes hop{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-14px,-22px) rotate(-20deg)}50%{transform:translate(-30px,-4px) rotate(-30deg)}75%{transform:translate(-14px,-18px) rotate(-10deg)}}.tagline{font-size:19px;color:var(--chalk-dim);max-width:40ch}.howto{margin:0;padding:18px 22px 18px 44px;display:grid;gap:10px;max-width:560px;text-align:left;border-radius:20px;background:#00000038;border:1.5px solid var(--panel-edge)}.howto li::marker{font:800 14px var(--f-mono);color:var(--gold)}.howto b{color:var(--chalk)}.title-actions{display:grid;justify-items:center;gap:12px}.seed-row{display:flex;align-items:center;gap:8px;color:var(--chalk-dim);font-size:14px}.seed-row code{color:var(--chalk);letter-spacing:.12em}.seed-input{width:10ch;padding:7px 9px;border-radius:9px;border:1.5px solid var(--panel-edge);background:#00000047;color:var(--chalk);font:700 14px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase}.seed-input::placeholder{color:var(--chalk-faint);text-transform:none;letter-spacing:.04em}.seed-input:focus{outline:none;border-color:var(--gold)}.fineprint{font-size:12.5px;color:var(--chalk-faint)}.shop-body{display:grid;gap:12px;grid-template-columns:minmax(240px,.85fr) minmax(0,1.6fr);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"companion counter" "kit counter";min-height:0}.shop-body>*{min-width:0;min-height:0}.companion{grid-area:companion;padding:14px;display:grid;grid-template-columns:96px minmax(0,1fr);gap:12px;align-items:center}.companion-art{width:96px;aspect-ratio:120 / 132}.companion-art svg{width:100%;height:100%;overflow:visible}.companion-art .jet{animation:jet .9s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.companion-art .therefore{animation:think 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:50% 100%}@keyframes jet{0%{opacity:.25;transform:scaleX(.7)}to{opacity:.7;transform:scaleX(1.1)}}@keyframes think{0%,to{transform:rotate(0)}50%{transform:rotate(12deg) translateY(-2px)}}.companion-text{display:grid;gap:8px;justify-items:start}.companion-text h2{font-size:26px}.bubble{position:relative;padding:10px 12px;border-radius:14px;background:var(--card-paper);color:var(--ink);font-weight:700;font-size:14px;box-shadow:0 0 0 2px var(--ink),0 10px 20px #00000059;max-width:34ch}.counter-panel{grid-area:counter;padding:14px;display:grid;gap:12px;grid-template-rows:auto minmax(0,1fr) auto}.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.counter-panel h3,.kit-panel h3{font-size:22px}.offers{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:10px;min-height:0}.offer{cursor:pointer;position:relative;display:grid;justify-items:center;align-content:center;gap:6px;padding:12px 8px 10px;border-radius:16px;border:1.5px solid var(--panel-edge);background:#0000002e;transition:transform .15s ease,border-color .15s,background .15s;perspective:600px;min-height:0;overflow:hidden}.offer:hover:not(:disabled){border-color:var(--gold);background:#ffd23f0f}.offer:hover:not(:disabled)>.tile,.offer:hover:not(:disabled)>.op,.offer:hover:not(:disabled)>.medal,.offer:hover:not(:disabled)>.cons,.offer:hover:not(:disabled)>.voucher-face{translate:0 -4px}.offer>.tile,.offer>.op,.offer>.medal,.offer>.cons,.offer>.voucher-face{transition:translate .15s ease}.offer.picked{border-color:var(--gold);background:#ffd23f1a;box-shadow:0 0 0 2px #ffd23f59}.offer .op,.offer .tile,.offer .voucher-face{pointer-events:none}.offer .tile{margin-block:4px 6px}.offer-name{font-size:14px;font-weight:700;color:var(--chalk);text-align:center}.offer-sub{font-size:12px;color:var(--chalk-faint);text-align:center;line-height:1.25}.offer-voucher{border-color:#7db6ff73;background:#7db6ff14}.offer .tag{position:absolute;top:8px;left:8px;font:800 9.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}.voucher-face{width:64px;height:74px;border-radius:14px;display:grid;place-content:center;justify-items:center;gap:2px;background:linear-gradient(160deg,#a9d0ff,#3c82f0);color:#0c1f3d;box-shadow:0 6px #1f4f9e,inset 0 0 0 2px #fff6}.voucher-face span{font:30px/1 var(--f-display)}.voucher-face small{font:800 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}.price{font:800 13px/1 var(--f-mono);padding:6px 10px;border-radius:999px;background:var(--gold);color:var(--gold-ink);white-space:nowrap}.offer.poor .price{background:#ffffff1a;color:var(--chalk-faint)}.offer.sold{cursor:default;opacity:.45}.offer.sold .price{background:transparent;color:var(--chalk-faint);border:1.5px dashed var(--chalk-faint)}.services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.svc{cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;text-align:left;padding:10px 12px;border-radius:14px;border:1.5px solid var(--panel-edge);background:#0000002e;font-size:13.5px;color:var(--chalk-dim);transition:border-color .15s,background .15s}.svc b{color:var(--chalk)}.svc:hover:not(:disabled){border-color:var(--chalk-dim)}.svc.on{border-color:var(--bad);background:#ff6b7a1f}.svc:disabled{cursor:not-allowed;opacity:.45}.kit-panel{grid-area:kit;padding:14px;display:grid;gap:10px;grid-template-rows:auto minmax(0,1fr) auto}.kit{display:grid;gap:8px;align-content:start;min-height:0;overflow:hidden}.kit .bag-groups{gap:12px 10px}.kit-bag.removing{gap:10px}.kit-bag.removing .tile{cursor:pointer;animation:wobble .5s ease-in-out infinite alternate}.kit-bag.removing .tile:hover{box-shadow:0 4px 0 var(--ivory-edge),0 0 0 3px var(--bad)}@keyframes wobble{0%{rotate:-4deg}to{rotate:4deg}}.leave-row{display:flex;justify-content:flex-end}.screen.end{display:grid;place-items:center;min-height:100vh;min-height:100dvh;padding-block:20px}.end-card{width:min(520px,100%);padding:26px 22px;display:grid;gap:14px;justify-items:center;text-align:center}.end-card .companion-art{width:130px}.end-card h1{font-size:clamp(54px,12vw,88px);line-height:.9}.end.won h1{color:var(--gold);text-shadow:0 0 40px rgba(255,210,63,.4)}.end.lost h1{color:var(--bad)}.lede{font-size:17px;color:var(--chalk-dim);max-width:40ch}.stats{margin:4px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}.stats div{padding:12px;border-radius:14px;background:#0003;border:1.5px solid var(--panel-edge)}.stats dt{font:800 10.5px/1.2 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--chalk-faint)}.stats dd{margin:6px 0 0;font:26px/1 var(--f-display)}.end-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}@media(max-width:1000px)and (min-aspect-ratio:1/1){.game{grid-template-columns:clamp(190px,25vw,240px) minmax(0,1fr)}.btn.stand{min-width:0}.map-board{grid-template-columns:minmax(0,1fr) minmax(230px,300px)}}@media(max-height:560px)and (min-aspect-ratio:1/1){.screen.game,.screen.mapscreen,.screen.shopscreen{padding-block:max(6px,env(safe-area-inset-top,0px)) max(6px,env(safe-area-inset-bottom,0px))}.game{gap:6px 8px;--tile-w: clamp(30px, 8.4dvh, 52px);--op-w: clamp(36px, 9.6dvh, 60px);grid-template-columns:clamp(170px,23vw,220px) minmax(0,1fr)}.hud{padding:4px 10px;gap:4px 14px}.brand{display:none}.hstat b{font-size:17px}.hstat .lbl{font-size:9px}.hud-btn{height:32px;padding:0 10px;font-size:13px}.icon-btn{width:32px;height:32px}.enemy-card{padding:8px;gap:6px}.enemy-stage{max-height:34dvh}.enemy-info{gap:4px;padding:0 2px}.enemy-info h2{font-size:18px}.range-big b{font-size:22px}.rule{padding:5px 8px;font-size:11.5px}.flavor,.enemy-head .step{display:none}.board{gap:6px}.ruler{padding:18px 16px 26px}.tick{top:19px;font-size:10.5px}.marker b{font-size:13px;padding:3px 6px 2px}.score{padding:6px 10px 8px;gap:2px}.total-num{font-size:36px}.preview{padding-top:4px;gap:3px}.preview .mini-h{display:none}.pv-line{font-size:12px}.pv-line b{font-size:18px}.pv-foot .status-chip,.score-top .lbl{display:none}.total-num{font-size:32px}.action-btns{margin-top:4px;gap:6px}.btn.confirm,.btn.stand{padding:8px 10px;font-size:13px;min-width:0}.btn.confirm .eq,.btn.confirm .res{font-size:18px}.stage{padding:6px;gap:4px}.stage-hint{display:none}.targets>.row-label,.actions>.moves-line{display:none}.target-row{padding-top:4px;min-height:0}.ops{padding-top:8px;gap:10px}.map-info{padding:12px;gap:8px}.map-info h2{font-size:22px}.map-foe{grid-template-columns:72px minmax(0,1fr)}.next-art{width:72px}.flavor,.map-info .btn+.legend{display:none}.companion{grid-template-columns:56px minmax(0,1fr);padding:8px}.companion-art{width:56px}.companion-text h2{display:none}.offer{padding:6px;gap:3px}.offer .tile{width:40px;height:46px;font-size:24px;margin:0}.offer .op.sm{width:46px;height:60px}.offer .op.sm .op-sym{font-size:30px}.voucher-face{width:44px;height:50px}.offer-sub,.offer .tag{display:none}.kit-panel h3,.counter-panel h3{font-size:17px}.kit .tile.sm{width:30px;height:34px;font-size:18px}.kit .op.sm{width:46px;height:60px}.kit .op.sm .op-sym{font-size:30px}}@media(max-aspect-ratio:1/1){.game{--tile-w: clamp(36px, min(6.4dvh, 13vw), 66px);--op-w: clamp(44px, min(8dvh, 15vw), 84px);grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto minmax(0,max-content);grid-template-areas:"top" "enemy" "table";gap:8px}.hud{gap:6px 12px;padding:7px 10px}.brand{display:none}.hud-stats{gap:6px 12px}.hstat b{font-size:18px}.hstat .lbl{font-size:9px}.hud-btn{height:36px;padding:0 10px}.icon-btn{width:36px;height:36px}.enemy-card{flex-direction:row;align-items:center;padding:8px;gap:12px;align-self:stretch;overflow:visible}.enemy-stage{width:clamp(86px,27vw,150px);aspect-ratio:1 / .92;max-height:none}.enemy-info{flex:1;min-width:0;gap:5px;padding:0}.enemy-info h2{font-size:21px}.range-big b{font-size:26px}.rule{font-size:12px;padding:6px 8px}.enemy-card .flavor{display:none}.speech{left:6px;top:auto;bottom:calc(100% + 2px);transform:scale(.6);transform-origin:bottom left;max-width:min(300px,80vw)}.speech.show{transform:none}.speech:after{left:36px}.ruler{padding:24px 18px 30px}.tick{top:20px;font-size:11px}.midrow{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:8px}.score{padding:10px 10px 12px}.total-num{font-size:clamp(40px,6.5dvh,64px)}.pv-line{font-size:13px}.pv-line b{font-size:22px}.pv-foot .status-chip{display:none}.action-btns{width:100%;flex-wrap:nowrap}.action-btns .btn{flex:1;min-width:0}.btn.confirm,.btn.stand{padding:11px 8px;font-size:14px}.stage-hint{font-size:12px}.map-board{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:10px}.map-info{padding:12px 14px;gap:8px}.map-info h2{font-size:22px}.map-foe{grid-template-columns:76px minmax(0,1fr);gap:10px}.next-art{width:76px}.map-info .flavor,.map-info .btn+.legend,.map-info .rule-line+.flavor+p+.legend{display:none}.map-info .btn{justify-self:stretch}.shop-body{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;grid-template-areas:"companion" "counter" "kit";gap:8px}.companion{grid-template-columns:60px minmax(0,1fr);padding:8px 10px}.companion-art{width:60px}.companion-text h2{display:none}.counter-panel{padding:10px;gap:8px}.offers{gap:8px}.offer{padding:8px 4px 6px;gap:3px}.offer .tile{width:44px;height:50px;font-size:26px;margin:2px 0}.offer .op.sm{width:50px;height:66px}.offer .op.sm .op-sym{font-size:32px}.voucher-face{width:48px;height:54px}.voucher-face span{font-size:24px}.offer-name{font-size:12.5px}.offer-sub,.offer .tag{display:none}.services{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}.svc{padding:8px 10px;font-size:12px}.svc span:first-child{display:grid}.kit-panel{padding:10px;gap:6px}.kit-panel h3{display:none}.kit .tile.sm{width:30px;height:34px;font-size:18px}.kit .op.sm{width:44px;height:58px}.kit .op.sm .op-sym{font-size:28px}.kit .bag-groups,.kit .kit-ops{gap:10px 8px;padding-top:4px}.leave-row .btn{flex:1}}@media(max-height:620px){.title .howto,.end-card .companion-art{display:none}.end-card{padding:16px;gap:10px}}@media(max-aspect-ratio:1/1)and (max-width:440px){.game .hud .progress{display:none}.game .hud,.game .hud-stats{flex-wrap:nowrap}.hstat .lbl .long{display:none}.hstat .lbl .short{display:inline}}@media(max-aspect-ratio:1/1)and (max-height:700px){.enemy-head,.stage-hint,.preview .mini-h,.targets>.row-label,.actions>.moves-line{display:none}.score{padding:8px 8px 10px;gap:2px}.preview{padding-top:4px;gap:3px}.action-btns{margin-top:4px;gap:6px}.btn.confirm,.btn.stand{white-space:nowrap;padding:10px 6px;font-size:13px}.target-row{padding-top:4px}.midrow{grid-template-columns:minmax(0,1.8fr) minmax(0,1fr)}.total-num{font-size:32px}.game{--op-w: clamp(40px, 7dvh, 60px)}.stage-note,.score-top{display:none}.live-props{flex-wrap:nowrap;overflow:hidden;max-width:100%}.lp{font-size:9px;padding:4px 5px;letter-spacing:0}.live-props{gap:3px}.ruler{padding:16px 16px 24px}.enemy-stage{width:80px}.row-label{font-size:9.5px}.enemy-info h2{font-size:19px}.range-big b{font-size:22px}}.calm *,.calm *:before,.calm *:after{animation:none!important;transition:none!important}.calm .speech.show{transform:translate(-50%)}@media(max-aspect-ratio:1/1){.calm .speech.show{transform:none}}.kit-strip{display:flex;align-items:center;gap:10px}.strip-maths,.strip-cons{display:flex;gap:5px;align-items:center}.strip-cons{padding-left:10px;border-left:1.5px solid var(--panel-edge)}.slot{display:inline-block;flex:none;border:1.5px dashed rgba(255,255,255,.16)}.slot.math-slot{width:34px;height:34px;border-radius:50%}.slot.cons-slot{width:28px;height:36px;border-radius:7px}.strip-btn{cursor:pointer;padding:0;border:0;background:none;border-radius:50%;display:grid;transition:transform .15s ease}.strip-btn:hover{transform:translateY(-2px) scale(1.06)}.medal{--rc: var(--chalk-dim);position:relative;flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 30%,#fff8e6,#e6d7b4);color:var(--ink);box-shadow:0 0 0 2.5px var(--rc),0 3px #00000059,inset 0 -3px #00000014;font:800 12px/1 var(--f-mono)}.medal .g{white-space:nowrap;letter-spacing:-.02em}.medal.long .g{font-size:8px}.medal.uncommon{--rc: var(--good)}.medal.rare{--rc: var(--blue)}.medal.common{--rc: #c9b98f}.medal.used{filter:grayscale(1) brightness(.6)}.medal .stack{position:absolute;right:-8px;bottom:-6px;font:800 9.5px/1 var(--f-mono);padding:3px 4px;border-radius:999px;background:var(--gold);color:var(--gold-ink)}.medal.lg{width:58px;height:58px;font-size:18px;box-shadow:0 0 0 3.5px var(--rc),0 5px #00000059,inset 0 -4px #00000014}.medal.lg.long .g{font-size:12px}.cons{--cc: var(--bad);flex:none;width:28px;height:36px;border-radius:7px;display:grid;place-items:center;color:#fff;font:800 12px/1 var(--f-mono);background:radial-gradient(120% 90% at 30% 10%,color-mix(in srgb,var(--cc) 60%,#fff),var(--cc) 55%,color-mix(in srgb,var(--cc) 60%,#000));box-shadow:0 3px color-mix(in srgb,var(--cc) 45%,#000),inset 0 0 0 1.5px #ffffff59}.cons.lifeline{--cc: #e2566a}.cons.formula{--cc: #3c82f0}.cons.theorem{--cc: #c99a06}.cons.lg{width:50px;height:64px;border-radius:11px;font-size:18px}.chip.rarity.common{color:#c9b98f}.chip.rarity.uncommon{color:var(--good)}.chip.rarity.rare{color:var(--blue)}.chip.group.lifeline{color:#ff8394}.chip.group.formula{color:var(--blue)}.chip.group.theorem{color:var(--gold)}.item-sheet{display:grid;gap:12px}.item-head{display:flex;gap:16px;align-items:center}.item-head>div{display:grid;gap:8px;justify-items:start}.item-text{font-size:15.5px}.item-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.picker-wrap{display:grid;gap:10px}.picker{display:flex;flex-wrap:wrap;gap:10px;padding-top:4px}.picker .tile{cursor:pointer}.item-list{display:grid;gap:8px}.item-row{display:flex;gap:10px;align-items:center;font-size:13.5px;color:var(--chalk-dim)}.item-row b{color:var(--chalk)}.opt-group{padding:14px 4px 2px}.opt-group:first-child{padding-top:0}.track .zone.next{background:transparent;box-shadow:none;border:2px dashed rgba(125,182,255,.85);top:-7px;bottom:-7px;z-index:0}.track .zone.next em{position:absolute;left:50%;top:-17px;transform:translate(-50%);font:800 9.5px/1 var(--f-mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);white-space:nowrap}.goal-next{font:800 11px/1 var(--f-mono);color:var(--blue);letter-spacing:.04em;margin-left:2px}.goal-next b{font:18px/1 var(--f-display);color:var(--blue)}.range-big{flex-wrap:wrap;row-gap:4px}.pv-line.neutral b{color:var(--chalk)}.stage-note{font-size:12.5px;color:var(--violet);text-align:center;max-width:30ch}.chip-prop.math{border-color:var(--blue);color:var(--blue)}.chip-prop.math.mul{background:var(--blue);color:#0c1f3d}.kp-row.interest{background:#ffd23f1a}.kp-row.interest b{color:var(--gold)}.pascal{display:flex;gap:12px;align-items:center;justify-content:center;font-weight:700}.companion{grid-template-columns:96px minmax(0,1fr);grid-template-rows:auto auto}.offer-detail{grid-column:1 / -1;display:grid;gap:8px;padding:12px;border-radius:14px;background:#00000040;border:1.5px solid var(--panel-edge);min-height:0}.offer-detail .btn{justify-self:start}.detail-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.detail-head b{font:20px/1 var(--f-display)}.detail-tag{color:var(--chalk-dim)}.offer .medal.lg,.offer .cons.lg{margin-block:2px 4px}.offer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.offer-math .offer-sub{text-transform:capitalize}@media(max-aspect-ratio:1/1){.kit-strip{order:10;flex-basis:100%;justify-content:center}.game .hud,.game .hud-stats{flex-wrap:wrap}.medal{width:30px;height:30px;font-size:11px}.slot.math-slot{width:30px;height:30px}.cons{width:24px;height:32px;font-size:11px}.slot.cons-slot{width:24px;height:32px}.offers{gap:6px}.offer .medal.lg{width:40px;height:40px;font-size:14px}.offer .medal.lg.long .g{font-size:9px}.offer .cons.lg{width:34px;height:44px;font-size:14px}.companion{grid-template-columns:52px minmax(0,1fr)}.offer-detail{padding:8px 10px;gap:6px}.offer-detail .item-text{font-size:13px}}@media(max-height:560px)and (min-aspect-ratio:1/1){.medal{width:28px;height:28px;font-size:10.5px}.slot.math-slot{width:28px;height:28px}.cons{width:22px;height:28px;font-size:10px}.slot.cons-slot{width:22px;height:28px}.offer .medal.lg{width:34px;height:34px;font-size:12px}.offer .cons.lg{width:28px;height:36px;font-size:12px}.offer-detail{padding:6px 8px;gap:4px}.offer-detail .item-text{font-size:12px}}@media(max-aspect-ratio:1/1)and (max-width:440px){.bag-word{display:none}.game .hud{flex-wrap:wrap;row-gap:6px}.game .hud-stats{flex-wrap:nowrap}.game .hud-end{gap:6px}}.hstat.sanity b{color:var(--sanity)}.hstat.sanity b small{font:13px/1 var(--f-display);opacity:.6}.san-bar{display:inline-block;width:46px;height:8px;border-radius:999px;background:#ffffff1a;overflow:hidden;box-shadow:inset 0 1px 2px #0006}.san-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ff7eb0,var(--sanity));transition:width .6s cubic-bezier(.3,1.2,.5,1)}.san-bar.big{width:min(180px,40vw);height:12px}.hstat.sanity.low b{color:var(--bad)}.hstat.sanity.low .san-bar i{background:var(--bad);animation:low-pulse 1.1s ease-in-out infinite}@keyframes low-pulse{50%{opacity:.45}}.floor-tag{font:800 11px/1 var(--f-mono);letter-spacing:.06em;padding:4px 6px;border-radius:6px;background:#ffd23f24;color:var(--gold);margin-right:3px;white-space:nowrap}.rule-now{font-weight:700;color:var(--gold)}.total-sub.danger{color:var(--bad);font-weight:700}.status-chip.rule{color:var(--violet)}.kp-row.adjust b{color:var(--bad)}.sanity-hit{display:flex;align-items:center;justify-content:center;gap:12px;font:800 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sanity)}.sanity-hit b{font:30px/1 var(--f-display);color:var(--bad);letter-spacing:0}.floor-clear{text-align:center;font-weight:700;color:var(--gold)}.lower{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.6fr);gap:12px;align-items:stretch;min-height:0}.lower-main{display:grid;gap:12px;align-content:start;min-width:0}.bag-panel{display:grid;align-content:start;gap:8px;padding:10px 12px;border-radius:18px;background:#0000002e;border:1.5px solid var(--panel-edge);min-height:0;overflow:hidden}.bp-head{cursor:pointer;display:flex;align-items:center;gap:8px;padding:2px;border:0;background:none;color:var(--chalk);font:800 11px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;text-align:left}.bp-head .mini-bag{width:22px;height:22px;display:inline-grid}.bp-head .mini-bag svg{width:100%;height:100%}.bp-head b{font:20px/1 var(--f-display);letter-spacing:0}.bp-more{margin-left:auto;color:var(--gold);letter-spacing:.06em}.bp-head:hover .bp-more{text-decoration:underline}.bp-groups{display:flex;flex-wrap:wrap;gap:12px 10px;padding-top:6px}.bp-group{position:relative;display:grid;justify-items:center;gap:4px}.bp-group .tile.sm{width:34px;height:39px;font-size:20px}.bp-count{position:absolute;top:-7px;right:-9px;font:800 10px/1 var(--f-mono);padding:3px 5px;border-radius:999px;background:var(--ink);color:var(--chalk);border:1.5px solid rgba(255,255,255,.45)}.bp-odds{font:800 10px/1 var(--f-mono);color:var(--chalk-dim)}.bp-note{font-size:12px;color:var(--violet)}.bp-drawn{display:grid;gap:6px;padding-top:8px;border-top:1.5px dashed rgba(255,255,255,.08)}.bp-drawn-row{display:flex;flex-wrap:wrap;gap:6px}.bp-drawn-row .tile.sm{width:26px;height:30px;font-size:16px;opacity:.75}.slot-empty.nodraw{font:800 10px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--chalk-faint);text-align:center;padding:6px}.ops{container-type:inline-size}.board .ops .op{--ow: min(var(--op-w), calc((100cqw - (var(--n, 4) - 1) * 14px - 10px) / var(--n, 4)));width:var(--ow);height:calc(var(--ow) * 1.3);padding:calc(var(--ow) * .1) 3px;border-radius:calc(var(--ow) * .16)}.board .ops .op .op-sym{font-size:calc(var(--ow) * .62)}.board .ops .op .op-name{font-size:clamp(7px,calc(var(--ow) * .11),11px);letter-spacing:.06em}.ops.denser .op .op-name{display:none}.op.banned .op-name{color:#ffd0d5}.screen.rewardscreen{height:100vh;height:100dvh;overflow:hidden;max-width:1380px;margin:0 auto;display:grid;grid-template-rows:auto minmax(0,1fr);gap:12px;padding-block:max(10px,env(safe-area-inset-top,0px)) max(10px,env(safe-area-inset-bottom,0px))}.reward-panel{align-self:center;justify-self:center;width:min(1100px,100%);padding:18px;display:grid;gap:14px;min-height:0}.reward-head{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;align-items:center}.reward-head .companion-art{width:84px}.reward-head .reward-bubble{grid-column:1 / -1;justify-self:start}.reward-head h2{font-size:clamp(26px,3.4vw,40px);line-height:1;margin:4px 0}.rewards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.reward{cursor:pointer;position:relative;display:grid;justify-items:center;align-content:center;gap:8px;padding:28px 10px 14px;border-radius:18px;border:1.5px solid var(--panel-edge);background:#0003;color:var(--chalk);transition:border-color .15s,background .15s,translate .15s;animation:deal-in .45s cubic-bezier(.2,1.4,.4,1) both;animation-delay:calc(var(--i) * 90ms)}@keyframes deal-in{0%{opacity:0;translate:0 24px;rotate:-4deg}to{opacity:1;translate:0 0;rotate:0deg}}.reward:hover{border-color:var(--gold);background:#ffd23f0f}.reward.picked{border-color:var(--gold);background:#ffd23f1a;box-shadow:0 0 0 2px #ffd23f59}.reward .tag{position:absolute;top:9px;left:10px;right:10px;text-align:center;font:800 9.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}.reward-sanity{border-color:#ff9fc480;background:#ff9fc412}.reward-sanity .tag{color:var(--sanity)}.reward .op,.reward .tile,.reward .voucher-face,.reward .reward-face{pointer-events:none}.reward-face{width:64px;height:74px;border-radius:14px;display:grid;place-content:center;justify-items:center;gap:2px}.reward-face span{font:28px/1 var(--f-display)}.reward-face small{font:800 10px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase}.sanity-face{background:linear-gradient(160deg,#ffc6dc,#e2558f);color:#3d0a20;box-shadow:0 6px #9c2f5d,inset 0 0 0 2px #fff6}.kp-face{background:linear-gradient(160deg,#ffe58a,var(--gold));color:var(--gold-ink);box-shadow:0 6px 0 var(--gold-deep),inset 0 0 0 2px #ffffff73}.reward-detail{min-height:3.4em;display:grid;align-content:center;text-align:center}.reward-detail b{font-size:17px}.reward-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px}.reward-foot .reward-detail{flex:1 1 260px;max-width:520px}@media(max-aspect-ratio:1/1){.rewards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reward{padding:24px 6px 10px}.reward-head{grid-template-columns:56px minmax(0,1fr)}.reward-head .companion-art{width:56px}}@media(max-height:560px)and (min-aspect-ratio:1/1){.reward-panel{padding:10px 14px;gap:8px}.reward-head{grid-template-columns:52px minmax(0,1fr)}.reward-head .companion-art{width:52px}.reward-head p{display:none}.reward{padding:22px 6px 8px;gap:4px}.reward .op.sm{width:46px;height:60px}.reward-detail{min-height:2.6em;font-size:13px}}.offer,.strip-btn{touch-action:none}.dragging{opacity:.35}.drag-ghost{position:fixed!important;margin:0!important;z-index:80;pointer-events:none;transition:none!important;animation:none!important;translate:none!important;opacity:.92;filter:drop-shadow(0 18px 24px rgba(0,0,0,.55))}.drop-dock{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom,0px));z-index:75;translate:-50% 0;display:flex;gap:12px;padding:12px;border-radius:24px;background:#080f0df5;border:1.5px solid var(--panel-edge);box-shadow:0 20px 40px #0009;animation:dock-in .22s cubic-bezier(.2,1.4,.4,1) both}@keyframes dock-in{0%{opacity:0;translate:-50% 20px}to{opacity:1;translate:-50% 0}}.drop-zone{min-width:min(170px,40vw);display:grid;justify-items:center;align-content:center;gap:6px;padding:22px 20px;border-radius:18px;border:2.5px dashed currentColor;color:var(--good);transition:background .12s,scale .12s}.drop-zone b{font:26px/1 var(--f-display)}.drop-zone span{font:800 12px/1 var(--f-mono);letter-spacing:.08em}.drop-zone small{font-size:11.5px;color:var(--chalk-dim);max-width:22ch;text-align:center}.drop-zone.use{color:var(--gold)}.drop-zone.sell{color:var(--sanity)}.drop-zone.hot{background:color-mix(in srgb,currentColor 18%,transparent);border-style:solid;scale:1.06}.drop-zone.off{color:var(--chalk-faint)}.wavy{display:inline}.wavy .ch,.wavy .sp{display:inline-block}.wavy .sp{width:.28em}.wob-text .wavy .ch{animation:wob-ch 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.13s)}@keyframes wob-ch{0%,to{translate:0 0;rotate:calc(var(--wob, 1) * -2deg)}50%{translate:0 calc(var(--wob, 1) * -2px);rotate:calc(var(--wob, 1) * 2.5deg)}}.wob-tiles .hand .tile{animation:wob-tile 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * -.8s)}.wob-tiles .hand .tile.target{animation:target-pulse 1.3s ease-in-out infinite,wob-tile 3.4s ease-in-out infinite;animation-delay:0s,calc(var(--i) * -.8s)}.wob-tiles .hand .tile.target.selected{animation:wob-tile 3.4s ease-in-out infinite;animation-delay:calc(var(--i) * -.8s)}.wob-tiles .hand .tile.merged,.wob-tiles .hand .tile.flying{animation:none}@keyframes wob-tile{0%,to{rotate:calc(var(--wob, 1) * -1.6deg);translate:0 0}50%{rotate:calc(var(--wob, 1) * 1.6deg);translate:0 calc(var(--wob, 1) * -2px)}}.wob-ops .ops .op{animation:wob-op 3.9s ease-in-out infinite;animation-delay:calc(var(--i) * -1.1s)}@keyframes wob-op{0%,to{rotate:calc(var(--wob, 1) * -1.4deg);translate:0 0}50%{rotate:calc(var(--wob, 1) * 1.4deg);translate:0 calc(var(--wob, 1) * -3px)}}.wob-art .enemy-art:not(.defeated)>svg,.wob-art .enemy-art:not(.defeated)>img,.wob-art .companion-art>svg,.wob-art .next-art>svg,.wob-art .boss-face .boss-wob{animation:wob-art 4.6s ease-in-out infinite;transform-origin:50% 92%}@keyframes wob-art{0%,to{rotate:calc(var(--wob, 1) * -2.2deg)}50%{rotate:calc(var(--wob, 1) * 2.2deg)}}@media(max-aspect-ratio:1/1){.lower{grid-template-columns:minmax(0,1fr)}.bag-panel{display:none}}@media(max-height:560px)and (min-aspect-ratio:1/1){.game .hud .progress .dot,.rewardscreen .hud .progress .dot,.hstat .lbl .long{display:none}.hstat .lbl .short{display:inline}.san-bar{width:26px}.hud .bag-word{display:none}.lower,.lower-main{gap:6px}.bag-panel{padding:6px 8px;gap:4px;border-radius:14px}.bp-head{font-size:10px}.bp-head b{font-size:16px}.bp-more,.bp-note,.bp-drawn{display:none}.bp-groups{gap:8px;padding-top:4px}.bp-group{gap:2px}.bp-group .tile.sm{width:24px;height:28px;font-size:15px;border-radius:7px}.bp-group .tile.sm:before{inset:3px;border-radius:5px}.bp-count{font-size:9px;padding:2px 4px;top:-6px;right:-8px}.bp-odds{font-size:9px}.reward-bubble,.reward .tag{display:none}.reward{padding:10px 6px 8px}.reward .medal.lg,.reward .cons.lg{scale:.8}.reward-face,.reward .voucher-face{width:48px;height:54px}.reward-foot{flex-wrap:nowrap}}@media(max-aspect-ratio:1/1)and (max-height:760px){.reward-panel{padding:12px;gap:10px;align-self:start}.reward-head p.muted,.reward-bubble{display:none}.reward-head h2{font-size:26px}.reward{padding:22px 6px 8px;gap:4px}.reward .op.sm{width:50px;height:66px}.reward .op.sm .op-sym{font-size:32px}.reward .medal.lg,.reward .cons.lg{scale:.85}.reward-face,.reward .voucher-face{width:50px;height:58px}.reward-face span,.reward .voucher-face span{font-size:22px}.reward-detail{min-height:0;font-size:13px}.reward-foot .btn{flex:1 1 100%}}@media(max-aspect-ratio:1/1)and (max-width:440px){.hstat.sanity .san-bar,.game .hud .hstat.moves{display:none}.game .actions>.moves-line{display:flex}.game .hud,.game .hud-stats{gap:6px 10px}.moves-line{font-size:10px}}@media(max-aspect-ratio:1/1){.game{grid-template-rows:auto auto minmax(0,1fr);align-content:stretch}.game>.board{grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0}.game .midrow{min-height:0}.game .score{min-height:0;overflow:hidden;grid-template-rows:auto auto auto minmax(0,1fr) auto;align-content:stretch}.game .score .preview{min-height:0;overflow:hidden;align-content:center}.game .stage{min-height:0;overflow:hidden}}@media(max-aspect-ratio:1/1)and (max-height:600px){.game{--tile-w: clamp(32px, 6.2dvh, 44px);--op-w: clamp(36px, 8dvh, 50px);gap:6px}.game .hud{padding:5px 8px}.game .enemy-card{padding:6px;gap:8px}.game .enemy-stage{width:64px}.game .rule{padding:4px 6px;font-size:11px}.game .ruler{padding:14px 14px 20px}.game .tick{top:16px;font-size:10px}.game .board{gap:6px}.game .ops{padding-top:6px}.game .actions>.moves-line{display:none}}@media(max-aspect-ratio:1/1){.game .enemy-stage{width:clamp(64px,min(27vw,13dvh),150px)}.game .score{container-type:size;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.game .score>*{flex:none}.game .score .preview{flex:0 1 auto;min-height:0;overflow:hidden}.game .score .preview .mini-h{display:none}.game .score .action-btns{margin-top:4px}.game .stage{container-type:size}@container (max-height: 200px){.score-top,.total-sub,.live-props,.pv-tf{display:none}.total-num{font-size:30px}.action-btns{margin-top:2px}}@container (max-height: 150px){.total-num{display:none}}@container (max-height: 210px){.stage-hint,.stage-note{display:none}}}
