/* Adventure stage + BTF life surfaces. Gothic Pokémon Hybrid, Press Start 2P, native 270x480 proportions. */
#screen{container-type:inline-size}
.adv-scene{position:absolute;inset:0;z-index:60;background:#08070f;overflow:hidden;cursor:pointer;user-select:none}
.adv-env{z-index:0}
.adv-actors{position:absolute;inset:0;z-index:2;pointer-events:none}
/* Surface-scoped frozen foreground layer (exact origin, full environment frame): above actors, below the UI. */
.adv-foreground{position:absolute;left:0;top:0;width:100%;height:100%;z-index:3;pointer-events:none;image-rendering:pixelated}
.adv-actor{position:absolute;image-rendering:pixelated;transition:left .5s steps(6,end),opacity .3s}
.adv-actor.adv-entrance{animation:advEntrance .6s steps(4,end)}
.adv-actor.adv-speaking{filter:brightness(1.08)}
@keyframes advEntrance{from{opacity:0;transform:translateY(-6%)}to{opacity:1;transform:none}}
.adv-location{position:absolute;left:2.5%;top:1.2%;z-index:3;font-family:var(--font-system);font-size:clamp(5px,2.2cqw,9px);color:#f6efd9;background:rgba(16,16,27,.72);padding:.45em .7em;border:1px solid rgba(246,239,217,.35);max-width:70%}
.adv-box{position:absolute;left:3%;right:3%;bottom:2.2%;min-height:17%;z-index:5;background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:1.2em 1em .8em;font-family:var(--font-dialogue);font-size:clamp(7px,3.05cqw,13px);line-height:1.55}
.adv-box .adv-speaker{position:absolute;left:4%;top:-1.2em;background:#10101b;color:#f6efd9;padding:.35em .7em;font-family:var(--font-name);font-size:.85em;letter-spacing:.02em}
.adv-box.adv-narration{background:#1b1730;color:#e8e0cc;border-color:#05040b}
.adv-box p{margin:0}
.adv-more{position:absolute;right:3%;bottom:4%;font-style:normal;font-size:.8em;animation:advBlink 1s steps(2,end) infinite}
@keyframes advBlink{50%{opacity:0}}
.adv-bubble{position:absolute;z-index:6;max-width:62%;background:#f6efd9;color:#10101b;border:2px solid #10101b;box-shadow:2px 2px #7d194b;padding:.9em .8em .6em;font-family:var(--font-dialogue);font-size:clamp(7px,2.9cqw,12px);line-height:1.5}
.adv-bubble .adv-speaker{display:block;font-size:.75em;margin-bottom:.4em;color:#7d194b}
.adv-vp{display:inline-block;background:#c18b3c;color:#10101b;font-size:.7em;padding:.1em .3em;vertical-align:middle}
.adv-choices{position:absolute;left:3%;right:3%;bottom:2.2%;z-index:7;display:flex;flex-direction:column;gap:clamp(4px,1.6cqw,8px);max-height:70%;overflow:auto}
.adv-choice{text-align:left;background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:.85em .9em;font-family:var(--font-command);font-size:clamp(7px,2.8cqw,12px);line-height:1.4;cursor:pointer}
.adv-choice small{display:block;margin-top:.35em;font-size:.72em;color:#5a4a50}
.adv-choice:active{transform:translate(1px,1px);box-shadow:1px 1px #7d194b}
.adv-choice.adv-octopus{background:#2a1238;color:#f6efd9;border-color:#7a1f3a;box-shadow:3px 3px #b44cff,inset 0 0 0 2px #5a1030;position:relative}
.adv-choice.adv-octopus em{display:block;font-style:normal;font-size:.7em;color:#ff9ad0;margin-bottom:.35em;letter-spacing:.04em}
.adv-choice.adv-octopus::after{content:"◦ ○ ◦";position:absolute;right:.8em;top:.6em;font-size:.7em;color:#8ac8ff;opacity:.8}
.adv-choice.adv-locked{opacity:.45;cursor:not-allowed}
.adv-title{position:absolute;inset:0;z-index:8;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(8,7,15,.82);color:#f6efd9;font-family:var(--font-system);text-align:center;gap:1.4em}
.adv-title span{font-size:clamp(9px,4.2cqw,18px);line-height:1.6;padding:0 8%;text-shadow:2px 2px #10101b}
.adv-title small{font-size:clamp(5px,2cqw,8px);opacity:.7;animation:advBlink 1.2s steps(2,end) infinite}
body.dev-enabled .adv-placeholder-env .adv-location::after{content:" · PLACEHOLDER ART";color:#c18b3c}
/* Bedroom life controls */
.bedroom-life{position:absolute;z-index:6;left:3%;right:3%;bottom:2%;display:grid;grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr);gap:8px;pointer-events:none}
.bedroom-life .bedroom-sleep{grid-column:3}
.bedroom-life-layer .mail-done{min-height:44px}
.bedroom-life button{pointer-events:auto;min-height:44px;min-width:0;font-family:var(--font-command);font-size:clamp(6px,2.5cqw,11px);padding:.8em .4em;background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;cursor:pointer}
.bedroom-daybar{position:absolute;z-index:6;left:3%;top:1.2%;font-family:var(--font-system);font-size:clamp(5px,2.2cqw,9px);color:#f6efd9;background:rgba(16,16,27,.75);padding:.45em .7em;border:1px solid rgba(246,239,217,.35)}
.bedroom-return{position:absolute;z-index:7;left:6%;right:6%;top:30%;background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:1.1em 1em .9em;font-family:var(--font-dialogue);font-size:clamp(7px,2.9cqw,12px);line-height:1.55;cursor:pointer}
.bedroom-return b{position:absolute;left:4%;top:-1.2em;background:#10101b;color:#f6efd9;padding:.35em .7em;font-size:.85em}
.wake-overlay{position:absolute;inset:0;z-index:70;background:#05040b;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#f6efd9;font-family:var(--font-system);opacity:0;transition:opacity .6s steps(6,end);pointer-events:none}
.wake-overlay.on{opacity:1;pointer-events:auto}
.wake-overlay .wake-day{font-size:clamp(9px,4cqw,17px);text-align:center;line-height:1.8}
.morning-mail{position:absolute;z-index:65;left:4%;right:4%;top:7%;bottom:14%;display:flex;flex-direction:column;gap:clamp(4px,1.4cqw,7px);overflow:auto;padding:2px 4px 6px 2px}
.morning-mail h2{margin:0 0 2%;font-family:var(--font-system);font-size:clamp(7px,3cqw,13px);color:#f6efd9;text-shadow:2px 2px #10101b}
.mail-card{text-align:left;background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:.75em .8em;font-family:var(--font-dialogue);font-size:clamp(6px,2.6cqw,11px);line-height:1.45;cursor:pointer}
.mail-card b{display:block;font-family:var(--font-name);font-size:.85em;margin-bottom:.35em;color:#7d194b}
.mail-card.mail-weekday{background:#1b1730;color:#f6efd9;text-align:center}
.mail-card.mail-weekday b{color:#f6efd9;font-size:1em;margin:0}
.mail-done{margin-top:auto;font-family:var(--font-command);font-size:clamp(7px,2.8cqw,12px);padding:.9em;background:#10101b;color:#f6efd9;border:3px solid #f6efd9;cursor:pointer}
.bed-confirm{position:absolute;z-index:68;left:10%;right:10%;top:36%;background:#f6efd9;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:1.2em;text-align:center;font-family:var(--font-system);font-size:clamp(7px,3cqw,13px);color:#10101b;display:flex;flex-direction:column;gap:.9em}
.bed-confirm div{display:flex;gap:6%}
.bed-confirm button{flex:1;font:inherit;padding:.8em;background:#10101b;color:#f6efd9;border:2px solid #10101b;cursor:pointer}
.bedroom-company{position:absolute;z-index:2;image-rendering:pixelated;pointer-events:none}
.bedroom-prop{position:absolute;z-index:2;image-rendering:pixelated;pointer-events:none}
.phone-status{display:flex;justify-content:space-between;font:6px/1.4 var(--font-system);color:#7d194b;margin:-2px 0 6px;padding-bottom:4px;border-bottom:1px dashed #c18b3c}
.phone-badge{display:inline-block;min-width:1.4em;margin-left:.4em;padding:.15em .3em;background:#d7193f;color:#fff;font-style:normal;text-align:center;border-radius:1px}
.phone-button.app-dormant{opacity:.62}
.phone-button.app-extra{background:#2a1a3a}
.phone-wwo{margin:6px 0;padding:6px;border:2px dashed #7d194b;background:#fff8e8;display:flex;flex-direction:column;gap:4px}
.phone-wwo .phone-button.wwo-line{min-height:0;background:#f6efd9;color:#10101b;text-transform:none;font-size:6px;line-height:1.5}
.phone-button.octo-option{background:#2a1238;border-color:#7a1f3a;box-shadow:2px 2px #b44cff}
.phone-nav{display:flex;gap:6px;margin-top:8px}
.phone-nav .phone-button{min-height:34px}
.phone-card{border:2px solid #10101b;background:#fff8e8;padding:6px;margin:6px 0;font:6px/1.6 var(--font-system);color:#10101b}
.phone-card b{display:block;color:#7d194b;margin-bottom:2px}
.phone-row{display:flex;gap:6px;align-items:center;justify-content:space-between}
.phone-small{font:5px/1.5 var(--font-system);color:#5a4a50}
.phone-thread p.msg{margin:4px 0;padding:5px 6px;background:#17142c;color:#f6efd9;max-width:88%;font:6px/1.6 var(--font-system);text-transform:none}
.phone-thread p.msg.me{margin-left:auto;background:#7d194b}
.phone-thread p.who{margin:6px 0 0;font:5px/1.4 var(--font-system);color:#7d194b}
.check-phone.has-unread::after{content:attr(data-unread);position:absolute;right:-6px;top:-6px;background:#d7193f;color:#fff;font-size:6px;padding:1px 3px}
.radio-mini{display:flex;align-items:center;gap:6px;margin:0 0 6px;padding:4px;background:#17142c;color:#f6efd9;font:5px/1.4 var(--font-system);cursor:pointer;border:2px solid #10101b}
.radio-mini i{display:inline-block;width:14px;height:14px;background:#d7193f;border:2px solid #f6efd9;border-radius:50%}
.fame-ending{position:absolute;inset:0;z-index:120;background:#000;color:#f6efd9;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--font-system)}
.fame-ending.clear{background:transparent;align-items:flex-start;padding-top:22%}
.fame-buzz{font-size:clamp(7px,3cqw,12px);opacity:.8;animation:advBlink .4s steps(2,end) infinite}
.fame-line{background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:1em 1.2em;font-size:clamp(8px,3.4cqw,14px)}
.fame-title{font-size:clamp(14px,7cqw,30px);color:#d7193f;letter-spacing:.06em;text-shadow:3px 3px #10101b}
.fame-credits{position:absolute;inset:0;overflow:hidden}
.fame-roll{position:absolute;left:8%;right:8%;top:100%;animation:fameRoll 60s linear forwards;font-size:clamp(6px,2.6cqw,11px);line-height:2}
@keyframes fameRoll{to{transform:translateY(-260%)}}
.fame-continue{font-family:var(--font-command);font-size:clamp(7px,3cqw,12px);padding:1em;background:#f6efd9;color:#10101b;border:3px solid #10101b}
.adv-scene [hidden],.bedroom-life-layer [hidden]{display:none!important}
/* Combat 2.0 */
.c2-scene{position:absolute;inset:0;z-index:75;background:#08070f;overflow:hidden;user-select:none}
.c2-actor{position:absolute;image-rendering:pixelated;z-index:2}
.c2-actor.c2-flash{animation:c2Flash .35s steps(2,end)}
@keyframes c2Flash{0%,100%{filter:none;transform:translateX(0)}50%{filter:brightness(2.2) saturate(.2);transform:translateX(3%)}}
.c2-enemy.c2-flash{animation:c2FlashE .35s steps(2,end)}
@keyframes c2FlashE{0%,100%{filter:none}50%{filter:brightness(2.2) saturate(.2)}}
.c2-scene.c2-shake{animation:c2Shake .3s steps(3,end)}
@keyframes c2Shake{33%{transform:translate(-1.2%,.6%)}66%{transform:translate(1.2%,-.6%)}}
.c2-hud{position:absolute;left:2.5%;right:2.5%;top:1.5%;display:flex;gap:3%;z-index:4}
.c2-hp{flex:1;background:#f6efd9;color:#10101b;border:2px solid #10101b;box-shadow:2px 2px #7d194b;padding:.5em .6em;font-family:var(--font-name);font-size:clamp(5px,2.1cqw,9px)}
.c2-hp b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.4em}
.c2-hp span{display:flex;align-items:center;gap:.4em;font-family:var(--font-number)}
.c2-hp i{flex:1;height:.7em;background:#3a3440;border:1px solid #10101b;display:block}
.c2-hp em{display:block;height:100%;background:#20c66b;transition:width .4s steps(8,end)}
.c2-hp-enemy em{background:#d7193f}
.c2-telegraph{position:absolute;left:4%;right:4%;top:12.5%;z-index:4;background:rgba(125,25,75,.92);color:#f6efd9;border:2px solid #10101b;padding:.55em .7em;font-family:var(--font-system);font-size:clamp(5px,2.2cqw,9px);line-height:1.5;text-align:center}
.c2-panel{position:absolute;left:2.5%;right:2.5%;bottom:1.5%;z-index:5;display:flex;flex-direction:column;gap:clamp(3px,1.2cqw,6px)}
.c2-log{min-height:3.4em;background:#f6efd9;color:#10101b;border:3px solid #10101b;box-shadow:3px 3px #7d194b;padding:.8em .8em;font-family:var(--font-dialogue);font-size:clamp(6px,2.6cqw,11px);line-height:1.5}
.c2-menu{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3px,1.2cqw,6px);max-height:34vh;overflow:auto}
.c2-btn{font-family:var(--font-command);font-size:clamp(6px,2.4cqw,10px);text-align:left;padding:.8em .7em;background:#17142c;color:#f6efd9;border:2px solid #10101b;box-shadow:2px 2px #7d194b;cursor:pointer;line-height:1.35}
.c2-btn small{display:block;font-size:.72em;color:#c18b3c;margin-top:.3em}
.c2-btn.c2-off{opacity:.45}.c2-btn.c2-gun{background:#2a1a10}.c2-btn.c2-back{background:#f6efd9;color:#10101b}
.c2-empty{grid-column:1/-1;margin:0;padding:.8em;background:#f6efd9;font:clamp(6px,2.4cqw,10px) var(--font-system)}
.c2-float{position:absolute;inset:0;z-index:6;pointer-events:none}
.c2-num{position:absolute;font-family:var(--font-number);font-size:clamp(8px,4cqw,16px);color:#f6efd9;text-shadow:2px 2px #10101b;animation:c2Num .9s steps(6,end) forwards}
.c2-num-heal{color:#20c66b}.c2-num-rich{color:#ff8a8a}
@keyframes c2Num{to{transform:translateY(-120%);opacity:0}}
.c2-orb{position:absolute;left:22%;width:6%;aspect-ratio:1;background:url('../../assets/blood_orb.png') center/contain no-repeat;image-rendering:pixelated;animation:c2Orb .45s steps(6,end) forwards}
@keyframes c2Orb{to{left:70%}}
.c2-scene.c2-weird::after,.c2-scene.c2-revenge::after,.c2-scene.c2-gunfx::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none}
.c2-scene.c2-weird::after{background:rgba(122,31,58,.35)}.c2-scene.c2-revenge::after{background:rgba(0,0,0,.55)}.c2-scene.c2-gunfx::after{background:repeating-linear-gradient(90deg,rgba(0,0,0,.5) 0 2px,transparent 2px 9px)}
.c2-octo{position:absolute;inset:0;z-index:8;background:rgba(18,8,30,.88);display:flex;flex-direction:column;justify-content:flex-end;gap:clamp(4px,1.5cqw,8px);padding:0 4% 6%}
.c2-tentacles{position:absolute;left:0;top:0;width:100%;height:60%;object-fit:cover;image-rendering:pixelated;opacity:.8}
.c2-octo-title{position:relative;font-family:var(--font-system);color:#ff9ad0;font-size:clamp(8px,3.6cqw,15px);text-align:center;margin-bottom:2%}
.c2-octo-choice{position:relative;text-align:left;background:#f1e5c5;color:#21151a;border:3px solid #28131c;box-shadow:2px 2px #7d194b;padding:.8em;font-family:var(--font-command);font-size:clamp(6px,2.6cqw,11px);cursor:pointer}
.c2-octo-choice b{display:block;color:#7d194b;font-size:.8em;margin-bottom:.3em}
.c2-scene [hidden]{display:none!important}
/* ART SHIP 014 item art on choices/combat buttons: native pixels, never scaled; the label keeps its own space. */
.adv-choice-icon{float:right;margin:-.2em 0 .2em .6em;image-rendering:pixelated}
.c2-btn:has(.c2-icon){position:relative;padding-right:calc(var(--c2-icon-w,32px) + .9em)}
.c2-icon{position:absolute;right:.4em;top:50%;transform:translateY(-50%);image-rendering:pixelated;pointer-events:none}
.c2-btn:has(.c2-icon[width="64"]){--c2-icon-w:64px}
