@import"https://fonts.googleapis.com/css2?family=Sacramento&family=Noto+Serif+SC:wght@300;400&display=swap";:root{color-scheme:dark;--bg-void: #020208;--bg-depth: #070915;--text-main: rgba(236, 237, 246, .94);--text-soft: rgba(211, 217, 238, .58);--line-idle: rgba(195, 203, 238, .18);--line-focus: rgba(214, 222, 255, .58)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}html{-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}html,body,#root{width:100%;height:100%;background:var(--bg-void)}button{-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent}button:focus,button:focus-visible{outline:none!important;box-shadow:none!important;background-color:inherit!important}body{overflow:hidden;-webkit-user-select:none;user-select:none;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,Georgia,serif;color:var(--text-main)}.title-screen,.app{position:relative;width:100%;min-height:100dvh;overflow:hidden;background:radial-gradient(50% 40% at 50% 36%,rgba(68,88,168,.07) 0%,transparent 100%),radial-gradient(130% 85% at 50% 8%,#11172e,#05070f 44%,#020208)}.starfield{position:absolute;inset:0;pointer-events:none;overflow:hidden}.stars{position:absolute;inset:-40%;will-change:transform,opacity}.stars-a{opacity:.24;background-image:radial-gradient(1px 1px at 18px 22px,rgba(241,245,255,.85),transparent),radial-gradient(1.1px 1.1px at 128px 88px,rgba(222,232,255,.72),transparent),radial-gradient(.8px .8px at 72px 164px,rgba(211,221,255,.6),transparent);background-size:210px 210px;animation:starDriftA 140s linear infinite}.stars-b{opacity:.14;background-image:radial-gradient(1px 1px at 34px 108px,rgba(237,243,255,.72),transparent),radial-gradient(.9px .9px at 160px 36px,rgba(220,232,255,.58),transparent),radial-gradient(1px 1px at 102px 168px,rgba(220,228,255,.62),transparent);background-size:260px 260px;animation:starDriftB 220s linear infinite}.stars-c{opacity:.08;background-image:radial-gradient(1.1px 1.1px at 58px 52px,rgba(244,246,255,.7),transparent),radial-gradient(.8px .8px at 188px 150px,rgba(218,224,255,.55),transparent),radial-gradient(.7px .7px at 118px 198px,rgba(230,235,255,.52),transparent);background-size:320px 320px;animation:starDriftC 260s linear infinite}.title-inner{position:relative;z-index:2;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;animation:titleFadeIn 2s ease forwards;opacity:0}.title-actions{margin-top:clamp(52px,10vh,84px);display:flex;flex-direction:column;gap:12px}.title-unlock-count{margin-top:4px;font-size:.74rem;letter-spacing:.08em;color:#e2e9ffd6;opacity:.4;text-align:center}.title-cat-unlock-count{margin-top:-4px;font-size:.58rem;letter-spacing:.18em;color:#f0d8aee6;opacity:.3;text-align:center}.title-btn{min-width:200px;border:1px solid rgba(201,211,248,.24);background:#05081247;color:#e2e7fcb8;padding:12px 26px;border-radius:2px;font-size:.92rem;letter-spacing:.2rem;font-family:inherit;cursor:pointer;transition:border-color .24s ease,box-shadow .24s ease,color .24s ease,transform .24s ease}.title-btn.primary{border-color:#d1dbff61;color:#edf1ffe6}.title-btn--finale{border-color:#ffdfa4a8;color:#fff8e9f5;background:linear-gradient(148deg,#593f227a,#1f150d57),#0e0b086b;box-shadow:0 0 18px #f3c37a38,inset 0 0 0 1px #ffecc614;animation:titleFinaleGlow 3.4s ease-in-out infinite}.title-btn.title-btn--finale:hover{border-color:#ffecc6d6;color:#fffbf2;box-shadow:0 0 24px #ffd79157,inset 0 0 0 1px #fff1d624;transform:translateY(-1px)}.title-btn:hover{color:#f1f5fff5;border-color:#e0e8ffb8;box-shadow:0 0 18px #bfceff3d;transform:translateY(-1px)}.title-map-btn{align-self:center;border:none;background:transparent;color:#dce4ff6b;font-size:.72rem;letter-spacing:.18em;padding:2px 0;font-family:inherit;cursor:pointer;transition:color .22s ease,text-shadow .22s ease,opacity .22s ease;opacity:.76}.title-map-btn:hover{color:#ecf2ffd1;text-shadow:0 0 14px rgba(181,199,255,.26);opacity:1}.app-stars{opacity:.58;transition:opacity .52s ease}.app.ending-mode .app-stars{opacity:.72}.reset-link{border:none;background:transparent;color:#d0d8f53d;letter-spacing:.14em;font-size:.62rem;font-family:inherit;cursor:pointer;transition:color .22s ease}.reset-link:hover{color:#dfe6fc94}.story-stage{position:relative;z-index:2;height:100dvh;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;padding:max(74px,env(safe-area-inset-top) + 40px) 22px 320px;scrollbar-width:none}.ending-overlay{position:relative;z-index:18;min-height:100dvh;width:100%;display:flex;align-items:center;justify-content:center;padding:max(26px,env(safe-area-inset-top) + 10px) max(18px,env(safe-area-inset-right)) max(26px,env(safe-area-inset-bottom) + 10px) max(18px,env(safe-area-inset-left));animation:endingOverlayFade .52s ease both}.ending-card{width:min(92vw,920px);max-height:min(88dvh,860px);overflow:auto;border-radius:18px;border:1px solid rgba(198,211,252,.26);background:linear-gradient(156deg,#11172ee0,#080c19d6),#050812c7;box-shadow:0 24px 56px #02040c9e,inset 0 0 0 1px #d6e0ff14,0 0 40px #94acff24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:clamp(24px,5vw,42px);display:flex;flex-direction:column;align-items:flex-start;gap:clamp(12px,2.6vh,22px);animation:endingCardRise .58s cubic-bezier(.17,.81,.26,1) both}.ending-card--cat{border-color:#f2b66c8c;background:linear-gradient(154deg,#3e291df2,#1d130eeb),#281c14f2;box-shadow:0 24px 56px #060301a8,inset 0 0 0 1px #ffd19824,0 0 40px #eba85e33}.ending-cat-emoji{font-size:clamp(2.1rem,7vw,3rem);line-height:1;align-self:center;filter:drop-shadow(0 8px 18px rgba(12,8,5,.38))}.ending-branch-tag{display:inline-flex;align-items:center;justify-content:center;min-height:24px;border-radius:999px;border:1px solid rgba(204,216,252,.34);padding:4px 12px;font-size:.72rem;letter-spacing:.12em;color:#e0e9ffd1;background:#94aaf224}.ending-title{font-size:clamp(1.6rem,4.2vw,2.5rem);line-height:1.14;letter-spacing:.08em;color:#f2f6fff2;text-shadow:0 10px 22px rgba(5,8,18,.42)}.ending-body{width:100%;white-space:pre-wrap;word-break:break-word;font-size:clamp(1rem,2.9vw,1.22rem);line-height:1.96;letter-spacing:.04em;color:#e8eefce6}.ending-track-hint{font-size:.68rem;letter-spacing:.18em;color:#d6e0ff70}.ending-restart-btn{margin-top:8px;align-self:flex-end;min-width:136px;border:1px solid rgba(208,220,255,.4);background:#0d152c70;color:#eff4ffeb;border-radius:999px;padding:10px 24px;font-size:.86rem;letter-spacing:.18em;font-family:inherit;cursor:pointer;transition:border-color .26s ease,box-shadow .26s ease,background-color .26s ease,transform .26s ease}.ending-restart-btn:hover{border-color:#e2ecffc2;background:#1c2849b8;box-shadow:0 0 18px #b2c5ff4d;transform:translateY(-1px)}.ending-restart-btn:active{transform:translateY(0)}.narrative-shell{width:min(88vw,640px);min-height:unset;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:24px}.narrative-text{width:100%;white-space:pre-wrap;word-break:break-word;text-align:left;font-size:clamp(1rem,2.6vw,1.18rem);line-height:2.15;letter-spacing:.02em;font-weight:300;font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,Georgia,serif;color:#e6ecfce6;text-shadow:none}.narrative-loading{font-size:1.46rem;line-height:1;letter-spacing:.5em;color:#dfe5fc5c;transform:translate(.25em);animation:loadingBreath 1.4s ease-in-out infinite}.cursor{margin-left:2px;color:#ebeefad1;animation:cursorBlink .72s steps(1,end) infinite}.ending-note{font-size:.82rem;letter-spacing:.22em;color:#d8dff857}.music-player{width:min(100%,560px);padding:14px 16px 12px;border-radius:13px;border:1px solid rgba(188,201,242,.3);background:linear-gradient(156deg,#11183280,#060a1685),#060a167a;box-shadow:0 14px 30px #04061075,inset 0 0 0 1px #e2e9ff0a,0 0 24px #a6bbff24;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;flex-direction:column;gap:10px;animation:musicPlayerRise .42s cubic-bezier(.2,.8,.28,1) both}.music-player-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.music-player-title{font-size:.9rem;letter-spacing:.14em;color:#ecf2ffe0}.music-player-toggle{min-width:62px;border:1px solid rgba(201,214,248,.35);background:#0e162c85;color:#e8eeffdb;border-radius:999px;padding:6px 14px;font-size:.75rem;letter-spacing:.1em;font-family:inherit;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}.music-player-toggle:hover{border-color:#dce6ffb8;background:#172342b8;box-shadow:0 0 14px #acc0ff3d}.music-player-track{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}.music-player-time{font-size:.66rem;letter-spacing:.06em;color:#d3dcfaa3;font-variant-numeric:tabular-nums}.music-player-progress{width:100%;height:4px;appearance:none;border-radius:999px;background:linear-gradient(to right,#c4d1f8d1,#8698d28f);cursor:pointer;opacity:.9}.music-player-progress::-webkit-slider-thumb{appearance:none;width:12px;height:12px;border-radius:50%;border:1px solid rgba(217,226,254,.78);background:#f0f5fff2;box-shadow:0 0 10px #b8caff75}.music-player-progress::-moz-range-thumb{width:12px;height:12px;border-radius:50%;border:1px solid rgba(217,226,254,.78);background:#f0f5fff2;box-shadow:0 0 10px #b8caff75}.music-player-progress::-moz-range-track{height:4px;border-radius:999px;background:linear-gradient(to right,#c4d1f8d1,#8698d28f)}.music-player-hint{font-size:.68rem;letter-spacing:.12em;color:#d6e0ffb8;text-align:right}.choice-dock{background:linear-gradient(to top,#020208 60%,transparent);padding-top:40px;position:fixed;left:50%;bottom:calc(14px + env(safe-area-inset-bottom));transform:translate(-50%);z-index:12;width:min(88vw,640px);display:flex;flex-direction:column;align-items:flex-start;gap:12px}.choice-echo{font-size:.82rem;line-height:1.3;letter-spacing:.06em;color:#dfe7fd94;font-style:italic;text-align:center;animation:echoRise .36s ease both}.choice-list{width:100%;display:flex;flex-direction:column;gap:11px;animation:choicesRise .28s ease 60ms both}.choice-card{width:100%;border:none;border-left:2px solid rgba(200,210,255,.18);background:transparent;color:#ecf0ffd1;border-radius:0 4px 4px 0;padding:12px 14px 12px 16px;text-align:left;font-size:.92rem;line-height:1.45;letter-spacing:.03em;font-family:inherit;cursor:pointer;transition:border-color .22s ease,box-shadow .22s ease,background-color .22s ease,transform .22s ease,opacity .18s ease;-webkit-tap-highlight-color:transparent;appearance:none}@media(hover:hover){.choice-card:hover{background:#ffffff0a;box-shadow:none;transform:translateY(-1px)}}.choice-card:active{border-left-color:#c8d2ff8c;color:#ecf0ff}.choice-card:focus{outline:none;box-shadow:none;background:transparent}.choice-card:focus-visible{outline:none;box-shadow:none;background:transparent}.choice-card:focus-within{outline:none;box-shadow:none;background:transparent}.choice-card:disabled{opacity:.52;cursor:default}.choice-card--hidden{opacity:.3;font-size:.9rem;border:1px solid rgba(229,236,255,.12);background:#0c102014;min-height:46px;padding:14px 16px}.choice-card--hidden:hover,.choice-card--hidden:active{opacity:.7}@keyframes titleFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes loadingBreath{0%,to{opacity:.25}50%{opacity:.62}}@keyframes cursorBlink{0%,45%{opacity:1}46%,to{opacity:0}}@keyframes choicesRise{0%{opacity:0}to{opacity:1}}@keyframes echoRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes musicPlayerRise{0%{opacity:0;transform:translateY(8px);filter:blur(1px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes endingOverlayFade{0%{opacity:0}to{opacity:1}}@keyframes endingCardRise{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(1px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes titleFinaleGlow{0%,to{box-shadow:0 0 14px #f5c57e29,inset 0 0 0 1px #ffecc60f}50%{box-shadow:0 0 28px #ffd79157,inset 0 0 0 1px #fff1d624}}@keyframes starDriftA{0%{transform:translateZ(0)}to{transform:translate3d(-120px,-160px,0)}}@keyframes starDriftB{0%{transform:translateZ(0)}to{transform:translate3d(160px,-220px,0)}}@keyframes starDriftC{0%{transform:translateZ(0)}to{transform:translate3d(-140px,200px,0)}}@media(min-width:768px){.title-actions{margin-top:92px}.title-map-btn{font-size:.74rem}.title-unlock-count{margin-top:6px;font-size:.78rem}.title-cat-unlock-count{font-size:.62rem}.reset-link{top:18px;right:18px}.story-stage{padding-left:max(30px,12vw);padding-right:max(30px,12vw);padding-bottom:236px}.choice-dock{background:linear-gradient(to top,#020208 60%,transparent);padding-top:40px;bottom:calc(18px + env(safe-area-inset-bottom))}.ending-card{border-radius:20px;padding:38px 44px}}.action-bar{position:fixed;top:14px;right:14px;z-index:14;display:flex;gap:12px;align-items:center}.music-hint{margin-top:2rem;font-size:.7rem;letter-spacing:.18em;color:#d0d8f559;font-family:inherit;animation:fadeIn 1.5s ease forwards}.skip-bar{position:fixed;bottom:100px;left:50%;transform:translate(-50%);background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#ffffff59;font-size:.72rem;letter-spacing:.12em;padding:.45rem 1.4rem;border-radius:20px;cursor:pointer;z-index:20;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity .2s;-webkit-tap-highlight-color:transparent}.skip-bar:active{opacity:.5}.skip-bar:focus,.skip-bar:focus-visible{outline:none;box-shadow:none}.finale-overlay{position:fixed;inset:0;z-index:36;overflow:hidden;background:radial-gradient(110% 86% at 50% 4%,#4e361f38,#0d0a08fa 48%,#0d0a08),#0d0a08;animation:endingOverlayFade .36s ease both}.finale-shell{width:100%;height:100%;display:flex;flex-direction:column;padding:max(18px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left))}.finale-head{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right;padding:0 clamp(12px,4vw,24px) clamp(8px,2vw,14px)}.finale-head-title{font-size:.78rem;letter-spacing:.24em;color:#ffffff85}.finale-head-subtitle{font-size:.64rem;letter-spacing:.16em;color:#ffffff57}.finale-scroll{flex:1;overflow-y:auto;overflow-x:hidden;padding:clamp(10px,2vw,20px) clamp(14px,7vw,84px) max(30px,env(safe-area-inset-bottom) + 22px);scrollbar-width:none;-ms-overflow-style:none}.finale-scroll::-webkit-scrollbar{display:none;width:0;height:0}.finale-lyrics{width:min(100%,820px);margin:0 auto;display:flex;flex-direction:column;gap:clamp(28px,4.8vh,42px)}.finale-lyrics-block{white-space:pre-line;font-size:clamp(1rem,2.2vw,1.1rem);line-height:1.9;letter-spacing:.05em;color:#ffffffeb;text-shadow:0 8px 22px rgba(0,0,0,.24)}.finale-transition{width:min(100%,820px);margin:clamp(44px,8vh,72px) auto clamp(34px,6vh,54px);display:flex;flex-direction:column;align-items:center;gap:12px}.finale-divider{width:100%;height:1px;background:linear-gradient(90deg,#ffffff08,#fff3 18% 82%,#ffffff08)}.finale-scroll-hint{font-size:.66rem;letter-spacing:.22em;color:#ffffff47;animation:finaleHintFade 2.2s ease-in-out infinite}.finale-letter{width:min(100%,820px);margin:0 auto;display:flex;flex-direction:column;gap:clamp(18px,3vh,24px);padding-bottom:clamp(26px,5vh,42px)}@keyframes letterBlockFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.finale-letter-block{opacity:0;animation:letterBlockFadeIn .9s ease forwards;white-space:pre-line;font-size:15px;line-height:2;letter-spacing:.03em;color:#ffffffd1;font-family:Kaiti SC,STKaiti,KaiTi,"Noto Serif SC",Songti SC,Georgia,serif}.finale-thanks-btn{display:block;margin:32px auto 16px;align-self:center;text-align:center;border:1px solid rgba(255,255,255,.22);border-radius:24px;background:transparent;color:#ffffffb3;font-size:.82rem;letter-spacing:.28em;font-family:inherit;padding:10px 28px;cursor:pointer;transition:color .22s ease,border-color .22s ease,text-shadow .22s ease,opacity .22s ease}.finale-thanks-btn:hover{color:#fffffff5;border-color:#ffffff7a;text-shadow:0 0 12px rgba(255,236,203,.28)}.finale-thanks-btn:active{opacity:.76}@keyframes finaleHintFade{0%,to{opacity:.26}50%{opacity:.52}}.map-overlay{position:fixed;inset:0;z-index:28;display:flex;align-items:center;justify-content:center;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));animation:endingOverlayFade .32s ease both}.map-backdrop{position:absolute;inset:0;background:radial-gradient(70% 70% at 50% 20%,#394a7e57,#060810e6),#020308c7}.map-panel{position:relative;z-index:1;width:min(94vw,980px);max-height:min(92dvh,920px);overflow-y:auto;border-radius:18px;border:1px solid rgba(205,216,255,.24);background:linear-gradient(160deg,#0f162ef0,#070b18eb),#040812d6;box-shadow:0 30px 64px #02040ca8,inset 0 0 0 1px #d6e0ff0f,0 0 50px #9bb0ff24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:clamp(20px,4vw,34px);display:flex;flex-direction:column;gap:18px}.map-close-btn{position:absolute;top:10px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid rgba(207,217,255,.34);background:#0b102280;color:#ebf1ffe0;font-size:1.2rem;line-height:1;cursor:pointer;transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease}.map-close-btn:hover{border-color:#e7eeffc2;box-shadow:0 0 16px #baccff47;transform:translateY(-1px)}.map-head{padding-right:42px;display:flex;flex-direction:column;gap:6px}.map-title{font-size:clamp(1.4rem,4vw,2rem);letter-spacing:.08em;color:#f0f4fff2}.map-subtitle{font-size:.74rem;letter-spacing:.14em;color:#d5dfff85}.map-groups{display:grid;gap:14px}.map-group{border:1px solid rgba(197,210,248,.2);border-radius:14px;padding:12px;background:linear-gradient(140deg,#10183470,#080c1861),#070a144d}.map-group-title{font-size:.86rem;letter-spacing:.14em;color:#e1e9ffdb;margin-bottom:10px}.map-group-title--cat{margin-bottom:2px}.map-node-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.map-node{position:relative;border-radius:12px;border:1px solid rgba(195,207,247,.22);min-height:92px;padding:12px;display:flex;flex-direction:column;justify-content:center;gap:6px;background:#070b1766;transition:border-color .22s ease,box-shadow .22s ease,opacity .22s ease}.map-node-orb{width:11px;height:11px;border-radius:50%;border:1px solid rgba(202,214,255,.28);background:#8592ba38;box-shadow:inset 0 0 8px #9dade433}.map-node-name{font-size:.96rem;letter-spacing:.06em;color:#e8eeffe0}.map-node-status{font-size:.7rem;letter-spacing:.08em;color:#cdd9ff94}.map-node--locked{opacity:.44}.map-node--half{border-color:#c5d2ff70;box-shadow:0 0 16px #92aaff24}.map-node--half .map-node-orb{background:linear-gradient(120deg,#c6d2ffe0 0% 50%,#4a588029 50% 100%);border-color:#cfdbffb8;box-shadow:0 0 12px #aac0ff57}.map-node--half .map-node-status{color:#dae5ffc7}.map-node--full{border-color:#f8d991a8;box-shadow:0 0 22px #ffe1a233,inset 0 0 0 1px #ffecbc14}.map-node--full .map-node-orb{border-color:#ffedc5db;background:radial-gradient(circle at 30% 30%,#fff8e0f2,#ffd894c7);box-shadow:0 0 18px #ffdc987a,inset 0 0 6px #fffae870}.map-node--full .map-node-status{color:#ffeabceb}.map-cat-section{border-top:1px solid rgba(197,209,248,.2);padding-top:14px;display:flex;flex-direction:column;gap:10px}.map-cat-grid{display:grid;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.map-cat-node{border-radius:12px;border:1px solid rgba(255,207,134,.48);background:#2c1c118f;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;box-shadow:0 0 16px #ecb0632e}.map-cat-node--hidden{display:none}.map-cat-emoji{font-size:1.2rem;line-height:1}.map-cat-name{text-align:center;font-size:.68rem;line-height:1.35;letter-spacing:.06em;color:#fde7c0e6;padding:0 8px}.choice-card--seen{border-left-color:#b4a06459;color:#bebebe6b}.choice-card--seen:hover{background:#0f162c66}@media(max-width:767px){.finale-head{align-items:center;text-align:center;padding-left:0;padding-right:0}.finale-scroll{padding-left:14px;padding-right:14px}.finale-lyrics{gap:30px}.finale-letter{gap:20px}.map-panel{width:min(96vw,640px);max-height:min(94dvh,920px);border-radius:14px;padding:16px}.map-node-grid,.map-cat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.map-flat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;width:100%}.ending-restart-btn--fade{animation:endingBtnFadeIn .8s ease both}@keyframes endingBtnFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.finale-thanks-btn--pulse{animation:thanksPulse 2.4s ease-in-out infinite}@keyframes thanksPulse{0%,to{opacity:.52}50%{opacity:1;text-shadow:0 0 14px rgba(255,236,203,.35)}}.finale-letter-block--in{animation:letterBlockFadeIn .9s ease both}.finale-typing-dots{display:flex;gap:5px;padding:12px 0 4px;align-items:center}.finale-typing-dots span{width:5px;height:5px;border-radius:50%;background:#ffffff61;animation:typingBounce 1.2s ease-in-out infinite}.finale-typing-dots span:nth-child(2){animation-delay:.2s}.finale-typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,80%,to{transform:translateY(0);opacity:.38}40%{transform:translateY(-5px);opacity:.75}}.title-main{font-size:clamp(5.5rem,24vw,12rem);letter-spacing:-.01em;font-weight:400;font-style:normal;font-family:Sacramento,cursive;color:#eef3ffe6;text-shadow:0 0 60px rgba(180,205,255,.1),1px 2px 0 rgba(0,0,0,.18);transform:rotate(-.8deg);display:inline-block;animation:titleMainIn 1.6s cubic-bezier(.16,1,.3,1) .2s both}@keyframes titleMainIn{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}.title-tagline{margin-top:clamp(10px,2vh,18px);font-size:clamp(.68rem,2.4vw,.84rem);letter-spacing:.48em;text-indent:.48em;color:#c8d4ff59;text-align:center;animation:titleFadeUp 1s ease .8s both}.title-quote{margin-top:clamp(24px,5vh,44px);font-size:clamp(.8rem,3vw,.96rem);line-height:2.3;text-align:center;color:#dae2ff75;letter-spacing:.14em;animation:titleFadeUp 1.2s ease 1.4s both}@keyframes titleFadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.title-actions{margin-top:clamp(44px,9vh,72px);animation:titleFadeUp 1s ease 2.2s both}.title-btn.primary{border:none;background:transparent;border-bottom:1px solid rgba(209,219,255,.32);border-radius:0;padding:9px 2px;font-size:.98rem;letter-spacing:.3em;color:#ebf1ffd6;min-width:0;width:auto}.title-btn.primary:hover{border-bottom-color:#e0eaffb8;color:#f5f9fffa;box-shadow:none;text-shadow:0 0 20px rgba(200,218,255,.26);transform:none}.title-main{color:#eef3ff38;text-shadow:none;transition:color 3.5s ease,text-shadow 3.5s ease}.title-main--lit{color:#eef3ffe6;text-shadow:0 0 60px rgba(200,220,255,.22),0 0 120px rgba(180,210,255,.1),1px 2px 0 rgba(0,0,0,.18);animation:titleMainIn 1.6s cubic-bezier(.16,1,.3,1) .2s both,zeoGlow 4s ease-in-out 3.5s infinite}@keyframes zeoGlow{0%,to{text-shadow:0 0 60px rgba(200,220,255,.22),1px 2px 0 rgba(0,0,0,.18)}50%{text-shadow:0 0 80px rgba(210,228,255,.32),0 0 140px rgba(185,215,255,.14),1px 2px 0 rgba(0,0,0,.18)}}.title-main--lit{color:#eef3ffed;text-shadow:0 0 40px rgba(210,228,255,.55),0 0 90px rgba(190,215,255,.28),0 0 160px rgba(170,205,255,.14),1px 2px 0 rgba(0,0,0,.18);animation:titleMainIn 1.6s cubic-bezier(.16,1,.3,1) .2s both,zeoFlicker 3s ease-in-out 3.5s infinite}@keyframes zeoFlicker{0%{text-shadow:0 0 40px rgba(210,228,255,.55),0 0 90px rgba(190,215,255,.28),1px 2px 0 rgba(0,0,0,.18)}30%{text-shadow:0 0 55px rgba(215,232,255,.72),0 0 120px rgba(195,220,255,.42),0 0 200px rgba(175,210,255,.2),1px 2px 0 rgba(0,0,0,.18)}50%{text-shadow:0 0 35px rgba(208,225,255,.45),0 0 80px rgba(185,212,255,.22),1px 2px 0 rgba(0,0,0,.18)}70%{text-shadow:0 0 62px rgba(220,235,255,.8),0 0 130px rgba(200,224,255,.5),0 0 220px rgba(180,214,255,.24),1px 2px 0 rgba(0,0,0,.18)}to{text-shadow:0 0 40px rgba(210,228,255,.55),0 0 90px rgba(190,215,255,.28),1px 2px 0 rgba(0,0,0,.18)}}.title-btn.primary{animation:titleBtnPulse 2s ease 3s 1}@keyframes titleBtnPulse{0%{border-bottom-color:#d1dbff52}40%{border-bottom-color:#ebf3ffbf;text-shadow:0 0 16px rgba(210,228,255,.3)}to{border-bottom-color:#d1dbff52}}.music-note-indicator{position:fixed;top:14px;left:18px;z-index:100;font-size:1rem;color:#dce8ff61;animation:musicNoteFloat 3s ease-in-out infinite;pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes musicNoteFloat{0%,to{transform:translateY(0) rotate(-4deg);opacity:.38}50%{transform:translateY(-4px) rotate(4deg);opacity:.6}}.headphone-overlay{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#020208b8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:hpFadeIn .7s ease forwards}@keyframes hpFadeIn{0%{opacity:0}to{opacity:1}}.headphone-card{display:flex;flex-direction:column;align-items:center;gap:20px;padding:52px 44px;animation:hpCardIn .9s cubic-bezier(.16,1,.3,1) .1s both}@keyframes hpCardIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.headphone-icon{font-size:3.2rem;line-height:1;animation:hpBreath 3.2s ease-in-out infinite;filter:drop-shadow(0 0 18px rgba(180,200,255,.18))}@keyframes hpBreath{0%,to{transform:scale(1);opacity:.82}50%{transform:scale(1.07);opacity:1}}.headphone-title{font-size:clamp(.9rem,3vw,1.08rem);letter-spacing:.14em;color:#e6ecffe0;text-align:center;animation:hpCardIn 1s ease .4s both}.headphone-hint{font-size:clamp(.72rem,2.4vw,.82rem);letter-spacing:.22em;color:#c8d6ff6b;text-align:center;animation:hpCardIn 1s ease .6s both}.headphone-btn{margin-top:12px;border:none;background:transparent;border-bottom:1px solid rgba(209,219,255,.38);padding:8px 2px;font-size:.98rem;letter-spacing:.36em;color:#ebf1ffd6;font-family:inherit;cursor:pointer;transition:border-bottom-color .24s ease,color .24s ease,opacity .24s ease;animation:hpCardIn 1s ease 1s both}.headphone-btn:hover{border-bottom-color:#e0eaffb8;color:#f5f9fffa}.narrative-text{animation:sceneFadeIn .55s ease both}@keyframes sceneFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes choicesRise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.title-inner{animation:titleFadeIn 1.8s ease forwards}.map-node{cursor:default;transition:transform .2s ease,box-shadow .2s ease}.map-node[style*=pointer]{cursor:pointer}.map-node[style*=pointer]:hover{transform:translateY(-2px)}.map-node--selected{box-shadow:0 0 0 1.5px #c8daff73,0 8px 24px #a0beff2e!important}.map-detail-card{margin:4px 0 8px;padding:20px 22px;border:1px solid rgba(200,212,255,.14);border-radius:10px;background:#12182e99;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:mapDetailIn .32s cubic-bezier(.16,1,.3,1) both}@keyframes mapDetailIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.map-detail-name{font-size:.88rem;letter-spacing:.22em;color:#dce8ffe0;margin-bottom:10px}.map-detail-desc{font-size:.82rem;line-height:1.9;letter-spacing:.04em;color:#c8d6ff94;white-space:pre-wrap}.map-detail-endings{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}.map-detail-tag{font-size:.7rem;letter-spacing:.14em;padding:4px 12px;border:1px solid rgba(196,212,255,.22);border-radius:999px;color:#d2e0ffa3}
