/* RC2 BUILD 2 · feel, visuals & money. Hard pixels only; no blur, no smoothing, steps() easing. */
:root{--rc2-cream:#f6efd9;--rc2-ink:#17131e;--rc2-green:#72d68a;--rc2-red:#ff5470;--rc2-gold:#f0c050;--rc2-plum:#7d194b}
/* ---- PHONE ICON IN BED: big, bottom centre ---- */
#bedroomScene #checkPhone.check-phone,body.bedroom-mode #checkPhone.check-phone{position:absolute;left:50%;right:auto;top:auto;bottom:12px;transform:translateX(-50%);width:84px;height:84px;max-width:none;padding:0;display:grid;place-items:center;font:40px/1 var(--font-system);background:var(--rc2-cream);color:var(--rc2-ink);border:3px solid #28131c;box-shadow:4px 4px 0 var(--rc2-plum);z-index:9;image-rendering:pixelated;letter-spacing:0}
#bedroomScene #checkPhone.check-phone::after{content:'PHONE';position:absolute;left:0;right:0;bottom:3px;font:7px/1 var(--font-system);letter-spacing:.08em;color:#28131c;background:none;border:0;width:auto;height:auto;top:auto}
#bedroomScene #checkPhone.check-phone:not(.learned){width:112px;font-size:11px;line-height:1.3;padding:0 6px}
#bedroomScene #checkPhone.check-phone:not(.learned)::after{content:none}
#bedroomScene #checkPhone.check-phone.learned{width:84px;height:84px;font-size:40px}
#bedroomScene #checkPhone.check-phone:active{transform:translateX(-50%) translate(2px,2px);box-shadow:2px 2px 0 var(--rc2-plum)}
#bedroomScene #checkPhone.check-phone.has-unread{animation:rc2PhoneBuzz 1.6s steps(1,end) infinite}
#bedroomScene #checkPhone.check-phone.has-unread::before{content:'';position:absolute;inset:-7px;border:3px solid var(--rc2-red);animation:rc2Ping 1.6s steps(4,end) infinite;pointer-events:none}
@keyframes rc2PhoneBuzz{0%,55%,100%{translate:0 0}5%{translate:-3px 0}10%{translate:3px -1px}15%{translate:-3px 1px}20%{translate:3px 0}25%{translate:-2px 0}30%{translate:2px 0}35%{translate:0 0}}
@keyframes rc2Ping{0%{opacity:.95;inset:-2px}100%{opacity:0;inset:-16px}}
/* ---- CASH CHIP ---- */
.rc2-cash{position:absolute;right:6px;top:6px;z-index:60;display:none;align-items:center;gap:5px;padding:3px 7px 3px 5px;background:var(--rc2-ink);color:var(--rc2-cream);border:2px solid var(--rc2-cream);box-shadow:2px 2px 0 var(--rc2-plum);font:9px/1 var(--font-system);pointer-events:none;image-rendering:pixelated}
body.bedroom-mode .rc2-cash,body.adventure-mode .rc2-cash,body.property-mode .rc2-cash{display:flex}
body.minigame-mode .rc2-cash,body.combat2-mode .rc2-cash{display:none}
.rc2-cash-icon{width:10px;height:10px;background:var(--rc2-gold);box-shadow:inset -2px -2px 0 #a8761c,inset 2px 2px 0 #fff3b0;border:1px solid #17131e}
.rc2-cash.gain{border-color:var(--rc2-green);color:var(--rc2-green)}
.rc2-cash.loss{border-color:var(--rc2-red);color:var(--rc2-red)}
.rc2-float{position:absolute;right:0;top:100%;margin-top:3px;font:11px/1 var(--font-system);white-space:nowrap;text-shadow:1px 1px 0 #000;animation:rc2FloatUp 1.25s steps(8,end) forwards}
.rc2-float.up{color:var(--rc2-green)}
.rc2-float.down{color:var(--rc2-red);animation-name:rc2FloatDown}
@keyframes rc2FloatUp{0%{opacity:0;translate:0 6px}15%{opacity:1}100%{opacity:0;translate:0 -18px}}
@keyframes rc2FloatDown{0%{opacity:0;translate:0 -6px}15%{opacity:1}100%{opacity:0;translate:0 18px}}
/* ---- RESULT CARD ---- */
.rc2-result{position:absolute;left:50%;bottom:18%;z-index:80;transform:translate(-50%,16px);min-width:150px;max-width:86%;display:grid;gap:5px;justify-items:center;padding:10px 16px 9px;background:var(--rc2-cream);color:var(--rc2-ink);border:3px solid var(--rc2-ink);box-shadow:4px 4px 0 var(--rc2-plum);text-align:center;font-family:var(--font-system);opacity:0;pointer-events:auto;cursor:pointer;image-rendering:pixelated}
.rc2-result.on{opacity:1;transform:translate(-50%,0);transition:opacity 120ms steps(3,end),transform 140ms steps(3,end)}
.rc2-result.off{opacity:0;transform:translate(-50%,-10px);transition:opacity 140ms steps(3,end),transform 140ms steps(3,end)}
.rc2-result small{font-size:7px;letter-spacing:.06em;opacity:.8}
.rc2-result strong{font-size:22px;line-height:1.1}
.rc2-result span{font-size:7px;opacity:.75}
.rc2-result.plus strong{color:#1d8a3c}.rc2-result.minus strong{color:#c4163a}.rc2-result.zero strong{color:#6b6475}
.rc2-result.plus{border-color:#1d8a3c}.rc2-result.minus{border-color:#c4163a}
/* ---- DAY SUMMARY (on the black screen) ---- */
.rc2-day{position:absolute;left:50%;top:50%;z-index:2;transform:translate(-50%,-46%);width:min(78%,260px);display:grid;gap:7px;justify-items:center;padding:14px 12px 12px;background:#0d0a16;color:var(--rc2-cream);border:3px solid var(--rc2-cream);box-shadow:4px 4px 0 var(--rc2-plum);text-align:center;font-family:var(--font-system);opacity:0}
.rc2-day.on{opacity:1;transform:translate(-50%,-50%);transition:opacity 200ms steps(4,end),transform 200ms steps(4,end)}
.rc2-day small{font-size:7px;letter-spacing:.08em;opacity:.8}
.rc2-day strong{font-size:26px;line-height:1.1}
.rc2-day.plus strong{color:var(--rc2-green)}.rc2-day.minus strong{color:var(--rc2-red)}.rc2-day.zero strong{color:#9a93a8}
.rc2-day ul{list-style:none;margin:2px 0;padding:0;width:100%;display:grid;gap:3px}
.rc2-day li{display:flex;justify-content:space-between;gap:8px;font-size:7px;line-height:1.3;border-bottom:1px dotted #4a3f5c;padding-bottom:2px}
.rc2-day li b.p{color:var(--rc2-green)}.rc2-day li b.m{color:var(--rc2-red)}
.rc2-day p{margin:0;font-size:7px;opacity:.85}.rc2-day em{font-style:normal;font-size:8px;color:var(--rc2-gold)}
.rc2-day i{font-style:normal;font-size:6px;opacity:.6;animation:rc2Blink 1s steps(1,end) infinite}
@keyframes rc2Blink{50%{opacity:0}}
/* ---- PURCHASE FX ---- */
.rc2-bag-float{position:absolute;left:50%;bottom:20%;z-index:85;display:grid;gap:4px;justify-items:center;transform:translateX(-50%);pointer-events:none;animation:rc2BagUp 1.6s steps(10,end) forwards}
.rc2-bag-icon{width:48px;height:48px;image-rendering:pixelated}
.rc2-bag-label{font:8px/1 var(--font-system);color:var(--rc2-cream);background:var(--rc2-ink);border:2px solid var(--rc2-gold);padding:3px 5px}
@keyframes rc2BagUp{0%{opacity:0;translate:0 24px;scale:.6}15%{opacity:1;scale:1.15}30%{scale:1}85%{opacity:1}100%{opacity:0;translate:0 -140px}}
.rc2-tag-rip{position:absolute;left:62%;top:60%;z-index:84;display:flex;align-items:center;gap:4px;pointer-events:none;animation:rc2Rip 1.05s steps(8,end) forwards}
.rc2-tag-rip i{width:14px;height:10px;background:#fff;border:2px solid var(--rc2-ink);box-shadow:inset 0 -3px 0 #c9c9c9}
.rc2-tag-rip b{font:7px/1 var(--font-system);color:var(--rc2-cream);background:var(--rc2-ink);padding:2px 4px;border:1px solid #fff}
@keyframes rc2Rip{0%{opacity:0;translate:0 0;rotate:0deg}15%{opacity:1}100%{opacity:0;translate:26px -26px;rotate:35deg}}
.rc2-bed-items{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none;z-index:3}
/* ---- AMBIENT ---- */
.rc2-ambient{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;pointer-events:none;z-index:2}
@media(prefers-reduced-motion:reduce){.rc2-float,.rc2-bag-float,.rc2-tag-rip{animation-duration:1ms}#bedroomScene #checkPhone.check-phone.has-unread,#bedroomScene #checkPhone.check-phone.has-unread::before{animation:none}.rc2-day i{animation:none}}
/* ---- SCENE GUARD: no combat chrome outside combat; command panel yields while someone is talking ---- */
body[data-ra-scene]:not([data-ra-scene="battle"]):not([data-ra-scene="jdmCombat"]) :is(.combat-hud,#battleUI,.battle-ui,#geminiRich,#productionCEO,#productionAssistant,#attackLayer,#richLyricBubble,#biteTrail,#richBiteSprite,#biteImpact,#healFloat),
body[data-ra-scene-next]:not([data-ra-scene-next="battle"]):not([data-ra-scene-next="jdmCombat"]) :is(.combat-hud,#battleUI,.battle-ui,#geminiRich,#productionCEO,#productionAssistant){display:none!important}
body.rc2-talking .battle-ui{visibility:hidden;pointer-events:none}
body.rc2-talking .combat-hud{opacity:.35}
.battle-ui{transition:opacity 120ms steps(3,end)}

/* ---- INTRO POLISH ---- */
body.rc2-title .combat-hud,body.rc2-title .battle-ui{visibility:hidden}
body.rc2-title .start-overlay{background:radial-gradient(ellipse at 50% 42%,rgba(60,10,40,.55),rgba(5,4,12,.9) 70%)}
body.rc2-title .start-card{background:none;border:0;box-shadow:none;color:#f6efd9}
body.rc2-title .start-card .title{font-size:clamp(20px,7.2cqw,40px);letter-spacing:1px;white-space:nowrap;color:#ff3b5c;text-shadow:3px 3px 0 #17131e,0 0 14px rgba(215,25,63,.5);animation:rc2TitleFlicker 3.2s steps(1,end) infinite}
.rc2-title-sub{font:8px/1.4 var(--font-system);color:#f0c050;margin:0 0 14px;letter-spacing:.12em;text-transform:uppercase}
/* RC5 polish: a classic scrollbar no longer eats the phone's right edge */
#phoneContent{scrollbar-gutter:stable both-edges}
/* RC5 polish: one cash chip (RC3 owns it); Rich's return line never shoves CASTLE/SLEEP under the phone */
body.rc3.bedroom-mode .rc2-cash,body.rc3.adventure-mode .rc2-cash,body.rc3.property-mode .rc2-cash{display:none}
.bedroom-life-layer:has(> .bedroom-return) .bedroom-life{display:none}
/* RC5 polish: stacked logo title that fits 360-430px phones */
body.rc2-title .start-card{width:min(92%,460px)}
body.rc2-title .start-card .title:has(.rc5-t1){white-space:normal;display:grid;justify-items:center;gap:8px;margin-bottom:12px}
body.rc2-title .start-card .title .rc5-t1{font-size:clamp(30px,10.5vw,52px);line-height:.95;letter-spacing:2px;text-transform:uppercase}
body.rc2-title .start-card .title .rc5-t2{font:clamp(9px,2.9vw,14px)/1.3 var(--font-system);letter-spacing:.18em;text-transform:uppercase;color:#f6efd9;text-shadow:2px 2px 0 #17131e}
body.rc2-title .start-card .title .rc5-t2 .rc5-demo{color:#f0c050}
body.rc2-title .start-card button#startButton{width:84%;padding:12px;font-size:14px;background:#d7193f;color:#fff;border:3px solid #17131e;box-shadow:4px 4px 0 #f0c050;animation:rc2StartPulse 1.1s steps(2,end) infinite}
body.rc2-title .start-card small{color:#f6efd9;opacity:.75}
@keyframes rc2TitleFlicker{0%,92%,100%{opacity:1}93%{opacity:.55}95%{opacity:1}97%{opacity:.7}}
@keyframes rc2StartPulse{50%{translate:0 -2px;box-shadow:4px 6px 0 #f0c050}}
.rc2-fade{position:absolute;inset:0;z-index:30;background:#05040b;pointer-events:none;animation:rc2FadeIn 420ms steps(6,end) forwards}
@keyframes rc2FadeIn{0%{opacity:1}100%{opacity:0}}
.adv-scene.rc2-shake{animation:rc2Shake 480ms steps(1,end)}
@keyframes rc2Shake{0%,100%{translate:0 0}10%{translate:-4px 2px}20%{translate:5px -3px}30%{translate:-5px 0}40%{translate:4px 3px}55%{translate:-3px -2px}70%{translate:2px 1px}85%{translate:-1px 0}}
.rc2-coach{position:absolute;z-index:40;transform:translate(-50%,-100%);display:grid;justify-items:center;gap:1px;pointer-events:none;animation:rc2Coach .9s steps(2,end) infinite}
.rc2-coach b{font:9px/1 var(--font-system);color:#17131e;background:#f0c050;border:3px solid #17131e;box-shadow:3px 3px 0 #7d194b;padding:6px 9px;white-space:nowrap}
.rc2-coach i{font-style:normal;font-size:14px;color:#f0c050;text-shadow:2px 2px 0 #17131e;line-height:1}
@keyframes rc2Coach{50%{translate:-50% 5px}}
@media(prefers-reduced-motion:reduce){.rc2-fade,.adv-scene.rc2-shake,.rc2-coach,body.rc2-title .start-card .title,body.rc2-title .start-card button#startButton{animation:none}}
/* ---- PHONE NUDGES: the thing to tap is the thing that shakes ---- */
#phoneContent .rc2-nudge{position:relative;animation:rc2Buzz 2.4s steps(1,end) infinite}
#phoneContent .rc2-nudge::after{content:'';position:absolute;inset:-3px;border:2px solid var(--rc2-gold);pointer-events:none;animation:rc2Glow 1.2s steps(2,end) infinite}
#phoneContent .rc2-nudge-big{animation-duration:1.8s}
@keyframes rc2Buzz{0%,70%,100%{translate:0 0}4%{translate:-2px 0}8%{translate:2px -1px}12%{translate:-2px 1px}16%{translate:2px 0}20%{translate:-1px 0}24%{translate:1px 0}}
@keyframes rc2Glow{0%{opacity:.95}50%{opacity:.25}100%{opacity:.95}}
@media(prefers-reduced-motion:reduce){#phoneContent .rc2-nudge,#phoneContent .rc2-nudge::after{animation:none}}
/* ---- reveal card: the sprite was lost in a big cream card; integer-scale it ---- */
body .reveal-assistant-sprite{top:13%;transform:translateX(-50%) scale(3)}
