:root{color:#ede8dc;font-synthesis:none;--bg:#07090c;--ink:#11151a;--paper:#ede8dc;--gold:#c7a15a;--blue:#6c9ba9;background:#07090c;font-family:Noto Serif SC,Songti SC,SimSun,serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-width:320px;min-height:100%;margin:0}body{overflow-x:hidden}button,input{font:inherit}button{color:inherit}.app-shell{background:var(--bg);min-height:100svh}.scene{isolation:isolate;min-height:100svh;position:relative;overflow:hidden}.scene-image,.scene-shade,.fog,.stars{position:absolute;inset:0}.login-scene .scene-image{background:url(/images/01-login-bg.webp) 50% 48%/cover no-repeat;animation:24s ease-in-out infinite alternate slowPush}.scene-shade{z-index:1;background:linear-gradient(90deg,#03060ae0,#060a1061 45%,#020509c7),linear-gradient(#03060a61,#0000 55%,#010305cc)}.fog{z-index:2;opacity:.22;filter:blur(35px);background:radial-gradient(at 20% 55%,#a0becd73,#0000 45%),radial-gradient(at 80% 40%,#789baf47,#0000 40%);animation:28s ease-in-out infinite alternate fogDrift}.stars{z-index:3;opacity:.45;background-image:radial-gradient(circle,#e5ece5e6 0 1px,#0000 1.6px);background-size:83px 91px;animation:7s ease-in-out infinite starBreath;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.login-copy{z-index:4;flex-direction:column;justify-content:center;align-items:flex-start;width:min(90%,520px);min-height:100svh;margin-left:clamp(6vw,13vw,260px);padding:64px 0;display:flex;position:relative}.eyebrow{color:var(--gold);letter-spacing:.55em;margin:0 0 16px;font-size:.78rem}h1{letter-spacing:.12em;text-shadow:0 4px 32px #000000a6;margin:0 0 38px;font-size:clamp(2rem,4vw,4.3rem);font-weight:500;line-height:1.35}.seal-card{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);clip-path:polygon(0 8px,8px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 8px),calc(100% - 8px) 100%,18px 100%,0 calc(100% - 18px));background:linear-gradient(135deg,#090d12b8,#0b11176e);border:1px solid #c7a15a6b;width:min(100%,410px);padding:26px 28px 22px;box-shadow:0 24px 80px #00000059,inset 0 0 0 1px #ffffff06}.seal-card label{margin-bottom:19px;display:block}.seal-card label span{color:#ede8dca3;letter-spacing:.3em;margin-bottom:8px;font-size:.76rem;display:block}.seal-card input{width:100%;color:var(--paper);caret-color:var(--gold);background:0 0;border:0;border-bottom:1px solid #c7a15a73;outline:0;padding:10px 2px 9px}.seal-card input:focus{border-color:var(--gold);box-shadow:0 6px 18px -12px var(--gold)}.seal-card button{cursor:pointer;letter-spacing:.35em;background:#8d692f1f;border:1px solid #c7a15a99;width:100%;margin-top:5px;padding:12px 20px;transition:background .35s,border-color .35s}.seal-card button:hover,.seal-card button:focus-visible{border-color:var(--gold);background:#c7a15a38}.seal-card button:disabled{opacity:.55;cursor:wait}.ink-error{color:#cbb996;text-align:center;letter-spacing:.12em;min-height:20px;margin:14px 0 0;font-size:.78rem}.corner-mark{z-index:4;color:#ede8dc6b;letter-spacing:.34em;writing-mode:vertical-rl;margin:0;font-size:.7rem;position:absolute;bottom:24px;right:32px}.loading{z-index:100;background:#07090c;place-content:center;justify-items:center;gap:18px;display:grid;position:fixed;inset:0}.loading p{color:#ede8dcb3;letter-spacing:.35em;margin:0;font-size:.84rem}.ink-ring{aspect-ratio:1;border:2px solid #c7a15a33;border-top-color:var(--gold);border-radius:48% 52% 46% 54%;width:52px;animation:1.7s linear infinite spin}@keyframes slowPush{to{transform:scale(1.035)}}@keyframes fogDrift{to{transform:translate(4%,-2%)scale(1.08)}}@keyframes starBreath{50%{opacity:.72}}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:700px){.cinema-image{background-image:var(--mobile-image)}.login-scene .scene-image{background-position:62%}.login-copy{justify-content:flex-end;width:min(88%,430px);margin:0 auto;padding:88px 0 74px}.login-copy h1{margin-bottom:28px;font-size:clamp(1.85rem,8vw,2.7rem)}.seal-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:22px 20px 18px}.stars{background-size:115px 129px}.corner-mark{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.scene-transition,.absolute-fill,.cinema-bg{position:absolute;inset:0}.scene-transition{min-height:100svh}.scene-announcer{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:fixed;overflow:hidden}.cinema-bg{z-index:-1;background:#080b0f;overflow:hidden}.cinema-image{background-image:var(--scene-image);background-size:cover;background-position:var(--scene-position);animation:24s ease-in-out infinite alternate slowPush;position:absolute;inset:-2%}.cinema-vignette{z-index:2;background:radial-gradient(#0000 30%,#0103066b 75%,#010306d1),linear-gradient(#03050840,#0000 62%,#020407bf);position:absolute;inset:0}.atmosphere{z-index:5;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.center-copy,.split-copy,.journey-copy,.trial-panel,.wish-copy,.final-copy{z-index:10;position:relative}.center-copy{text-align:center;place-content:center;justify-items:center;width:min(90%,760px);min-height:100svh;margin:auto;padding:70px 0;display:grid}.center-copy.compact{gap:10px}.center-copy h2,.split-copy h2,.journey-copy h2,.trial-panel h2,.wish-copy h2{letter-spacing:.15em;margin:.2em 0 .7em;font-size:clamp(2rem,4vw,4.6rem);font-weight:500;line-height:1.35}.center-copy p,.split-copy p,.journey-copy p,.trial-panel p,.wish-copy p,.final-copy p{letter-spacing:.16em;line-height:2}.chapter-no{color:var(--gold);text-transform:uppercase;font-size:.75rem;letter-spacing:.55em!important}.ink-button{color:var(--paper);cursor:pointer;letter-spacing:.28em;background:0 0;border:0;border-bottom:1px solid #c7a15a9e;margin-top:20px;padding:12px 4px 10px;transition:color .35s,border-color .35s;position:relative}.ink-button span{color:var(--gold);margin-left:16px;transition:transform .35s;display:inline-block}.ink-button:hover,.ink-button:focus-visible{color:#fff7e2;border-color:var(--gold);outline:0}.ink-button:hover span{transform:translate(7px)}.audio-control{z-index:80;right:max(18px, env(safe-area-inset-right));top:max(18px, env(safe-area-inset-top));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#05080c8c;border:1px solid #c7a15a40;align-items:center;display:flex;position:fixed}.audio-control button{color:#ede8dcad;cursor:pointer;letter-spacing:.18em;background:0 0;border:0;padding:8px 10px;font-size:.66rem}.audio-control button:first-child{border-right:1px solid #c7a15a2e;align-items:center;gap:7px;display:flex}.sound-rune{aspect-ratio:1;width:24px;color:var(--blue);border:1px solid #6c9ba959;border-radius:50%;place-items:center;display:grid}.sound-rune.playing{animation:2.2s infinite starBreath;box-shadow:0 0 18px #6c9ba947}.global-progress{z-index:90;background:#ffffff0f;height:2px;position:fixed;bottom:0;left:0;right:0}.global-progress i{background:linear-gradient(90deg, var(--blue), var(--gold));height:100%;transition:width 1s;display:block;box-shadow:0 0 12px #c7a15a66}.sword-scene:after{content:"";z-index:3;opacity:1;background:#020305;transition:opacity 1.2s;position:absolute;inset:0}.sword-scene.phase-1:after{opacity:.7}.sword-scene.phase-2:after,.sword-scene.phase-3:after,.sword-scene.phase-4:after{opacity:.3}.sword-flash{z-index:6;opacity:0;background:linear-gradient(90deg,#0000,#d4ad64,#fff5c9,#0000);width:25%;height:2px;position:absolute;top:50%;left:-30%;transform:rotate(-8deg);box-shadow:0 0 18px #c7a15a,0 0 46px #c7a15aa6}.phase-2 .sword-flash{animation:1.3s cubic-bezier(.2,.7,.2,1) forwards swordAcross}.sword-scene .center-copy{text-shadow:0 4px 30px #000}@keyframes swordAcross{0%{opacity:0;width:25%;left:-30%}20%{opacity:1}70%{opacity:.9;width:65%}to{opacity:0;width:20%;left:105%}}.split-copy{flex-direction:column;justify-content:center;width:min(84%,650px);min-height:100svh;padding:64px 0;display:flex}.left-copy{margin-left:clamp(7vw,13vw,240px)}.paper-scene .cinema-vignette{background:linear-gradient(90deg,#05070ac2,#0406091f 62%,#0406098c),linear-gradient(#0000 55%,#010204cc)}.date-title{color:var(--gold);letter-spacing:.1em!important;font-size:clamp(2.6rem,6vw,6.7rem)!important}.voice-prelude .cinema-image{filter:saturate(.55)brightness(.42)hue-rotate(4deg)}.voice-prelude .cinema-vignette{background:radial-gradient(circle,#0e1a2238,#020508de 72%)}.prose-copy{gap:3px}.prose-copy h2{color:#e7edf0;margin-top:0}.audio-ink{--audio-level:.1;z-index:4;width:calc(240px + var(--audio-level) * 280px);aspect-ratio:1;transform:translate(-50%,-50%) scale(calc(.8 + var(--audio-level) * .32));border:1px solid rgba(108,155,169,calc(.14 + var(--audio-level)));box-shadow:0 0 calc(45px + var(--audio-level) * 130px) rgba(72,138,164,calc(.1 + var(--audio-level) * .26)), inset 0 0 80px #2b586d14;border-radius:43% 57% 54% 46%;transition:transform .15s,opacity .15s;animation:9s ease-in-out infinite inkBreathe;position:absolute;top:50%;left:50%}.audio-ink:before,.audio-ink:after{content:"";border:1px solid #c7a15a1a;border-radius:57% 43% 48% 52%;position:absolute;inset:12%;transform:rotate(37deg)}.audio-ink:after{border-color:#6c9ba92e;inset:27%;transform:rotate(-19deg)}@keyframes inkBreathe{50%{border-radius:56% 44% 45% 55%}}.journey-scene .cinema-vignette{background:linear-gradient(90deg,#030508c7,#04060814 48%,#030508b8),linear-gradient(#0000 45%,#020407d1)}.journey-copy{text-shadow:0 3px 24px #000c;flex-direction:column;justify-content:center;width:min(88%,600px);min-height:100svh;padding:74px 0;transition:margin 1s;display:flex}.journey-copy.align-right{margin-left:auto;margin-right:clamp(7vw,13vw,240px)}.journey-copy.align-left{margin-left:clamp(7vw,13vw,240px)}.journey-copy p:not(.chapter-no){font-size:clamp(1rem,1.45vw,1.3rem)}.journey-copy .vow-line{color:#f3dca9;letter-spacing:.22em;font-size:clamp(1.55rem,3vw,3rem)!important}.journey-progress{gap:8px;margin-top:22px;display:flex}.journey-progress span{background:#ffffff2e;width:26px;height:2px}.journey-progress span.active{background:var(--gold);box-shadow:0 0 10px #c7a15a80}.journey-小镇 .cinema-vignette{background:linear-gradient(90deg,#0808068c,#0707041f 55%,#0605039e),linear-gradient(#0000,#050402a6)}.book-scene{perspective:1200px}.book-scene .cinema-image{filter:blur(1px)brightness(.34);transform:scale(1.04)}.book-dim{background:#03040561;position:absolute;inset:0}.book-wrap{z-index:10;perspective:1200px;place-items:center;min-height:100svh;padding:70px 20px;display:grid;position:relative}.book-cover,.book-page{color:#302b24;text-align:center;background:linear-gradient(90deg,#53442b1c,#0000 8% 92%,#53442b1f),#e9e1cf;border:1px solid #c3b795;flex-direction:column;justify-content:center;align-items:center;width:min(88vw,680px);min-height:min(72vh,690px);padding:clamp(36px,6vw,76px);display:flex;box-shadow:0 40px 100px #00000094,inset 18px 0 40px #5c442214}.book-cover{color:var(--paper);background:linear-gradient(135deg,#c7a15a14,#0000 40%),#14191c;border-color:#c7a15a66}.book-cover:before{content:"";pointer-events:none;border:1px solid #c7a15a47;position:absolute;inset:18px}.book-cover>span{color:var(--gold);letter-spacing:.55em;font-size:.76rem}.book-cover h2{letter-spacing:.16em;font-size:clamp(1.8rem,4vw,3.4rem);font-weight:500;line-height:1.5}.book-cover i{color:#ede8dc8c}.book-cover p{letter-spacing:.22em;font-size:.8rem}.book-page{text-align:left;align-items:stretch}.book-page header{color:#7e6035;letter-spacing:.25em;border-bottom:1px solid #3f342540;justify-content:space-between;padding-bottom:15px;display:flex}.book-page header small{color:#8f8679;letter-spacing:.08em}.page-text{flex-direction:column;flex:1;justify-content:center;padding:30px 4%;display:flex}.page-text p{letter-spacing:.12em;margin:.55em 0;font-size:clamp(1rem,1.8vw,1.3rem);line-height:1.8}.book-page .ink-button{color:#403729;align-self:center}.crossed{color:#736b60;position:relative}.crossed:after{content:"";background:#272421;height:4px;position:absolute;top:55%;left:-3%;right:45%;transform:rotate(-3deg)}.unfinished{color:#7a422b;font-size:clamp(2.2rem,6vw,5rem)!important}.daily-scene{color:#ece6da;background:#101419}.paper-grain{background:radial-gradient(circle at 28% 30%,#6c9ba91f,#0000 38%),radial-gradient(circle at 72% 70%,#c7a15a1c,#0000 34%),repeating-linear-gradient(7deg,#0000 0 24px,#ffffff03 25px 26px);position:absolute;inset:0}.sidequest-wrap{z-index:10;flex-direction:column;justify-content:center;width:min(88%,800px);min-height:100svh;margin:auto;padding:70px 0;display:flex;position:relative}.quest-head{color:var(--gold);letter-spacing:.3em;border-bottom:1px solid #c7a15a40;justify-content:space-between;padding-bottom:12px;font-size:.72rem;display:flex}.quest-head b{color:#ede8dc73;font-weight:400}.quest-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:560px;display:flex}.quest-card h2{letter-spacing:.15em;font-size:clamp(2rem,5vw,4.7rem);font-weight:500}.quest-card h3{letter-spacing:.12em;font-size:clamp(1.25rem,2.6vw,2rem);font-weight:500;line-height:1.7}.quest-card p{letter-spacing:.1em;line-height:1.8}.quest-label{color:var(--blue);letter-spacing:.5em!important}.loading-line{color:#ede8dc70;animation:1.8s infinite starBreath}.phone-feed{background:#02050742;border:1px solid #6c9ba933;flex-direction:column;justify-content:center;gap:12px;width:min(82vw,340px);height:260px;margin:18px;padding:18px;display:flex;overflow:hidden}.phone-feed div{opacity:.18;transition:all .55s;transform:scale(.92)}.phone-feed div.past{opacity:.3;transform:translateY(-4px)scale(.95)}.phone-feed div.current{opacity:1;color:#fff;text-shadow:0 0 18px #6c9ba980;transform:scale(1.08)}.choice-row{flex-wrap:wrap;justify-content:center;gap:10px;margin:22px 0;display:flex}.choice-row button,.record-actions button,.wish-actions button{color:var(--paper);cursor:pointer;letter-spacing:.08em;background:#c7a15a0f;border:1px solid #c7a15a59;padding:11px 16px}.choice-row button:hover,.record-actions button:hover,.wish-actions button:hover{background:#c7a15a2b}.result-line{color:#d9bf8c}.recording-joke p{color:#ede8dcbf;margin:.3em 0}.recording-joke span{color:var(--gold);margin-top:26px}.mini-sword{background:linear-gradient(90deg,#0000,#e9d3a5,#c7a15a,#0000);width:min(75%,420px);height:2px;margin:20px;animation:1.3s swordNudge;transform:rotate(-6deg);box-shadow:0 0 18px #c7a15a8c}@keyframes swordNudge{0%{opacity:0;transform:translate(-80px)rotate(-6deg)}}.floating-bullets{z-index:6;pointer-events:none;position:absolute;inset:0;overflow:hidden}.floating-bullets span{white-space:nowrap;color:#ede8dc38;font-size:.75rem;animation:13.5s linear infinite bulletDrift;position:absolute;top:18%;left:100%}.floating-bullets span:nth-child(2){top:74%}.floating-bullets span:nth-child(3){top:48%}@keyframes bulletDrift{0%,8%{opacity:0;left:100%}15%{opacity:1}40%,to{opacity:0;left:-40%}}.path-scene .cinema-image,.resume-scene .cinema-image{filter:brightness(.27)saturate(.42)}.path-scene .cinema-vignette,.resume-scene .cinema-vignette{background:radial-gradient(circle,#080c0e29,#010305e6 82%)}.path-wrap{z-index:10;text-align:center;place-content:center;width:min(90%,900px);min-height:100svh;margin:auto;padding:70px 0;display:grid;position:relative}.path-wrap h2{letter-spacing:.14em;margin:.2em 0 .5em;font-size:clamp(2rem,4.8vw,4.6rem)}.path-wrap>div>p:not(.chapter-no){color:#ede8daad;line-height:2}.path-options{grid-template-columns:repeat(2,1fr);gap:18px;margin-top:clamp(32px,5vw,56px);display:grid}.path-options button{min-height:210px;color:var(--paper);cursor:pointer;background:linear-gradient(145deg,#111619d9,#05080a8f);border:1px solid #c7a15a47;flex-direction:column;justify-content:center;align-items:center;gap:11px;padding:34px 28px;transition:transform .6s,border-color .6s,background .6s;display:flex;position:relative}.path-options button:hover,.path-options button:focus-visible{background:linear-gradient(145deg,#382b169e,#070a0cad);border-color:#c7a15ab3;transform:translateY(-5px)}.path-options span{color:#edddb8;letter-spacing:.18em;font-size:1.35rem}.path-options b{color:var(--gold);letter-spacing:.12em;font-size:.8rem;font-weight:400}.path-options small{color:#ede8da94;line-height:1.7}.path-options i{color:var(--gold);letter-spacing:.12em;border:1px solid;padding:3px 7px;font-size:.62rem;font-style:normal;position:absolute;top:13px;right:13px;transform:rotate(3deg)}.resume-card{z-index:10;text-align:center;place-content:center;width:min(88%,680px);min-height:100svh;margin:auto;display:grid;position:relative}.resume-card h2{font-size:clamp(1.8rem,4vw,3.5rem)}.resume-card strong{color:var(--gold);letter-spacing:.2em;margin:22px 0 34px;font-size:clamp(1.5rem,3vw,2.6rem);font-weight:400;display:block}.resume-actions{justify-content:center;align-items:center;gap:18px;display:flex}.resume-actions>button:not(.ink-button){color:#ede8da9e;cursor:pointer;letter-spacing:.12em;background:0 0;border:0;border-bottom:1px solid #ede8da40;padding:10px 14px}.seen-scene .cinema-image{filter:brightness(.24)saturate(.45)contrast(1.08)}.seen-scene .cinema-vignette{background:radial-gradient(circle at 50% 45%,#1014162e,#010305eb 82%)}.seen-shade{z-index:3;background:linear-gradient(90deg,#00000057,#0000 40%,#00000040);position:absolute;inset:0}.seen-wrap{z-index:10;text-align:center;place-items:center;width:min(90%,920px);min-height:100svh;margin:auto;padding:70px 0;display:grid;position:relative}.seen-marks{width:100%}.seen-marks h2{letter-spacing:.14em;margin:.25em 0 .55em;font-size:clamp(2rem,4.6vw,4.8rem)}.seen-intro{color:#ede8dab8;letter-spacing:.12em;line-height:2}.mark-grid{grid-template-columns:repeat(3,1fr);gap:18px;width:100%;margin:clamp(34px,5vw,58px) 0 38px;display:grid}.memory-mark{min-height:172px;color:var(--paper);letter-spacing:.14em;background:linear-gradient(145deg,#0e1214c7,#05080a6b);border:1px solid #c7a15a47;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px 18px;line-height:1.8;transition:border-color .7s,background .7s,transform .7s;display:flex;box-shadow:inset 0 0 50px #c7a15a08,0 24px 70px #00000042}.memory-mark:hover,.memory-mark:focus-visible{border-color:#c7a15ab8;transform:translateY(-4px)}.memory-mark i{width:34px;height:34px;color:var(--gold);border:1px solid;place-items:center;font-size:.76rem;font-style:normal;display:grid;transform:rotate(45deg)}.memory-mark i:first-letter{transform:rotate(-45deg)}.memory-mark.opened{background:linear-gradient(145deg,#382b1694,#080b0db8);border-color:#c7a15a94}.memory-mark.opened span{color:#f1dfb5}.independent-letter{color:#332c22;background:linear-gradient(90deg,#694e231a,#0000 9% 91%,#694e231f),#e9e0cc;border:1px solid #bda974;width:min(92%,760px);padding:clamp(34px,6vw,72px);box-shadow:0 40px 110px #000000a6,inset 0 0 80px #65491e17}.letter-kicker{color:#8a692d;letter-spacing:.32em;margin-bottom:28px;font-size:.83rem;display:block}.independent-letter p{letter-spacing:.08em;max-width:600px;margin:.8em auto;line-height:2}.independent-letter .letter-emphasis{color:#6e4918;margin-top:1.25em;font-size:clamp(1.35rem,2.8vw,2rem);font-weight:600}.independent-letter .ink-button{color:#49381f;border-color:#5339157a}.light-for-you{color:#7d5a22;letter-spacing:.12em;justify-content:center;align-items:center;gap:16px;margin:34px 0 16px;display:flex}.light-for-you i{background:#d4a545;border-radius:50%;width:9px;height:9px;animation:2.8s ease-in-out infinite lightPulse;box-shadow:0 0 12px #d4a545,0 0 34px #d4a545bf}@keyframes lightPulse{50%{transform:scale(1.45);box-shadow:0 0 18px #f2cb73,0 0 58px #d4a545e6}}.trial-scene .cinema-image{filter:brightness(.45)saturate(.7)}.trial-scene .cinema-vignette{background:linear-gradient(90deg,#020406e0,#02040626 58%,#02040694),linear-gradient(#0000,#000103bf)}.trial-panel{flex-direction:column;justify-content:center;align-items:flex-start;width:min(88%,620px);min-height:100svh;margin-left:clamp(6vw,12vw,220px);padding:70px 0;display:flex}.trial-panel blockquote{border-left:1px solid var(--blue);letter-spacing:.12em;background:#050c1266;margin:22px 0;padding:20px 24px;line-height:2}.record-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.record-actions audio{filter:sepia(.2)saturate(.6);width:min(100%,300px);height:36px}.record-actions .recording{color:#e8c1b3;border-color:#b77575;animation:1.2s infinite starBreath}.gentle-note{color:#ede8dcb3}.retake-egg{background:#03070ab8;border:1px solid #c7a15a4d;margin-top:20px;padding:18px 22px}.retake-egg h3{color:var(--gold);font-size:1.7rem}.voice-energy{--mic-level:0;z-index:4;aspect-ratio:1;border:calc(2px + var(--mic-level) * 5px) solid rgba(45,130,190,calc(.12 + var(--mic-level) * .5));width:68vw;transform:scale(calc(.6 + var(--mic-level) * .52)) rotate(calc(var(--mic-level) * 18deg));filter:blur(calc(2px - var(--mic-level) * 1px));box-shadow:0 0 calc(40px + var(--mic-level) * 130px) #266eae57;border-radius:43% 57% 61% 39%;transition:transform .1s linear;position:absolute;bottom:-22%;right:-14%}.wish-scene .cinema-image{filter:brightness(.38)saturate(.55)hue-rotate(5deg)}.wish-scene .cinema-vignette{background:radial-gradient(circle at 50% 35%,#101a230d,#020408cc 75%)}.wish-copy{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:min(90%,680px);min-height:100svh;margin:auto;padding:72px 0;display:flex}.cake{width:220px;margin:58px auto 25px;position:relative}.cake-top{background:linear-gradient(#ece5d2,#cbbd9e);border-radius:50%;height:38px;box-shadow:0 10px 30px #c7a15a2e}.cake-body{color:#5f482b;letter-spacing:.45em;background:linear-gradient(90deg,#ab8f63,#dfceb0 25%,#a48960 75%,#d4c09b);border-radius:0 0 18px 18px;height:82px;margin-top:-18px;padding-top:40px}.candle{z-index:2;cursor:pointer;background:repeating-linear-gradient(35deg,#e7d8b8 0 6px,#9a7742 7px 10px);width:10px;height:55px;position:absolute;bottom:92px;left:50%;transform:translate(-50%)}.flame{filter:drop-shadow(0 0 12px #e9ad50);transform-origin:50% 100%;background:radial-gradient(circle at 50% 70%,#fff7c8 0 18%,#eec26a 35%,#c66b2b 70%,#0000 72%);border-radius:50% 50% 48% 52%/68% 68% 32% 32%;width:17px;height:31px;animation:1.15s ease-in-out infinite alternate flameDance;position:absolute;bottom:59px;left:50%;transform:translate(-50%)}.candle-out .flame{animation:.65s forwards flameOut}@keyframes flameDance{to{transform:translate(-50%)rotate(7deg)scale(.88,1.08)}}@keyframes flameOut{to{opacity:0;transform:translate(-50%)scale(.1)}}.wish-actions{justify-content:center;gap:10px;display:flex}.wish-stars{pointer-events:none;position:absolute;inset:0}.wish-stars i{aspect-ratio:1;opacity:0;background:#fff;border-radius:50%;width:4px;transition:opacity 1.2s;position:absolute;box-shadow:0 0 14px #fff}.wish-stars i:first-child{top:24%;left:22%}.wish-stars i:nth-child(2){top:31%;right:24%}.wish-stars i:nth-child(3){top:16%;left:54%}.wish-stars i.lit{opacity:.9}.silent-second{min-height:1px}.finale-scene{background:#000}.final-video-wrap,.final-video-wrap video,.final-overlay{width:100%;height:100%;position:absolute;inset:0}.final-video-wrap{z-index:0;opacity:0;background:url(/images/desktop/10-finale-bg.webp) 50%/cover no-repeat;transition:opacity 1.8s;overflow:hidden}.final-video-wrap video{object-fit:cover;filter:brightness(.5)saturate(.9)}.final-overlay{background:radial-gradient(circle at 50% 40%,#0000 20%,#01030780 72%,#000103d1),linear-gradient(#0000 55%,#000103bf)}.finale-phase-4 .final-video-wrap,.finale-phase-5 .final-video-wrap,.finale-phase-6 .final-video-wrap,.finale-phase-7 .final-video-wrap,.finale-phase-8 .final-video-wrap{opacity:1}.opening-sword{z-index:9;background:linear-gradient(90deg,#0000,#c7a15a,#fff8d7,#0000);width:36%;height:2px;position:absolute;top:52%;left:-45%;transform:rotate(-7deg);box-shadow:0 0 16px #c7a15a,0 0 55px #c7a15a99}.finale-phase-1 .opening-sword{opacity:.5;width:3px;transition:left 1s,width 1s;left:45%}.finale-phase-2 .opening-sword{animation:1.6s cubic-bezier(.2,.8,.1,1) forwards finalSword}.finale-phase-3 .opening-sword{opacity:0;left:110%}@keyframes finalSword{0%{opacity:.5;width:3px;left:45%}20%{opacity:1}to{opacity:0;width:55%;left:110%}}.final-copy{text-align:center;text-shadow:0 4px 30px #000;place-content:center;width:min(88%,800px);min-height:100svh;margin:auto;padding:70px 0;display:grid}.final-copy>div{justify-items:center;display:grid}.final-copy h3{color:var(--gold);letter-spacing:.4em;margin-top:36px}.three-wishes{flex-wrap:wrap;justify-content:center;gap:24px 50px;margin:10px 0 20px;display:flex}.three-wishes span{letter-spacing:.22em;font-size:clamp(1.4rem,3vw,2.7rem)}.birthday-reveal h2{letter-spacing:.3em;color:#f0dfbc;margin:0;font-size:clamp(2.8rem,7vw,7.5rem);font-weight:400}.birthday-reveal h1{letter-spacing:.22em;color:#fff9e8;text-shadow:0 0 25px #c7a15aa6,0 4px 55px #000;margin:.28em 0;font-size:clamp(3.2rem,9vw,10rem)}.fireworks{z-index:4;pointer-events:none;position:absolute;inset:0;overflow:hidden}.fireworks i{left:var(--x);top:var(--y);aspect-ratio:1;opacity:0;border-radius:50%;width:5px;animation:2.8s ease-out infinite firework;position:absolute;box-shadow:0 -52px #d5b66f,36px -36px #e4d5aa,52px 0 #d5b66f,36px 36px #f3e7c3,0 52px #c99e52,-36px 36px #f1dca8,-52px 0 #d5b66f,-36px -36px #e4d5aa}@keyframes firework{0%,12%{opacity:0;transform:scale(.05)}25%{opacity:.9}70%{opacity:0;transform:scale(1.5)}to{opacity:0}}.epilogue{align-content:center;min-height:65vh}.epilogue p{font-size:clamp(1.4rem,3vw,2.4rem)}.epilogue h2{color:var(--gold);letter-spacing:.28em;font-weight:400}.moon-egg{aspect-ratio:1;cursor:pointer;opacity:.78;background:radial-gradient(circle at 38% 35%,#fff9db,#c7b98f 60%,#7d7563);border-radius:50%;width:90px;position:absolute;top:8%;left:50%;transform:translate(-50%);box-shadow:0 0 60px #f0e7be4d}.egg-message{color:#ddc899;letter-spacing:.12em;margin-top:30px;font-size:.82rem;line-height:2}.hidden-sword,.hidden-novel{z-index:15;color:#ede8dc47;cursor:pointer;background:0 0;border:0;position:absolute}.hidden-sword{writing-mode:vertical-rl;width:45px;height:90px;bottom:9%;left:4%}.hidden-novel{letter-spacing:.12em;font-size:.65rem;bottom:3%;right:3%}.sword-egg{z-index:20;color:#d8bf88;font-size:.78rem;position:absolute;bottom:20%;left:5%}.novel-modal{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#010306d1;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.novel-modal article{color:#372e24;text-align:center;background:#e8dfcd;width:min(90vw,480px);padding:42px;box-shadow:0 30px 100px #000}.novel-modal article h3{letter-spacing:.12em}.novel-modal article button{cursor:pointer;background:0 0;border:0;border-bottom:1px solid #77613f;padding:8px}.final-letter-invite{color:#e4c985;letter-spacing:.16em;cursor:pointer;background:#05080a66;border:1px solid #c7a15a73;margin-top:24px;padding:10px 18px;box-shadow:0 0 32px #c7a15a14}.letter-modal{overflow:auto}.letter-modal .friend-letter{text-align:left;background:linear-gradient(90deg,#674d2417,#0000 8% 92%,#674d241a),#e9e0ce;flex-direction:column;width:min(92vw,760px);height:min(86svh,790px);padding:clamp(28px,5vw,58px);display:flex;position:relative;box-shadow:0 36px 120px #000c,inset 0 0 80px #523b1a14}.friend-letter>header{color:#82632c;letter-spacing:.18em;border-bottom:1px solid #60492640;flex:none;justify-content:space-between;gap:16px;padding-bottom:17px;font-size:.76rem;display:flex}.friend-letter>header small{white-space:nowrap}.letter-page{scrollbar-width:thin;scrollbar-color:#6f502361 transparent;flex:auto;min-height:0;padding:22px 8px 18px 0;overflow-y:auto}.letter-page h3{color:#49371f;margin:0 0 22px;font-size:clamp(1.35rem,3vw,2rem);font-weight:500;line-height:1.5}.letter-page p{color:#3f372d;letter-spacing:.045em;margin:0 0 1.05em;font-size:clamp(.92rem,1.6vw,1.04rem);line-height:1.95}.letter-page .letter-birthday{color:#8b531d;letter-spacing:.14em;text-align:center;margin:.25em 0 1em;font-size:clamp(1.65rem,4vw,2.8rem);font-weight:600}.letter-modal .easter-letter{background:linear-gradient(135deg,#8b3b261a,#0000 42%),#e8ddc8}.easter-letter .letter-page h3:after{content:"彩蛋";color:#a64b34;letter-spacing:.12em;border:1px solid;margin-left:12px;padding:2px 6px;font-size:.62rem;display:inline-block;transform:rotate(-3deg)}.letter-modal .friend-letter>footer{border-top:1px solid #60492640;flex:none;justify-content:space-between;gap:18px;padding-top:17px;display:flex}.letter-modal .friend-letter>footer button{color:#594525;letter-spacing:.1em;background:0 0;border:1px solid #5a432057;min-width:92px;padding:9px 16px}.letter-modal .friend-letter>footer button:disabled{opacity:.28;cursor:default}.letter-modal .friend-letter>footer .letter-finish{color:#805922;border-color:#8059228c}.letter-modal .friend-letter .letter-close{z-index:2;color:#3d31208c;border:0;width:32px;height:32px;padding:0;font-size:1.5rem;line-height:1;position:absolute;top:9px;right:13px}.letter-modal .friend-letter .letter-easter-link{color:#764d26b3;letter-spacing:.1em;background:0 0;border:0;border-bottom:1px dashed #764d2661;margin:28px auto 4px;padding:7px 10px;font-size:.76rem;display:block}.final-letter .letter-page p:last-child{color:#82632c;text-align:right;letter-spacing:.1em;margin-top:2em;font-size:.82rem}@media (max-width:700px){.cinema-image{inset:-1%}.login-copy{z-index:10}.left-copy,.trial-panel{justify-content:flex-end;width:min(86%,540px);margin:0 auto;padding-bottom:80px}.paper-scene .cinema-image{background-position:51%}.paper-scene .cinema-vignette{background:linear-gradient(#02040726 28%,#020407f5)}.split-copy p{line-height:1.75}.center-copy{width:min(88%,560px)}.center-copy p{line-height:1.75}.journey-scene .cinema-image{background-position:61%}.journey-copy.align-left,.journey-copy.align-right{justify-content:flex-end;width:min(86%,560px);margin:0 auto;padding-bottom:82px}.journey-copy p:not(.chapter-no){margin:.35em 0;line-height:1.65}.journey-小镇 .cinema-image{background-position:52%}.book-cover,.book-page{min-height:74svh;padding:34px 25px}.book-cover h2{font-size:1.7rem}.page-text{padding:22px 1%}.page-text p{font-size:.96rem}.quest-card{min-height:68svh}.floating-bullets{display:none}.choice-row{flex-direction:column;width:100%}.seen-wrap{width:min(90%,560px);padding:58px 0 82px}.path-wrap{width:min(88%,560px);padding:60px 0 82px}.path-wrap h2{font-size:clamp(1.9rem,9vw,3rem)}.path-options{grid-template-columns:1fr;gap:12px;margin-top:28px}.path-options button{min-height:132px;padding:24px 20px}.path-options span{font-size:1.15rem}.resume-actions{flex-direction:column;gap:8px}.seen-marks h2{font-size:clamp(1.9rem,9vw,3rem)}.seen-intro{font-size:.92rem}.mark-grid{grid-template-columns:1fr;gap:11px;margin:26px 0}.memory-mark{text-align:left;flex-direction:row;justify-content:space-between;min-height:84px;padding:13px 16px}.memory-mark i{flex:0 0 30px;width:30px;height:30px}.independent-letter{width:100%;padding:34px 24px}.independent-letter p{font-size:.92rem;line-height:1.85}.light-for-you{align-items:flex-start;font-size:.86rem;line-height:1.7}.final-letter-invite{margin-top:18px;font-size:.76rem}.letter-modal{padding:10px}.letter-modal .friend-letter{width:100%;height:min(90svh,760px);padding:30px 22px 22px}.friend-letter>header{letter-spacing:.1em;padding-right:20px;font-size:.66rem}.letter-page{padding-top:18px}.letter-page p{font-size:.9rem;line-height:1.8}.letter-modal .friend-letter>footer button{min-width:82px;padding:9px 11px;font-size:.78rem}.trial-scene .cinema-image{background-position:68%}.trial-panel{justify-content:center}.trial-panel blockquote{font-size:.88rem;line-height:1.8}.voice-energy{width:110vw;right:-50%}.wish-scene .cinema-image{background-position:52%}.final-video-wrap{background:url(/images/mobile/10-finale-bg.webp) 50%/cover no-repeat}.final-video-wrap video{display:none}.birthday-reveal h2{letter-spacing:.18em}.birthday-reveal h1{letter-spacing:.12em}.three-wishes{flex-direction:column;gap:12px}.moon-egg{width:68px}.audio-control{top:auto;bottom:max(16px, env(safe-area-inset-bottom));transform-origin:100% 100%;right:16px;transform:scale(.92)}}@media (max-height:720px) and (min-width:701px){.center-copy,.split-copy,.journey-copy,.trial-panel,.wish-copy,.final-copy{padding-top:50px;padding-bottom:50px}.quest-card{min-height:470px}.book-cover,.book-page{min-height:82vh}}.tier-low .atmosphere{opacity:.65}.tier-low .fog{opacity:.14;animation-duration:42s}.tier-low .cinema-image{animation:none}@media (prefers-reduced-motion:reduce){.sword-flash,.opening-sword,.fireworks i:nth-child(n+5),.floating-bullets span:nth-child(n+2){display:none}.cinema-image,.fog,.audio-ink,.flame,.sound-rune,.fireworks i{animation:none!important}.fireworks i{opacity:.25}}
