:root{color-scheme:dark;font-family:Microsoft YaHei,PingFang SC,Noto Sans CJK SC,sans-serif;color:#e6e3e0;background:#070b18;--gold: #dfbf90;--muted: #949cad;--line: #d5cbb92b}*{box-sizing:border-box}body{margin:0;overscroll-behavior:none}html,body,#app{width:100%;height:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:none;border:0}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:1px solid #f2d5a4;outline-offset:5px}button[hidden],[hidden]{display:none!important}svg{width:22px;height:22px;flex-shrink:0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.boot-mark{width:34px;height:34px;margin:42vh auto 0;border-radius:50%;background:radial-gradient(circle,#f6e6c4,#d9bd8533 45%,transparent 70%);animation:boot-breathe 2.4s ease-in-out infinite}@keyframes boot-breathe{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.08)}}.experience{position:relative;width:100%;height:100%;min-height:380px;isolation:isolate;background:radial-gradient(ellipse at 72% 42%,#32233955,transparent 45%),radial-gradient(ellipse at 24% 56%,#102c4566,transparent 55%),#070b18}.universe-surface{position:absolute;inset:0;touch-action:none;overflow:hidden}#universe{display:block;width:100%;height:100%}.atmosphere{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 23%,#05081388 100%),linear-gradient(0deg,#070b18b8,transparent 26%,transparent 80%,#070b1855)}.atmosphere:after{content:"";position:absolute;inset:18px;border:1px solid #bdb0a008;pointer-events:none}.masthead{position:absolute;top:max(30px,env(safe-area-inset-top));left:max(42px,env(safe-area-inset-left));right:max(42px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:3}.wordmark{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;text-decoration:none;color:var(--gold);pointer-events:auto;opacity:.8}.wordmark svg{width:29px;height:29px}.header-controls{display:flex;gap:8px;pointer-events:auto}.icon-button{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:50%;color:#b7bbca;transition:color .2s,border-color .2s,background .2s;flex-shrink:0}.icon-button svg{width:19px;height:19px}.icon-button:hover{color:var(--gold);background:#d8c09508;border-color:#d8c09526}.chapter-rail{position:absolute;top:15%;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:15px;pointer-events:none}.rail-mark{width:4px;height:4px;border-radius:50%;background:#cdbfa62e;transition:background .5s,box-shadow .5s,transform .5s}.rail-mark.passed{background:#d8c09a6e}.rail-mark.current{width:7px;height:7px;background:var(--gold);box-shadow:0 0 14px #e0c08f80}.world-targets{position:absolute;inset:0}.star-target{position:absolute;width:56px;height:56px;transform:translate(-50%,-50%);padding:0;border-radius:50%;display:flex;justify-content:center;align-items:center;color:#c9c9d2;z-index:1}.star-reticle{position:absolute;inset:0;border:1px solid #e7d2b018;border-radius:50%;transition:border-color .4s,transform .4s}.star-reticle:after{content:"";position:absolute;width:3px;height:3px;background:#c3b591;border-radius:50%;top:3px;right:10px;opacity:.35}.star-target:hover .star-reticle,.star-target:focus-visible .star-reticle{transform:scale(1.14);border-color:#ebcf9477}.star-glyph{position:absolute;top:calc(100% + 9px);display:flex;color:#dcc9a6;opacity:0;transition:opacity .3s}.star-glyph svg{width:21px;height:21px}.hero-target{width:70px;height:70px}.hero-target .star-reticle{border-color:#d8ba8136}.hero-target .star-reticle:before{content:"";position:absolute;inset:-10px;border:1px solid #d8ba810c;border-radius:50%}.gold-target .star-reticle{border-color:#edc88a4f}.remembered .star-reticle{border-color:#e7c28b69;box-shadow:0 0 18px #dec38b13}.remembered .star-reticle:after{opacity:1;box-shadow:0 0 7px #e0c694}.member-target .star-reticle{border-color:transparent}.member-target .star-reticle:after{display:none}.member-target:hover .star-glyph,.member-target:focus-visible .star-glyph,.member-target.revealed .star-glyph{opacity:.92}.hidden-target{width:48px;height:48px}.hidden-target .star-glyph{opacity:.8}.calling{position:relative}.calling:after{content:"";position:absolute;inset:-7px;border:1px solid #e7c88a66;border-radius:inherit;pointer-events:none;animation:calling 2.6s ease-out infinite}@keyframes calling{0%{transform:scale(.8);opacity:0}30%{opacity:.85}to{transform:scale(1.4);opacity:0}}.tap-hint{position:absolute;top:calc(100% + 12px);display:flex;color:#e5cd9e;animation:hint-breathe 2.6s ease-in-out infinite;pointer-events:none}.tap-hint svg{width:27px;height:27px}@keyframes hint-breathe{0%,to{opacity:.32;transform:scale(.92)}50%{opacity:1;transform:scale(1.05)}}.star-target.calling:after{inset:-13px}.narration{position:absolute;top:72%;left:20px;right:20px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;pointer-events:none}.narration button,.narration [role=region]{pointer-events:auto}.glyph-button{width:54px;height:54px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dcc39a4a;border-radius:50%;color:#e4c89e;background:linear-gradient(140deg,#d5b78012,#d5b78003);transition:background .3s,border-color .3s,color .3s,opacity .3s}.glyph-button svg{width:23px;height:23px}.glyph-button:hover:not(:disabled){border-color:#e7cba7aa;background:#d5b78016}.glyph-button:disabled{opacity:.35}.primary-glyph{width:64px;height:64px}.primary-glyph svg{width:26px;height:26px}.quiet-glyph{width:46px;height:46px;border-color:transparent;color:#a9a294;background:none}.quiet-glyph:hover{color:#e6ca9d;border-color:#dcc39a3a}.quiet-glyph svg{width:20px;height:20px}.journey-button{width:58px;height:58px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dcc39a55;border-radius:50%;color:#e4c89e;background:linear-gradient(110deg,#d5b78010,#d5b78003);transition:background .3s,border-color .3s,opacity .3s}.journey-button svg{width:24px;height:24px}.journey-button:hover:not(:disabled){border-color:#e7cba7aa;background:#d5b78016}.journey-button:disabled{opacity:.3}.gesture-glyph{display:flex;color:#b9b3a6;animation:sway 3.4s ease-in-out infinite}.gesture-glyph svg{width:34px;height:34px}@keyframes sway{0%,to{transform:translate(-9px);opacity:.45}50%{transform:translate(9px);opacity:.95}}.ending-mark{display:flex;color:#e7c9a0;animation:heart-beat 3.6s ease-in-out infinite}.ending-mark svg{width:46px;height:46px}@keyframes heart-beat{0%,to{transform:scale(1);opacity:.82}50%{transform:scale(1.09);opacity:1}}.ending-actions{display:flex;justify-content:center;align-items:center;gap:18px}.quiet-footer{position:absolute;bottom:max(24px,env(safe-area-inset-bottom));left:0;right:0;display:flex;justify-content:center;align-items:center;gap:14px;color:#7f8494;pointer-events:none}.quiet-footer svg{width:13px;height:13px;color:#9a8d7c}.footer-line{width:28px;height:1px;background:#7f849444}.resume-note{position:absolute;bottom:26px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;border:1px solid #d8c8a831;background:#101626f0;padding:6px 10px;z-index:5;border-radius:40px;box-shadow:0 10px 35px #0004}.resume-note .glyph-button{width:46px;height:46px}.resume-note .glyph-button svg{width:19px;height:19px}.resume-dismiss{border-color:transparent;color:#9aa0ae;background:none}.mode-note{position:absolute;bottom:52px;right:42px;margin:0;display:flex;color:#7d879b;pointer-events:none}.mode-note svg{width:17px;height:17px}[data-stage=memories] .narration{top:38%;left:56%;right:6%}.memory-target .star-glyph,.cluster-dust{display:none}.memory-target .star-reticle{border-color:transparent}.memory-target .star-reticle:after{display:none}.memory-target:hover:not(:disabled) .star-reticle{transform:none;border-color:transparent}.memory-target:disabled .star-reticle{border-color:transparent}.memory-browser{display:flex;flex-direction:column;align-items:center;gap:20px}.memory-mark{position:relative;display:flex;align-items:center;justify-content:center;width:88px;height:88px;border-radius:50%;color:var(--memory-color, var(--gold));background:radial-gradient(circle,#ffffff0b,transparent 68%);transition:opacity .2s}.memory-mark svg{width:42px;height:42px}.is-moving .memory-mark{opacity:.3}.memory-saved{position:absolute;right:2px;bottom:6px;display:flex;width:22px;height:22px;align-items:center;justify-content:center;border-radius:50%;border:1px solid #e7c28b55;background:#131a2b;color:var(--gold)}.memory-saved svg{width:12px;height:12px}.planet-navigation{display:flex;align-items:center;gap:18px}.planet-nav{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border:1px solid #d5cbb92b;border-radius:50%;color:#c6b99f;transition:background .2s,border-color .2s,opacity .2s}.planet-nav svg{width:18px;height:18px}.planet-nav.previous svg{transform:rotate(180deg)}.planet-nav:hover:not([aria-disabled=true]){border-color:#dfbf9080;background:#dfbf9010}.planet-nav[aria-disabled=true]{opacity:.45;cursor:default}.planet-counter,.memory-counter{display:inline-flex;align-items:center;gap:7px}.count-dot{width:5px;height:5px;border-radius:50%;background:#cdbfa62e;transition:background .4s,box-shadow .4s,width .4s,height .4s}.count-dot.passed{background:#d8c09a5c}.count-dot.current{width:8px;height:8px;background:var(--memory-color, var(--gold));box-shadow:0 0 12px #e0c08f66}dialog{color:#e3ded5;border:1px solid #b8a58640;padding:0;background:#111624;box-shadow:0 30px 120px #0009,inset 0 0 90px #b39d7610}dialog::backdrop{background:#040711bd;backdrop-filter:blur(10px)}.story-dialog{width:min(960px,calc(100% - 80px));max-width:none;max-height:min(820px,calc(100dvh - 90px));border-radius:4px;overscroll-behavior:contain;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#9a8b7244 transparent}dialog[open]{animation:panel-in .5s both}.dialog-top{display:flex;justify-content:space-between;align-items:center;padding:16px 24px 6px;gap:15px}.dialog-mark{display:flex;color:var(--gold);opacity:.85}.dialog-mark svg{width:24px;height:24px}.dialog-mark.warn{color:#e0a98c}.memory-layout{display:grid;grid-template-columns:1.08fr 1fr;gap:46px;padding:10px 45px 40px;align-items:center}.memory-gallery{min-width:0}.photo-frame{aspect-ratio:4 / 4.3;display:flex;align-items:center;justify-content:center;background:linear-gradient(130deg,#d1b28509,#ffffff03);padding:11px;border:1px solid #d0b38836;box-shadow:0 15px 55px #0004;position:relative}.photo-frame:before,.photo-frame:after{content:"";position:absolute;width:20px;height:20px;border-color:#e4cda080;pointer-events:none}.photo-frame:before{top:-1px;left:-1px;border-top:1px solid;border-left:1px solid}.photo-frame:after{bottom:-1px;right:-1px;border-bottom:1px solid;border-right:1px solid}.photo-frame img{display:block;width:100%;height:100%;min-height:0;max-height:380px;background:#0a1020}.photo-flag{position:absolute;right:14px;bottom:14px;display:flex;color:#e6cda0;opacity:.7}.photo-flag svg{width:15px;height:15px}.photo-nav{display:flex;justify-content:center;min-height:44px;margin-top:10px}.photo-dot{width:44px;height:44px;display:flex;align-items:center;justify-content:center}.photo-dot span{display:block;width:5px;height:5px;border-radius:50%;background:#777d8b60}.photo-dot.selected span{background:var(--gold);box-shadow:0 0 8px #d9c18b33}.memory-writing{display:flex;flex-direction:column;align-items:center;gap:4px;padding:5px 0 10px}.encounter-mark{display:flex;color:#e7c9a0;margin:18px 0;animation:heart-beat 3.6s ease-in-out infinite}.encounter-mark svg{width:44px;height:44px}.interaction{--lit: 0;position:relative;margin:20px auto 0;height:135px;display:flex;justify-content:center;align-items:end;width:min(100%,270px)}.interaction-art{position:absolute;inset:0;pointer-events:none;color:var(--memory-color)}.art-core{position:absolute;left:50%;top:18px;transform:translate(-50%);display:flex;opacity:calc(.14 + var(--lit) * .86);filter:drop-shadow(0 0 calc(var(--lit) * 14px) var(--memory-color));transition:opacity .8s,filter .8s}.art-core svg{width:42px;height:42px}.art-orbit{width:142px;height:56px;border:1px solid var(--memory-color);border-radius:50%;position:absolute;top:30px;left:calc(50% - 71px);transform:rotate(-18deg);opacity:calc(.1 + var(--lit) * .4);transition:opacity .8s,transform 1s}.complete .art-orbit{transform:rotate(0)}.interaction-steps{display:flex;justify-content:center;align-items:center;gap:20px;position:relative;z-index:1}.light-step{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #b6a78530;border-radius:50%;color:#8d8779;transition:transform .4s,color .4s,border-color .4s,box-shadow .4s,background .4s}.light-step svg{width:21px;height:21px}.light-step:hover{border-color:var(--memory-color)}.light-step.lit{color:var(--memory-color);background:#d5bd8810;border-color:var(--memory-color);box-shadow:0 0 18px #d5bd881a;transform:translateY(-4px)}.home .art-core{display:none}.home .interaction-steps{gap:24px;padding-bottom:14px}.home .light-step{width:44px;height:46px;border-radius:2px;background:#ccb57d09}.home .light-step.lit{background:#d2b98022;box-shadow:0 0 20px #e3bf8329;transform:none}.home .art-orbit{top:33px;height:98px;width:168px;left:calc(50% - 84px);border-radius:0;border-top:0;transform:none}.house-roof{display:none}.home .house-roof{display:block;position:absolute;top:-4px;left:calc(50% - 61px);width:122px;height:122px;border-top:1px solid var(--memory-color);border-left:1px solid var(--memory-color);transform:rotate(45deg) scale(.75);opacity:calc(.12 + var(--lit) * .65);transition:opacity .6s}.blocks .light-step{border-radius:5px;transform:rotate(-9deg) translateY(4px)}.blocks .light-step:nth-child(2){transform:rotate(9deg)}.blocks .light-step.lit{transform:none}.interaction-status{min-height:34px;margin:14px 0 8px;display:flex;align-items:center;justify-content:center}.status-glyph{display:flex;color:#a49e93;animation:hint-breathe 2.6s ease-in-out infinite}.status-glyph svg{width:22px;height:22px}.interaction-status.done .status-glyph{color:var(--gold);animation:none}.save-memory.kept{color:var(--gold);border-color:#e7c28b7a}.close-memory{margin-top:10px;border-color:transparent;color:#a9a294;background:none}.close-memory:hover{color:#e6ca9d}.letter-dialog{width:min(620px,calc(100% - 60px));background:linear-gradient(120deg,#171c28,#171a24)}.letter-paper{display:flex;flex-direction:column;align-items:center;padding:0 40px 40px}.letter-constellation{display:block;width:100%;max-width:420px;height:auto;aspect-ratio:320 / 250;overflow:visible}.heart-line{fill:none;stroke:#e0c08f5c;stroke-width:1.1;stroke-dasharray:1400;stroke-dashoffset:1400;animation:draw-heart 3.6s ease-out .2s forwards}.letter-node{opacity:0;animation:node-in 1s ease-out forwards;animation-delay:calc(1s + var(--node) * .4s)}.node-halo{fill:currentColor;stroke:none;opacity:.11}.letter-member{color:#f1ddba;opacity:0;animation:node-in 1.1s ease-out forwards;animation-delay:calc(3.4s + var(--node) * .3s)}@keyframes draw-heart{to{stroke-dashoffset:0}}@keyframes node-in{0%{opacity:0}to{opacity:1}}.letter-paper>.journey-button{margin-top:26px}.aux-dialog{width:min(360px,calc(100% - 32px));max-height:calc(100dvh - 40px);border-radius:4px;padding-bottom:18px}.setting-row{width:calc(100% - 48px);margin:0 24px;padding:18px 0;display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #b8a58622;color:#b6bac6;transition:color .25s}.setting-row:hover{color:var(--gold)}.setting-row>svg:first-child{width:24px;height:24px}.setting-row>svg:last-child{width:18px;height:18px;color:#8d94a5}.switch{width:42px;height:22px;border-radius:22px;border:1px solid #a59c8740;display:inline-flex;align-items:center;padding:0 3px;transition:border-color .25s,background .25s}.switch i{width:13px;height:13px;border-radius:50%;background:#8a91a1;transition:transform .25s,background .25s}.setting-row[aria-pressed=true]{color:var(--gold)}.setting-row[aria-pressed=true] .switch{border-color:#ccb57d80;background:#ccb57d14}.setting-row[aria-pressed=true] .switch i{transform:translate(20px);background:var(--gold)}.confirm-actions{display:flex;justify-content:center;gap:22px;margin:14px 20px 10px}.confirm-actions .danger{color:#e2a98a;border-color:#e2a98a4d}.confirm-actions .danger:hover{border-color:#e2a98a9e;background:#e2a98a12}.reading-mode #universe{visibility:hidden}.reading-mode .universe-surface{background-image:radial-gradient(circle at 19% 25%,#e1dcbb 0 .6px,transparent 1.4px),radial-gradient(circle at 75% 64%,#8dabc4 0 .7px,transparent 1.4px),radial-gradient(circle at 49% 34%,#e1dcbb 0 .6px,transparent 1.4px);background-size:197px 167px,283px 233px,349px 251px}.reading-mode .star-reticle:before{content:"";position:absolute;width:18px;height:18px;background:radial-gradient(circle,#fff0dd,#e0bccb44 20%,transparent 70%);box-shadow:0 0 24px #d9bd8535;border-radius:50%;left:calc(50% - 9px);top:calc(50% - 9px)}.reading-mode .hero-target .star-reticle:before{width:8px;height:8px;left:calc(50% - 4px);top:calc(50% - 4px);background:#f3e7c7;box-shadow:0 0 14px #dfc389}.reading-mode .member-target .star-reticle:before{inset:-30%;width:160%;height:160%;background:radial-gradient(ellipse,#e7bdd866,#8a75c42b 30%,transparent 68%);box-shadow:none}.reading-mode .memory-target .star-reticle:before{inset:0;width:100%;height:100%;background:radial-gradient(ellipse at 36% 42%,#efd0db35,transparent 38%),radial-gradient(ellipse at 62% 52%,#c6a7ee30,transparent 42%),radial-gradient(ellipse at 45% 54%,#e6b59824,transparent 52%);box-shadow:none;transform:rotate(var(--planet-roll))}.reading-mode .cluster-dust{position:absolute;inset:0;display:block;pointer-events:none;transform:rotate(var(--planet-roll, 0rad))}.cluster-dust i{position:absolute;width:var(--spark-size);height:var(--spark-size);border-radius:50%;background:#fff1e7;box-shadow:0 0 5px #f0c8de,0 0 11px #c8acdf88}.reading-mode .member-target .cluster-dust{inset:-20%}@keyframes panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.chapter-rail{top:16%}.story-dialog{width:1020px}}@media(max-width:700px){.masthead{top:max(20px,env(safe-area-inset-top));left:22px;right:16px}.wordmark svg{width:25px;height:25px}.header-controls{gap:0}.chapter-rail{top:14%;gap:13px}.star-target{width:48px;height:48px}.hero-target{width:60px;height:60px}.narration{top:73%;left:18px;right:18px;gap:12px}.glyph-button{width:50px;height:50px}.primary-glyph{width:58px;height:58px}.quiet-footer{bottom:max(19px,env(safe-area-inset-bottom))}.resume-note{bottom:22px}.mode-note{right:22px;bottom:45px}.story-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.dialog-top{padding:12px 16px 6px}.story-dialog>.dialog-top{position:sticky;top:0;background:#111624f5;z-index:3}.memory-layout{grid-template-columns:1fr;padding:4px 24px 26px;gap:10px}.photo-frame{aspect-ratio:4 / 3;padding:7px}.photo-frame img{max-height:280px}.photo-nav{min-height:38px;margin-top:4px}.photo-dot{height:44px}.memory-writing{padding-top:0}.interaction{margin-top:16px;height:129px}.interaction-status{min-height:28px;margin:10px 0 6px}.letter-paper{padding:0 22px 32px}}@media(max-height:650px)and (orientation:portrait){.masthead{top:10px}.chapter-rail{top:12%}.quiet-footer{bottom:12px}}@media(max-height:520px)and (orientation:landscape){.masthead{top:10px;left:22px;right:16px}.chapter-rail{top:13%}.narration{left:49%;right:3%;top:48%}.universe-surface{width:51%}.quiet-footer{bottom:12px}.story-dialog{max-height:calc(100dvh - 24px);width:calc(100% - 40px)}.memory-layout{grid-template-columns:1fr 1fr;gap:26px;padding:5px 25px 22px;align-items:center}.photo-frame{aspect-ratio:4/3}.letter-dialog{width:min(620px,calc(100% - 40px))}.letter-constellation{max-width:300px}}@media(max-width:700px)and (orientation:portrait){[data-stage=memories] .narration{top:58%;left:24px;right:24px}.memory-browser{gap:16px}}@media(max-height:650px)and (orientation:portrait){[data-stage=memories] .narration{top:56%}.memory-mark{width:66px;height:66px}.memory-mark svg{width:32px;height:32px}}@media(max-height:520px)and (orientation:landscape){[data-stage=memories] .narration{top:32%;left:53%;right:4%}.memory-browser{gap:14px}.memory-mark{width:62px;height:62px}.memory-mark svg{width:30px;height:30px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
