@font-face{font-family:"Press Start 2P";src:url(/fonts/press-start-2p-latin.woff2) format("woff2");font-display:swap}@font-face{font-family:VT323;src:url(/fonts/vt323-latin.woff2) format("woff2");font-display:swap}:root{--bg: #0b0910;--bg-2: #120e18;--panel: #18131f;--panel-2: #221a2b;--line: #3a2d44;--brown: #765c31;--brown-dark: #4a3a1f;--gold: #ffcb47;--gold-soft: #e5b43f;--gold-dim: #a8842f;--blood: #c41e3a;--blood-bright: #ff4c4c;--text: #ece4d0;--muted: #a99f8d;--good: #59c25a;--warn: #f0a030;--bad: #ff4c4c;--mist: #8fd3ff;--font-pixel: "Press Start 2P", ui-monospace, monospace;--font-body: "VT323", ui-monospace, "SFMono-Regular", Menlo, monospace;--hud-h: 48px;--tab-h: 62px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--radius: 4px;--shadow-px: 3px 3px 0 #000}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--bg);overflow-x:clip}body{margin:0;min-height:100vh;min-height:100dvh;background:radial-gradient(ellipse at 50% -10%,rgba(196,30,58,.16),transparent 60%),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--font-body);font-size:22px;line-height:1.22;overflow-x:clip;-webkit-tap-highlight-color:transparent}#root{min-height:100vh;min-height:100dvh}h1,h2,h3,p,ul,ol,figure{margin:0;padding:0}ul,ol{list-style:none}img{max-width:100%;display:block}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}::selection{background:var(--gold);color:#000}.muted{color:var(--muted)}.pixel-icon{display:inline-block;flex:none;vertical-align:middle}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 18px;font-family:var(--font-pixel);font-size:12px;line-height:1.4;letter-spacing:.02em;color:var(--gold);background:var(--panel-2);border:2px solid var(--brown);border-radius:var(--radius);box-shadow:0 3px #000;transition:transform 80ms ease,box-shadow 80ms ease,background-color .12s ease}.btn:hover:not(:disabled){background:#2c2236}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #000}.btn:disabled{opacity:.5}.btn-primary{color:#1a1206;background:var(--gold);border-color:#fff0b8;box-shadow:0 3px 0 var(--brown-dark),0 3px 0 1px #000}.btn-primary:hover:not(:disabled){background:#ffd66e}.btn-danger{color:#fff;background:var(--blood);border-color:#ff7a8c}.btn-ghost{background:transparent;box-shadow:none}.btn-big{min-height:56px;font-size:14px;width:100%}.btn-small{min-height:40px;padding:6px 12px;font-size:10px}.btn-google{color:#1d1d1d;background:#f5f2ea;border-color:#fff}.btn-google:hover:not(:disabled){background:#fff}.google-g{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#4285f4;color:#fff;font-family:var(--font-pixel);font-size:11px}.icon-button{display:inline-grid;place-items:center;width:44px;height:44px;color:var(--gold);border-radius:var(--radius)}.icon-button:active{transform:translateY(2px)}.bar{position:relative;height:20px;background:#07060a;border:2px solid var(--brown);border-radius:2px;overflow:hidden}.bar-fill{height:100%;background:var(--good);transition:width .35s ease-out,background-color .3s;box-shadow:inset 0 -4px #00000040,inset 0 2px #ffffff40}.tone-warn .bar-fill{background:var(--warn)}.tone-bad .bar-fill{background:var(--bad)}.bar-text{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:var(--font-pixel);font-size:9px;color:#fff;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}.bar-compact{height:18px}.bar-progress{height:12px}.bar-progress .bar-fill{background:var(--gold-soft)}.chip{display:inline-block;padding:3px 7px 2px;font-family:var(--font-pixel);font-size:9px;line-height:1.3;border:1px solid currentColor;border-radius:2px;background:#00000059}.chip-xp{color:var(--gold)}.chip-heal{color:var(--good)}.chip-hurt{color:var(--bad)}.chip-item{color:var(--mist)}.chip-clue{color:#d6a8ff}.chip-status{color:var(--mist)}.status-noHeal{color:#e4e4e4}.status-stunned{color:var(--warn)}kbd{display:inline-block;min-width:1.6em;padding:0 4px;font-family:var(--font-pixel);font-size:10px;line-height:1.8;text-align:center;color:var(--gold);border:1px solid var(--brown);border-bottom-width:3px;border-radius:3px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}}.game{min-height:100dvh;padding-bottom:calc(var(--tab-h) + var(--safe-bottom) + 20px)}.hud{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;height:calc(var(--hud-h) + var(--safe-top));padding:var(--safe-top) calc(12px + var(--safe-right)) 0 calc(12px + var(--safe-left));background:#0b0910eb;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-bottom:2px solid var(--brown-dark)}.hud-stat{display:flex;align-items:center;gap:8px}.hud-health{flex:1;max-width:260px}.hud-health .bar{flex:1}.icon-heart{color:var(--blood-bright)}.icon-star{color:var(--gold)}.hud-xp{margin-left:auto;font-family:var(--font-pixel);color:var(--gold)}.hud-xp-value{font-size:12px}.hud-xp-label{font-size:9px;color:var(--gold-dim)}.game-main{max-width:680px;margin:0 auto;padding:12px calc(12px + var(--safe-right)) 0 calc(12px + var(--safe-left))}.game-story{min-width:0}.scene-art{margin:0 0 16px}.scene-art-frame{position:relative;aspect-ratio:4 / 3;overflow:hidden;background:#000;border:3px solid var(--brown);border-radius:var(--radius);box-shadow:inset 0 0 0 1px #ffcb4759,0 0 0 2px #000,0 8px 24px #0009}.scene-art-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.45) 100%),repeating-linear-gradient(to bottom,rgba(0,0,0,.08) 0 1px,transparent 1px 3px)}.scene-art-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;opacity:0;transition:opacity .45s ease}.scene-art-img.is-loaded{opacity:1}.story{display:grid;gap:14px}.scene-title{font-family:var(--font-pixel);font-size:15px;line-height:1.45;color:var(--gold);text-shadow:var(--shadow-px);animation:fade-up .4s ease both}.ending-note{padding:8px 12px;font-size:19px;font-style:italic;color:var(--gold-soft);border-left:4px solid var(--gold-dim);background:#ffcb4714}.ending-pendant-ending{border-color:#7b68ee;background:#7b68ee24}.ending-holywater-ending{border-color:#40e0d0;background:#40e0d01f}.act-note{font-family:var(--font-pixel);font-style:normal;font-size:10px;letter-spacing:.06em;color:#9fe3d2;border-color:#2f8f7a;background:#2f8f7a24}.scene-description{animation:fade-up .45s ease both}.scene-description p,.narration p,.result-card p{text-wrap:pretty}.narration,.result-card{scroll-margin-top:calc(var(--hud-h) + var(--safe-top) + 12px);animation:result-in .38s ease both}.narration{padding:10px 12px;color:#d9d0bc;font-style:italic;border-left:3px solid var(--brown);background:#ffffff08}.result-card{position:relative;padding:14px 14px 14px 16px;background:linear-gradient(180deg,#241b2e,#1a1422);border:2px solid var(--gold-dim);border-radius:var(--radius);box-shadow:0 4px #000}.result-card:before{content:"";position:absolute;left:-2px;top:-2px;bottom:-2px;width:5px;background:var(--gold)}.result-card.is-blocked{border-color:var(--blood)}.result-card.is-blocked:before{background:var(--blood-bright)}.gain-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.choices{display:grid;gap:10px;margin-top:22px}.choices-title{font-family:var(--font-pixel);font-size:10px;color:var(--gold-dim);letter-spacing:.06em;text-transform:uppercase}.choice{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:10px 14px 10px 10px;text-align:left;font-size:22px;line-height:1.1;color:var(--text);background:var(--panel);border:2px solid var(--line);border-radius:var(--radius);box-shadow:0 3px #000;transition:transform 70ms ease,box-shadow 70ms ease,border-color .12s,background-color .12s}.choice:hover:not(:disabled){border-color:var(--brown);background:var(--panel-2)}.choice:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #000;border-color:var(--gold);background:#2d2238}.choice-key{display:grid;place-items:center;flex:none;width:30px;height:30px;font-family:var(--font-pixel);font-size:10px;color:var(--gold);border:2px solid var(--brown);border-radius:2px;background:#0d0a12}.choice-text{flex:1;display:grid;gap:4px}.choice.is-move .choice-text{color:#fff3cf}.choice-arrow{color:var(--gold-dim)}.choice.is-locked{opacity:.55;box-shadow:none;border-style:dashed}.choice-needs{display:flex;align-items:center;gap:6px;font-family:var(--font-pixel);font-size:9px;color:var(--muted)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tab-h) + var(--safe-bottom));padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left);background:#0e0b13f5;border-top:2px solid var(--brown);box-shadow:0 -6px 18px #00000080}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0;color:var(--muted);transition:color .12s}.tab:hover,.tab.is-active{color:var(--gold)}.tab:active .tab-icon{transform:translateY(2px)}.tab-icon{position:relative;display:grid;place-items:center}.tab-label{font-family:var(--font-pixel);font-size:8px;letter-spacing:.02em}.tab-badge{position:absolute;top:-7px;right:-14px;min-width:18px;padding:2px 3px 1px;font-family:var(--font-pixel);font-size:7px;line-height:1.4;text-align:center;color:#1a1206;background:var(--gold);border:1px solid #000;border-radius:2px}.toasts{position:fixed;z-index:80;top:calc(var(--hud-h) + var(--safe-top) + 10px);left:50%;transform:translate(-50%);display:grid;gap:8px;width:min(92vw,420px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;font-size:20px;text-align:left;color:var(--text);background:#1d1626;border:2px solid var(--brown);border-radius:var(--radius);box-shadow:0 6px #000,0 10px 30px #0009;animation:toast-in .3s cubic-bezier(.2,1.4,.4,1) both}.toast-achievement{color:var(--gold);border-color:var(--gold);background:linear-gradient(180deg,#2b2112,#1c150b)}.toast-achievement strong{display:block;font-family:var(--font-pixel);font-size:9px;font-weight:400;color:var(--gold-dim);margin-bottom:4px}.toast-name{font-size:22px;color:#fff1c4}.empty-state{display:grid;gap:10px;padding:20px 4px;text-align:center}.desktop-only{display:none}@keyframes fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes result-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translateY(-14px) scale(.96)}to{opacity:1;transform:none}}@media(min-width:700px){.scene-title{font-size:18px}}@media(min-width:960px){:root{--tab-h: 58px}body{font-size:23px}.game-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:32px;align-items:start;max-width:1240px;padding:24px 28px 0}.scene-art{position:sticky;top:calc(var(--hud-h) + 24px);margin:0}.scene-art-frame{aspect-ratio:1 / 1;max-height:calc(100dvh - var(--hud-h) - var(--tab-h) - 64px);margin:0 auto}.hud{justify-content:center}.hud>.hud-health{max-width:320px}.hud-xp{margin-left:24px}.tabbar{left:50%;right:auto;width:min(620px,100%);transform:translate(-50%);border:2px solid var(--brown);border-bottom:0;border-radius:6px 6px 0 0}.tab-label{font-size:9px}.desktop-only{display:block}}.sheet-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:flex-end;justify-content:center}.sheet-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;animation:backdrop-in .2s ease both}.sheet{position:relative;display:flex;flex-direction:column;width:100%;max-width:640px;max-height:calc(100dvh - var(--safe-top) - 40px);background:var(--bg-2);border:2px solid var(--brown);border-bottom:0;border-radius:10px 10px 0 0;box-shadow:0 -10px 40px #000000b3;animation:sheet-in .26s cubic-bezier(.2,.9,.3,1) both;transition:transform .18s ease;outline:none}.sheet-wide{max-width:820px}.is-closing .sheet{transform:translateY(100%)!important;transition:transform .18s ease-in!important}.is-closing .sheet-backdrop{opacity:0;transition:opacity .18s}.sheet-header{position:relative;display:flex;align-items:center;justify-content:space-between;min-height:60px;padding:16px 8px 8px 18px;border-bottom:2px solid var(--brown-dark);touch-action:none}.sheet-grip{position:absolute;top:6px;left:50%;width:44px;height:5px;margin-left:-22px;border-radius:3px;background:var(--brown)}.sheet-title{font-family:var(--font-pixel);font-size:13px;color:var(--gold);text-shadow:var(--shadow-px)}.sheet-body{flex:1;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 16px calc(20px + var(--safe-bottom))}@keyframes sheet-in{0%{transform:translateY(100%)}to{transform:none}}@keyframes backdrop-in{0%{opacity:0}}@media(min-width:960px){.sheet-root{align-items:center}.sheet{max-height:min(82dvh,820px);border-bottom:2px solid var(--brown);border-radius:10px}.sheet-grip{display:none}@keyframes sheet-in{0%{opacity:0;transform:translateY(24px) scale(.98)}to{opacity:1;transform:none}}.is-closing .sheet{opacity:0;transform:translateY(16px)!important}}.bag{display:grid;gap:16px}.bag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px}.bag-slot{position:relative;display:grid;justify-items:center;gap:6px;width:100%;padding:8px 6px 10px;background:var(--panel);border:2px solid var(--line);border-radius:var(--radius);box-shadow:0 3px #000}.bag-slot img{width:60px;height:60px;image-rendering:pixelated;border-radius:2px}.bag-slot.is-selected{border-color:var(--gold);background:var(--panel-2)}.bag-slot:active{transform:translateY(2px);box-shadow:none}.bag-slot-name{font-family:var(--font-pixel);font-size:8px;line-height:1.4;text-align:center;color:var(--text)}.bag-qty{position:absolute;top:4px;right:4px;padding:2px 4px 1px;font-family:var(--font-pixel);font-size:8px;color:#1a1206;background:var(--gold);border-radius:2px}.bag-equipped{position:absolute;top:4px;left:4px;padding:2px 4px 1px;font-family:var(--font-pixel);font-size:8px;color:#fff;background:var(--blood);border-radius:2px}.bag-detail{display:grid;gap:10px;padding:14px;background:var(--panel);border:2px solid var(--brown);border-radius:var(--radius)}.bag-detail-head{display:flex;gap:12px;align-items:center}.bag-detail-head img{width:72px;height:72px;image-rendering:pixelated;border:2px solid var(--brown-dark)}.bag-detail h3{font-family:var(--font-pixel);font-size:12px;line-height:1.4;color:var(--gold)}.bag-type{font-family:var(--font-pixel);font-size:9px;color:var(--muted);margin-top:6px}.bag-effect{color:var(--mist)}.bag-stat{color:var(--gold-soft)}.clue-list{display:grid;gap:10px}.clue-list li{display:flex;gap:12px;padding:12px;background:var(--panel);border:2px solid var(--line);border-radius:var(--radius)}.clue-list li.is-newest{border-color:var(--brown)}.clue-num{flex:none;font-family:var(--font-pixel);font-size:10px;color:var(--gold-dim);padding-top:4px}.clues-panel{display:grid;gap:16px}.clues-heading,.journal-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:0;font-family:var(--font-pixel);font-size:11px;color:var(--gold);letter-spacing:.04em}.journal-count{font-size:9px;color:var(--gold-dim)}.journal{display:grid;gap:10px}.journal-pages{display:grid;gap:8px}.journal-page{background:#2a2216;border:2px solid var(--brown);border-radius:var(--radius);color:#f1e3c0;box-shadow:var(--shadow-px)}.journal-page.is-newest{border-color:var(--gold-dim)}.journal-page.is-missing{display:flex;gap:12px;padding:10px 12px;background:transparent;border-style:dashed;border-color:var(--line);color:var(--muted);box-shadow:none}.journal-page summary{display:flex;gap:12px;align-items:baseline;padding:10px 12px;cursor:pointer;list-style:none}.journal-page summary::-webkit-details-marker{display:none}.journal-page summary:after{content:"+";margin-left:auto;font-family:var(--font-pixel);font-size:10px;color:var(--gold-dim)}.journal-page details[open] summary:after{content:"-"}.journal-year{flex:none;font-family:var(--font-pixel);font-size:10px;color:var(--gold-soft)}.journal-page.is-missing .journal-year{color:var(--muted)}.journal-page-title{font-size:20px;line-height:1.1}.journal-text{margin:0;padding:0 12px 6px;font-size:19px;line-height:1.25;font-style:italic}.journal-author{margin:0;padding:0 12px 10px;text-align:right;color:var(--gold-dim);font-size:17px}.journal-complete{margin:0;color:var(--gold-soft);font-size:18px}.map-panel{display:grid;gap:16px}.map-figure{position:relative;border:3px solid var(--brown);border-radius:var(--radius);overflow:hidden}.map-figure img{width:100%;image-rendering:pixelated}.map-figure.is-locked img{filter:grayscale(.7) brightness(.45)}.map-pin{position:absolute;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;background:transparent}.map-pin:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;background:var(--muted);border:2px solid #000;transform:rotate(45deg)}.map-pin.can-travel:after{background:var(--gold)}.map-pin.is-current:after{background:var(--blood-bright);animation:pin-pulse 1.2s ease-in-out infinite}@keyframes pin-pulse{50%{transform:rotate(45deg) scale(1.35)}}.map-lock{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;justify-items:center;gap:12px;padding:20px;text-align:center;color:var(--gold)}.map-lock p{max-width:300px;text-shadow:2px 2px 0 #000}.map-region h3{margin-bottom:8px;font-family:var(--font-pixel);font-size:10px;color:var(--gold-dim)}.map-region ul{display:grid;gap:8px}.map-dest{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:50px;padding:8px 12px;text-align:left;background:var(--panel);border:2px solid var(--line);border-radius:var(--radius)}.map-dest:not(:disabled){border-color:var(--brown);box-shadow:0 3px #000}.map-dest:not(:disabled):active{transform:translateY(2px);box-shadow:none}.map-dest.is-current{border-color:var(--blood)}.map-dest-tag{flex:none;font-family:var(--font-pixel);font-size:8px;color:var(--muted)}.map-dest:not(:disabled) .map-dest-tag{color:var(--gold)}.trophy-count{margin-bottom:12px;font-family:var(--font-pixel);font-size:10px;color:var(--gold-dim)}.trophy-list{display:grid;gap:10px}.trophy{display:flex;gap:12px;padding:12px;background:var(--panel);border:2px solid var(--line);border-radius:var(--radius)}.trophy h3{margin-bottom:4px;font-family:var(--font-pixel);font-size:10px;line-height:1.5}.trophy.is-unlocked{border-color:var(--gold-dim)}.trophy.is-unlocked .trophy-icon,.trophy.is-unlocked h3{color:var(--gold)}.trophy.is-locked{opacity:.8}.trophy.is-locked .trophy-icon{color:var(--muted)}.trophy-flavor{margin-top:4px;font-style:italic;color:var(--muted)}.trophy-progress{display:flex;align-items:center;gap:8px;margin-top:8px;font-family:var(--font-pixel);font-size:8px;color:var(--muted)}.trophy-progress .bar{flex:1}.menu{display:grid;gap:22px}.menu-section{display:grid;gap:10px}.menu-section h3{font-family:var(--font-pixel);font-size:10px;color:var(--gold-dim)}.menu-user{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.menu-user img{width:36px;height:36px;border-radius:50%;border:2px solid var(--brown)}.toggle{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:44px}.toggle input{width:24px;height:24px;accent-color:var(--gold)}.key-help{display:flex;flex-wrap:wrap;gap:8px 16px}.menu-section.desktop-only{display:none}@media(min-width:960px)and (hover:hover){.menu-section.desktop-only{display:grid}}.combat{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;overflow-y:auto;background:radial-gradient(ellipse at 50% 20%,rgba(196,30,58,.28),transparent 65%),#060409;animation:combat-in .32s ease backwards}.combat-inner{display:flex;flex-direction:column;gap:12px;min-height:100%;max-width:560px;margin:0 auto;padding:calc(12px + var(--safe-top)) calc(14px + var(--safe-right)) calc(14px + var(--safe-bottom)) calc(14px + var(--safe-left))}.combat-enemy{display:grid;gap:8px}.combat-enemy-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.combat-enemy h2{font-family:var(--font-pixel);font-size:13px;color:var(--blood-bright);text-shadow:var(--shadow-px)}.status-chips{display:flex;gap:6px}.combat-portrait{position:relative;width:min(100%,36dvh,340px);aspect-ratio:1;margin:4px auto 0;border:3px solid var(--blood);border-radius:var(--radius);overflow:hidden;box-shadow:0 0 0 2px #000,0 0 40px #c41e3a59}.combat-log{display:grid;gap:6px;max-height:168px;overflow-y:auto;padding:10px 12px;font-size:20px;line-height:1.15;background:#0d0a12;border:2px solid var(--line);border-radius:var(--radius)}.combat-log li{color:var(--muted)}.combat-log li.is-latest{color:var(--text);animation:fade-up .25s ease both}.combat-log .log-crit{color:var(--gold)}.combat-log .log-enemy.is-latest,.combat-log .log-defeat{color:#ff8a8a}.combat-log .log-victory,.combat-log .log-loot{color:var(--gold)}.combat-log .log-status,.combat-log .log-blocked{color:var(--mist)}.combat-log .log-heal{color:var(--good)}.combat-player{display:grid;gap:6px}.combat-player-label{display:flex;align-items:center;gap:6px;font-family:var(--font-pixel);font-size:10px;color:var(--gold)}.combat-player-label .pixel-icon{color:var(--blood-bright)}.combat-actions,.combat-items{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}.combat-items{grid-template-columns:1fr}.combat-action{display:flex;align-items:center;gap:10px;min-height:60px;padding:10px 12px;text-align:left;font-family:var(--font-pixel);font-size:10px;line-height:1.5;color:var(--gold);background:var(--panel-2);border:2px solid var(--brown);border-radius:var(--radius);box-shadow:0 4px #000;transition:transform 70ms,box-shadow 70ms,opacity .15s}.combat-action span{display:grid;gap:2px}.combat-action small{font-size:8px;color:var(--muted)}.combat-action img{width:36px;height:36px;image-rendering:pixelated}.combat-action:active:not(:disabled){transform:translateY(4px);box-shadow:none;background:#33263f}.combat-action:disabled{opacity:.4}.combat-back{justify-content:center;color:var(--muted)}.combat-turn{grid-column:1 / -1;min-height:1.2em;text-align:center;font-family:var(--font-pixel);font-size:9px;color:var(--muted)}.combat-phase-player .combat-turn{color:var(--gold)}.combat-outcome{display:grid;gap:12px;margin-top:auto;text-align:center;animation:result-in .3s ease both}.combat-outcome h3{font-family:var(--font-pixel);font-size:20px;text-shadow:var(--shadow-px)}.outcome-victory h3{color:var(--gold)}.outcome-defeat h3{color:var(--blood-bright)}.outcome-fled h3{color:var(--mist)}@keyframes combat-in{0%{opacity:0;transform:scale(1.03)}}@media(min-height:760px){.combat-log{max-height:210px}}@media(min-width:960px){.combat-inner{justify-content:center}.combat-actions,.combat-items,.combat-outcome{margin-top:8px}}.title{position:relative;min-height:100dvh;display:grid;align-content:end;overflow:hidden}.title-art{position:absolute;top:0;right:0;bottom:0;left:0}.title-art img{width:100%;height:100%;object-fit:cover;object-position:50% 0;transform-origin:50% 16.7%;image-rendering:pixelated;animation:slow-zoom 30s ease-in-out infinite alternate}.title-art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(11,9,16,.35) 0%,rgba(11,9,16,.55) 35%,rgba(11,9,16,.96) 62%,var(--bg) 100%),radial-gradient(ellipse at 50% 0%,rgba(196,30,58,.25),transparent 70%)}.title-panel{position:relative;display:grid;gap:18px;width:100%;max-width:520px;margin:0 auto;padding:calc(40px + var(--safe-top)) calc(20px + var(--safe-right)) calc(28px + var(--safe-bottom)) calc(20px + var(--safe-left))}.title-logo{display:grid;gap:12px;font-family:var(--font-pixel);font-weight:400;font-size:16px;line-height:1.2;color:var(--gold);text-shadow:3px 3px 0 #600,0 0 18px rgba(255,60,60,.35)}.title-logo-big{font-size:clamp(26px,8.4vw,40px);line-height:1.15;animation:title-glow 2.4s ease-in-out infinite alternate}.title-tagline{font-size:22px;color:#ddd3bd}.title-buttons{display:grid;gap:12px}.title-auth{display:grid;gap:10px;justify-items:center}.title-auth .btn-google{width:100%}.title-user{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}.title-user img{width:34px;height:34px;border-radius:50%;border:2px solid var(--brown)}.title-note{font-size:18px;text-align:center}.confirm{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;place-items:center;padding:20px;background:#000000bf;animation:backdrop-in .16s ease both}.confirm-box{display:grid;gap:16px;width:min(100%,380px);padding:20px;background:var(--bg-2);border:2px solid var(--blood);border-radius:var(--radius);box-shadow:0 6px #000}.confirm-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}@keyframes slow-zoom{to{transform:scale(1.08)}}@keyframes title-glow{to{text-shadow:3px 3px 0 #600,0 0 26px rgba(255,60,60,.75)}}@media(min-width:960px){.title{align-content:center}.title-art{right:40%}.title-art:after{background:linear-gradient(90deg,rgba(11,9,16,0) 0%,rgba(11,9,16,.2) 55%,var(--bg) 100%),linear-gradient(180deg,transparent 60%,rgba(11,9,16,.7) 100%)}.title{justify-items:end}.title-panel{width:500px;max-width:500px;margin:0 8vw 0 0;padding:40px 0}}.atmo{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.atmo-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}.atmo-light{position:absolute;top:0;right:0;bottom:0;left:0;animation:atmo-in .6s ease both}.atmo-light.is-leaving{animation:atmo-out .6s ease both}.atmo-fx{position:absolute;top:0;right:0;bottom:0;left:0}.atmo-neon{background:radial-gradient(ellipse at 18% 12%,rgba(255,60,200,.32),transparent 55%),radial-gradient(ellipse at 88% 30%,rgba(60,230,255,.24),transparent 55%);mix-blend-mode:screen;animation:atmo-neon 5.3s steps(1,end) infinite}.atmo-lantern{background:radial-gradient(ellipse at 50% 70%,rgba(255,160,60,.3),transparent 70%);mix-blend-mode:screen;animation:atmo-lantern 2.6s ease-in-out infinite}.atmo-fluorescent{background:linear-gradient(180deg,rgba(210,255,230,.16),rgba(190,240,220,.05) 60%,transparent);mix-blend-mode:screen;animation:atmo-fluorescent 7s steps(1,end) infinite}.atmo-red-pulse{background:radial-gradient(ellipse at 50% 80%,rgba(196,30,58,.5),rgba(196,30,58,.12) 45%,transparent 75%);mix-blend-mode:screen;animation:atmo-pulse 3.4s ease-in-out infinite}.atmo-crt{background:repeating-linear-gradient(to bottom,rgba(0,0,0,.22) 0 1px,transparent 1px 3px),linear-gradient(90deg,rgba(255,0,60,.05),transparent 4%,transparent 96%,rgba(0,120,255,.05)),radial-gradient(ellipse at center,transparent 50%,rgba(0,0,0,.6) 100%)}.atmo-crt:after{content:"";position:absolute;left:0;right:0;height:18%;top:-20%;background:linear-gradient(180deg,transparent,rgba(255,255,255,.045),transparent);animation:atmo-roll 6.5s linear infinite}.atmo-dawn{background:conic-gradient(from 200deg at 92% -8%,transparent 0deg,rgba(255,210,140,.16) 8deg,transparent 16deg,rgba(255,210,140,.12) 26deg,transparent 34deg,rgba(255,210,140,.1) 46deg,transparent 56deg),linear-gradient(200deg,rgba(255,190,120,.22),transparent 55%);mix-blend-mode:screen;animation:atmo-breathe 8s ease-in-out infinite}.atmo-moon-glow{background:radial-gradient(ellipse at 50% -10%,rgba(143,211,255,.26),transparent 60%);mix-blend-mode:screen;animation:atmo-breathe 9s ease-in-out infinite}.atmo-static .atmo-fx,.atmo-static .atmo-fx:after,.atmo-static .atmo-light{animation:none!important}.atmo-static .atmo-crt:after{display:none}@keyframes atmo-in{0%{opacity:0}}@keyframes atmo-out{to{opacity:0}}@keyframes atmo-neon{0%{opacity:1}7%{opacity:.35}9%{opacity:1}41%{opacity:.8}44%{opacity:.2}46%{opacity:.9}48%{opacity:.3}51%{opacity:1}78%{opacity:.85}80%{opacity:1}}@keyframes atmo-lantern{0%,to{opacity:.8}20%{opacity:1}35%{opacity:.7}55%{opacity:.95}70%{opacity:.75}85%{opacity:1}}@keyframes atmo-fluorescent{0%{opacity:.9}62%{opacity:1}63%{opacity:.2}64%{opacity:1}65%{opacity:.4}67%{opacity:1}90%{opacity:.85}}@keyframes atmo-pulse{0%,to{opacity:.45}50%{opacity:1}}@keyframes atmo-breathe{0%,to{opacity:.7}50%{opacity:1}}@keyframes atmo-roll{to{top:110%}}.title-atmo{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;pointer-events:none;image-rendering:pixelated}.sprite{position:relative;width:100%;height:100%;overflow:hidden;background:#07050b}.sprite-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;pointer-events:none;-webkit-user-select:none;user-select:none}.sprite-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;image-rendering:pixelated}.sprite-thrall .sprite-bg{filter:brightness(.42) saturate(.35) hue-rotate(-15deg) blur(1.5px);transform:scale(1.06)}.sprite-thrall:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,rgba(150,120,220,.14),transparent 60%),linear-gradient(180deg,transparent 60%,rgba(10,8,18,.55))}.sprite-matriarch .sprite-bg{filter:brightness(.38) saturate(.6) hue-rotate(110deg) blur(1.5px);transform:scale(1.06)}.sprite-matriarch:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 38%,rgba(90,230,200,.16),transparent 58%),linear-gradient(180deg,rgba(4,16,20,.2),transparent 40%,rgba(4,14,18,.45))}@media(prefers-reduced-motion:reduce){.atmo-fx,.atmo-fx:after,.atmo-light{animation:none!important}.atmo-crt:after{display:none}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.story.is-typing{cursor:pointer}.tw-rest{color:transparent}.tw-caret{position:relative;display:inline-block;width:0}.tw-caret:after{content:"";position:absolute;left:1px;bottom:-.1em;width:.45em;height:.9em;background:var(--gold);opacity:.85;animation:caret-blink .7s steps(1) infinite}.tw-skip{justify-self:center;padding:8px 14px;font-family:var(--font-pixel);font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dim);opacity:0;animation:fade-in .4s ease 1.2s both}.narration.is-pending,.result-card.is-pending{opacity:0}.game-true-ending .scene-description.is-typed p,.game-pendant-ending .scene-description.is-typed p{line-height:1.28}.choices{animation:fade-in .22s ease both}.choices .choice{animation:choice-in .3s cubic-bezier(.2,1.2,.4,1) both;animation-delay:calc(var(--i, 0) * 55ms)}.choice-credits{border-color:var(--gold-dim);color:var(--gold)}.chip-pop{animation:chip-pop .42s cubic-bezier(.2,1.7,.4,1) both;animation-delay:calc(var(--i, 0) * 90ms + 60ms)}.chip-img{display:inline-block;width:14px;height:14px;margin:-3px 5px -3px -2px;vertical-align:middle;image-rendering:pixelated}.chip-clue.chip-pop,.chip-item.chip-pop{box-shadow:0 0 0 0 currentColor;animation:chip-pop .42s cubic-bezier(.2,1.7,.4,1) both,chip-glow 1.4s ease-out .3s both;animation-delay:calc(var(--i, 0) * 90ms + 60ms),calc(var(--i, 0) * 90ms + .36s)}.scene-dip{position:fixed;z-index:15;inset:calc(var(--hud-h) + var(--safe-top)) 0 0 0;background:#000;pointer-events:none;animation:dip-out .56s ease-out both}.scene-art-img{transition:opacity .65s ease;transform-origin:50% 50%}.scene-art-frame.is-moving .scene-art-img{animation:kb-0 42s ease-in-out infinite alternate;will-change:transform}.scene-art-frame.is-moving .scene-art-img.kb-1{animation-name:kb-1}.scene-art-frame.is-moving .scene-art-img.kb-2{animation-name:kb-2}.scene-art-frame.is-moving .scene-art-img.kb-3{animation-name:kb-3}.hurt-flash{position:fixed;z-index:76;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(220,20,40,.55) 100%);box-shadow:inset 0 0 0 4px #ff3c3cb3;animation:hurt-flash .48s ease-out both}.bar-fill{position:relative;transition:width .26s ease-out,background-color .3s}.bar-ghost{position:absolute;left:0;top:0;bottom:0;background:#f4e3c0;opacity:.75;transition:width .65s cubic-bezier(.5,0,.3,1) .42s}.bar-enemy .bar-fill{background:var(--blood-bright)}.combat-portrait{animation:none;background:#000;transition:box-shadow .3s,border-color .3s}.portrait-idle,.portrait-body{position:absolute;top:0;right:0;bottom:0;left:0}.portrait-idle{top:-4%;right:-4%;bottom:-4%;left:-4%;animation:portrait-breathe 3.2s ease-in-out infinite}.portrait-body>img,.portrait-body>.sprite{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.portrait-flash{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;mix-blend-mode:screen;opacity:0;pointer-events:none}.combat-portrait.is-mist .portrait-body>*{opacity:.45;filter:blur(1.5px) saturate(.4) brightness(1.2);transition:opacity .3s,filter .3s}.combat-portrait.is-charging{border-color:var(--blood-bright);animation:charge-glow .9s ease-in-out infinite alternate}.combat-portrait.is-charging .portrait-body>*:first-child{filter:brightness(.75) contrast(1.2) saturate(1.3)}.combat-portrait.is-enraged{border-color:#ff2846;box-shadow:0 0 0 2px #000,0 0 46px #ff1e3c8c}.combat-portrait.is-enraged .portrait-idle{animation-duration:1.6s}.combat-portrait.is-enraged .portrait-body>img{filter:saturate(1.35) contrast(1.12) hue-rotate(-8deg)}.combat-portrait.is-enraged:before{content:"";position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 100%,rgba(255,30,50,.4),transparent 65%);mix-blend-mode:screen;animation:atmo-pulse 1.8s ease-in-out infinite}.combat-portrait.is-dead{border-color:var(--gold-dim);box-shadow:0 0 0 2px #000,0 0 30px #ffcb4733}.combat-portrait.is-dead .portrait-idle{animation:dead-fade .9s ease-in both}.combat-portrait.is-spared .portrait-idle{animation:slump 1s ease-in both}.combat-portrait.is-scattered .sprite-canvas{animation:scatter 1.1s ease-in both}.dust-burst{position:absolute;top:-4%;right:-4%;bottom:-4%;left:-4%;width:108%;height:108%;image-rendering:pixelated;pointer-events:none}.floaters{position:absolute;z-index:3;top:0;right:0;bottom:0;left:0;pointer-events:none}.floater{position:absolute;left:var(--x);bottom:calc(38% + var(--y, 0px));transform:translate(-50%);font-family:var(--font-pixel);font-size:18px;line-height:1;white-space:nowrap;color:#fff;text-shadow:2px 2px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000;animation:float-up 1.1s cubic-bezier(.2,.9,.3,1) both;animation-delay:var(--delay, 0ms)}.floater-crit{font-size:30px;color:var(--gold);animation-name:float-crit}.floater-heal{color:#7dff7a}.floater-miss,.floater-immune{font-size:13px;color:#c8d6e8}.floater-holy{font-size:24px;color:#a6f0ff}.floater-burn{font-size:14px;color:#ff9a3c}.floater-bleed{font-size:14px;color:#ff5a6a}.floater-hurt{color:#ff5a5a}.floater-hurt-big{font-size:26px;color:#ff3a3a;animation-name:float-crit}.floater-guard,.floater-focus{font-size:11px;color:var(--gold)}.floater-warn{font-size:40px;color:#ff2846;animation-name:float-crit}.floater[class*=floater-status-]{font-size:11px;color:var(--mist)}.floater-status-stunned{color:var(--warn)!important}.combat-player{position:relative}.combat-player .floaters{top:-54px;right:0;bottom:0;left:0}.combat-player .floater{bottom:30px}.combat-player-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;min-height:22px}.enemy-title{display:block;margin-top:6px;font-size:9px;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;animation:chip-pop .5s cubic-bezier(.2,1.7,.4,1) both}.status-icons{display:flex;flex-wrap:wrap;gap:4px;min-height:22px}.status-icon{--tone: var(--gold);display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 5px;font-family:var(--font-pixel);font-size:7px;line-height:1;color:var(--tone);background:#0000008c;border:1px solid var(--tone);border-radius:2px;animation:chip-pop .32s cubic-bezier(.2,1.7,.4,1) both}.status-icon-turns{min-width:12px;padding:2px 2px 1px;text-align:center;color:#0b0910;background:var(--tone)}.status-icon.tone-mist{--tone: var(--mist)}.status-icon.tone-blood{--tone: var(--blood-bright)}.status-icon.tone-fire{--tone: #ff9a3c}.status-icon.tone-blood .pixel-icon,.status-icon.tone-fire .pixel-icon{animation:status-throb .9s ease-in-out infinite}.combat-actions{position:relative}.combat-flee{grid-column:1 / -1;justify-content:center;min-height:46px;color:var(--muted)}.combat-flee span{display:flex;align-items:baseline;gap:8px}.action-defend.is-urgent{border-color:var(--gold);animation:urgent .8s ease-in-out infinite alternate}.combat-warning{position:absolute;z-index:4;left:6px;right:6px;bottom:6px;display:flex;align-items:center;justify-content:center;gap:8px;padding:7px 8px;font-family:var(--font-pixel);font-size:8px;line-height:1.5;text-align:center;color:#ffe0e0;background:#46000ce0;border:2px solid var(--blood-bright);border-radius:var(--radius);animation:warning-in .3s ease both,urgent-red .9s ease-in-out .3s infinite alternate}@media(max-height:780px){.combat-inner{gap:8px;padding-top:calc(8px + var(--safe-top));padding-bottom:calc(8px + var(--safe-bottom))}.combat-enemy{gap:6px}.combat-portrait{width:min(100%,30dvh,340px);margin-top:0}.combat-log{max-height:104px;padding:6px 10px;font-size:19px}.combat-action{min-height:50px;padding:6px 10px}.combat-flee{min-height:38px}.combat-turn{display:none}.combat-actions,.combat-items{gap:8px}}@media(max-width:520px){.status-icon-name{display:none}}.combat-log .log-story{color:#e8d9b0;font-style:italic}.combat-log .log-taunt{color:#ff9f8a;font-style:italic}.combat-log .log-phase{font-family:var(--font-pixel);font-size:10px;color:var(--blood-bright)}.combat-log .log-warn{color:#ff8a8a}.combat-log .log-warn.is-latest{color:#ffb4b4;animation:fade-up .25s ease both,urgent-text .7s ease-in-out .25s infinite alternate}.combat-log .log-dot{color:#ffb070}.combat-log .log-defend{color:var(--gold-soft)}.combat-log .log-miss{color:var(--mist)}.combat.is-boss{background:radial-gradient(ellipse at 50% 15%,rgba(196,30,58,.42),transparent 62%),radial-gradient(ellipse at 50% 120%,rgba(120,10,30,.5),transparent 60%),#060409}.phase-banner{position:fixed;z-index:3;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:grid;align-content:center;justify-items:center;gap:22px;padding:calc(24px + var(--safe-top)) calc(22px + var(--safe-right)) calc(24px + var(--safe-bottom)) calc(22px + var(--safe-left));text-align:center;background:radial-gradient(ellipse at center,#280008d1,#000000f0 75%);animation:banner-in .45s ease both}.phase-banner-title{display:grid;gap:10px;font-family:var(--font-pixel);font-size:12px;color:var(--gold-dim)}.phase-banner-title strong{font-weight:400;font-size:clamp(22px,7vw,34px);color:var(--blood-bright);text-shadow:3px 3px 0 #300,0 0 24px rgba(255,40,70,.7);animation:banner-title .7s cubic-bezier(.2,1.4,.4,1) both}.phase-banner-lines{display:grid;gap:12px;max-width:520px;font-size:22px;line-height:1.25;color:#eadfc8}.phase-line{animation:fade-up .6s ease both}.phase-line.is-taunt{font-style:italic;color:#ffb09a}.phase-banner-hint{font-family:var(--font-pixel);font-size:8px;color:var(--muted);animation:fade-in .4s ease 1.5s both}.combat-outcome{position:relative;z-index:2}.combat-outcome .gain-chips{justify-content:center;margin:0}.outcome-victory h3{animation:victory-title .7s cubic-bezier(.2,1.6,.4,1) both}.defeat-dark{position:fixed;z-index:1;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,#140004b8,#000000eb 80%);animation:fade-in 1.4s ease both}.toast-achievement{position:relative;overflow:hidden;animation:toast-slide .52s cubic-bezier(.2,1.3,.4,1) both}.toast-achievement:after{content:"";position:absolute;top:0;bottom:0;left:-40%;width:30%;background:linear-gradient(100deg,transparent,rgba(255,240,190,.45),transparent);transform:skew(-18deg);animation:shine 1.1s ease .38s both}.toast-achievement .pixel-icon{animation:trophy-bounce .7s cubic-bezier(.2,1.8,.4,1) .2s both}.credits{position:fixed;z-index:95;top:0;right:0;bottom:0;left:0;overflow:hidden;background:radial-gradient(ellipse at 50% 110%,rgba(255,170,90,.16),transparent 60%),#050307;animation:fade-in .9s ease both;cursor:pointer}.credits-roll{position:absolute;left:50%;top:0;display:grid;justify-items:center;gap:10px;width:min(92vw,560px);text-align:center;transform:translate(-50%,100dvh)}.credits.is-rolling .credits-roll{animation:credits-roll 34s linear .6s both}.credits.is-still{overflow-y:auto}.credits.is-still .credits-roll{position:static;margin:0 auto;padding:60px 0 100px;transform:none}.credits-logo{font-family:var(--font-pixel);font-size:clamp(16px,5vw,24px);line-height:1.4;color:var(--gold);text-shadow:3px 3px 0 #600,0 0 18px rgba(255,60,60,.35)}.credits-by{font-family:var(--font-pixel);font-size:12px;color:#fff1c4}.credits-role{margin-top:6px;font-family:var(--font-pixel);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-dim)}.credits-name{font-size:24px;color:var(--text)}.credits-small{font-size:20px;font-style:italic;color:var(--muted)}.credits-gap{height:36px}.credits-close{position:absolute;top:calc(10px + var(--safe-top));right:calc(10px + var(--safe-right))}.setting-row{display:grid;grid-template-columns:1fr minmax(110px,44%);align-items:center;gap:12px}.slider{width:100%;height:28px;accent-color:var(--gold)}.slider:disabled{opacity:.4}.segmented{display:grid;grid-template-columns:repeat(5,1fr);border:2px solid var(--brown);border-radius:var(--radius);overflow:hidden}.segment{min-height:42px;padding:4px 2px;font-family:var(--font-pixel);font-size:8px;color:var(--muted);background:var(--panel)}.segment+.segment{border-left:2px solid var(--line)}.segment.is-active{color:#1a1206;background:var(--gold)}.setting-note{font-size:18px}@keyframes caret-blink{50%{opacity:0}}@keyframes fade-in{0%{opacity:0}}@keyframes choice-in{0%{opacity:0;transform:translateY(10px)}}@keyframes chip-pop{0%{opacity:0;transform:scale(.4)}70%{opacity:1}}@keyframes chip-glow{0%{box-shadow:0 0 0 0 currentColor}40%{box-shadow:0 0 10px 1px currentColor}to{box-shadow:0 0 0 0 transparent}}@keyframes dip-out{0%{opacity:.9}to{opacity:0}}@keyframes kb-0{0%{transform:scale(1.02)}to{transform:scale(1.1) translate(-1.5%,-1%)}}@keyframes kb-1{0%{transform:scale(1.09) translate(2.5%)}to{transform:scale(1.09) translate(-2.5%,-.5%)}}@keyframes kb-2{0%{transform:scale(1.11) translate(1.5%,1.5%)}to{transform:scale(1.03)}}@keyframes kb-3{0%{transform:scale(1.08) translateY(2%)}to{transform:scale(1.08) translateY(-2%)}}@keyframes hurt-flash{0%{opacity:1}to{opacity:0}}@keyframes portrait-breathe{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-1.2%) scale(1.012)}}@keyframes charge-glow{0%{box-shadow:0 0 0 2px #000,0 0 20px #ff284659}to{box-shadow:0 0 0 2px #000,0 0 60px #ff2846d9}}@keyframes dead-fade{to{opacity:0}}@keyframes slump{to{transform:translateY(14%) rotate(-6deg);filter:brightness(.35);opacity:.6}}@keyframes scatter{to{transform:scale(1.5);opacity:0}}@keyframes float-up{0%{opacity:0;transform:translate(-50%,10px) scale(.6)}15%{opacity:1;transform:translate(-50%,-6px) scale(1.15)}30%{transform:translate(-50%,-14px) scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-54px) scale(.95)}}@keyframes float-crit{0%{opacity:0;transform:translate(-50%) scale(2.2) rotate(-6deg)}18%{opacity:1;transform:translate(-50%,-8px) scale(.95) rotate(2deg)}30%{transform:translate(-50%,-12px) scale(1.1) rotate(0)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-48px) scale(1)}}@keyframes status-throb{50%{transform:scale(1.18)}}@keyframes urgent{0%{box-shadow:0 4px #000,0 0 #ffcb4700}to{box-shadow:0 4px #000,0 0 18px #ffcb47a6}}@keyframes urgent-red{to{box-shadow:0 0 22px #ff28468c}}@keyframes urgent-text{to{color:#ff6b6b}}@keyframes warning-in{0%{opacity:0;transform:scale(.9)}}@keyframes banner-in{0%{opacity:0}}@keyframes banner-title{0%{opacity:0;transform:scale(2.4);letter-spacing:.3em}}@keyframes victory-title{0%{opacity:0;transform:scale(.3) rotate(-4deg)}}@keyframes toast-slide{0%{opacity:0;transform:translateY(-120%) scale(.92)}}@keyframes shine{to{left:120%}}@keyframes trophy-bounce{0%{transform:scale(0) rotate(-30deg)}}@keyframes credits-roll{0%{transform:translate(-50%,100dvh)}to{transform:translate(-50%,-100%)}}@media(prefers-reduced-motion:reduce){.scene-art-frame.is-moving .scene-art-img,.portrait-idle,.tw-caret:after{animation:none!important}}@media(min-width:960px)and (min-aspect-ratio:5/4){.combat-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:1fr auto auto auto 1fr;column-gap:40px;row-gap:14px;max-width:1120px;min-height:100%}.combat-enemy{grid-column:1;grid-row:1 / -1;align-self:center}.combat-portrait{width:min(100%,62dvh,480px)}.combat-log{grid-column:2;grid-row:2;max-height:min(320px,40dvh)}.combat-player{grid-column:2;grid-row:3}.combat-actions,.combat-items,.combat-outcome{grid-column:2;grid-row:4;margin-top:4px}.combat-turn{display:block}}
