@font-face{font-family:Barlow;src:url('./assets/fonts/barlow-condensed-800.ttf') format('truetype');font-weight:800;font-display:swap}
@font-face{font-family:DM;src:url('./assets/fonts/dm-sans-400.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:DM;src:url('./assets/fonts/dm-sans-700.ttf') format('truetype');font-weight:700;font-display:swap}

:root {
  color-scheme:light dark;
  --paper:#f9e8ed;
  --surface:#fff7f5;
  --ink:#37212a;
  --muted:#78545e;
  --accent:#dc214f;
  --accent-ink:#fff8f5;
  --soft-accent:#f6cfda;
  --line:#dfc1cb;
  --line-strong:#c89aaa;
  --photo-paper:#fff7f5;
  --photo-ink:#37212a;
  --shadow:rgba(80,26,45,.12);
  --radius:12px;
  --duration-fast:100ms;
  --duration-normal:200ms;
  --ease-smooth-out:cubic-bezier(.22,1,.36,1);
  --stagger-dur:500ms;
  --stagger-distance:12px;
  --stagger-stagger:40ms;
  --stagger-blur:3px;
  --stagger-ease:cubic-bezier(.22,1,.36,1);
  font-family:DM,Arial,sans-serif;
  background:var(--paper);
  color:var(--ink);
}
*{box-sizing:border-box}
body{margin:0;min-width:300px;-webkit-font-smoothing:antialiased}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit;color:inherit;cursor:pointer}
button:disabled{cursor:default}
button,a{outline-offset:5px}
:focus-visible{outline:3px solid var(--accent)}
h1:focus,h2:focus,main:focus,article:focus{outline:none}
button{border:0}
a{color:inherit}
h1,h2,p,figure,blockquote{margin:0}
button span{pointer-events:none}
img{display:block;max-width:100%}
::selection{background:var(--accent);color:var(--accent-ink)}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:8px;z-index:20;background:var(--surface);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}
.skip-link:focus{clip-path:none;width:auto;height:auto;padding:12px}
.topbar{max-width:1376px;margin:0 auto;padding:23px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;font:800 34px/1 Barlow,sans-serif;display:flex;align-items:center;gap:3px;letter-spacing:-1px}
.brand-star{font-family:DM,sans-serif;font-size:24px;color:var(--accent);margin-top:2px}
.brand-edition{font:700 9px/1.4 DM,sans-serif;letter-spacing:1.6px;width:55px;margin-left:14px}
.header-actions{display:flex;align-items:center;gap:24px}
.birthday-tag{font-size:10px;font-weight:700;letter-spacing:1.8px}
.icon-button{width:42px;height:42px;display:grid;place-items:center;background:transparent;border:1px solid var(--line);border-radius:50%;font-size:22px;position:relative}
.sound-slash{position:absolute;font-size:25px;color:var(--accent);top:5px;left:11px}
.sound-on .sound-slash{display:none}
.icon-button:hover{background:var(--soft-accent)}
main{min-height:calc(100dvh - 163px);scroll-margin-top:14px}
.home-layout{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1fr 1.06fr;gap:50px;padding:65px 48px 62px;align-items:center}
.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.7px;line-height:1.6}
.home-copy .eyebrow{margin-bottom:24px}
.home-title{font:800 clamp(72px,7.7vw,112px)/.84 Barlow,Impact,sans-serif;letter-spacing:-2px;position:relative;margin-bottom:34px}
.home-title>span:not(.edition-script){color:var(--accent)}
.edition-script{display:block;font:800 34px/1.3 Barlow,Impact,sans-serif;color:var(--ink);transform:rotate(-7deg);margin:10px 0 0 146px;letter-spacing:-.3px;text-transform:uppercase}
.home-description{font-size:23px;line-height:1.35;font-weight:700;letter-spacing:-.6px;margin-bottom:16px}
.home-premise{font-size:14px;line-height:1.75;color:var(--muted)}
.start-actions{display:flex;align-items:center;gap:18px;margin-top:28px;flex-wrap:wrap}
.primary-button{display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--accent);color:var(--accent-ink);min-height:58px;padding:17px 23px;border-radius:var(--radius);font-weight:700;font-size:14px;box-shadow:0 3px 0 rgba(86,12,33,.24);transition:transform var(--duration-fast) var(--ease-smooth-out),background var(--duration-normal) ease;position:relative}
.primary-button>span{font-size:23px;line-height:.8}
.primary-button:hover{transform:translateY(-2px);background:#cd224a}
.primary-button:active{transform:translateY(2px);box-shadow:none}
.text-button{background:transparent;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px;padding:12px 0;font-size:12px;line-height:1.5}
.text-button:hover{color:var(--accent);text-decoration-color:var(--accent)}
.game-facts{display:flex;align-items:center;gap:11px;margin-top:24px;font-size:8px;font-weight:700;letter-spacing:1.1px;white-space:nowrap}
.game-facts i{font-size:14px;font-style:normal;color:var(--accent)}
.cover-collage{position:relative;padding:10px 0 20px}
.cover-frame{background:var(--photo-paper);padding:12px 12px 0;transform:rotate(2deg);box-shadow:0 16px 30px var(--shadow);position:relative}
.cover-frame>img{width:100%;height:430px;object-fit:cover;object-position:56% center}
.cover-frame>figcaption{font-size:9px;font-weight:700;letter-spacing:1.5px;display:flex;justify-content:space-between;padding:17px 5px;color:var(--photo-ink)}
.age-seal{position:absolute;z-index:2;right:-24px;top:-32px;width:127px;height:127px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(13deg);outline:1px dashed var(--accent-ink);outline-offset:-7px}
.age-seal strong{font:800 68px/.95 Barlow,sans-serif}
.age-seal>span{font-size:7px;letter-spacing:1.2px;font-weight:700}
.cover-sticker{position:absolute;bottom:4px;left:-30px;padding:20px 24px;background:var(--ink);color:var(--paper);transform:rotate(-8deg);font:800 24px/.95 Barlow,sans-serif;box-shadow:4px 4px 0 var(--accent)}
.cover-sticker b{color:#ff89a6;font-weight:800}
.photo-note{position:absolute;right:6px;bottom:-32px;transform:rotate(5deg);font-size:10px;font-weight:700;line-height:1.4}
.ticker{background:var(--accent);color:var(--accent-ink);padding:15px 25px;display:flex;gap:40px;align-items:center;justify-content:center;overflow:hidden;white-space:nowrap;font-size:17px}
.ticker>span{font:800 20px/.9 Barlow,sans-serif;letter-spacing:1px}
.home-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px;max-width:1280px;margin:0 auto;padding:29px 48px}
.home-bottom p{font-size:11px;line-height:1.8;color:var(--muted)}
.home-bottom p b{font-weight:700;color:var(--ink)}
.collection-link{background:transparent;font-size:12px;display:flex;gap:14px;align-items:center;min-height:44px}
.collection-link>span{font-size:10px;border:1px solid var(--line-strong);padding:6px 9px;border-radius:30px}
.site-footer{display:flex;justify-content:space-between;gap:16px;max-width:1376px;margin:auto;border-top:1px solid var(--line);padding:22px 48px;font-size:8px;font-weight:700;letter-spacing:1.4px;color:var(--muted)}
.boot,.noscript{padding:60px 30px;text-align:center;font-size:14px}

/* The game keeps its art and controls separate, so the controls never sit on a photo. */
.game-shell{max-width:1180px;padding:25px 40px 0;margin:auto}
.hud{display:grid;grid-template-columns:repeat(3,1fr) 45px;align-items:center;gap:36px;padding:0 0 20px;border-bottom:1px solid var(--line)}
.stat-label{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px;font-size:11px}
.stat-label>span{font-weight:700}
.stat-label>b{font-size:14px;font-variant-numeric:tabular-nums}
.stat-label small{font-weight:400;font-size:9px;color:var(--muted);margin-left:2px}
.stat-track{height:5px;overflow:hidden;background:var(--line);border-radius:5px}
.stat-track>span{display:block;background:var(--accent);width:100%;height:100%;transform-origin:left;transition:transform var(--duration-normal) var(--ease-smooth-out)}
.stat-chaos .stat-track>span{background:var(--ink)}
.stat-overthinking .stat-track>span{background:var(--muted)}
.bag-button{display:flex;align-items:center;justify-content:center;gap:3px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);height:42px;font-size:22px}
.bag-button>span{font-size:10px}
.chapter-progress{display:flex;align-items:center;gap:0;padding:19px 0 26px;max-width:530px;margin-left:auto}
.chapter-progress>span:not(.midnight-label){display:flex;align-items:center;justify-content:center;position:relative;font-size:9px;color:var(--muted);width:28px;height:28px;border:1px solid var(--line);border-radius:50%;flex-shrink:0}
.chapter-progress>span:not(.midnight-label)+span:not(.midnight-label){margin-left:28px}
.chapter-progress>span:not(.midnight-label)+span:not(.midnight-label):before{content:'';position:absolute;left:-29px;width:27px;height:1px;background:var(--line)}
.chapter-progress .current{background:var(--accent);border-color:var(--accent)!important;color:var(--accent-ink)!important}
.chapter-progress .done{background:var(--soft-accent);color:var(--accent)!important;border-color:var(--soft-accent)!important}
.midnight-label{font-size:9px;font-weight:700;white-space:nowrap;padding-left:20px}
.scene-layout{display:grid;grid-template-columns:.91fr 1.09fr;gap:60px;align-items:start;padding-bottom:28px}
.scene-art{position:relative;margin:17px 0 0;padding:0 0 25px;min-width:0}
.scene-art figure{padding:11px 11px 0;background:var(--photo-paper);transform:rotate(-2deg);box-shadow:0 12px 24px var(--shadow)}
.scene-art img{width:100%;height:470px;object-fit:cover;object-position:center 34%;background:var(--soft-accent)}
.scene-art figcaption{font-size:9px;letter-spacing:.3px;padding:16px 2px;text-align:center;color:var(--photo-ink);line-height:1.5}
.landscape-art img{object-position:54% center}
.scene-art:before{content:'';position:absolute;top:-12px;width:96px;height:28px;background:var(--soft-accent);opacity:.7;z-index:1;left:35%;transform:rotate(5deg)}
.scene-sticker{position:absolute;right:-16px;bottom:10px;transform:rotate(7deg);font:800 24px/1 Barlow,sans-serif;background:var(--accent);color:var(--accent-ink);padding:13px 18px;box-shadow:3px 3px 0 var(--ink)}
.scene-number{font:800 95px/1 Barlow,sans-serif;position:absolute;bottom:-9px;left:-15px;color:var(--accent);text-shadow:2px 2px 0 var(--paper);transform:rotate(-6deg)}
.scene-location{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px;font-size:8px;font-weight:700;letter-spacing:1.2px;color:var(--muted)}
.scene-location time{font-variant-numeric:tabular-nums;color:var(--accent);font-size:11px}
.scene-title{font:800 52px/.98 Barlow,Impact,sans-serif;letter-spacing:-.5px;margin-bottom:18px;text-wrap:balance}
.scene-intro{font-size:14px;line-height:1.8;color:var(--muted);max-width:60ch}
.dialogue{background:var(--surface);border-left:3px solid var(--accent);padding:15px 18px;margin:19px 0 24px;border-radius:0 var(--radius) var(--radius) 0}
cite{display:block;font-size:8px;letter-spacing:1px;font-weight:700;font-style:normal;color:var(--accent);line-height:1.7}
.dialogue p{font-size:13px;line-height:1.65;margin-top:5px}
.decision-note{font-size:10px;line-height:1.6;color:var(--muted);margin:0 0 11px}
.choices{display:grid;gap:9px}
.choice-button{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:68px;text-align:left;padding:13px 15px;transition:transform var(--duration-normal) var(--ease-smooth-out),border-color var(--duration-normal) ease,background var(--duration-normal) ease}
.choice-button:hover{border-color:var(--accent);background:var(--soft-accent);transform:translateX(3px)}
.choice-button:active{transform:translateX(3px) scale(.99)}
.choice-key{border:1px solid var(--line-strong);border-radius:6px;min-width:25px;height:26px;display:grid;place-items:center;font-size:9px;flex-shrink:0}
.choice-button strong{font-size:12px;line-height:1.5;display:block;font-weight:700}
.choice-button small{font-size:9px;line-height:1.6;display:block;color:var(--muted);margin-top:2px}
.choice-arrow{margin-left:auto;font-size:22px;color:var(--accent);font-weight:400}
.game-bottom{display:flex;justify-content:space-between;align-items:center;gap:18px;border-top:1px solid var(--line);padding:13px 0 20px}
.game-bottom>span{font-size:8px;font-weight:700;letter-spacing:.7px;color:var(--muted)}
.game-bottom i{font-style:normal;padding:0 6px}
.game-bottom .text-button{font-size:10px;flex-shrink:0}
.result-eyebrow{margin:2px 0 14px;color:var(--accent)}
.effect-pills{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 22px}
.effect-pills>span{font-size:10px;font-weight:700;padding:7px 10px;border-radius:30px;border:1px solid var(--line-strong)}
.badge-award{display:flex;gap:13px;align-items:center;background:var(--soft-accent);border:1px solid var(--line-strong);border-radius:var(--radius);padding:15px;margin-bottom:20px}
.award-icon{font-size:30px;width:40px;text-align:center}
.badge-award small{display:block;font-size:7px;font-weight:700;letter-spacing:1.2px;margin-bottom:4px}
.badge-award strong{font-size:12px;line-height:1.5;display:block}
.narrator{margin:22px 0 28px;padding:0 0 0 15px;border-left:1px solid var(--line-strong)}
.narrator cite{font-size:7px;color:var(--muted)}
.narrator p{font-size:13px;font-weight:700;line-height:1.7;margin-top:7px}
.next-button{width:100%;margin:24px 0 20px}
.approved-stamp{position:absolute;top:32px;left:20px;border:3px double var(--accent);padding:10px 17px;color:var(--accent);background:var(--photo-paper);transform:rotate(-14deg);font:800 23px/.95 Barlow,sans-serif;text-align:center}
.calm-button{display:block;background:transparent;border:1px dashed var(--line-strong);border-radius:var(--radius);text-align:left;width:100%;padding:13px;margin-top:18px;font-size:11px;line-height:1.5}
.calm-button>span{font-size:9px;display:block;color:var(--muted);margin-top:4px}
.calm-button:disabled{color:var(--muted)}

/* Mini games only animate while the player is actively interacting. */
.mini-game,.voice-game{padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-top:18px}
.mini-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
.mini-heading h2{font:800 28px/1 Barlow,sans-serif}
.mini-heading>b{font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--accent)}
.mini-game>p{font-size:11px;line-height:1.6;color:var(--muted)}
.rat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}
.rat-cell{height:67px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);display:grid;place-items:center;font-size:32px;transition:transform var(--duration-fast) ease}
.rat-cell:active{transform:scale(.94)}
.rat-cell.has-rat{background:var(--soft-accent);border-color:var(--line-strong)}
.drain{font-size:34px;color:var(--line-strong);transform:scaleX(1.4)}
.mini-feedback{font-size:10px!important;min-height:24px;line-height:1.5;margin:12px 0;color:var(--muted)}
.voice-recipient{display:flex;align-items:center;gap:7px;font-size:7px;font-weight:700;letter-spacing:.3px}
.voice-recipient>b{margin-left:auto;font-size:18px;font-variant-numeric:tabular-nums;letter-spacing:-.5px;color:var(--accent)}
.recording-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}
.waveform{display:flex;align-items:center;justify-content:space-between;height:75px;gap:3px;margin:10px 0 4px}
.waveform i{flex:1;height:var(--bar);background:var(--bar-color);border-radius:3px;min-width:1px}
.voice-duration{display:flex;justify-content:space-between;gap:14px;font-size:6px;font-weight:700;letter-spacing:.3px;color:var(--muted);line-height:1.5}
.voice-duration>span:last-child{color:var(--accent);text-align:right}
.voice-topic{margin:14px 0;min-height:66px;background:var(--paper)}
.voice-send{width:100%;margin-top:14px;font-size:12px;min-height:50px;padding:14px 16px}
.voice-complete{margin:20px 0;text-align:center;padding:13px;background:var(--soft-accent);font-weight:700;font-size:13px;border-radius:var(--radius)}
.sink-target{width:100%;margin-top:14px;padding:14px;border-radius:var(--radius);background:var(--soft-accent);display:grid;place-items:center;gap:8px;min-height:130px;transition:transform var(--duration-fast) ease}
.sink-target:active{transform:rotate(2deg) scale(.97)}
.sink-target>span{font-size:58px;line-height:1.2}
.sink-target>strong{font-size:10px;letter-spacing:2px}
.sink-cracks{text-align:center;color:var(--accent);font-size:23px;height:24px;overflow:hidden}
.jump-stage{height:100px;display:flex;flex-direction:column;align-items:center;margin:14px 0 0}
.jump-crown{font-size:30px;color:var(--accent);line-height:1}
.jump-person{font:800 27px/1 Barlow,sans-serif;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--paper);margin-top:8px}
.jump-floor{font-size:7px;letter-spacing:2px;margin-top:8px;border-top:1px solid var(--line-strong);width:80px;text-align:center;padding-top:4px}
.jump-track{height:24px;position:relative;background:var(--line);border-radius:5px;margin:12px 7px 6px;isolation:isolate}
.jump-zone{position:absolute;left:35%;width:30%;height:100%;background:var(--accent);border-left:1px solid var(--ink);border-right:1px solid var(--ink)}
#jump-marker{position:absolute;inset:0;width:100%;pointer-events:none;transform:translateX(0)}
#jump-marker::before{content:'';position:absolute;top:-6px;left:-2.5px;width:5px;height:36px;background:var(--ink);border:1px solid var(--surface);border-radius:2px}
.jump-labels{display:flex;justify-content:space-between;align-items:center;gap:5px;font-size:6px;font-weight:700;letter-spacing:.5px}
.jump-labels>b{color:var(--accent);padding-left:45px}
.jump-button{width:100%;margin-top:20px;justify-content:center;letter-spacing:2px}
.jump-assist{width:100%;font-size:10px;text-align:center;margin-top:3px}

.ending-shell{max-width:1120px;margin:auto;padding:36px 40px 20px}
.midnight{text-align:center;color:var(--accent);margin-bottom:40px}
.ending-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:75px;align-items:center}
.ending-rank{font-size:8px;font-weight:700;letter-spacing:1.2px;display:flex;align-items:center;gap:11px;margin-bottom:18px}
.ending-rank>span{display:grid;place-items:center;font-size:23px;width:40px;height:40px;border:1px solid var(--line-strong);border-radius:50%;color:var(--accent)}
.ending-title{font:800 76px/.94 Barlow,Impact,sans-serif;margin-bottom:20px;letter-spacing:-1px;text-wrap:balance}
.ending-subtitle{font-size:17px;font-weight:700;line-height:1.4;letter-spacing:-.3px;margin-bottom:15px}
.ending-text{font-size:13px;line-height:1.8;color:var(--muted)}
.ending-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:21px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:24px 0;font-size:7px;font-weight:700;letter-spacing:1px}
.ending-stats b{display:block;font:800 36px/1 Barlow,sans-serif;letter-spacing:-1px;margin-bottom:6px;color:var(--accent)}

.birthday-photo{position:relative;transform:rotate(3deg);padding:12px 12px 42px;background:var(--photo-paper);box-shadow:0 10px 24px var(--shadow);margin-bottom:25px}
.birthday-photo>img{width:100%;height:390px;object-fit:cover;object-position:center 35%}
.birthday-photo-age{position:absolute;bottom:18px;left:-25px;font:800 150px/.8 Barlow,sans-serif;transform:rotate(-11deg);color:var(--accent);text-shadow:3px 3px 0 var(--photo-paper)}
.birthday-photo-age>span{display:block;font:700 8px/1 DM,sans-serif;letter-spacing:1.2px;margin:10px 0 0 10px;text-shadow:none;color:var(--photo-ink)}
.birthday-photo-note{position:absolute;right:0;bottom:-24px;color:var(--ink);font-size:10px;font-weight:700;line-height:1.5;transform:rotate(-5deg)}

.ending-actions{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:42px;padding-top:17px}
.ending-footnote{font-size:7px;letter-spacing:1.1px;color:var(--muted);text-align:center;margin:25px 0 5px}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:10;overflow:hidden}
.confetti>i{position:absolute;top:-20px;left:var(--x);width:9px;height:16px;background:var(--color);transform:rotate(var(--r));animation:confetti-fall 1800ms cubic-bezier(.2,.5,.6,1) var(--delay) both}
@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0);opacity:1}100%{transform:translateY(105dvh) rotate(var(--r));opacity:0}}

dialog{width:min(640px,calc(100% - 30px));max-height:calc(100dvh - 40px);padding:30px;background:var(--paper);color:var(--ink);border:1px solid var(--line-strong);border-radius:16px;box-shadow:0 20px 60px var(--shadow);overscroll-behavior:contain}
dialog::backdrop{background:rgba(35,15,25,.65)}
.collection-header{display:flex;align-items:center;justify-content:space-between;gap:15px}
.collection-header .eyebrow{font-size:7px;letter-spacing:.8px}
.collection-header h2{font:800 34px/1.1 Barlow,sans-serif;margin-top:7px}
.collection-header .icon-button{flex-shrink:0}
.collection-summary{font-size:11px;line-height:1.6;color:var(--muted);margin:18px 0}
.badge-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:20px 0}
.collection-badge{border:1px solid var(--line);border-radius:var(--radius);padding:15px;display:flex;gap:12px;align-items:flex-start;min-height:110px}
.collection-badge>span{font-size:25px;min-width:28px;text-align:center;color:var(--accent)}
.collection-badge strong{font-size:11px;line-height:1.5;display:block}
.collection-badge p{font-size:9px;line-height:1.6;color:var(--muted);margin-top:5px}
.collection-badge.unlocked{background:var(--surface);border-color:var(--line-strong)}
.collection-badge.locked{border-style:dashed}
.collection-badge.locked strong{color:var(--muted)}
dialog>.primary-button{width:100%;margin-top:20px;font-size:12px}
.image-unavailable{min-height:140px;background:var(--soft-accent);font-size:12px;color:var(--photo-ink);padding:20px}

/* transitions.dev: texts reveal. Finite entrance, independent quiet exit. */
.t-stagger-line {
  display:block;
  opacity:0;
  transform:translateY(var(--stagger-distance));
  filter:blur(var(--stagger-blur));
  transition:
    opacity var(--stagger-dur) var(--stagger-ease),
    transform var(--stagger-dur) var(--stagger-ease),
    filter var(--stagger-dur) var(--stagger-ease);
  will-change:transform,opacity,filter;
}
.t-stagger-line--2{transition-delay:var(--stagger-stagger)}
.t-stagger.is-shown .t-stagger-line{opacity:1;transform:translateY(0);filter:blur(0)}
.t-stagger.is-hiding .t-stagger-line{opacity:0;transform:translateY(0);filter:blur(0);transition:opacity 200ms ease,transform 0s linear,filter 0s linear;transition-delay:0s}

@media(min-width:1440px){.home-layout{padding-top:82px;padding-bottom:78px}.cover-frame>img{height:470px}.home-description{font-size:26px}.scene-art img{height:505px}.scene-title{font-size:58px}.scene-intro{font-size:15px}}
@media(max-width:1050px){.home-layout{gap:32px;padding:60px 35px}.topbar,.site-footer{padding-left:35px;padding-right:35px}.home-title{font-size:88px}.cover-frame>img{height:400px}.age-seal{width:105px;height:105px;right:-14px;top:-25px}.age-seal strong{font-size:57px}.age-seal>span{font-size:6px}.scene-layout{gap:35px}.game-shell{padding-left:30px;padding-right:30px}.scene-art img{height:430px}.scene-title{font-size:48px}.chapter-progress{max-width:490px}.chapter-progress>span:not(.midnight-label)+span:not(.midnight-label){margin-left:20px}.chapter-progress>span:not(.midnight-label)+span:not(.midnight-label):before{left:-21px;width:19px}.ending-layout{gap:45px}.ending-title{font-size:65px}}
@media(max-width:767px){
  .topbar{padding:15px 22px}.brand{font-size:30px}.brand-star{font-size:21px}.brand-edition{font-size:7px;letter-spacing:1.2px;margin-left:11px;width:45px}.birthday-tag{font-size:8px;letter-spacing:1px}.header-actions{gap:13px}.icon-button{width:36px;height:36px;font-size:20px}.sound-slash{top:2px;left:8px}
  .home-layout{display:flex;flex-direction:column;gap:24px;padding:30px 25px 35px;max-width:540px;align-items:stretch}.home-copy{display:contents}.home-copy .eyebrow{font-size:8px;letter-spacing:1.4px;margin-bottom:-12px;order:0}.home-title{font-size:clamp(74px,16.9vw,116px);letter-spacing:-1.5px;order:1;margin-bottom:0}.edition-script{font-size:27px;margin:7px 0 0 135px;transform:rotate(-6deg)}
  .cover-collage{order:2;padding:0 3px 9px;margin:0 3px 0 0}.cover-frame{padding:8px 8px 0;transform:rotate(2deg)}.cover-frame>img{height:250px;object-position:55% 40%}.cover-frame>figcaption{font-size:7px;padding:12px 3px;letter-spacing:1px}.age-seal{width:92px;height:92px;right:-10px;top:-22px}.age-seal strong{font-size:50px}.age-seal>span{font-size:5px;letter-spacing:1px}.cover-sticker{font-size:20px;left:-9px;bottom:8px;padding:12px 15px}.photo-note{font-size:8px;bottom:-17px;right:0}
  .home-description{order:3;font-size:23px;line-height:1.3;margin:9px 0 0}.home-premise{order:4;font-size:13px;margin-top:-12px;line-height:1.65}.start-actions{order:5;margin-top:-4px;gap:7px}.start-actions>.primary-button{width:100%}.start-actions>.text-button{width:100%;text-align:center}.game-facts{order:6;margin-top:-6px;justify-content:space-between;gap:7px;font-size:7px;letter-spacing:.8px}.game-facts i{font-size:12px}
  .ticker{padding:13px 15px;gap:25px;justify-content:flex-start}.ticker>span{font-size:18px}.home-bottom{padding:23px 25px;display:block;max-width:540px}.home-bottom p{font-size:10px}.collection-link{margin-top:12px;padding:8px 0}.site-footer{padding:20px 22px;font-size:6px;letter-spacing:.7px;line-height:1.7;align-items:start}.site-footer>span{max-width:48%}
  .game-shell{padding:18px 22px 0;max-width:560px}.hud{gap:14px;grid-template-columns:repeat(3,1fr) 34px;padding-bottom:15px}.stat-label{font-size:8px;gap:3px;flex-direction:column;align-items:flex-start;margin-bottom:6px}.stat-label>b{font-size:12px}.stat-label small{font-size:7px}.stat-track{height:4px}.bag-button{height:35px;font-size:20px;border-radius:8px}.bag-button>span{font-size:8px}.chapter-progress{margin:0;max-width:none;padding:16px 0 21px;justify-content:space-between}.chapter-progress>span:not(.midnight-label){width:24px;height:24px;font-size:8px}.chapter-progress>span:not(.midnight-label)+span:not(.midnight-label){margin-left:0}.chapter-progress>span:not(.midnight-label)+span:not(.midnight-label):before{display:none}.midnight-label{padding-left:0;font-size:8px}
  .scene-layout{display:flex;flex-direction:column;gap:24px;padding-bottom:22px}.scene-art{width:100%;margin:5px 0 0;padding:0 3px 13px}.scene-art figure{padding:7px 7px 0;transform:rotate(-1.5deg)}.scene-art img{height:230px;object-position:center 27%}.scene-art.landscape-art img{object-position:53% 50%;height:230px}.scene-art figcaption{padding:10px 2px;font-size:8px}.scene-art:before{height:20px;width:75px;top:-8px;left:38%}.scene-sticker{font-size:19px;padding:10px 14px;bottom:5px;right:-3px}.scene-number{font-size:65px;left:-5px;bottom:-5px}.scene-location{font-size:7px;letter-spacing:.8px;margin-bottom:13px;gap:12px}.scene-location time{font-size:10px}.scene-title{font-size:45px;line-height:.98;letter-spacing:-.3px;margin-bottom:16px}.scene-intro{font-size:13px;line-height:1.8}.dialogue{padding:13px 15px;margin:18px 0 22px}.dialogue p{font-size:12px}cite{font-size:7px}.decision-note{font-size:10px}.choice-button{min-height:73px;padding:13px 12px;gap:10px}.choice-button strong{font-size:12px}.choice-button small{font-size:9px}.choice-key{width:25px;height:27px}.choice-arrow{font-size:21px}.game-bottom{padding:10px 0 15px;gap:15px}.game-bottom>span{font-size:6px;letter-spacing:.3px;max-width:65%;line-height:1.7}.game-bottom .text-button{font-size:9px}.game-bottom i{padding:0 3px}
  .result-art img,.result-art.landscape-art img{height:185px}.approved-stamp{font-size:19px;top:22px;left:18px;padding:7px 13px}.result-eyebrow{font-size:8px;margin-top:0}.effect-pills{gap:5px;margin:17px 0}.effect-pills>span{font-size:9px;padding:6px 9px}.narrator p{font-size:12px}.badge-award{padding:13px}.next-button{margin-bottom:0;min-height:58px}.narrator{margin:20px 0}.mini-game,.voice-game{padding:15px;margin-top:16px}.rat-cell{height:65px}.mini-heading h2{font-size:26px}.voice-recipient>b{font-size:20px}.voice-duration{font-size:6px;gap:8px}.voice-game .choice-button strong{font-size:11px}.voice-send{font-size:11px;gap:15px}.jump-labels>b{padding-left:25px}.calm-button{font-size:10px}
  .ending-shell{padding:25px 25px 12px;max-width:540px}.midnight{font-size:8px;letter-spacing:1.1px;margin-bottom:25px}.ending-layout{display:flex;flex-direction:column;gap:35px;align-items:stretch}.ending-title{font-size:65px;letter-spacing:-.8px}.ending-rank{font-size:8px;letter-spacing:.8px;margin-bottom:16px}.ending-subtitle{font-size:17px}.ending-text{font-size:13px}.ending-stats{margin:20px 0;padding:17px 0;font-size:7px;letter-spacing:.6px}.birthday-photo{width:calc(100% - 20px);margin:0 auto 25px;padding:9px 9px 35px}.birthday-photo>img{height:310px;object-position:center 33%}.birthday-photo-age{font-size:130px;left:-17px;bottom:18px}.birthday-photo-note{font-size:9px;bottom:-23px}.ending-actions{flex-direction:column;gap:0;align-items:start;margin-top:30px}.ending-actions .text-button{font-size:10px}.ending-footnote{font-size:6px;letter-spacing:.8px;margin-top:20px}
  dialog{padding:22px 18px}.collection-header h2{font-size:29px}.collection-header .eyebrow{font-size:6px}.collection-header .icon-button{width:32px;height:32px}.collection-badge{padding:12px;gap:9px;min-height:115px}.collection-badge>span{font-size:22px;min-width:24px}.collection-badge strong{font-size:10px}.collection-badge p{font-size:8px}.badge-grid{gap:7px}.collection-summary{font-size:10px}
}
@media(max-width:359px){.home-layout{padding-left:20px;padding-right:20px}.home-title{font-size:71px}.edition-script{font-size:24px;margin-left:120px}.cover-frame>img{height:255px}.birthday-tag{font-size:7px}.topbar{padding-left:18px;padding-right:18px}.game-shell{padding-left:16px;padding-right:16px}.scene-title{font-size:41px}.stat-label{font-size:7px}.hud{gap:10px}.choice-button strong{font-size:11px}.badge-grid{grid-template-columns:1fr}.collection-badge{min-height:90px}.ending-title{font-size:58px}.game-facts{font-size:6px}.home-copy .eyebrow{font-size:7px}}
@media(prefers-color-scheme:dark){:root{--paper:#281e25;--surface:#34262e;--ink:#f7e6eb;--muted:#c2a4b0;--accent:#ff7599;--accent-ink:#32121d;--soft-accent:#51303f;--line:#583e4a;--line-strong:#896272;--shadow:rgba(9,3,7,.26)}.primary-button:hover{background:#ff92ae}.cover-sticker b{color:#a41e42}.photo-note{color:var(--ink)}.scene-number{text-shadow:2px 2px 0 var(--paper)}.approved-stamp{color:#c82851;border-color:#c82851}.birthday-photo-age{color:#e52d58}.cover-frame,.scene-art figure,.birthday-photo{background:var(--photo-paper)}}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}
  .t-stagger-line{transition:none!important}
  .t-stagger-line{opacity:1;transform:none;filter:none;will-change:auto}
  #jump-marker{transform:translateX(50%)!important}
  .confetti{display:none}
}
@media(hover:none){.choice-button:hover{transform:none;background:var(--surface)}.primary-button:hover{transform:none;background:var(--accent)}}
