/* Full-screen opening art, with readable narration anchored below the faces. */
.game-title{position:relative;isolation:isolate;height:100dvh;min-height:420px;max-width:600px;margin:auto;background:#17141f;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:clamp(42px,9dvh,90px) 24px max(22px,env(safe-area-inset-bottom))}
.game-title-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.game-title::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#17141f77,transparent 42%,#17141f30 65%,#17141ff2)}
.game-title-heading{text-align:center;text-shadow:0 2px 18px #14121d}.game-title-heading p{font-size:.75rem;letter-spacing:.35em;margin:0 0 18px;color:#ede2ce}.game-title h1{font-family:var(--serif);font-weight:500;font-size:clamp(2.2rem,10vw,3.2rem);letter-spacing:.12em;margin:0;color:#fff7e9}
.game-title-music{position:absolute;top:max(16px,env(safe-area-inset-top));right:16px;z-index:2;display:flex;align-items:center;gap:6px;min-height:40px;padding:6px 12px;border:1px solid #f5e5d59c;border-radius:999px;background:#1f1928bf;color:#fff5e8;font:inherit;font-size:.82rem;backdrop-filter:blur(8px)}.game-title-music .icon{width:17px;height:17px}.game-title-music[aria-pressed="true"]{background:#463047e8;border-color:#f4d6c3}.game-title-music:focus-visible{outline:2px solid #fff;outline-offset:3px}
.game-title-actions{display:grid;gap:10px;width:100%;max-width:360px}.game-title-actions .button{min-height:50px;width:100%;position:relative;flex-wrap:wrap}.game-title-actions .button small{width:100%;font-size:.75rem;font-weight:400;opacity:.8}.game-title-actions .text-button{justify-content:center;color:#ede2dc;min-height:40px}
/* One visual moment per saved scene; controls never wait for animation. */
.prologue-page{position:relative;isolation:isolate;min-height:100dvh;height:100dvh;max-width:600px;margin:auto;padding:0;display:grid;grid-template-rows:auto minmax(130px,1fr) auto auto;background:#17131d;overflow:auto}
.prologue-art{position:absolute;inset:0;z-index:-2;overflow:hidden;background:#17131d}.prologue-art img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 24%;transform-origin:50% 32%}
.prologue-page::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(#17131da6,transparent 26%,transparent 44%,#17131dbf 69%,#17131dfa)}
.prologue-header{grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 10px;align-items:center;padding:12px 16px;color:#fff6e8;text-shadow:0 1px 8px #000}.prologue-header>div{grid-row:1/3;min-width:0}.prologue-header p{font-size:.875rem;margin:0 0 3px;color:#ecd7b8}.prologue-header h1{font:500 1.2rem/1.4 var(--serif);margin:0;text-wrap:balance}.prologue-header .text-button{font-size:.875rem;min-height:40px;padding:4px;color:#fff3e9}.prologue-header>span{font-size:.75rem;text-align:right;color:#ded1d9}
.prologue-copy{grid-row:3;padding:14px 18px 0;color:#fff5ed;font-size:1rem;line-height:1.65;line-break:strict;overflow-wrap:anywhere;background:linear-gradient(transparent,#17131db8 24%);text-shadow:0 1px 5px #000}.prologue-copy p{margin:0}.prologue-narration{max-width:32em}.prologue-speech{position:relative;margin:13px 0 0;padding:11px 14px;background:#f8eaddec;border:1px solid #fff4e5;border-radius:15px 15px 15px 3px;color:#342432;text-shadow:none;box-shadow:0 4px 20px #0003}.prologue-speech>span{display:block;margin-bottom:3px;color:#785750;font-size:.875rem}.prologue-speech p{font-weight:500}.prologue-note{margin-top:14px!important;color:#e7dce8}.prologue-demand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding:9px 0;border-top:1px solid #f1bcc15e}.prologue-demand span{font-size:.875rem;color:#f0c5c8}.prologue-demand strong{font-size:2rem;font-weight:650;letter-spacing:.03em;color:#ffddda;font-variant-numeric:tabular-nums}
.prologue-actions{grid-row:4;display:flex;align-items:center;gap:10px;margin:0;padding:15px 18px max(18px,env(safe-area-inset-bottom));background:#17131db8}.prologue-actions .button{min-height:46px;padding:10px 12px;margin:0;font-size:1rem}.prologue-actions .primary{flex:1}.prologue-actions .quiet{flex:0 0 46px}
.prologue-page[data-opening-scene=loss] .prologue-copy{padding-bottom:12px}.prologue-page[data-opening-scene=loss] .prologue-note{font-family:var(--serif);font-size:1.2rem;line-height:1.7;margin-top:22px!important}.prologue-page[data-opening-scene=demand] .prologue-speech{background:#30212cef;color:#fff0eb;border-color:#976476}.prologue-page[data-opening-scene=demand] .prologue-speech>span{color:#efbbc2}.prologue-page[data-opening-scene=decision] .prologue-speech{margin-left:20px;border-radius:15px 15px 3px 15px;background:#d8e4e8f2;color:#243744;border-color:#e6f3f4}.prologue-page[data-opening-scene=decision] .prologue-speech>span{color:#496572}
@media(prefers-reduced-motion:no-preference){.prologue-page.has-motion .prologue-art img{animation:opening-camera 9s ease-out both}.prologue-page.has-motion .prologue-copy{animation:opening-enter .38s ease-out both}.prologue-page.has-motion .prologue-speech{animation:opening-enter .5s ease-out both}.prologue-page.has-motion .prologue-demand{animation:opening-enter .55s ease-out both}}
@keyframes opening-camera{from{transform:scale(1)}to{transform:scale(1.035)}}@keyframes opening-enter{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:360px){.prologue-header{padding:8px 12px}.prologue-header h1{font-size:1.05rem}.prologue-copy{padding:10px 14px 0;line-height:1.55}.prologue-speech{margin-top:10px;padding:8px 11px}.prologue-note{margin-top:8px!important}.prologue-demand{margin-top:8px;padding:5px 0}.prologue-demand strong{font-size:1.8rem}.prologue-actions{padding:12px 12px max(12px,env(safe-area-inset-bottom));gap:8px}}
@media(max-height:450px){.prologue-page{height:auto;min-height:100dvh;grid-template-rows:auto 160px auto auto}.game-title{min-height:420px}}

/* Opening presentation is owned here: no per-release font overrides. */
.prologue-page{grid-template-rows:auto minmax(90px,1fr) auto auto;background:#211b28;font-family:var(--sans)}
.prologue-art{position:relative;grid-row:2;grid-column:1;z-index:0;isolation:isolate;background:#211b28;display:grid;place-items:center;min-height:0}
.prologue-art::before{content:"";position:absolute;inset:-15px;background-image:var(--prologue-image);background-size:cover;background-position:center;filter:blur(20px) brightness(.5);pointer-events:none}
.prologue-art img{position:relative;z-index:1;height:auto;max-height:100%;object-fit:contain;object-position:center;transform:none;animation:none;mask-image:linear-gradient(#000 0 72%,transparent 100%)}
.prologue-art::after{content:"";position:absolute;inset:68% 0 0;z-index:2;pointer-events:none;background:linear-gradient(transparent,#211b28)}
.prologue-page::after{display:none}
.prologue-header{background:#201925;z-index:1}
.prologue-copy{position:relative;z-index:1;margin-top:-16px;padding:22px 20px 0;background:linear-gradient(transparent,#211b28 24px);font:500 1rem/1.7 var(--sans);text-shadow:0 1px 5px #0007}
.prologue-speech{margin-top:12px;padding:10px 14px;font-family:var(--sans)}
.prologue-speech p{font-weight:600;font-size:1.05rem;line-height:1.7}
.prologue-actions{background:#211b28}
.prologue-page[data-opening-scene=loss] .prologue-note{font:700 1.2rem/1.8 var(--sans);color:#fff2d6;margin:22px 0 8px!important;border-top:1px solid #b7a184;padding-top:18px}
.prologue-page.has-motion .prologue-art img{animation:none}
@media(max-width:360px){.prologue-copy{padding:20px 14px 0;font-size:.94rem;line-height:1.6}.prologue-speech{padding:9px 12px}.prologue-speech p{font-size:1rem}.prologue-actions{padding:12px 14px}}
/* Title controls stay above the fixed illustration and local breeze. */
.game-title-heading,.game-title-actions{position:relative;z-index:1}
/* Camera is fixed. Canvas deforms only hair tips and cloth hems. */
.title-breeze{position:absolute;inset:0;width:100%;height:100%;z-index:-2;pointer-events:none}
.breeze-ready .game-title-art{opacity:0}
.title-birds{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.title-bird{position:absolute;width:24px;height:12px;top:20%;left:-12%;opacity:0;color:#26313a}
.title-bird svg{width:100%;height:100%;overflow:visible;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round}
.game-title.has-motion .title-bird{animation:bird-cross 24s linear infinite}
.game-title.has-motion .bird-1{top:22%;width:18px;animation-delay:1.6s}.game-title.has-motion .bird-2{top:19%;width:15px;animation-delay:2.3s}
.game-title.has-motion .wing-left{transform-origin:20px 13px;animation:bird-wing-left .9s ease-in-out infinite alternate}
.game-title.has-motion .wing-right{transform-origin:20px 13px;animation:bird-wing-right .9s ease-in-out infinite alternate}
@keyframes bird-cross{0%{left:-12%;opacity:0;transform:translateY(10px)}4%{opacity:.7}75%{left:112%;opacity:.7;transform:translateY(-35px)}76%,100%{left:112%;opacity:0}}
@keyframes bird-wing-left{from{transform:rotate(-8deg) scaleY(1)}to{transform:rotate(24deg) scaleY(.3)}}
@keyframes bird-wing-right{from{transform:rotate(8deg) scaleY(1)}to{transform:rotate(-24deg) scaleY(.3)}}
@media(prefers-reduced-motion:reduce){.title-birds{display:none}.game-title.has-motion .title-bird,.game-title.has-motion .wing-left,.game-title.has-motion .wing-right{animation:none}}
