body.cinematic{background:#d8c8ab}.cinematic .room{animation:room-arrive 2.4s cubic-bezier(.16,1,.3,1) both;transform-origin:46% 45%}.cinematic .room::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,#fff4ce24,transparent 45%,#152c2624);pointer-events:none}.cinematic header{background:transparent;border:0}.cinematic header .brand span,.cinematic .about-link,.cinematic #skip,.cinematic .private{display:none}.cinema-intro #welcome,.cinema-intro #leo-hello,.cinema-intro #leo-moment{display:none!important}.cinema-intro .stage{position:relative;display:block;height:calc(100dvh - 170px)}.cinema-intro .leo-zone{position:absolute;left:-3%;bottom:-130px;width:52%;height:calc(100% + 160px);animation:leo-enter 1.5s .25s cubic-bezier(.16,1,.3,1) both}.cinema-intro #leo{width:100%;height:100%}.cinema-intro .leo-label{bottom:115px}.cinema-arrival{position:absolute;left:49%;right:5%;top:50%;transform:translateY(-50%);max-height:100%;color:#233d31;text-shadow:0 1px 14px #fff8}.cinema-arrival h1{font-family:WenKai,serif;font-size:clamp(32px,4.4vw,66px);line-height:1.24;letter-spacing:-.04em;margin:0 0 24px}.cinema-kicker{font-size:12px;letter-spacing:.12em;color:#57634f;margin-bottom:22px}.cinema-mission{font-size:clamp(18px,2vw,26px);line-height:1.7;margin:0 0 28px}.cinema-arrival small{display:block;margin-top:18px;font-size:11px;color:#56634d}.cinema-begin{border:1px solid #fff9;background:#234d3dea;color:#fff;border-radius:50px;padding:18px 28px;font-size:18px;box-shadow:0 8px 28px #294c3426;cursor:pointer}.cinema-begin span{margin-left:30px}.cinema-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cinema-choices.grade-choices{grid-template-columns:repeat(3,1fr);gap:10px}.cinema-choices button{padding:16px 10px;border-radius:16px;border:1px solid #fff9;background:#ffffef75;color:#294535;backdrop-filter:blur(12px);box-shadow:0 5px 20px #58452a0b;cursor:pointer;font-size:17px;transition:transform .2s,background .2s,box-shadow .2s}.cinema-choices button:hover{background:#fffdf6df;transform:translateY(-3px);box-shadow:0 8px 22px #58452a1a}.cinema-choices button:active{transform:scale(.97)}.cinema-progress{display:flex;gap:8px;margin-bottom:25px}.cinema-progress i{width:35px;height:3px;background:#49664d30;border-radius:4px}.cinema-progress .lit{background:#4f7052}.cinema-hint,.cinema-voice-note{font-size:13px;color:#54604d}.cinema-hint{margin:-12px 0 22px}.cinema-voice-note{margin-top:20px}.cinema-intro footer{position:fixed;bottom:12px;left:48%;right:5%;width:auto;margin:0;z-index:5}.cinema-intro #record{width:100%;min-height:52px;font-size:15px}.cinema-intro #voice-hint,.cinema-intro .below-input{display:none}.cinema-intro footer #record svg{width:21px}.cinema-arrival.step-enter{animation:question-enter .5s cubic-bezier(.16,1,.3,1) both}@keyframes room-arrive{from{transform:scale(1.14);filter:brightness(.7) blur(4px)}to{transform:scale(1);filter:none}}@keyframes leo-enter{from{opacity:0;transform:translateX(-50px) rotate(-3deg) scale(.9)}to{opacity:1;transform:none}}@keyframes question-enter{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}@media(max-height:720px) and (min-width:701px){.cinema-arrival h1{font-size:40px;margin-bottom:18px}.cinema-choices button{padding:10px}.cinema-progress{margin-bottom:14px}.cinema-hint{margin-bottom:14px}.cinema-voice-note{margin-top:12px}.cinema-intro .stage{height:calc(100dvh - 145px)}}@media(max-width:700px){.cinema-intro .stage{height:calc(100dvh - 150px)}.cinema-intro .leo-zone{left:-28%;width:95%;height:62%;bottom:-100px;opacity:.95}.cinema-arrival{left:7%;right:7%;top:5%;transform:none;max-height:75%;z-index:3}.cinema-arrival h1{font-size:34px;max-width:100%;margin-bottom:16px}.cinema-kicker{margin:0 0 14px}.cinema-mission{font-size:19px;line-height:1.5}.cinema-choices button{font-size:14px;padding:11px 6px}.cinema-intro footer{left:41%;right:5%;bottom:24px}.cinema-intro #record{font-size:12px;padding:12px;min-height:48px}.cinema-voice-note{font-size:11px}.cinema-progress{margin-bottom:14px}.cinema-intro .leo-label{display:none}}@media(prefers-reduced-motion:reduce){.cinematic .room,.cinema-intro .leo-zone,.cinema-arrival.step-enter{animation:none}.cinema-choices button{transition:none}}
body.cinema-intro footer{left:49%;right:7%;bottom:14px;width:auto;margin:0;padding:0;background:transparent;border:0}.cinema-intro .leo-zone{left:0;width:43%;height:105%;bottom:-105px}.cinematic header>a:not(.brand){display:none}.cinematic header nav{margin-left:auto}.cinema-intro .leo-label{bottom:90px}
@media(max-width:700px){body.cinema-intro footer{left:43%;right:6%;bottom:24px;margin:0}.cinema-intro .leo-zone{left:-25%;width:95%;height:62%;bottom:-95px}}
.cinema-intro .stage::before{content:"";position:absolute;inset:-80px 0 -140px;pointer-events:none;background:radial-gradient(circle at 18% 29%,#fff6cd95 0 1px,transparent 2px),radial-gradient(circle at 38% 46%,#fff6cd80 0 1px,transparent 2px),radial-gradient(circle at 31% 70%,#fff6cd80 0 1px,transparent 2px),radial-gradient(circle at 63% 25%,#fff6cd80 0 1px,transparent 2px);background-size:360px 360px;animation:room-dust 18s linear infinite;opacity:.65}@keyframes room-dust{from{background-position:0 0}to{background-position:28px -90px}}@media(prefers-reduced-motion:reduce){.cinema-intro .stage::before{animation:none}}
@media(max-width:700px){body.cinema-intro .stage{display:block;padding:0;min-height:0}body.cinema-intro .leo-zone{position:absolute;top:auto;bottom:-110px;left:-75px;width:340px;height:410px;z-index:1}.cinema-arrival{top:4%;left:5%;right:5%;max-height:none;padding:20px;border:1px solid #fff6;border-radius:24px;background:#fff8e96e;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 35px #332b1710}.cinema-arrival h1{font-size:30px}.cinema-arrival .cinema-mission{font-size:18px;margin-bottom:18px}.cinema-arrival .cinema-kicker{font-size:10px}.cinema-arrival small{font-size:10px;margin-top:12px}.cinema-begin{font-size:16px;padding:14px 20px}.cinema-choices button{min-height:42px}.cinema-choices{gap:8px}.cinema-choices.grade-choices{gap:7px}.cinema-hint{font-size:12px;margin-bottom:14px}.cinema-voice-note{font-size:10px;margin-bottom:0}body.cinema-intro footer{left:46%;right:6%;bottom:28px}body.cinema-intro #record{display:flex;gap:6px;padding:12px 8px;font-size:12px;white-space:normal;line-height:1.4}body.cinema-intro #record svg{flex:none;width:17px}.cinema-intro .music-toggle{right:10px;bottom:6px;width:32px;height:32px;min-height:32px}}
.cinematic:not(.leo-ready) #leo{opacity:0}.cinematic.leo-ready #leo{animation:avatar-arrive 1.25s cubic-bezier(.16,1,.3,1) both}@keyframes avatar-arrive{from{opacity:0;transform:translateY(22px) rotate(-2deg)}to{opacity:1;transform:none}}@media(min-width:701px){.cinema-arrival:has(.cinema-mission) h1{font-size:clamp(42px,4.4vw,64px)}}@media(prefers-reduced-motion:reduce){.cinematic.leo-ready #leo{animation:none}}
.cinema-feedback{font-size:12px;line-height:1.4;color:#37503f;margin:10px 0 0}

/* Hold the curtain until the GLB has rendered its first complete frame. */
.cinematic.cinema-loading .room{animation:none;transform:scale(1.035);filter:brightness(.76)}
.cinematic.cinema-loading .leo-zone{animation:none}
.cinematic.cinema-loading #leo{opacity:0}
#cinema-preflight{position:absolute;left:50%;top:46%;z-index:4;transform:translate(-50%,-50%);width:max-content;max-width:calc(100vw - 40px);margin:0;padding:13px 23px;border-radius:30px;background:#f9f2dfde;color:#234535;font-size:14px;letter-spacing:.04em;text-align:center;box-shadow:0 10px 30px #18342523}
.cinematic.cinema-loading #leo-loading span{visibility:hidden}
.cinematic:not(.cinema-reveal) #leo{opacity:0;animation:none}
.cinematic.cinema-reveal .room{animation:room-curtain 3.2s cubic-bezier(.16,1,.3,1) both}
.cinematic.cinema-reveal .leo-zone{animation:leo-camera 2.8s cubic-bezier(.16,1,.3,1) both;transform-origin:55% 78%}
.cinematic.cinema-reveal.leo-ready #leo{animation:leo-materialize 2.5s .28s cubic-bezier(.16,1,.3,1) both}
.cinematic.cinema-reveal .stage::after{content:"";position:absolute;inset:-100px 0 -130px;z-index:2;pointer-events:none;background:linear-gradient(95deg,#fff6df1c 5%,#f8e9c992 30%,#fff7e960 45%,transparent 75%);animation:light-curtain 2.8s ease-out both}
.cinematic.cinema-reveal .cinema-arrival{z-index:3;animation:arrival-copy 1.2s .6s ease-out both}
@keyframes room-curtain{from{transform:scale(1.075);filter:brightness(.7) blur(3px)}to{transform:scale(1);filter:none}}
@keyframes leo-camera{from{opacity:.5;transform:translateX(-5%) scale(.94)}to{opacity:1;transform:none}}
@keyframes leo-materialize{0%{opacity:0;filter:brightness(.28) blur(12px);transform:translateY(24px) scale(.975)}55%{opacity:.63;filter:brightness(.73) blur(3px)}100%{opacity:1;filter:none;transform:none}}
@keyframes light-curtain{0%{opacity:.7;transform:translateX(-10%)}70%{opacity:.4}100%{opacity:0;transform:translateX(15%)}}
@keyframes arrival-copy{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.cinematic.cinema-reveal .room,.cinematic.cinema-reveal .leo-zone,.cinematic.cinema-reveal.leo-ready #leo,.cinematic.cinema-reveal .stage::after,.cinematic.cinema-reveal .cinema-arrival{animation:none;filter:none}.cinematic.cinema-reveal .room,.cinematic.cinema-reveal .leo-zone,.cinematic.cinema-reveal.leo-ready #leo{transform:none}.cinematic.cinema-reveal .stage::after{display:none}}
@media(max-width:700px){body.cinema-intro footer{left:10px;right:10px;bottom:22px;display:flex;gap:7px}body.cinema-intro #voice-control{flex:1;min-width:0;gap:7px}body.cinema-intro #conversation-toggle{flex:none;padding:9px 10px;font-size:11px}body.cinema-intro #voice-control #record{flex:1;min-width:0;width:auto}}
