:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--outer-bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #bc8b52;outline-offset:3px}.app-shell{max-width:480px;margin:auto;min-height:100vh;background:var(--page-bg);box-shadow:0 0 45px #384b3020;display:flex;flex-direction:column}.topbar{height:76px;padding:0 27px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;gap:10px;align-items:center;border:0;background:none;color:var(--ink);text-align:left;font-family:Songti SC,STSong,serif;font-weight:700;letter-spacing:.12em}.brand small{display:block;font-family:system-ui,sans-serif;font-size:9px;font-weight:400;letter-spacing:.18em;color:var(--muted);margin-top:3px}.brand-mark{display:grid;place-items:center;width:31px;height:31px;border:1px solid var(--accent);border-radius:50%;font-size:19px}.icon-button{border:0;background:transparent;color:var(--ink);padding:8px;display:grid;place-items:center}main{flex:1}.welcome,.story-page,.report-page{padding:0 28px 36px}.welcome-illustration{height:175px;margin:24px 0 19px;position:relative;overflow:hidden;border-radius:120px 120px 4px 4px;background:#e8eadb}.sun,.birth-sun{position:absolute;border-radius:50%;background:#d7b782}.sun{width:60px;height:60px;left:calc(50% - 30px);top:30px}.hill{position:absolute;width:125%;height:120px;border-radius:50% 50% 0 0}.hill-back{background:#c9d3bb;bottom:-56px;left:-30%}.hill-front{background:#8fa994;bottom:-77px;right:-32%}.path{position:absolute;background:#e5dbc1;width:23px;height:95px;bottom:-43px;left:48%;transform:rotate(35deg);border-radius:50%}.star{position:absolute;color:#fbf8e9}.s1{left:22%;top:45px}.s2{right:23%;top:70px;font-size:12px}.eyebrow,.overline{font-size:10px;letter-spacing:.22em;color:var(--muted);font-weight:700}.eyebrow{display:flex;align-items:center;justify-content:center;gap:10px}.eyebrow span{width:18px;height:1px;background:var(--line)}h1,h2,h3,p{margin-top:0}.welcome h1,.report-page h1{font-family:Songti SC,STSong,serif;font-weight:600;text-align:center;font-size:32px;line-height:1.45;letter-spacing:.06em;margin:18px 0 13px}.welcome h1 em{font-style:normal;color:var(--accent)}.intro{text-align:center;line-height:1.9;font-size:14px;color:var(--muted);margin-bottom:28px}.selection-label{font-weight:650;font-size:14px;margin-bottom:12px}.sex-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sex-card{min-height:108px;background:var(--surface);border:1px solid var(--line);border-radius:4px;text-align:left;padding:14px;color:var(--ink);display:flex;flex-direction:column;gap:4px}.sex-card.selected{background:var(--surface-soft);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.sex-symbol{font-family:serif;font-size:23px;line-height:1}.sex-card strong{font-size:15px}.sex-card small,.mode-row small{font-size:11px;color:var(--muted)}.mode-row{display:flex;align-items:center;justify-content:space-between;margin:20px 0;gap:10px}.mode-row strong,.mode-row small{display:block}.mode-row strong{font-size:12px;margin-bottom:5px}.mode-row select{border:1px solid var(--line);background:var(--surface);color:var(--accent);padding:9px;border-radius:3px;font-size:12px}.primary-button,.secondary-button{border:0;width:100%;min-height:53px;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--accent);color:#fffdf4;border-radius:3px;font-weight:650;letter-spacing:.05em}.primary-button:disabled{background:var(--accent-soft)}.primary-button:not(:disabled):hover{background:var(--accent-strong)}.text-button{border:0;background:none;color:var(--muted);display:flex;justify-content:center;align-items:center;gap:6px;margin:16px auto 0;font-size:12px;padding:6px}.footer{padding:20px 28px 25px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:.1em}.story-page,.report-page{padding-top:32px}.section-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.1em}.inline-link{border:0;background:none;color:var(--muted);display:flex;gap:4px;align-items:center;font-size:11px}.age-heading{display:flex;align-items:baseline;gap:9px;margin:25px 0 18px}.age-number{font-family:Georgia,serif;font-size:88px;line-height:.9;letter-spacing:-.06em;font-weight:400}.age-heading b{font-family:Songti SC,STSong,serif;font-size:19px}.age-heading small{display:block;color:var(--muted);font-size:11px;margin-top:7px}.story-rule{height:23px;border-top:1px solid var(--line);position:relative}.story-rule span{position:absolute;right:0;top:-10px;background:var(--page-bg);padding-left:10px;color:var(--muted)}.event-card{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:23px;box-shadow:0 7px 22px #3e4a3308}.card-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;letter-spacing:.12em}.event-card h2,.story-copy h2{font-family:Songti SC,STSong,serif;font-size:23px;line-height:1.5;margin:22px 0 12px;font-weight:600}.event-card p,.story-copy p{color:var(--muted);font-size:14px;line-height:1.9;margin-bottom:0}.choice-heading{display:flex;justify-content:space-between;align-items:end;margin:29px 0 12px;font-weight:650;font-size:14px}.choice-heading small{font-size:10px;font-weight:400;color:var(--muted)}.choices{display:grid;gap:9px}.choice{display:flex;align-items:center;gap:13px;width:100%;text-align:left;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:15px 13px;border-radius:3px;min-height:64px}.choice:hover:not(:disabled){border-color:var(--accent);background:var(--surface-soft)}.choice:disabled{opacity:.52}.choice-index{color:var(--muted);font-family:Georgia,serif;font-size:13px}.choice-copy{flex:1}.choice-copy strong,.choice-copy small{display:block}.choice-copy strong{font-size:14px}.choice-copy small{color:var(--muted);font-size:11px;line-height:1.6;margin-top:4px}.chosen{margin-top:22px;padding-top:16px;border-top:1px solid var(--line);font-size:13px}.chosen span{display:block;color:var(--muted);font-size:10px;margin-bottom:6px}.changes{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.changes span{background:var(--surface-soft);padding:5px 8px;font-size:11px;color:var(--muted);border-radius:2px}.next-button{margin-top:20px}.person-link{width:100%;border:0;background:none;border-top:1px solid var(--line);margin-top:28px;padding:18px 0;color:var(--muted);display:flex;align-items:center;justify-content:space-between;font-size:12px}.person-link span{display:flex;gap:8px;align-items:center}.birth-art{height:158px;background:#e8ecdf;position:relative;overflow:hidden;margin:24px 0;border-radius:3px}.birth-sun{width:75px;height:75px;left:calc(50% - 37px);top:29px}.birth-line{position:absolute;border:1px solid #9eb4a0;border-radius:50%;width:145%;height:130px;left:-22%;bottom:-86px}.line-two{bottom:-70px;border-color:#c2d0bc}.birth-dot{position:absolute;color:#f9f7ea;top:32px;left:30%}.story-copy h2{margin:9px 0 13px}.story-copy p+p{margin-top:8px}.birth-details{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:23px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:15px 0}.birth-details span,.birth-details strong{display:block;font-size:11px}.birth-details span{color:var(--muted);margin-bottom:6px}.fine-print{font-size:11px;line-height:1.8;color:var(--muted);margin:14px 0}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#142b20a1;z-index:5;display:flex;justify-content:flex-end}.drawer{width:min(100%,420px);height:100%;background:var(--page-bg);padding:30px 27px;overflow:auto;box-shadow:-10px 0 40px #0002}.drawer-header{display:flex;justify-content:space-between;align-items:start;border-bottom:1px solid var(--line);padding-bottom:20px}.drawer-header h2{font:600 25px Songti SC,STSong,serif;margin:8px 0 0}.drawer-menu button{width:100%;display:flex;align-items:center;gap:13px;padding:19px 2px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink);text-align:left;font-size:14px}.drawer-menu button>svg:last-child{margin-left:auto}.drawer-menu button small{display:block;color:var(--muted);margin-top:5px}.drawer-menu .restart-link{margin-top:16px;color:#9b7969}.drawer-intro{font-size:13px;color:var(--muted);line-height:1.9;margin:21px 0}.detail-list>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 0;font-size:13px}.detail-list span{color:var(--muted)}.detail-list strong{font-weight:600}.drawer h3{font-size:14px;margin:27px 0 16px}.stat-list>div{display:flex;align-items:center;gap:10px;font-size:12px;margin:14px 0}.stat-list span{width:32px;color:var(--muted)}.stat-list b{font-size:11px;font-weight:400;color:var(--muted)}.stat-track{height:5px;flex:1;background:var(--surface-soft);border-radius:5px}.stat-track i{display:block;height:100%;background:var(--accent);border-radius:5px}.timeline{margin:20px 0}.timeline-item{display:grid;grid-template-columns:55px 1fr;gap:15px;padding:0 0 22px;position:relative}.timeline-item:before{content:"";position:absolute;left:59px;top:7px;bottom:-3px;border-left:1px solid var(--line)}.timeline-item:after{content:"";position:absolute;left:56px;top:5px;width:7px;height:7px;background:var(--accent);border-radius:50%}.timeline-age{font-size:11px;color:var(--muted);padding-top:2px}.timeline-item strong{font-size:14px}.timeline-item p{font-size:12px;line-height:1.8;color:var(--muted);margin:7px 0 0}.timeline-item small{color:var(--muted);font-size:11px}.source-list a{display:block;padding:16px 0;border-bottom:1px solid var(--line);color:inherit;text-decoration:none}.source-list strong,.source-list small{display:block}.source-kind{font-size:10px;color:var(--muted)}.source-list strong{font-size:13px;line-height:1.5;margin:5px 0}.source-list small,.source-list p{font-size:11px;line-height:1.6;color:var(--muted);margin:3px 0}.empty{padding:35px 0;color:var(--muted);font-size:13px}.report-page{text-align:center}.report-ornament{margin-top:45px;color:var(--muted);font-size:28px}.report-page h1{margin:14px 0 5px}.report-subtitle{font-size:13px;color:var(--muted)}.report-divider{width:40px;border-top:1px solid var(--line);margin:26px auto}.biography{text-align:left;font-family:Songti SC,STSong,serif;font-size:14px;line-height:2.1;color:var(--muted)}.summary-grid{display:grid;grid-template-columns:1fr 1fr;text-align:left;border-top:1px solid var(--line);border-left:1px solid var(--line);margin:25px 0}.summary-grid>div{padding:14px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.summary-grid span,.summary-grid strong{display:block;font-size:12px}.summary-grid span{color:var(--muted);margin-bottom:6px}.report-heading{text-align:left;font:600 19px Songti SC,STSong,serif;margin:35px 0 20px}.report-page .timeline{text-align:left}.report-notes{text-align:left;color:var(--muted);font-size:11px;line-height:1.7}.secondary-button{background:transparent;color:var(--accent);border:1px solid var(--line);margin-top:9px}.report-actions{margin-top:25px}.page-enter{animation:appear .35s ease-out}@keyframes appear{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:360px){.welcome,.story-page,.report-page{padding-left:22px;padding-right:22px}.topbar{padding:0 22px}.welcome h1{font-size:29px}}@media print{body,.app-shell{background:#fff;box-shadow:none}.app-shell{max-width:none}.no-print,.footer{display:none!important}.report-page{padding:0;max-width:180mm;margin:auto}.report-ornament{margin-top:0}.timeline-item{break-inside:avoid}.report-page h1{font-size:26px}}.app-shell{min-height:100dvh}.choice-copy{min-width:0}.choice-copy strong,.birth-details strong,.detail-list strong,.summary-grid strong{overflow-wrap:anywhere}.age-heading small{max-width:240px;line-height:1.7}.detail-list>div{gap:20px}.detail-list strong{text-align:right;max-width:65%}.event-card p,.story-copy p{font-size:16px}.choice-copy strong{font-size:15px}.choice-copy small{font-size:12px}.choice svg{flex-shrink:0}.risk-note{color:var(--accent)!important}.footer{padding-bottom:max(25px,env(safe-area-inset-bottom))}.drawer{padding-bottom:max(30px,env(safe-area-inset-bottom))}.drawer-overlay,.drawer{overscroll-behavior:contain}.choice-heading{gap:8px;flex-wrap:wrap}.biography{font-size:16px}.timeline-item p{font-size:13px}.source-list p{font-size:12px}@media(prefers-reduced-motion:reduce){.page-enter{animation:none}}.storage-warning{margin:14px 22px 0;padding:12px 14px;background:#f6eee1;border:1px solid #dfc7a6;color:#76583c;font-size:13px;line-height:1.6;border-radius:3px}.trend{text-align:left;border:1px solid var(--line);background:var(--surface);padding:15px;margin:10px 0;break-inside:avoid}.trend-title,.trend-labels{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.trend-title strong{font-size:14px}.trend-title small,.trend-labels{font-size:10px;color:var(--muted)}.trend svg{display:block;width:100%;height:auto;margin:6px 0}.trend-labels span:last-child{text-align:right}.trend-labels span:nth-child(2){text-align:center}.topbar{flex-shrink:0}.app-shell,main,.welcome{min-width:0}@media(max-width:430px){.topbar{height:62px}.welcome-illustration{height:112px;margin:14px 0 12px}.sun{width:48px;height:48px;left:calc(50% - 24px);top:20px}.welcome h1{font-size:27px;line-height:1.3;margin:10px 0 8px}.intro{line-height:1.6;margin-bottom:15px}.selection-label{margin-bottom:8px}.sex-card{min-height:85px;padding:10px}.mode-row{margin:12px 0}.welcome .text-button{margin-top:8px}}@media(max-width:320px){.welcome,.story-page,.report-page,.topbar{padding-left:16px;padding-right:16px}.mode-row{align-items:flex-start;flex-wrap:wrap}.trend-labels{font-size:9px}.birth-details{grid-template-columns:1fr 1fr}}:root{--page-bg:#f8f6ed;--surface:#fdfcf7;--surface-soft:#edf1e7;--ink:#263d32;--muted:#53695a;--accent:#294c38;--accent-strong:#203f30;--accent-soft:#d7e1d4;--line:#ced6c9;--outer-bg:#ebe9df;--scene-tint:#708a73;--scene-glow:#eacb9c}body{transition:background-color 1.2s ease}.app-shell{color:var(--ink);transition:background-color 1.2s ease,color .8s ease}.topbar{border-bottom:0}.soundbar{display:flex;align-items:center;justify-content:space-between;padding:0 26px 10px;border-bottom:1px solid var(--line);gap:8px}.sound-toggle{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--muted);padding:6px 0;text-align:left;min-height:38px;min-width:0}.sound-toggle>svg{flex:none}.sound-toggle>span{font-size:10px;letter-spacing:.03em}.sound-toggle b{font-weight:500;margin-left:5px;color:var(--accent)}.sound-settings{display:grid;place-items:center;min-width:38px;min-height:34px;background:transparent;border:0;color:var(--muted)}.equalizer{display:flex;align-items:center;gap:2px;height:14px;margin-left:3px}.equalizer i{width:2px;height:4px;background:var(--accent);border-radius:2px}.equalizer.is-playing i{animation:soundwave 1s ease-in-out infinite alternate}.equalizer.is-playing i:nth-child(2){animation-delay:-.65s}.equalizer.is-playing i:nth-child(3){animation-delay:-.3s}@keyframes soundwave{0%{height:3px}to{height:13px}}.audio-error{margin:10px 25px 0;color:var(--muted);font-size:12px;line-height:1.7}.immersive-scene{margin:20px 0 24px;min-width:0;text-align:left}.scene-picture{height:210px;position:relative;overflow:hidden;background:linear-gradient(145deg,var(--surface-soft),var(--scene-glow));border-radius:5px;isolation:isolate;box-shadow:0 5px 16px #00000008}.scene-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:var(--scene-focus,50%) 50%;animation:scene-drift 28s ease-in-out infinite alternate}.scene-current{z-index:1;animation:scene-reveal .9s ease-out,scene-drift 28s ease-in-out infinite alternate}.scene-previous{z-index:0}.scene-color-wash{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--scene-tint);mix-blend-mode:soft-light;opacity:.36;z-index:2;pointer-events:none;transition:background-color 1.6s ease}.scene-light{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(125deg,color-mix(in srgb,var(--scene-glow) 23%,transparent),transparent 55%,#18202015);z-index:3;pointer-events:none;transition:background 1.6s ease}.scene-chapter{position:absolute;z-index:4;left:13px;top:12px;display:flex;align-items:baseline;gap:7px;color:var(--ink);padding:5px 9px;border:1px solid color-mix(in srgb,var(--surface) 65%,transparent);background:color-mix(in srgb,var(--surface) 89%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:2px}.scene-chapter>span{font:20px Georgia,serif}.scene-chapter small{font-size:10px;letter-spacing:.12em}.scene-locator{position:absolute;z-index:4;right:11px;bottom:11px;width:104px;padding:6px 7px 5px;background:color-mix(in srgb,var(--surface) 94%,transparent);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:3px;color:var(--accent)}.scene-locator svg{display:block;width:100%;height:auto}.scene-locator>span{font-size:9px;line-height:1.5;display:block;text-align:center;color:var(--ink);overflow-wrap:anywhere}.immersive-scene figcaption{display:flex;justify-content:space-between;gap:12px;margin-top:10px;align-items:baseline;color:var(--muted)}.immersive-scene figcaption>span{font-size:11px;letter-spacing:.1em}.immersive-scene figcaption>small{font-size:10px}.scene-fallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px;color:var(--muted)}.scene-compact{margin-top:18px;margin-bottom:18px}.scene-compact .scene-picture{height:175px;border-radius:70px 70px 4px 4px}.scene-compact .scene-chapter{display:none}.scene-compact figcaption{justify-content:center}.scene-compact figcaption>span{display:none}.age-heading{margin:25px 0 12px}.age-number{font-size:66px}.section-top{padding-top:0}.story-page .immersive-scene{margin-top:18px}.event-card{transition:background-color .8s ease,border-color .8s ease}.choice{transition:background-color .3s ease,border-color .3s ease}.choice:hover:not(:disabled){transform:translateY(-1px)}.primary-button{transition:background-color .6s ease}.primary-button:disabled{color:var(--muted)}.report-page .immersive-scene{margin-bottom:22px}.report-ornament{margin-top:20px}.ambience-settings .now-playing{background:var(--surface);padding:21px;border:1px solid var(--line);border-radius:5px}.now-playing h3{font:600 29px Songti SC,serif;margin:15px 0 12px}.now-playing p,.ambience-explainer p{font-size:13px;line-height:1.9;color:var(--muted)}.volume-label{display:flex;justify-content:space-between;margin:25px 0 10px;font-size:13px}.now-playing input[type=range]{display:block;width:100%;height:36px;margin:0;accent-color:var(--accent);cursor:pointer}.palette-samples{display:flex;margin:15px 0;border:1px solid var(--line);height:38px;border-radius:4px;overflow:hidden}.palette-samples span{flex:1}.ambience-explainer{margin-top:30px}input:focus-visible{outline:3px solid var(--accent);outline-offset:3px}@keyframes scene-reveal{0%{opacity:0}to{opacity:1}}@keyframes scene-drift{0%{transform:scale(1)}to{transform:scale(1.035)}}@media(max-width:430px){.scene-compact .scene-picture{height:148px}.scene-picture{height:195px}.welcome .scene-compact{margin-top:14px;margin-bottom:14px}.welcome h1{margin-top:9px}.soundbar{padding-left:27px;padding-right:23px}.scene-compact figcaption{margin-top:8px}.topbar{height:59px}.welcome .intro{margin-bottom:15px}}@media(max-width:360px){.soundbar{padding-left:22px;padding-right:18px}.scene-picture{height:175px}.scene-compact .scene-picture{height:132px}.scene-locator{width:92px}}@media(max-width:320px){.soundbar{padding-left:16px;padding-right:12px}.sound-toggle>span{font-size:9px}.scene-picture{height:160px}.scene-compact .scene-picture{height:116px}.scene-chapter{left:9px;top:9px}}@media(prefers-reduced-motion:reduce){body,.app-shell,.scene-color-wash,.scene-light,.event-card,.choice,.primary-button{transition:none}.scene-image,.scene-current,.equalizer.is-playing i{animation:none}.choice:hover:not(:disabled){transform:none}.equalizer.is-playing i:nth-child(2){height:10px}}@media print{.immersive-scene{display:none}.app-shell{color:#17251c}body{background:#fff!important}}
