:root{--bg:#edf2ee;--paper:#fafcf9;--ink:#182831;--muted:#687875;--line:#ced8d1;--accent:#8d2346;--accent-soft:#f3e7eb;--green:#347452;--teal:#217477;--gold:#a98035;--shadow:0 5px 20px #18342908;--serif:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",Georgia,serif;--sans:"Yu Gothic UI","Hiragino Kaku Gothic ProN",Meiryo,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.8 var(--sans);-webkit-font-smoothing:antialiased}body.dark{--bg:#152225;--paper:#1e3032;--ink:#e9efe7;--muted:#a4b7af;--line:#3b5150;--accent:#e596ad;--accent-soft:#3e2b35;--green:#72ac88;--teal:#76b5b4;--gold:#d7b777;--shadow:none}button,input,select,textarea{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:var(--paper);padding:9px 15px;border-radius:5px;line-height:1.5;transition:background .15s,transform .15s}button:hover{background:var(--accent-soft)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}a{color:var(--teal)}button.primary{background:var(--accent);color:var(--paper);border-color:var(--accent);font-weight:700}button.primary:hover{filter:brightness(1.1)}button.quiet{border-color:transparent;background:transparent;color:var(--muted)}button.small{font-size:12px;padding:6px 10px}button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.5}h2{font-size:18px}h3{font-size:15px}small{font-size:11px}select,input,textarea{border:1px solid var(--line);background:var(--paper);border-radius:4px;padding:10px;width:100%;min-width:0}textarea{resize:vertical}label{display:block}canvas{image-rendering:pixelated;display:block}body.modal-open{overflow:hidden}[hidden]{display:none!important}.skip{position:fixed;top:-70px;left:16px;z-index:100;background:var(--paper);padding:10px}.skip:focus{top:10px}.masthead{max-width:1500px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:20px 36px;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-family:var(--serif);font-weight:700;font-size:19px;white-space:nowrap}.brand small{display:block;font:9px/1.6 var(--sans);letter-spacing:2.4px;color:var(--muted);font-weight:400}.brand-mark{font-size:23px;border:1px solid var(--accent);color:var(--accent);width:37px;height:40px;display:grid;place-items:center}.masthead nav{display:flex;gap:10px;align-items:center}.masthead nav button{font-size:12px}.masthead nav button:first-child span{background:var(--bg);padding:1px 6px;margin-left:4px;border-radius:12px}.icon-button{min-width:39px;padding-inline:9px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;color:var(--teal)}.muted,.hint{color:var(--muted)}.hint{font-size:11px;line-height:1.9}.paper{background:var(--paper);border:1px solid var(--line);border-radius:4px;box-shadow:var(--shadow)}.landing{max-width:1240px;margin:0 auto;padding:50px 35px}.hero{display:grid;grid-template-columns:1fr .92fr;gap:70px;align-items:center}.hero h1{font-family:var(--serif);font-size:clamp(42px,5.5vw,77px);letter-spacing:-.045em;line-height:1.44;font-weight:600;margin:20px 0 26px}.hero h1 em{font-style:normal;color:var(--accent)}.hero-copy>p:not(.eyebrow){font-size:15px;line-height:2.2;max-width:470px}.hero-stats{display:flex;gap:45px;margin:32px 0}.hero-stats strong{font-family:Georgia,var(--serif);font-size:30px;line-height:1.3;font-weight:400}.hero-stats small{display:block;color:var(--muted)}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.hero-actions .primary{padding:14px 30px}.country-panel{padding:24px 25px 18px;background:linear-gradient(135deg,var(--paper),transparent);border:1px solid var(--line)}.country-panel header{display:flex;justify-content:space-between;align-items:center}.country-panel h2{font:19px var(--serif)}.japan-map{height:310px;width:100%;overflow:visible;margin:12px 0}.japan-map .tile{fill:#d5e0d7;stroke:var(--paper);stroke-width:2}.japan-map .tile-0{fill:#a8c5bb}.japan-map .tile-1{fill:#90b3a7}.japan-map .tile-2{fill:#729a8d}.japan-map .tile-3{fill:#528277}.japan-map .tile-hot{fill:var(--accent)}.japan-map text{fill:var(--paper);font:7px var(--sans);pointer-events:none}.map-caption{border-top:1px solid var(--line);padding-top:12px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--muted);gap:12px}.map-dot{display:inline-block;width:7px;height:7px;background:var(--accent);border-radius:50%;margin-right:5px}.settings-card{margin-top:50px;padding:26px 30px}.settings-head{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin-bottom:20px}.settings-grid{display:grid;grid-template-columns:.8fr 1.3fr 1fr;gap:20px}.settings-grid label>span{font-weight:600;display:block;margin-bottom:8px}.settings-grid .hint{display:block;margin-top:6px}.settings-bottom{border-top:1px solid var(--line);padding-top:20px;margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:24px}.settings-bottom p{max-width:710px}.settings-bottom button{flex-shrink:0;min-width:170px}.about-strip{margin:32px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.about-strip div{border-top:1px solid var(--line);padding-top:14px}.about-strip b{font-size:13px}.about-strip p{font-size:12px;color:var(--muted);margin-top:5px}.site-footer{max-width:1430px;margin:35px auto 0;padding:24px 30px;border-top:1px solid var(--line);font-size:10px;color:var(--muted);display:flex;gap:20px;align-items:center;justify-content:space-between}.site-footer button{border:0;padding:0;font-size:10px;background:none}.version{margin-left:8px}.birth-wrap{max-width:650px;margin:50px auto;padding:0 20px}.birth-heading{text-align:center;margin-bottom:26px}.birth-heading h1{font:30px/1.6 var(--serif);margin:10px 0}.certificate{padding:30px;position:relative;overflow:hidden}.certificate:after{content:'LIFE';position:absolute;right:15px;top:80px;font:bold 80px Georgia;color:var(--line);opacity:.25;pointer-events:none;transform:rotate(-90deg)}.stamp{border:2px solid var(--accent);color:var(--accent);width:63px;height:63px;display:grid;place-items:center;transform:rotate(8deg);font:13px/1.5 var(--serif);text-align:center}.certificate-top{display:flex;align-items:center;justify-content:space-between}.certificate-person{display:flex;align-items:center;gap:22px;margin:28px 0}.certificate-person canvas{width:74px;height:92px;background:var(--bg)}.certificate-person h2{font:32px/1.6 var(--serif)}.definition{display:grid;grid-template-columns:95px 1fr;row-gap:9px;font-size:12px;margin:0}.definition dt{color:var(--muted)}.definition dd{margin:0;min-width:0;overflow-wrap:anywhere}.certificate-footer{margin-top:25px;border-top:1px dashed var(--line);padding-top:20px;font-size:12px;line-height:2}.full-button{width:100%;margin-top:22px;padding:14px}.play-toolbar{position:sticky;top:0;z-index:12;background:var(--bg);border-bottom:1px solid var(--line);padding:12px 30px;display:flex;align-items:center;gap:20px}.clock{display:flex;align-items:baseline;gap:10px;min-width:205px}.clock strong{font:42px/1 Georgia,serif}.clock strong small{font-size:15px;margin-left:4px}.clock .year{color:var(--muted);font-size:12px}.toolbar-actions{display:flex;align-items:center;gap:7px;flex:1;flex-wrap:wrap}.toolbar-actions button{font-size:12px;padding:8px 11px;white-space:nowrap}.speed-row{display:flex;gap:3px}.speed-row button{padding:8px 10px}.toolbar-end{margin-left:auto;display:flex;gap:6px}.play-grid{max-width:1500px;margin:24px auto;padding:0 30px;display:grid;grid-template-columns:270px minmax(370px,1fr) 270px;gap:20px;align-items:start}.stack{display:grid;gap:17px;min-width:0}.section-card{padding:20px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.section-head small{color:var(--muted);font-size:9px}.id-head{background:var(--accent);color:var(--paper);padding:9px 15px;display:flex;justify-content:space-between;font:10px/1.5 monospace;letter-spacing:1px}.id-body{padding:19px 15px}.id-person{display:flex;align-items:center;gap:12px;margin-bottom:18px}.id-person canvas{width:51px;height:64px;background:var(--bg)}.id-person h2{font:24px/1.5 var(--serif);overflow-wrap:anywhere}.id-person p{font-size:10px;color:var(--muted)}.id-body .definition{grid-template-columns:70px 1fr;row-gap:6px;font-size:11px}.id-foot{padding:10px 15px;border-top:1px dashed var(--line);font:9px/1.9 monospace;color:var(--muted);letter-spacing:1px;overflow:hidden;white-space:nowrap}.status-bar{display:grid;grid-template-columns:50px 1fr 25px;gap:10px;align-items:center;margin:13px 0;font-size:11px}.track{height:7px;background:var(--line);overflow:hidden}.track>i{height:100%;display:block;transition:width .5s}.status-bar strong{text-align:right;font-weight:400}.money-grid{border-top:1px dashed var(--line);padding-top:15px;margin-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:14px 10px}.money-grid small{display:block;font-size:9px;color:var(--muted)}.money-grid strong{font-size:15px;font-family:Georgia,var(--serif);font-weight:400}.scene-card{overflow:hidden}.scene-card canvas{width:100%;height:auto;aspect-ratio:600/210;background:#b9dbdf}.scene-caption{padding:10px 16px;font-size:11px;display:flex;justify-content:space-between;gap:10px}.season{color:var(--muted);font-size:10px}.focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:13px}.focus-grid button{padding:9px 3px;font-size:12px}.focus-grid button span{display:block;font-size:10px;color:var(--muted);margin-top:2px}.focus-note{font-size:11px;color:var(--muted);margin-top:11px}.pending-banner{background:var(--accent-soft);border:1px solid var(--accent);padding:15px;margin-bottom:16px;display:flex;align-items:center;gap:15px}.pending-banner p{flex:1;font-size:12px}.timeline{padding:0 20px 10px;max-height:720px;overflow-y:auto;scrollbar-width:thin}.timeline-entry{display:grid;grid-template-columns:32px 1fr;gap:13px;padding:18px 0;border-top:1px solid var(--line);position:relative}.timeline-entry .entry-age{font:12px Georgia,var(--serif);color:var(--muted);padding-top:2px}.timeline-entry h3{font-size:13px;padding-right:24px}.timeline-entry p{font-size:12px;margin-top:7px;line-height:1.9;color:var(--muted)}.timeline-entry button{position:absolute;right:-5px;top:14px;padding:4px 7px;border:0;background:transparent;color:var(--muted)}.timeline-entry button[aria-pressed=true]{color:var(--accent)}.timeline-entry.choice h3,.timeline-entry.milestone h3{color:var(--teal)}.timeline-entry.ending h3{color:var(--accent)}.delta{display:inline-block;font-size:9px;color:var(--teal);background:var(--bg);padding:1px 5px;margin:6px 4px 0 0}.delta.minus{color:var(--muted)}.timeline-head{padding:20px 20px 6px}.person-row{display:flex;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.person-row:last-child{border:0;padding-bottom:0}.person-row strong{display:block;font-weight:600}.person-row small{display:block;color:var(--muted);font-size:9px}.person-row>span:last-child{text-align:right}.peer-note{font-size:9px;line-height:1.6;color:var(--muted);margin-top:12px}.life-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;margin:12px 0}.life-cell{aspect-ratio:1;min-width:0;padding:0;border:1px solid transparent;background:var(--line);border-radius:1px;cursor:default}.life-cell.past{background:#98b8a6}.life-cell.special{background:var(--teal);cursor:pointer}.life-cell.current{background:var(--paper);border:2px solid var(--accent)}.life-legend{display:flex;gap:10px;font-size:9px;color:var(--muted)}.life-legend i{display:inline-block;width:7px;height:7px;background:var(--teal);margin-right:4px}.saved-label{font-size:9px;color:var(--muted);margin-top:10px;text-align:right}.modal-backdrop{position:fixed;inset:0;background:#12272f66;backdrop-filter:blur(4px);z-index:30;display:grid;place-items:center;padding:24px}.modal{width:min(640px,100%);max-height:calc(100dvh - 48px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 20px 80px #15282533}.modal.wide{width:min(900px,100%)}.modal header{position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--line);padding:20px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;z-index:1}.modal header h2{font:23px/1.5 var(--serif)}.modal header button{padding:0;width:33px;height:33px;font-size:22px;flex-shrink:0}.modal-content{padding:25px}.modal-content>p{margin-bottom:18px;font-size:13px}.choices{display:grid;gap:11px;margin:23px 0 12px}.choice{display:block;text-align:left;padding:17px 19px;position:relative}.choice strong{display:block;font-size:14px;margin-bottom:4px}.choice span{display:block;font-size:12px;color:var(--muted)}.choice:after{content:'→';position:absolute;right:15px;top:14px;color:var(--accent)}.choice strong{padding-right:20px}.choice:hover{border-color:var(--accent)}.modal .eyebrow{margin-bottom:8px}.modal-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:20px}.source-list{display:grid;gap:12px;margin-top:20px}.source-item{border-top:1px solid var(--line);padding-top:12px;font-size:12px}.source-item a{display:block;font-weight:600}.source-item p{font-size:11px;color:var(--muted);margin-top:4px}.record-row{border:1px solid var(--line);margin:10px 0;padding:16px;display:flex;justify-content:space-between;gap:16px;align-items:center}.record-row strong{font:20px var(--serif)}.record-row p{font-size:11px;color:var(--muted);margin-top:6px}.record-row button{flex-shrink:0}.empty{padding:30px 0;text-align:center;color:var(--muted)}.ending{max-width:1040px;margin:50px auto;padding:0 25px}.ending-head{text-align:center;max-width:650px;margin:auto}.ending-head h1{font:42px/1.6 var(--serif);margin:17px 0}.ending-head p{color:var(--muted);font-size:14px;line-height:2.1}.ending-card{margin:34px 0;padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:36px}.ending-name{font:34px var(--serif)}.ending-years{font:22px Georgia,var(--serif);color:var(--muted);margin:12px 0 20px}.ending-card ul{padding-left:19px;font-size:13px;line-height:2.3}.ending-card .life-grid{max-width:350px}.value-chips{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.value-chips span{padding:6px 10px;border:1px solid var(--line);font-size:11px}.end-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.note-area{max-width:650px;margin:30px auto}.note-area label{font-size:12px;margin-bottom:8px}.note-area textarea{min-height:90px}.loading{padding:80px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,15px);z-index:60;background:var(--ink);color:var(--paper);padding:10px 20px;border-radius:6px;opacity:0;pointer-events:none;font-size:12px;max-width:min(90vw,600px);transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}.source-alert{padding:12px 15px;border-left:3px solid var(--teal);background:var(--bg);font-size:12px;line-height:1.9;margin:15px 0}.sound-toggle{white-space:nowrap}.restore-actions{display:flex;gap:8px;flex-wrap:wrap}.help-key{border:1px solid var(--line);padding:1px 5px;font-size:10px}.progressline{height:3px;background:var(--line)}.progressline>i{display:block;height:100%;background:var(--accent);transition:width .8s}
@media(min-width:1450px){.play-grid{grid-template-columns:300px minmax(420px,1fr) 290px}.section-card{padding:22px}}@media(max-width:1150px){.play-grid{grid-template-columns:235px minmax(300px,1fr);gap:15px;padding:0 20px}.right-column{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.hero{gap:35px}.play-toolbar{gap:15px;padding:12px 20px}.clock{min-width:150px}.toolbar-end{margin-left:0}.toolbar-actions{gap:5px}.toolbar-actions button{font-size:11px}.masthead{padding:18px 25px}}@media(max-width:760px){.masthead{padding:15px 18px;gap:10px}.brand{font-size:16px;gap:9px}.brand-mark{width:30px;height:34px;font-size:20px}.brand small{font-size:7px;letter-spacing:1.8px}.masthead nav{gap:5px}.masthead nav button{font-size:10px;padding:7px 8px}.masthead nav button:nth-child(2){display:none}.landing{padding:30px 20px}.hero{grid-template-columns:1fr;gap:30px}.hero h1{font-size:51px;margin:15px 0 20px}.hero-copy>p:not(.eyebrow){font-size:13px;max-width:100%}.hero-stats{margin:24px 0;gap:35px}.hero-stats strong{font-size:27px}.country-panel{padding:20px}.japan-map{height:245px}.settings-card{padding:22px;margin-top:30px}.settings-head{display:block}.settings-head .hint{margin-top:5px}.settings-grid{grid-template-columns:1fr;gap:17px}.settings-bottom{display:block}.settings-bottom button{width:100%;margin-top:17px}.about-strip{gap:15px}.about-strip p{font-size:11px}.play-toolbar{padding:10px 14px;display:block}.clock{margin-bottom:10px;min-width:0;display:flex}.clock strong{font-size:34px}.clock .year{font-size:11px}.toolbar-actions{flex-wrap:wrap;gap:5px}.toolbar-actions button{font-size:10px;padding:8px 9px}.speed-row button{padding:8px}.toolbar-end{margin-left:auto}.play-grid{display:flex;flex-direction:column;padding:0 14px;gap:15px;margin-top:16px}.center-column{order:0;width:100%}.left-column{order:1;width:100%;grid-template-columns:1fr 1fr;gap:12px}.right-column{order:2;width:100%;grid-template-columns:1fr 1fr;gap:12px}.right-column>.paper:last-child{grid-column:1/-1}.section-card{padding:16px}.id-body{padding:14px 12px}.id-person{gap:8px;flex-wrap:wrap}.id-person canvas{width:40px;height:50px}.id-person h2{font-size:20px}.id-body .definition{grid-template-columns:1fr;gap:2px}.id-body .definition dd{margin-bottom:6px}.id-foot{font-size:7px;padding:8px 11px}.status-bar{grid-template-columns:1fr 23px;gap:6px}.status-bar label{grid-column:1/-1}.money-grid{grid-template-columns:1fr;margin-top:15px}.money-grid strong{font-size:15px}.section-head h2{font-size:15px}.section-head small{font-size:8px}.timeline{max-height:520px;padding-inline:16px}.timeline-head{padding:16px 16px 5px}.scene-caption{font-size:10px;flex-wrap:wrap;gap:1px;padding:9px 12px}.focus-grid{gap:6px}.focus-grid button{font-size:11px}.focus-grid button span{font-size:9px}.site-footer{display:block;padding:20px;margin-top:25px}.site-footer span{display:block;margin-bottom:5px}.site-footer .version{display:inline}.modal-backdrop{padding:12px}.modal{max-height:calc(100dvh - 24px)}.modal header{padding:15px 18px}.modal header h2{font-size:21px}.modal-content{padding:20px}.choice{padding:15px}.choice strong{font-size:13px}.choice span{font-size:11px}.certificate{padding:25px}.birth-wrap{margin:30px auto}.certificate-person h2{font-size:28px}.ending{margin:30px auto;padding:0 18px}.ending-head h1{font-size:32px}.ending-card{grid-template-columns:1fr;padding:24px;gap:25px}.record-row{padding:12px}.record-row strong{font-size:17px}}@media(max-width:390px){.brand{font-size:14px}.masthead{padding-inline:12px}.hero h1{font-size:45px}.masthead nav button{padding-inline:6px}.toolbar-end{margin-left:0}.toolbar-actions{gap:4px}.speed-row button{padding:7px}.right-column{grid-template-columns:1fr}.right-column>.paper:last-child{grid-column:auto}.about-strip{grid-template-columns:1fr}.settings-card{padding:19px}.clock .person-clock{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
