:root{--ink: #0b0a10;--paper: #efe9dd;--red: #c8202a;--blue: #2f5ea8;--gold: #d8a742;--dim: #8d8aa0;--panel: #15131d;--line: #2c2740;--sp-top: env(safe-area-inset-top, 0px);--sp-bot: env(safe-area-inset-bottom, 0px);--sp-l: env(safe-area-inset-left, 0px);--sp-r: env(safe-area-inset-right, 0px);--tap: 48px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:var(--ink);color:var(--paper);font-family:ui-sans-serif,system-ui,Segoe UI,Roboto,Helvetica Neue,sans-serif}body{overscroll-behavior:none}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;touch-action:manipulation}button:focus-visible,.padfocus{outline:3px solid var(--gold);outline-offset:2px}.grow{flex:1 1 auto}[hidden]{display:none!important}#app{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:var(--sp-top) var(--sp-r) var(--sp-bot) var(--sp-l)}#topbar{display:flex;align-items:center;gap:8px;padding:4px 8px;min-height:40px;background:linear-gradient(#17141f,#100e18);border-bottom:1px solid var(--line);font-size:13px;flex-wrap:nowrap;overflow:hidden}#topbar .tb{display:flex;align-items:center;gap:4px;white-space:nowrap;min-width:0}#topbar .lbl{color:var(--dim);font-size:10px;letter-spacing:.08em}#topbar b{font-variant-numeric:tabular-nums}#topbar .blk{color:#7fd0ff;font-style:normal;margin-left:4px}#topbar .rew b{color:#cba6ff}#topbar .gold b{color:var(--gold)}#tbRelics{gap:2px;font-size:15px}#topbar .icon{width:var(--tap);height:var(--tap);min-width:var(--tap);display:grid;place-items:center;font-size:20px;border-radius:10px;border:1px solid var(--line);background:#1a1726}.pips{display:inline-flex;gap:2px}.pips i{width:7px;height:7px;border-radius:50%;background:#332d46;display:block}.pips i.on{background:#ffd166;box-shadow:0 0 5px #ffd166}#stage{position:relative;overflow:hidden;background:#07060c;min-height:120px}#c3d{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#stageFallback{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;filter:saturate(.8) brightness(.55)}#stage.no3d #c3d{display:none}#stage:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(130% 90% at 50% 5%,transparent 55%,rgba(5,4,10,.6) 100%)}#enemyLayer{position:absolute;inset:auto 0 0 38%;display:flex;justify-content:space-evenly;align-items:flex-end;gap:6px;padding:6px 8px 8px;z-index:3}.enemy{flex:0 1 auto;min-width:92px;max-width:190px;min-height:var(--tap);padding:5px 7px;background:#0a0910d1;border:1px solid var(--line);border-radius:10px;text-align:center;display:flex;flex-direction:column;gap:3px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.enemy.sel{border-color:var(--gold);box-shadow:0 0 0 2px #d8a74280}.enemy.dead{opacity:.3;pointer-events:none}.enemy .nm{font-size:10px;letter-spacing:.06em;color:#d9d2c4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.enemy .bar{height:7px;border-radius:4px;background:#2a1420;overflow:hidden;position:relative}.enemy .bar i{display:block;height:100%;background:linear-gradient(90deg,#ff4a4a,#c8202a)}.enemy .bar u{position:absolute;inset:0 auto 0 0;background:#7fd0ff66}.enemy .hpn{font-size:10px;color:#cfc8ba;font-variant-numeric:tabular-nums}.enemy .intent{font-size:12px;font-weight:700;color:#ffd8a8}.enemy .sts{display:flex;gap:3px;justify-content:center;flex-wrap:wrap;font-size:10px;min-height:12px}.enemy .sts b{background:#241c33;border-radius:4px;padding:0 3px;font-weight:600}#heroTag{position:absolute;left:10px;bottom:8px;font-size:11px;color:#cfc8ba;z-index:2;background:#0a0910b3;border:1px solid var(--line);border-radius:8px;padding:3px 7px}#heroTag span{color:#ffb0b0;margin-left:6px}#inkFlash{position:absolute;top:0;right:0;bottom:0;left:0;z-index:9;background:#fff;mix-blend-mode:difference;animation:inkf .55s ease-out forwards;pointer-events:none}@keyframes inkf{0%{opacity:.9}to{opacity:0}}#stage.inked{filter:grayscale(1) contrast(1.6) brightness(1.05)}#board{background:linear-gradient(#100e18,#0a0910);border-top:1px solid var(--line);padding:4px 6px calc(4px + var(--sp-bot));display:grid;gap:4px}#stats{display:flex;gap:10px;align-items:center;font-size:12px;color:#cfc8ba;padding:0 2px}#stats .pile.mini{display:none;width:48px;min-height:var(--tap);font-size:9px}#stats .pile.mini b{font-size:13px}#stats b{font-variant-numeric:tabular-nums;color:#fff}#stats .blk b{color:#7fd0ff}#stats .sp b{color:#ffd166}#stats .rw b{color:#cba6ff}#stats .en b{color:#9effa0}#handRow{display:flex;align-items:flex-end;gap:6px}.pile{width:52px;min-height:var(--tap);border:1px solid var(--line);border-radius:10px;background:#15121d;display:grid;place-items:center;font-size:10px;color:var(--dim);flex:0 0 auto}.pile b{font-size:15px;color:var(--paper)}#hand{flex:1 1 auto;display:flex;gap:6px;justify-content:center;align-items:flex-end;overflow-x:auto;overflow-y:hidden;touch-action:pan-x;padding:8px 2px 2px;scrollbar-width:thin}#endTurn{width:100%;min-height:var(--tap);border-radius:12px;border:1px solid #5a3a12;background:linear-gradient(#3a2a10,#241803);color:#ffd79a;font-weight:700;letter-spacing:.1em}#endTurn small{color:#b7955f;font-weight:400;letter-spacing:0}#endTurn:disabled{opacity:.45}.card{position:relative;flex:0 0 auto;width:92px;height:128px;border-radius:10px;padding:5px;display:flex;flex-direction:column;gap:3px;text-align:left;transition:transform .12s ease,box-shadow .12s ease;background:linear-gradient(#211a22,#16121a);border:2px solid #555;will-change:transform}.card.A{border-color:var(--red);background:linear-gradient(#2a1418,#171014)}.card.D{border-color:var(--blue);background:linear-gradient(#14202e,#101620)}.card .cost{position:absolute;top:-8px;left:-8px;width:24px;height:24px;border-radius:50%;background:#0d0b14;border:2px solid var(--gold);color:var(--gold);font-size:13px;font-weight:700;display:grid;place-items:center}.card .nm{font-size:10px;padding-left:16px;font-weight:700;letter-spacing:.03em;line-height:1.15;min-height:23px}.card .ico{font-size:20px;text-align:center;line-height:1}.card .tx{font-size:9px;line-height:1.22;color:#d6cfc2;flex:1 1 auto;overflow:hidden}.card .tags{font-size:8px;color:var(--dim);letter-spacing:.06em;display:flex;justify-content:space-between}.card .ammo,.card.up .nm{color:#9effa0}.card.sel{transform:translateY(-16px) scale(1.06);box-shadow:0 10px 22px #0009,0 0 0 2px var(--gold);z-index:5}.card.unplayable{opacity:.45;filter:grayscale(.6)}.card.drag,.card.fly{position:fixed;z-index:99;pointer-events:none;transform:scale(1.1)}.card.dragging{opacity:.35}#overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;background:#050409db;padding:calc(10px + var(--sp-top)) calc(10px + var(--sp-r)) calc(10px + var(--sp-bot)) calc(10px + var(--sp-l));overflow:auto;overscroll-behavior:contain}.panel{width:min(760px,100%);max-height:100%;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px}.panel h1{font-size:22px;margin:0;letter-spacing:.06em}.panel h2{font-size:15px;margin:0;letter-spacing:.08em;color:var(--gold)}.panel p{margin:0;line-height:1.5;color:#d6cfc2;font-size:14px}.panel .muted{color:var(--dim);font-size:12px}.row{display:flex;gap:8px;flex-wrap:wrap}.btn{min-height:var(--tap);padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:#211c2e;font-weight:600;letter-spacing:.04em}.btn.primary{background:linear-gradient(#3a2a10,#241803);border-color:#5a3a12;color:#ffd79a}.btn.danger{border-color:#5a1620;color:#ffb0b0}.btn:disabled{opacity:.4}.cardgrid{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.cardgrid .card{width:104px;height:146px}.deckgrid{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start;max-height:46vh;overflow:auto;padding:4px}.deckgrid .card{width:84px;height:118px}.shopItem{display:flex;flex-direction:column;align-items:center;gap:6px}.price{font-size:12px;color:var(--gold)}#title h1{font-size:clamp(26px,7vw,46px);letter-spacing:.12em;line-height:1.05}#title .sub{color:var(--gold);letter-spacing:.3em;font-size:11px}#title .menu{display:grid;gap:10px;max-width:360px}.diffSlider{display:grid;gap:6px}.diffSlider label{font-size:12px;letter-spacing:.08em;color:var(--dim)}.diffSlider b.dn{color:var(--gold);font-size:14px}.diffSlider input[type=range]{width:100%;min-height:var(--tap)}.diffSlider .dl{display:flex;justify-content:space-between;font-size:9px;color:var(--dim)}#mapWrap{width:min(520px,100%);margin:0 auto;position:relative}#mapSvg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.mapFloor{z-index:1}.mapFloor{display:grid;grid-template-columns:22px repeat(4,1fr);align-items:center;gap:6px;padding:5px 0;position:relative}.mapFloor .fn{font-size:10px;color:var(--dim);text-align:right}.node{min-height:var(--tap);min-width:var(--tap);border-radius:12px;border:1px solid var(--line);background:#1a1726;display:grid;place-items:center;gap:0;font-size:18px;position:relative}.node small{font-size:8px;color:var(--dim);letter-spacing:.04em}.node.open{border-color:var(--gold);box-shadow:0 0 0 2px #d8a74259;background:#2a2213}.node.done{opacity:.5}.node.here{border-color:#9effa0;box-shadow:0 0 0 2px #9effa066}.node.empty{visibility:hidden}.node.boss{background:#2d0f16;border-color:#7a2030}#rewindPanel{border-color:#fff;background:#f3f1ec;color:#15131d}#rewindPanel h1,#rewindPanel h2{color:#15131d}#rewindPanel p{color:#3a3744}#rewindPanel .btn{background:#15131d;color:#f3f1ec;border-color:#15131d}#rewindPanel .btn.primary{background:#c8202a;border-color:#c8202a;color:#fff}#toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(14px + var(--sp-bot));z-index:60;display:grid;gap:6px;pointer-events:none}#toast div{pointer-events:none;background:#1d1930;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:13px;animation:tfade 3.4s forwards}@keyframes tfade{0%{opacity:0;transform:translateY(8px)}10%,80%{opacity:1;transform:none}to{opacity:0}}#hint{position:fixed;left:50%;transform:translate(-50%);z-index:35;pointer-events:none;bottom:calc(50% - 10px);font-size:13px;color:#ffd79a;background:#0a0910d9;border-radius:999px;padding:6px 14px;opacity:0;transition:opacity .2s}#hint.on{opacity:1}#splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;display:grid;place-items:center;align-content:center;gap:10px;background:#0b0a10;animation:sfin .4s ease-out}#splash img{width:min(62vw,340px)}#splash p{margin:0;letter-spacing:.34em;font-size:13px;color:var(--paper)}#splash small{color:var(--dim);letter-spacing:.2em;font-size:10px}#splash.out{animation:sfout .9s ease-in forwards}@keyframes sfin{0%{opacity:0}to{opacity:1}}@keyframes sfout{to{opacity:0}}#zoom{display:grid;place-items:center;gap:10px}#zoom .card{width:200px;height:282px}#zoom .card .nm{font-size:16px;min-height:36px}#zoom .card .ico{font-size:44px}#zoom .card .tx{font-size:14px}#zoom .card .cost{width:38px;height:38px;font-size:20px}@media (orientation: portrait){#stage{min-height:30vh}#app{grid-template-rows:auto minmax(30vh,42vh) minmax(0,1fr)}#board{align-content:end}#hand{justify-content:center;gap:3px;padding:24px 2px 2px}#handRow>.pile{display:none}#stats .pile.mini{display:grid}.card{width:clamp(62px,calc((100vw - 26px)/5),92px);height:120px}.card .tx{font-size:8px}.card .nm{font-size:9px;padding-left:15px}#topbar .floor,#topbar .relics,#topbar .spirit{display:none}#endTurn{min-height:var(--tap);max-height:56px}}@media (orientation: landscape){#stats{display:none}#app{grid-template-rows:auto minmax(0,55fr) minmax(0,45fr)}}@media (orientation: landscape) and (max-height: 470px){#app{grid-template-rows:auto minmax(0,46fr) minmax(0,54fr)}.card{width:76px;height:96px}.card .tx{font-size:8px;line-height:1.1}.card .nm{min-height:20px;font-size:9px}.card .ico{font-size:15px}#topbar{min-height:34px;font-size:11px;padding:2px 6px}#topbar .spirit,#topbar .relics{display:none}#board{padding:3px 5px calc(3px + var(--sp-bot));gap:3px}#hand{padding:6px 2px 0}#endTurn{min-height:var(--tap);max-height:var(--tap)}}@media (min-width: 900px){.card{width:104px;height:146px}.card .tx{font-size:10px}}body.pad-active .card.sel{outline:3px solid var(--gold)}
