:root{--bg:#0b0a10;--panel:#16131d;--panel-2:#201b29;--panel-3:#2a2335;--line:#3b3247;--text:#ede4d3;--muted:#a397ad;--gold:#f2c14e;--gold-deep:#b9872a;--lantern:#ffcf7a;--danger:#e0475b;--good:#6fd38a;--xp:#7cc8ff;--hud-height:64px;--boss-bar-height:46px;--hud-bottom:calc(var(--hud-height) + env(safe-area-inset-top));--column-max:640px;--radius:12px;--display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--ui);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;overflow:hidden}#game,#ui,#stick-zone{position:fixed;inset:0}#ui{pointer-events:none;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}:where(#ui)>*{pointer-events:none}.interactive,:where(#ui) button,:where(#ui) input,:where(#ui) select{pointer-events:auto}#stick-zone{top:var(--hud-bottom);pointer-events:none;touch-action:none}body.screen-run #stick-zone{pointer-events:auto}#stick-base{opacity:0;pointer-events:none;background:radial-gradient(circle,#ffcf7a14,#00000040);border:2px solid #ffcf7a59;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;transition:opacity .12s;position:absolute}#stick-knob{background:radial-gradient(circle at 35% 35%,#ffe7b0,#c99a45);border-radius:50%;width:46px;height:46px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 18px #ffcf7a73}.btn{font:600 16px var(--ui);color:var(--text);background:linear-gradient(180deg, var(--panel-3), var(--panel-2));border:1px solid var(--line);cursor:pointer;border-radius:10px;min-height:44px;padding:12px 18px;transition:transform 80ms,filter .12s}.btn:active{transform:translateY(1px)scale(.99)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{color:#2a1a05;background:linear-gradient(180deg, #ffd878, var(--gold-deep));border-color:#ffe2a0;box-shadow:0 4px 18px #f2c14e40}.btn.danger{background:linear-gradient(#5a2230,#3b1620);border-color:#7d3242}.btn.big{letter-spacing:.04em;width:100%;padding:16px 22px;font-size:20px}.btn.icon{place-items:center;width:44px;height:44px;padding:0;font-size:20px;display:grid}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#16131deb}.title{font-family:var(--display);letter-spacing:.02em}.muted{color:var(--muted)}.coins{color:var(--gold);align-items:center;gap:6px;font-weight:700;display:inline-flex}.coins img{width:20px;height:20px}.bar{border:1px solid var(--line);background:#0d0b12;border-radius:6px;height:12px;position:relative;overflow:hidden}.bar>span{border-radius:6px;transition:width .16s;position:absolute;inset:0 auto 0 0}.bar.hp>span{background:linear-gradient(90deg,#b2283b,#e85a6b)}.bar.xp>span{background:linear-gradient(90deg, #3d8fd1, var(--xp))}.bar.boss>span{background:linear-gradient(90deg,#7a1c2c,#e0475b)}.backdrop{pointer-events:auto;background:#050408b8;place-items:center;padding:16px;animation:.16s ease-out fade-in;display:grid;position:fixed;inset:0}.modal:focus{outline:none}.modal{flex-direction:column;gap:14px;width:min(420px,100%);max-height:calc(100% - 32px);padding:20px;display:flex;overflow:auto}.modal h2{text-align:center;margin:0;font-size:24px}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}.toast{left:16px;right:16px;bottom:calc(24px + env(safe-area-inset-bottom));text-align:center;max-width:420px;margin:0 auto;padding:12px 16px;font-size:15px;animation:.18s ease-out rise-in;position:fixed}.hud{max-width:var(--column-max);height:var(--hud-bottom);padding:calc(8px + env(safe-area-inset-top)) calc(12px + env(safe-area-inset-right)) 8px calc(12px + env(safe-area-inset-left));border-bottom:1px solid var(--line);background:linear-gradient(#0b0a10f5,#0b0a10db);grid-template-columns:1fr auto;align-items:center;gap:4px 10px;margin:0 auto;display:grid;position:fixed;top:0;left:0;right:0}.hud .row{align-items:center;gap:8px;font-size:13px;display:flex}.hud .row .bar{flex:1}.hud .label{font-variant-numeric:tabular-nums;min-width:64px}.hud .side{grid-row:span 2;align-items:center;gap:10px;display:flex}.boss-bar{top:var(--hud-bottom);max-width:var(--column-max);height:var(--boss-bar-height);text-align:center;border-radius:0;flex-direction:column;gap:4px;margin:0 auto;padding:6px 12px;font-size:13px;animation:.2s fade-in;display:flex;position:fixed;left:0;right:0}.status-chip{bottom:calc(28px + env(safe-area-inset-bottom));color:var(--lantern);pointer-events:none;padding:6px 14px;font-size:13px;position:fixed;left:50%;transform:translate(-50%)}.cards{gap:10px;display:grid}.card{text-align:left;color:var(--text);background:linear-gradient(180deg, var(--panel-3), var(--panel-2));border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;font:inherit;grid-template-columns:56px 1fr;align-items:center;gap:12px;padding:12px;animation:.22s ease-out both rise-in;display:grid}.card:nth-child(2){animation-delay:60ms}.card:nth-child(3){animation-delay:.12s}.card:hover,.card:focus-visible{border-color:var(--gold);outline:none}.card img{width:56px;height:56px}.card strong{font-family:var(--display);margin-bottom:2px;font-size:18px;display:block}.card .stacks{color:var(--muted);font-size:12px}.screen{pointer-events:auto;padding:calc(12px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));background:radial-gradient(120% 70% at 50% 18%, #241b31 0%, var(--bg) 70%);position:fixed;inset:0;overflow-y:auto}.center-screen{text-align:center;place-items:center;display:grid}.spinner{border:3px solid var(--line);border-top-color:var(--lantern);border-radius:50%;width:42px;height:42px;margin:18px auto;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.results{text-align:center;flex-direction:column;gap:16px;width:min(420px,100%);padding:24px 20px;animation:.26s ease-out rise-in;display:flex}.results h1{margin:0;font-size:34px}.results .victory{color:var(--gold);text-shadow:0 0 24px #f2c14e59}.results .defeat{color:#d88c96}.stat-lines{text-align:left;gap:8px;display:grid}.stat-lines div{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:6px;display:flex}.setting-row{justify-content:space-between;align-items:center;gap:12px;font-size:15px;display:flex}.setting-row select,.setting-row input[type=range]{flex:0 0 52%}.setting-row input[type=range]{accent-color:var(--gold)}.setting-row select{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px}.toggle{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:15px;width:52px;height:30px;position:relative}.toggle:after{content:"";background:var(--muted);border-radius:50%;width:22px;height:22px;transition:transform .14s,background .14s;position:absolute;top:3px;left:3px}.toggle[aria-checked=true]{border-color:var(--gold-deep);background:#3a2f17}.toggle[aria-checked=true]:after{background:var(--gold);transform:translate(22px)}.debug-overlay{z-index:50;color:#b8ffcf;pointer-events:none;background:#000000a6;border-radius:6px;margin:0;padding:6px 8px;font:12px/1.3 ui-monospace,monospace;position:fixed;bottom:8px;left:8px}#safe-area-probe{visibility:hidden;pointer-events:none;padding-top:env(safe-area-inset-top);position:fixed}.home{flex-direction:column;gap:14px;padding-bottom:0;display:flex}.home>:not(.backdrop){width:100%;max-width:var(--column-max);margin:0 auto}.home-top{justify-content:space-between;align-items:center;display:flex}.section-title{margin:0 0 8px;font-size:19px}.hero-stage{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:8px 0;display:grid}.slot-column{justify-items:center;gap:30px;padding-bottom:18px;display:grid}.slot{background:radial-gradient(circle at 50% 40%, var(--panel-3), var(--panel));border:1px solid var(--line);width:76px;height:76px;color:var(--text);cursor:pointer;border-radius:14px;place-items:center;display:grid;position:relative}.slot.empty{border-style:dashed}.slot img{object-fit:contain;width:44px;height:44px}.slot-name{color:var(--muted);font-size:12px;position:absolute;bottom:-18px}.badge{color:#2a1a05;background:var(--gold);border-radius:9px;min-width:20px;padding:1px 5px;font-size:12px;font-weight:700;position:absolute;top:4px;right:4px}.hero-figure{place-items:end center;width:112px;height:150px;display:grid;position:relative}.hero-idle{filter:drop-shadow(0 0 16px #ffcf7a59);width:84px;animation:2.4s ease-in-out infinite hero-idle}.hero-shadow{z-index:-1;background:#00000073;border-radius:50%;width:64px;height:12px;position:absolute;bottom:2px}@keyframes hero-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.stats-grid{grid-template-columns:1fr 1fr;gap:6px 16px;padding:12px 14px;font-size:14px;display:grid}.stat{justify-content:space-between;gap:8px;display:flex}.stat strong{white-space:nowrap}.inventory-grid{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:10px;display:grid}.item-tile{aspect-ratio:1;background:var(--panel-2);border:2px solid var(--line);cursor:pointer;border-radius:12px;place-items:center;display:grid;position:relative}.item-tile img{object-fit:contain;width:60%;height:60%}.item-tile.equipped{box-shadow:inset 0 0 0 2px #f2c14e59}.equipped-mark{color:var(--gold);font-size:11px;font-weight:700;position:absolute;bottom:4px;left:6px}.levels{gap:8px;display:grid}.level-row{align-items:center;gap:10px;padding:4px 10px 4px 4px;display:flex}.level-row.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.level-pick{text-align:left;color:var(--text);font:inherit;cursor:pointer;background:0 0;border:none;flex:1;gap:2px;padding:10px;display:grid}.level-pick:disabled{cursor:default}.level-note{font-size:13px}.btn.unlock{align-items:center;gap:6px;padding:8px 12px;font-size:14px;display:inline-flex}.btn.primary .coins{color:inherit}.descend{flex-direction:column;align-items:center;gap:2px;display:flex}.descend small{font:600 14px var(--ui);letter-spacing:normal;opacity:.75}.home-footer{padding:12px 0 calc(16px + env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, var(--bg) 35%);position:sticky;bottom:0}.item-head{align-items:center;gap:14px;display:flex}.item-icon{background:var(--panel-2);border:2px solid var(--line);border-radius:12px;width:64px;height:64px;padding:8px}.item-description{margin:0;font-size:14px}.gain{color:var(--good);font-weight:600}:root[data-pixel-art=true] img{image-rendering:pixelated}
