:root{--bg: #1a1420;--bg-2: #241b2c;--card: #2c2234;--card-2: #362a40;--line: #4a3a55;--text: #f3e9d8;--muted: #b2a3b8;--accent: #e8a33c;--accent-2: #ffcf6e;--accent-ink: #2a1a08;--hp: #d9534f;--mp: #4a8fe0;--exp: #8bc34a;--good: #6fcf97;--bad: #ff7a7a;--danger: #c0392b;--font: "DotGothic16", "Hiragino Kaku Gothic ProN", "Noto Sans JP", sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:radial-gradient(ellipse at top,#3a2530 0%,transparent 60%),var(--bg);min-height:100dvh}button,input,textarea{font:inherit;color:inherit}a{color:var(--accent-2)}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:.85em}.center{text-align:center}.prewrap{white-space:pre-wrap}.screen{max-width:520px;margin:0 auto;min-height:100dvh}.screen-head{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;gap:8px;padding-block:10px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:2px solid var(--line)}.screen-head h1{flex:1;margin:0;font-size:1.15rem;text-align:center;letter-spacing:.1em}.back,.back-spacer{width:40px;height:40px;display:grid;place-items:center;text-decoration:none;color:var(--accent-2);font-size:1.1rem}.screen-body{padding-block:16px 120px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:14px}.screen-body.center{align-items:center;padding-top:48px}.title{text-align:center;font-size:1.8rem;margin:8px 0;color:var(--accent-2);text-shadow:3px 3px 0 #000;letter-spacing:.1em}.splash{display:grid;place-items:center;min-height:100dvh;color:var(--muted)}.card{background:var(--card);border:2px solid var(--line);box-shadow:4px 4px #0008;padding:14px;display:flex;flex-direction:column;gap:10px}.card h2{margin:0;font-size:1rem;color:var(--accent-2);letter-spacing:.05em}.card-accent{border-color:var(--accent)}.btn{display:block;width:100%;min-height:48px;padding:10px 14px;border:2px solid var(--line);background:var(--card-2);box-shadow:3px 3px #000a;text-align:center;text-decoration:none;cursor:pointer}.btn small{display:block;color:var(--muted);font-size:.75rem}.btn:active:not(:disabled){transform:translate(2px,2px);box-shadow:1px 1px #000a}.btn:disabled,.btn-sm:disabled,.btn-sq:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent-2);color:var(--accent-ink)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--bad)}.btn-sm{min-width:64px;min-height:36px;padding:4px 10px;border:2px solid var(--line);background:var(--card-2);cursor:pointer;white-space:nowrap}.btn-sm.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-2)}.btn-sq{width:36px;height:36px;border:2px solid var(--line);background:var(--card-2);cursor:pointer;flex-shrink:0}input:not([type=checkbox]):not([type=range]),textarea{width:100%;padding:10px 12px;background:var(--bg-2);border:2px solid var(--line);outline:none}input:focus,textarea:focus{border-color:var(--accent)}input[type=range]{width:100%;accent-color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px}.row{display:flex;align-items:center;gap:8px}.row.between{justify-content:space-between}.or{text-align:center;color:var(--muted);font-size:.85rem}.code-input{letter-spacing:.3em;text-align:center;text-transform:uppercase}.tabs{display:flex;border:2px solid var(--line)}.tabs button{flex:1;min-height:44px;background:var(--card);border:0;border-right:2px solid var(--line);cursor:pointer;white-space:nowrap}.tabs button:last-child{border-right:0}.tabs button.on{background:var(--accent);color:var(--accent-ink)}.tabs-scroll{overflow-x:auto}.banner{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border:2px solid;letter-spacing:.1em}.banner small{color:var(--muted);letter-spacing:0}.banner-bar{border-color:var(--accent);background:#3a2a14;color:var(--accent-2)}.banner-adv{border-color:var(--line);background:var(--bg-2)}.hero{flex-direction:row;align-items:flex-start;gap:14px}.hero-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.hero-name{font-size:1.3rem;line-height:1.2}.hero-sub{font-size:.9rem;color:var(--muted)}.hero-sub b{color:var(--text)}.sep{margin:0 4px}.pixel-icon{image-rendering:pixelated;flex-shrink:0;background:var(--bg-2);border:2px solid var(--line)}.gauge-label{display:flex;justify-content:space-between;font-size:.8rem}.gauge-track{height:10px;background:#0006;border:2px solid #000}.gauge-fill{height:100%;transition:width .6s steps(12)}.gauge-hp .gauge-fill{background:var(--hp)}.gauge-mp .gauge-fill{background:var(--mp)}.gauge-exp .gauge-fill{background:var(--exp)}.ap-pills{display:flex;gap:8px}.ap{flex:1;text-align:center;padding:6px 4px;border:2px solid var(--line);background:var(--card);font-size:.8rem;white-space:nowrap}.ap b{font-size:1.15rem;margin:0 2px;color:var(--accent-2)}.ap.dim{opacity:.5}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-block;padding:0 8px;border:2px solid;font-size:.8rem}.chip-good{border-color:var(--good);color:var(--good)}.chip-bad{border-color:var(--bad);color:var(--bad)}.chip-flavor{border-color:#d58ad8;color:#f0b3f2}.party-mini{display:flex;flex-wrap:wrap;gap:10px}.party-mini-member{display:inline-flex;align-items:center;gap:6px;font-size:.85rem}.menu{display:grid;grid-template-columns:1fr 1fr;gap:10px}.menu-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:84px;background:var(--card);border:2px solid var(--line);box-shadow:4px 4px #0008;color:var(--text);text-decoration:none}.menu-item:active{transform:translate(2px,2px);box-shadow:2px 2px #0008}.menu-icon{font-size:1.6rem;line-height:1}.menu-wide{grid-column:span 2;flex-direction:row;gap:10px;min-height:56px}.menu-owner{border-color:var(--accent);color:var(--accent-2)}.menu-item.dim{opacity:.55}.badge{position:absolute;top:6px;right:6px;padding:0 6px;background:var(--exp);color:#102000;font-size:.7rem;animation:blink 1s steps(2) infinite}.icon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.icon-pick{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;background:transparent;border:2px solid transparent;cursor:pointer;font-size:.75rem}.icon-pick.on{border-color:var(--accent);background:#3a2a14}.alloc{display:flex;flex-direction:column;gap:6px}.alloc-left{text-align:right;font-size:.9rem}.alloc-left b{color:var(--accent-2);font-size:1.2rem}.alloc-row{display:flex;align-items:center;gap:8px}.alloc-key{width:36px;color:var(--accent-2)}.alloc-label{flex:1;color:var(--muted);font-size:.85rem}.alloc-val{width:56px;text-align:center}.alloc-val small{color:var(--exp)}.restore-code{font-size:1.4rem;letter-spacing:.08em;text-align:center;color:var(--accent-2);margin:0}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px dashed var(--line)}.list li:last-child{border-bottom:0}.list li.picked{background:#3a2a1488}.price{color:var(--accent-2);white-space:nowrap}.qty{width:24px;text-align:center}.cost{display:inline-block;margin-left:6px;font-size:.75rem;color:var(--muted)}.rarity{display:inline-block;min-width:34px;text-align:center;font-size:.7rem;border:1px solid;padding:0 3px}.rarity-N{color:#c8c8c8}.rarity-R{color:#6fb7ff}.rarity-SR{color:#d58ad8}.rarity-SSR{color:var(--accent-2);background:#3a2a14}.sticky-action{position:sticky;bottom:12px;display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--card-2);border:2px solid var(--accent);box-shadow:4px 4px #000a}.sticky-action>div{flex:1;font-size:.9rem}.sticky-action .btn{width:auto}.notice{margin:0;padding:8px 10px;border:2px solid var(--accent);color:var(--accent-2);font-size:.9rem}.drink-art{font-size:4rem}.dungeons{display:flex;flex-direction:column;gap:8px}.dungeon{text-align:left;padding:10px 12px;background:var(--bg-2);border:2px solid var(--line);cursor:pointer;display:flex;flex-direction:column}.dungeon small{color:var(--muted)}.dungeon.on{border-color:var(--accent);background:#3a2a14}.level-pick{display:flex;align-items:center;justify-content:center;gap:12px}.level-num{font-size:1.8rem;min-width:48px;text-align:center;color:var(--accent-2)}.estimate{display:flex;justify-content:space-between;font-size:.9rem}.rate b{font-size:1.2rem}.rate.good b{color:var(--good)}.rate.mid b{color:var(--accent-2)}.rate.bad b{color:var(--bad)}.actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.params{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px}.param{display:flex;align-items:baseline;gap:6px}.param b{margin-left:auto;font-size:1.1rem}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#000c;display:grid;place-items:center;padding:16px}.result{width:100%;max-width:440px;max-height:90dvh;overflow-y:auto;background:#0d0a12;border:3px solid #fff;box-shadow:0 0 0 3px #000;padding:16px;display:flex;flex-direction:column;gap:12px}.result.win{border-color:var(--accent-2)}.result.lose{border-color:var(--bad)}.result-story p{margin:0 0 6px}.result-title{text-align:center;font-size:1.6rem;margin:6px 0}.result.win .result-title{color:var(--accent-2)}.result.lose .result-title{color:var(--bad)}.result-table{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0}.result-table dt{color:var(--muted)}.result-table dd{margin:0;text-align:right}.loot{list-style:none;padding:0;margin:0 0 8px}.loot li{padding:2px 0}.fade-in{animation:fade .4s steps(4)}@keyframes fade{0%{opacity:0}}.qr{width:min(78vw,320px);image-rendering:pixelated;border:4px solid var(--accent);margin:12px auto;display:block}.player-code{font-size:2rem;letter-spacing:.25em;color:var(--accent-2);margin:0}.blink{animation:blink 1.2s steps(2) infinite}@keyframes blink{50%{opacity:.3}}.celebrate{text-align:center;display:flex;flex-direction:column;gap:16px;padding-top:24px}.celebrate-burst{font-size:1.8rem;color:var(--accent-2);text-shadow:3px 3px 0 #000;animation:pop .6s steps(6)}@keyframes pop{0%{transform:scale(.3)}}.celebrate-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.celebrate-list li{padding:8px;border:2px solid var(--line);background:var(--card)}.scanner{width:100%;aspect-ratio:1;object-fit:cover;background:#000;border:2px solid var(--accent)}.grant-who{display:flex;align-items:center;gap:14px}.toggle{display:flex;align-items:center;gap:10px;padding:10px 12px;border:2px solid var(--line);background:var(--bg-2);cursor:pointer}.toggle input{width:22px;height:22px;accent-color:var(--accent)}.toggle span{flex:1}.toggle b{font-size:1.2rem;color:var(--accent-2)}.toggle em{font-style:normal;color:var(--muted);font-size:.8rem}.log{list-style:none;margin:0;padding:0}.log li{display:flex;gap:10px;padding:8px 0;border-bottom:1px dashed var(--line)}.log-icon{width:24px;text-align:center;flex-shrink:0}.toasts{position:fixed;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:30;display:flex;flex-direction:column;gap:8px;pointer-events:none;max-width:488px;margin:0 auto}.toast{padding:10px 14px;border:2px solid;background:#0d0a12;box-shadow:3px 3px #000;animation:fade .3s steps(3)}.toast-ok{border-color:var(--good)}.toast-error{border-color:var(--bad);color:var(--bad)}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}.mock-bar{max-width:520px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-block:6px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));background:repeating-linear-gradient(-45deg,#3a2a14,#3a2a14 8px,#33240f 8px,#33240f 16px);border-bottom:2px solid var(--accent);font-size:.85rem;color:var(--accent-2)}.mock-bar b{margin-right:6px;padding:0 6px;background:var(--accent);color:var(--accent-ink)}.mock-overlay{place-items:end center;padding:0}.mock-panel{width:100%;max-width:520px;max-height:88dvh;overflow-y:auto;background:var(--bg-2);border:2px solid var(--accent);border-bottom:0;padding-block:0 calc(16px + env(safe-area-inset-bottom,0px));padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:14px}.mock-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding-block:12px 8px;background:var(--bg-2);border-bottom:2px solid var(--line)}.mock-head h2{margin:0;font-size:1.05rem;color:var(--accent-2)}.mock-sec{display:flex;flex-direction:column;gap:8px}.mock-sec h3{margin:0;font-size:.9rem;color:var(--muted);letter-spacing:.08em}.mock-steps{margin:0;padding-left:1.4em;display:flex;flex-direction:column;gap:4px;font-size:.9rem}.mock-owner-chip{margin-left:6px;font-size:.7rem}.mock-confirm p{margin:0}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
