:root{--paper: #fff8ea;--paper2: #fbeecb;--ink: #3a2c1e;--ink-soft: #6b543a;--brick: #a63a2a;--brick-soft: #c94f2e;--wheat: #d9a441;--wheat-deep: #b07f1e;--line: #d9c39a;--green: #4d8a4f;--red: #b3402e}*{box-sizing:border-box}html,body{margin:0;padding:0;background:#e9d9ae;color:var(--ink);font-family:PingFang SC,Microsoft YaHei,system-ui,-apple-system,sans-serif;font-size:16px;line-height:1.6;-webkit-text-size-adjust:100%}#app{max-width:430px;margin:0 auto;min-height:100dvh;background:radial-gradient(circle at 85% 8%,rgba(242,193,78,.25),transparent 42%),linear-gradient(#f7ead0,#f3e0b8);padding:calc(12px + env(safe-area-inset-top)) 12px calc(20px + env(safe-area-inset-bottom))}.screen{width:100%}.paper{background:var(--paper);border:2px solid var(--line);border-radius:255px 18px 225px/18px 225px 18px 255px;padding:20px 18px 24px;box-shadow:0 4px #7a4a211f}.kicker{margin:0 0 4px;text-align:center;color:var(--wheat-deep);font-size:13px;letter-spacing:.2em}.game-title,.screen-title{font-family:Songti SC,"Noto Serif CJK SC",Georgia,serif;color:var(--brick);text-align:center;line-height:1.25;margin:6px 0 10px;overflow-wrap:break-word}.game-title{font-size:42px}.screen-title{font-size:28px}.tagline{text-align:center;color:var(--ink-soft);font-size:15px;margin:0 0 8px}.hero-sun{width:72px;margin:0 auto}.hero-sun svg{width:100%;height:auto;display:block}.hero-art{display:flex;justify-content:center;gap:8px;margin:6px 0 10px}.hero-art .art.big{width:110px}.art svg{width:100%;height:auto;display:block}.btn-col{display:flex;flex-direction:column;gap:12px;margin-top:16px}.btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.btn-row .btn{flex:1 1 auto}.btn{min-height:52px;padding:12px 18px;border-radius:16px 4px;border:2px solid var(--brick);background:var(--paper);color:var(--brick);font-size:17px;font-weight:700;font-family:inherit;cursor:pointer;overflow-wrap:break-word;white-space:normal;text-align:center;touch-action:manipulation}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--brick);color:#fff8ea}.btn.secondary{background:#f3ddab;color:var(--ink);border-color:var(--wheat-deep)}.btn.ghost{border:2px dashed var(--line);color:var(--ink-soft);background:transparent;font-weight:500}.btn.big{font-size:18px;min-height:56px}.btn:disabled{opacity:.55;cursor:default}.hint,.sub-note{text-align:center;color:var(--ink-soft);font-size:13px;margin:12px 0 0;overflow-wrap:break-word}.sub-note{text-align:left}.foot-art{display:flex;justify-content:center;gap:18px;margin-top:16px}.foot-art .art{width:52px;opacity:.9}.foot-note{text-align:center;color:var(--wheat-deep);font-size:13px;margin:6px 0 0}.reveal-list{display:flex;flex-direction:column;gap:10px;margin:18px 0 6px}.reveal-item{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;background:var(--paper2);border:2px dashed var(--line);border-radius:12px;opacity:0;transform:translateY(10px);animation:rise .5s ease forwards}@keyframes rise{to{opacity:1;transform:translateY(0)}}.reveal-label{color:var(--ink-soft);font-size:15px;flex:none;white-space:nowrap}.reveal-value{font-weight:700;text-align:right;overflow-wrap:break-word}.form{margin-top:10px}.field{display:block;margin-bottom:14px}.field>span{display:block;font-weight:700;margin-bottom:6px;font-size:15px}.field select{width:100%;min-height:52px;font-size:17px;font-family:inherit;color:var(--ink);background:#fffdf6;border:2px solid var(--line);border-radius:12px;padding:10px 12px}.field-note{font-size:13px;color:var(--ink-soft);margin:4px 0 12px}.readonly-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:6px}.readonly-grid>div{background:var(--paper2);border:2px dashed var(--line);border-radius:12px;padding:10px 12px}.readonly-grid span{display:block;font-size:13px;color:var(--ink-soft)}.readonly-grid b{font-size:16px}.sub-title{font-family:Songti SC,"Noto Serif CJK SC",Georgia,serif;font-size:19px;color:var(--brick);margin:18px 0 8px;border-bottom:2px dashed var(--line);padding-bottom:4px}.attr-list{display:flex;flex-direction:column;gap:10px;margin-top:6px}.attr-row{display:flex;align-items:center;gap:10px}.attr-name{width:72px;flex:none;font-size:15px}.attr-bar{flex:1;height:14px;background:#eadfc2;border-radius:7px;overflow:hidden;border:1px solid var(--line)}.attr-fill{height:100%;border-radius:7px;transition:width .4s ease}.attr-num{width:32px;flex:none;text-align:right;font-weight:700}.life-screen .paper{padding-bottom:18px}.life-head{display:flex;gap:14px;align-items:center}.life-age{font-family:Songti SC,Georgia,serif;color:var(--brick);line-height:1;flex:none}.life-age-num,#life-age-num{font-size:56px;font-weight:700}.life-age-unit{font-size:22px;margin-left:2px}.life-head-info{min-width:0}.life-year{font-size:17px;font-weight:700;overflow-wrap:break-word}.life-place,.life-job{font-size:14px;color:var(--ink-soft);overflow-wrap:break-word}.speed-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.btn.speed{min-height:48px;padding:8px 10px;font-size:15px;flex:1 1 auto;border-radius:12px}.btn.speed.wide{flex:2 1 100%}.btn.speed.active{background:var(--brick);color:#fff8ea;border-color:var(--brick)}.speed-note{font-size:13px;color:var(--ink-soft);margin:8px 0 0}.feed{max-height:38vh;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:4px 2px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;scroll-behavior:auto}.feed-item{background:#fffdf6;border:1px solid var(--line);border-left:4px solid var(--wheat);border-radius:10px;padding:10px 12px}.feed-item.feed-event{border-left-color:var(--brick)}.feed-item.feed-birth{border-left-color:var(--green);background:#f2f6e8}.feed-item.feed-death{border-left-color:var(--ink-soft);background:#f0ead9}.feed-text{margin:2px 0 4px;font-size:15px;overflow-wrap:break-word}.chip{display:inline-block;font-size:12px;padding:1px 8px;border-radius:10px;margin:0 4px 2px 0}.chip-up{background:#dcead9;color:#2f6b33}.chip-down{background:#f6ddd6;color:#93301f}.modal{position:fixed;inset:0;background:#3a2c1e8c;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal.hidden{display:none}.modal-card{width:min(92vw,400px);max-height:86dvh;overflow-y:auto;background:var(--paper);border:2px solid var(--brick);border-radius:20px 6px;padding:20px 18px;box-shadow:0 12px 32px #0000004d}.modal-title{font-family:Songti SC,Georgia,serif;color:var(--brick);font-size:23px;margin:4px 0 8px;overflow-wrap:break-word}.modal-text{font-size:16px;margin:0 0 6px;overflow-wrap:break-word}.choice-btn{display:flex;flex-direction:column;gap:2px;align-items:stretch;text-align:left;width:100%}.choice-label{font-size:16px}.timeline-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.title-badge{display:inline-block;background:var(--brick);color:#fff8ea;font-family:Songti SC,Georgia,serif;font-size:26px;font-weight:700;padding:8px 22px;border-radius:14px;margin:6px auto 4px}.epi-lead{text-align:center;color:var(--ink-soft);font-size:15px;margin:8px 0 4px}.epi-section{margin-top:6px}.epi-text{font-size:15px;margin:6px 0;overflow-wrap:break-word}.epi-list{margin:6px 0;padding-left:20px}.epi-list li{font-size:15px;margin-bottom:6px;overflow-wrap:break-word}.epi-eval{background:var(--paper2);border:2px dashed var(--line);border-radius:12px;padding:12px 14px}.poster-box{margin-top:18px;text-align:center}.poster-box.hidden{display:none}.poster-box img{width:100%;max-width:320px;border:2px solid var(--line);border-radius:12px;display:block;margin:0 auto 12px}.memoir{margin-top:10px}.memoir-p{font-size:16px;text-indent:2em;margin:0 0 14px;overflow-wrap:break-word}.archive-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.archive-card{background:#fffdf6;border:2px solid var(--line);border-radius:14px;padding:14px;cursor:pointer}.archive-card:active{background:var(--paper2)}.archive-head{display:flex;justify-content:space-between;gap:10px;font-size:15px}.archive-status{color:var(--ink-soft);font-size:13px}.archive-place{font-size:14px;color:var(--ink-soft);margin-top:2px;overflow-wrap:break-word}.archive-title{font-family:Songti SC,Georgia,serif;font-size:19px;color:var(--brick);margin:6px 0 4px}.archive-moment,.archive-eval{font-size:14px;margin:4px 0;overflow-wrap:break-word}.archive-eval{color:var(--ink-soft)}.archive-more{font-size:13px;color:var(--wheat-deep)}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);width:min(92vw,400px);background:var(--ink);color:#fff8ea;padding:12px 16px;border-radius:12px;font-size:15px;text-align:center;z-index:100;box-shadow:0 6px 20px #0000004d;overflow-wrap:break-word;animation:toast-in .25s ease}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.toast.hidden{display:none}@media (max-width: 360px){.game-title{font-size:36px}.btn{font-size:16px}#app{padding-left:8px;padding-right:8px}}.reveal-suspense{text-align:center;color:var(--wheat-deep);font-size:14px;letter-spacing:.15em;margin:10px 0 0;animation:suspense-blink 1.1s ease-in-out infinite}@keyframes suspense-blink{0%,to{opacity:.35}50%{opacity:1}}.reveal-item{border-left:4px solid var(--wheat);animation:rise .55s ease forwards}.reveal-item.reveal-key{border-left-color:var(--brick);background:#fdf3d7}.reveal-item .reveal-value{font-size:16px}.reveal-seal-note{text-align:center;color:var(--ink-soft);font-size:13px;margin:14px 0 0}.reg-card{position:relative;background:#fffdf6;border:2px solid var(--brick);border-radius:16px 4px;padding:18px 16px 14px;box-shadow:0 4px #7a4a2126;margin-top:12px}.reg-card:before{content:"";position:absolute;inset:6px;border:1px dashed var(--line);border-radius:12px;pointer-events:none}.reg-seal{position:absolute;top:10px;right:12px;width:64px;height:64px;border:3px solid var(--brick);border-radius:10px;color:var(--brick);font-family:Songti SC,Georgia,serif;font-size:13px;font-weight:700;line-height:1.35;display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(8deg);opacity:.85;background:#a63a2a0d}.reg-sign{text-align:right;color:var(--ink-soft);font-size:13px;margin:10px 0 0;font-family:Songti SC,Georgia,serif}.life-screen[data-stage=baby] .paper{background:#fff9ec}.life-screen[data-stage=child] .paper{background:#fff8e6}.life-screen[data-stage=teen] .paper{background:#fdf3d3}.life-screen[data-stage=youth] .paper{background:#fcefc6}.life-screen[data-stage=adult] .paper{background:#fbeecb}.life-screen[data-stage=mid] .paper{background:#f8e9c2}.life-screen[data-stage=elder] .paper{background:#f6e2b4}.stage-banner{display:flex;align-items:baseline;gap:8px;margin-top:10px;padding:8px 12px;background:var(--paper2);border:2px dashed var(--line);border-radius:12px}.stage-banner .stage-name{font-family:Songti SC,Georgia,serif;color:var(--brick);font-size:17px;font-weight:700;flex:none}.stage-banner .stage-motif{font-size:13px;color:var(--ink-soft);overflow-wrap:break-word}.milestone-rail{margin-top:14px;padding:10px 4px 4px;border-top:2px dashed var(--line)}.milestone-rail-title{font-size:13px;color:var(--ink-soft);margin:0 0 6px}.milestone-track{position:relative;height:8px;background:#eadfc2;border-radius:4px;margin:10px 6px 4px}.milestone-progress{position:absolute;left:0;top:0;bottom:0;background:var(--wheat);border-radius:4px}.milestone-dot{position:absolute;top:50%;width:14px;height:14px;transform:translate(-50%,-50%);border-radius:50%;background:var(--brick);border:2px solid #fff8ea;box-shadow:0 1px 3px #00000040}.milestone-labels{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--ink-soft);margin-top:6px}.milestone-labels b{color:var(--brick)}.feed-item-head{display:flex;align-items:center;gap:8px;margin-bottom:2px}.feed-age-badge{flex:none;background:var(--brick);color:#fff8ea;font-size:13px;font-weight:700;padding:1px 9px;border-radius:10px}.feed-tag{flex:none;font-size:12px;padding:1px 8px;border-radius:10px;border:1px solid var(--line);color:var(--ink-soft);background:var(--paper2)}.feed-tag.tag-birth{background:#dcead9;color:#2f6b33;border-color:#9dbf9a}.feed-tag.tag-death{background:#e8e2d2;color:#5c4a33}.feed-tag.tag-event{background:#f6e3d3;color:#93301f;border-color:#d9a441}.feed-meta{font-size:12px;color:var(--ink-soft)}.attr-delta{width:74px;flex:none;text-align:right;font-size:13px;font-weight:700}.attr-delta.up{color:var(--green)}.attr-delta.down{color:var(--red)}.attr-note{font-size:12px;color:var(--ink-soft);margin:2px 0 0 82px;min-height:0}.attr-note:empty{display:none}.choice-btn.opt-0{border-left:6px solid var(--brick)}.choice-btn.opt-1{border-left:6px solid var(--wheat-deep)}.choice-btn.opt-2{border-left:6px solid var(--green)}.choice-num{display:inline-block;width:24px;height:24px;line-height:24px;text-align:center;border-radius:50%;background:var(--brick);color:#fff8ea;font-size:14px;font-weight:700;margin-right:6px}.choice-btn.opt-1 .choice-num{background:var(--wheat-deep)}.choice-btn.opt-2 .choice-num{background:var(--green)}.choice-label{font-size:17px;font-weight:700;color:var(--ink)}.choice-meaning{font-size:14px;color:var(--ink);margin-top:2px}.choice-relation{font-size:13px;color:#2f6b33;margin-top:2px}.choice-longterm{font-size:13px;color:var(--wheat-deep);margin-top:2px}.choice-hint{font-size:13px;font-weight:500;color:var(--ink-soft)}.epi-rail{margin-top:12px}.epi-rail-title{font-size:13px;color:var(--ink-soft);margin:0 0 6px;text-align:center}.epi-stage-tag{display:inline-block;font-size:12px;color:var(--wheat-deep);border:1px dashed var(--wheat-deep);border-radius:10px;padding:0 8px;margin-left:8px;vertical-align:middle}.memoir-band{font-family:Songti SC,Georgia,serif;font-size:20px;color:var(--brick);margin:20px 0 6px;border-bottom:2px dashed var(--line);padding-bottom:4px}.memoir-band:first-of-type{margin-top:12px}@media (max-width: 360px){.attr-delta{width:60px;font-size:12px}.attr-note{margin-left:82px}.reg-seal{width:56px;height:56px;font-size:12px}}.birth-scene{margin:12px auto 4px;border:2px dashed var(--line);border-radius:16px 4px;overflow:hidden;background:linear-gradient(#fdf3d7,#f3e2ae);animation:rise .6s ease both}.birth-scene svg{width:100%;height:auto;display:block}.birth-mood{text-align:center;font-family:Songti SC,Georgia,serif;color:var(--ink-soft);font-size:15px;margin:8px 0 0;animation:rise .6s ease both}.reveal-item.reveal-real .reveal-value{color:var(--brick)}.reveal-real-tag{display:inline-block;background:var(--brick);color:#fff8ea;font-size:11px;font-weight:700;padding:1px 7px;border-radius:9px;margin-left:6px;vertical-align:middle;letter-spacing:0;white-space:nowrap}.reveal-fiction-note{text-align:center;color:var(--ink-soft);font-size:12px;margin:12px 0 0;overflow-wrap:break-word}.choice-card{display:flex;flex-direction:column;gap:6px}.choice-details{background:#fffdf6;border:2px dashed var(--line);border-radius:12px;padding:0 12px}.choice-details summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-size:14px;font-weight:700;color:var(--wheat-deep);list-style:none;touch-action:manipulation}.choice-details summary::-webkit-details-marker{display:none}.choice-details summary:before{content:"＋";margin-right:6px;font-size:16px}.choice-details[open] summary:before{content:"－"}.choice-detail-body{display:flex;flex-direction:column;gap:4px;padding:0 0 12px;font-size:14px;overflow-wrap:break-word}.choice-detail-body p{margin:0}.choice-detail-body .choice-relation,.choice-detail-body .choice-longterm{display:block}.modal-card{animation:modal-in .3s ease both}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.feed-item.feed-year-group{background:#fbf3da;border-style:dashed}.feed-group-count{flex:none;font-size:12px;color:var(--wheat-deep);border:1px dashed var(--wheat-deep);border-radius:10px;padding:1px 8px}.attr-note-single{margin-left:0}@media (max-width: 360px){.reveal-real-tag{font-size:10px;padding:1px 5px}}#app{padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(20px + env(safe-area-inset-bottom,0px))}.toast{bottom:calc(24px + env(safe-area-inset-bottom,0px))}.milestone-track{height:26px}.milestone-progress{top:50%;bottom:auto;height:8px;transform:translateY(-50%)}.milestone-dot.lane-a{top:24%}.milestone-dot.lane-b{top:76%}.tl-band{background:#fffdf6;border:2px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}.tl-band summary{min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;cursor:pointer;list-style:none;touch-action:manipulation;background:var(--paper2)}.tl-band summary::-webkit-details-marker{display:none}.tl-band summary:before{content:"＋";flex:none;font-size:16px;color:var(--brick);font-weight:700}.tl-band[open] summary:before{content:"－"}.tl-band-label{flex:1;font-family:Songti SC,Georgia,serif;font-size:17px;font-weight:700;color:var(--brick);overflow-wrap:break-word}.tl-band-count{flex:none;font-size:13px;color:var(--ink-soft);border:1px dashed var(--wheat-deep);border-radius:10px;padding:1px 8px}.tl-band-items{display:flex;flex-direction:column;gap:10px;padding:12px;border-top:2px dashed var(--line)}.tl-band-items .feed-item{margin:0}.memoir-note{font-size:13px;color:var(--ink-soft);background:var(--paper2);border:2px dashed var(--line);border-radius:12px;padding:8px 12px;margin:10px 0 0;overflow-wrap:break-word}.memoir-src{font-size:12px;color:var(--ink-soft);margin:-8px 0 14px;overflow-wrap:break-word}
