:root{--bg:#08110f;--panel:#0d1b18;--panel-2:#12241f;--line:#203731;--text:#eef3e9;--muted:#89a39a;--mint:#64d4b0;--lime:#c7e57b;--pink:#ef6e9e;--yellow:#f1c96a;--shadow:0 24px 70px rgba(0,0,0,.22)}
.data-badges{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 9px}.data-badge{border:1px solid #315448;border-radius:99px;padding:3px 7px;font-size:10px;color:#a9c5b9}.data-badge.official{border-color:#4d9779;color:var(--mint)}.data-badge.official_partial{border-color:#8e7c42;color:var(--yellow)}.data-badge.derived_official{border-color:#5f8f9d;color:#9de0ea}.data-badge.official_pending_import{border-color:#8b7049;color:#f3c876}.data-badge.model{border-color:#71566b;color:#f2a7c2}.data-badge.unavailable{border-color:#4a5953;color:#839890}.data-links{display:flex;flex-wrap:wrap;gap:5px 10px}.data-links a{color:#7da998;text-decoration:underline;text-underline-offset:2px}.data-links a:hover{color:var(--text)}
*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;background:radial-gradient(circle at 68% -5%,#18332b 0,transparent 38%),var(--bg);color:var(--text);font-family:"IBM Plex Sans Thai",system-ui,sans-serif;min-height:100vh}button{font:inherit;color:inherit;cursor:pointer} .hidden{display:none!important}.app-shell{min-height:100vh}.topbar{height:70px;padding:0 4vw;border-bottom:1px solid rgba(136,176,158,.12);display:flex;align-items:center;justify-content:space-between;background:rgba(8,17,15,.78);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}.brand-mark{display:flex;gap:12px;align-items:center}.brand-mark>span{display:grid;place-items:center;border:1px solid var(--mint);color:var(--mint);width:32px;height:32px;border-radius:50%;font-size:21px}.brand-mark strong{font-size:16px;display:block;letter-spacing:.01em}.brand-mark small{display:block;color:var(--muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.topbar-actions{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:12px}.status-dot{width:7px;height:7px;background:var(--pink);border-radius:50%;box-shadow:0 0 14px var(--pink)}.ghost-btn,.text-btn{border:0;background:transparent;color:var(--muted);font-size:12px;padding:7px 10px}.ghost-btn:hover,.text-btn:hover{color:var(--text)}main{max-width:1440px;margin:0 auto;padding:0 4vw 70px}.intro-view{min-height:calc(100vh - 70px);display:grid;grid-template-columns:1.05fr .95fr;gap:8vw;align-items:center;padding:7vh 3vw 9vh}.eyebrow{color:var(--mint);font-size:11px;text-transform:uppercase;letter-spacing:.14em;margin:0 0 20px}.intro-copy h1{font-family:"Space Grotesk","IBM Plex Sans Thai",sans-serif;font-size:clamp(52px,7.2vw,108px);line-height:.95;letter-spacing:-.07em;margin:0 0 28px;font-weight:600}.intro-copy h1 em{color:var(--lime);font-style:normal}.lede{max-width:560px;font-size:17px;line-height:1.85;color:#b7c9c0}.intro-stats{display:flex;gap:42px;margin:36px 0}.intro-stats div{display:flex;flex-direction:column}.intro-stats strong{font-family:"Space Grotesk";font-size:32px;color:var(--text)}.intro-stats span{font-size:12px;color:var(--muted)}.primary-btn{border:0;background:var(--lime);color:#162019;padding:15px 21px;border-radius:4px;font-weight:700;box-shadow:0 8px 28px rgba(199,229,123,.18);transition:.2s}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 12px 35px rgba(199,229,123,.3)}.start-btn{min-width:205px;display:flex;justify-content:space-between;align-items:center}.start-btn span{font-size:20px}.microcopy{font-size:11px;color:#607b70;margin-top:15px}.birth-card{border:1px solid var(--line);background:linear-gradient(145deg,rgba(25,56,46,.82),rgba(9,19,17,.75));box-shadow:var(--shadow);min-height:510px;position:relative;overflow:hidden}.map-art{height:390px;position:relative;background:radial-gradient(circle at 54% 40%,rgba(100,212,176,.18),transparent 25%),linear-gradient(150deg,#112820,#091412)}.map-art:before,.map-art:after{content:"";position:absolute;inset:22% 16%;border:1px dashed rgba(100,212,176,.24);border-radius:46% 40% 55% 45%;transform:rotate(16deg)}.map-art:after{inset:34% 25%;border-color:rgba(239,110,158,.18);transform:rotate(-22deg)}.map-glow{position:absolute;width:240px;height:240px;left:30%;top:16%;background:radial-gradient(circle,rgba(239,110,158,.3),transparent 68%);filter:blur(12px)}.thai-outline{position:absolute;inset:0;display:grid;place-items:center;color:rgba(238,243,233,.5);font-size:52px;letter-spacing:.18em;transform:rotate(18deg)}.map-pin{position:absolute;width:13px;height:13px;background:var(--pink);border:3px solid rgba(239,110,158,.2);border-radius:50%;box-shadow:0 0 0 7px rgba(239,110,158,.06),0 0 20px var(--pink)}.pin-1{left:48%;top:28%}.pin-2{left:57%;top:47%}.pin-3{left:42%;top:69%}.birth-card-footer{padding:20px 24px 5px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}.birth-card-footer strong{color:var(--text);font-weight:500}.quote{padding:16px 24px;color:#76958a;font-size:13px;font-style:italic;line-height:1.6}.sim-view{padding-top:28px}.sim-head{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding:0 0 22px;margin-bottom:24px}.age-line{display:flex;align-items:baseline;gap:9px;font-family:"Space Grotesk"}.age-number{font-size:72px;line-height:.85;color:var(--lime);letter-spacing:-.08em}.age-line>span:nth-child(2){font-family:"IBM Plex Sans Thai";font-size:18px;color:var(--muted)}.age-line .muted{color:#405e53}.sim-subtitle{color:var(--muted);margin:8px 0 0;font-size:13px}.time-controls{display:flex;gap:5px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.control-btn,.speed-btn{background:var(--panel);border:1px solid var(--line);padding:10px 12px;border-radius:3px;color:var(--muted);font-size:12px}.control-btn:hover,.speed-btn:hover,.speed-btn.active{border-color:var(--mint);color:var(--text);background:#153027}.dashboard-grid{display:grid;grid-template-columns:260px minmax(360px,1fr) 320px;gap:18px}.left-column,.center-column,.right-column{display:flex;flex-direction:column;gap:18px}.panel,.scene-card{border:1px solid var(--line);background:linear-gradient(150deg,rgba(17,33,29,.96),rgba(10,22,19,.96));border-radius:3px;padding:19px;box-shadow:0 10px 35px rgba(0,0,0,.1)}.id-card{padding:0;overflow:hidden}.panel-label{background:var(--pink);color:#21131a;font-size:11px;font-weight:700;padding:10px 14px;display:flex;justify-content:space-between}.portrait{margin:18px auto 8px;width:105px;height:105px;border:1px solid #35584c;background:radial-gradient(circle at 50% 38%,#d89375 0 18%,transparent 19%),radial-gradient(circle at 50% 39%,#292a27 0 30%,transparent 31%),linear-gradient(145deg,#1d4941,#0c1b18);border-radius:50%;display:grid;place-items:center;color:transparent;font-size:0;position:relative}.portrait:after{content:"";position:absolute;bottom:0;width:86px;height:40px;background:#285d50;border-radius:50% 50% 0 0}.id-card h2{font-family:"Space Grotesk";font-size:22px;text-align:center;margin:0 10px 17px}.identity-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:8px 12px;padding:0 17px 18px;font-size:11px}.identity-grid span{color:#68847a}.identity-grid strong{font-weight:500;text-align:right}.id-code{font-family:monospace;color:#52766a;border-top:1px dashed #28453d;padding:13px 17px;font-size:10px;letter-spacing:.04em}.panel-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel-title h3{margin:0;font-size:16px;font-weight:600}.panel-title>span{font-size:11px;color:var(--muted)}#statBars{display:flex;flex-direction:column;gap:13px}.stat-row{display:grid;grid-template-columns:75px 1fr 27px;gap:9px;align-items:center;font-size:12px}.stat-row>span:first-child{color:#a7bcb1}.stat-track{height:7px;background:#1b302b;border-radius:99px;overflow:hidden}.stat-fill{height:100%;border-radius:99px;transition:width .35s}.stat-row:nth-child(1) .stat-fill{background:var(--mint)}.stat-row:nth-child(2) .stat-fill{background:var(--yellow)}.stat-row:nth-child(3) .stat-fill{background:#66cdbd}.stat-row:nth-child(4) .stat-fill{background:var(--pink)}.stat-row strong{font-family:"Space Grotesk";font-size:12px;text-align:right}.money-panel{font-size:12px}.money-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #1a3029;color:var(--muted)}.money-row strong{color:var(--text);font-family:"Space Grotesk"}.money-panel>p{color:#6e8c80;font-size:11px;margin:14px 0 0}.scene-card{padding:0;overflow:hidden}.scene-illustration{height:285px;position:relative;overflow:hidden;background:linear-gradient(#172f3c 0 57%,#4c6b5f 57% 73%,#172c25 73%)}.scene-illustration:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 19%,rgba(255,235,172,.9) 0 14px,rgba(255,235,172,.15) 15px 65px,transparent 66px)}.sun{position:absolute;width:80px;height:80px;border-radius:50%;right:15%;top:12%;background:rgba(249,212,135,.92);filter:blur(.2px)}.mountain{position:absolute;bottom:27%;width:0;height:0;border-left:180px solid transparent;border-right:180px solid transparent;border-bottom:145px solid #284b45}.m1{left:-60px}.m2{right:-90px;border-left-width:230px;border-right-width:230px;border-bottom-color:#34564b}.house{position:absolute;bottom:26%;left:38%;width:125px;height:76px;background:#c66c58;border:4px solid #1d302a}.house:before{content:"";position:absolute;left:-20px;top:-45px;border-left:80px solid transparent;border-right:80px solid transparent;border-bottom:50px solid #7f4d45}.house:after{content:"";position:absolute;left:46px;bottom:0;width:30px;height:49px;background:#372b29}.road{position:absolute;bottom:-15%;left:47%;width:25%;height:60%;background:#263936;transform:skewX(-17deg)}.scene-person{position:absolute;bottom:20%;left:52%;width:27px;height:65px;background:#ef6e9e;border-radius:45% 45% 8px 8px;box-shadow:18px 14px 0 -2px #4cae9a}.scene-caption{padding:14px 17px;display:flex;justify-content:space-between;gap:20px;font-size:12px}.scene-caption strong{font-size:14px}.scene-caption span{color:var(--muted);text-align:right}.focus-main{display:flex;gap:14px;align-items:flex-start}.focus-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(199,229,123,.12);color:var(--lime);font-size:22px}.focus-main strong{font-size:14px}.focus-main p{font-size:12px;color:var(--muted);line-height:1.65;margin:5px 0 0}.feed{display:flex;flex-direction:column}.feed-item{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:13px 0;border-top:1px solid #1a3029}.feed-item:first-child{border-top:0;padding-top:0}.feed-age{color:var(--mint);font-family:"Space Grotesk";font-size:12px}.feed-copy{font-size:13px;line-height:1.55}.feed-copy small{display:block;color:#66857a;font-size:10px;margin-top:4px}.family-item,.peer-item{display:flex;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid #1a3029;font-size:12px}.family-item:last-child,.peer-item:last-child{border-bottom:0}.family-item span,.peer-item span{display:block;color:var(--muted);font-size:10px;margin-top:3px}.family-item strong{font-weight:500;text-align:right}.peer-item strong{font-weight:500}.peer-item em{font-style:normal;color:var(--lime);font-size:10px}.life-map{display:grid;grid-template-columns:repeat(10,1fr);gap:4px}.life-cell{aspect-ratio:1;border:1px solid #203b32;background:#12251f;border-radius:2px}.life-cell.past{background:#285849;border-color:#4e9b7d}.life-cell.event{background:var(--pink);border-color:#ff9dbc;box-shadow:0 0 9px rgba(239,110,158,.25)}.life-cell.current{outline:2px solid var(--lime);outline-offset:1px}.life-cell.future{opacity:.5}.map-legend{display:flex;justify-content:space-between;color:#638176;font-size:9px;margin-top:12px}.legend-dot{display:inline-block;width:7px;height:7px;background:var(--pink);margin-right:4px}.muted-dot{background:#29473d}.source-panel{font-size:11px;line-height:1.55;color:#719086}.source-panel p{margin:0 0 7px}.source-panel strong{color:var(--mint)}.modal-backdrop{position:fixed;inset:0;background:rgba(2,8,7,.76);backdrop-filter:blur(7px);display:grid;place-items:center;z-index:20;padding:20px}.decision-modal{max-width:620px;width:100%;border:1px solid #38584c;background:#10221d;padding:32px;box-shadow:0 25px 100px rgba(0,0,0,.55)}.decision-kicker{color:var(--pink);font-size:11px;text-transform:uppercase;letter-spacing:.1em}.decision-modal h2{font-family:"Space Grotesk";font-size:31px;line-height:1.15;margin:14px 0 9px}.decision-modal>p{color:#9eb5aa;line-height:1.7;font-size:13px;margin:0 0 23px}.choice-list{display:grid;gap:9px}.choice-btn{border:1px solid #2e5145;background:#132a23;text-align:left;padding:15px;display:flex;gap:13px;align-items:center;transition:.2s}.choice-btn:hover{border-color:var(--lime);background:#1a382e;transform:translateX(3px)}.choice-num{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#204438;color:var(--lime);font-family:"Space Grotesk"}.choice-btn strong{font-size:13px;font-weight:500}.decision-modal .secondary-btn{margin-top:17px}.secondary-btn{border:0;background:transparent;color:#7f9a90;font-size:11px;padding:7px 0}.secondary-btn:hover{color:var(--text)}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:30;background:#d6efa0;color:#152016;padding:11px 16px;border-radius:3px;font-size:12px;box-shadow:0 9px 30px rgba(0,0,0,.35)}
@media(max-width:1120px){.dashboard-grid{grid-template-columns:230px minmax(300px,1fr)}.right-column{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);align-items:start}.source-panel{grid-column:1/-1}.intro-view{gap:4vw}.intro-copy h1{font-size:clamp(48px,8vw,90px)}}
@media(max-width:760px){.topbar{height:62px;padding:0 18px}.topbar-actions>span:not(.status-dot){display:none}main{padding:0 14px 40px}.intro-view{display:block;padding:65px 8px}.intro-copy h1{font-size:62px}.lede{font-size:15px}.birth-card{margin-top:48px;min-height:auto}.map-art{height:260px}.sim-view{padding-top:20px}.sim-head{display:block}.time-controls{justify-content:flex-start;margin-top:24px}.dashboard-grid{display:flex;flex-direction:column}.left-column{order:2}.center-column{order:1}.right-column{order:3;display:flex}.age-number{font-size:64px}.scene-illustration{height:230px}.panel{padding:16px}.id-card{display:grid;grid-template-columns:100px 1fr;padding:0}.id-card .panel-label{grid-column:1/-1}.id-card .portrait{grid-row:2/span 2;margin:18px 10px}.id-card h2{text-align:left;align-self:end;margin:18px 10px 5px}.id-card .identity-grid{grid-column:2;padding:0 10px 15px}.id-card .id-code{grid-column:1/-1}.decision-modal{padding:24px}.decision-modal h2{font-size:25px}}
.survival-chart{height:120px;display:flex;align-items:flex-end;gap:5px;position:relative;padding:12px 4px 18px;border-bottom:1px solid #29483d;background:linear-gradient(180deg,rgba(100,212,176,.03),transparent)}.survival-point{flex:1;min-height:12px;background:#315e4e;border-radius:2px 2px 0 0;position:relative}.survival-point.past-survival{background:linear-gradient(#c7e57b,#4cae9a)}.survival-point span{position:absolute;bottom:-17px;left:50%;transform:translateX(-50%);font:9px "Space Grotesk";color:#6f8f83}.expectancy-marker{position:absolute;top:3px;bottom:0;width:2px;background:var(--pink);box-shadow:0 0 10px rgba(239,110,158,.6)}.panel-note{color:#66857a;font-size:10px;line-height:1.5;margin:18px 0 0}.reflection-modal textarea,.summary-modal textarea{width:100%;resize:vertical;box-sizing:border-box;border:1px solid #2e5145;background:#0c1c18;color:var(--text);padding:12px;font:inherit;font-size:13px;line-height:1.6;outline:none}.reflection-modal textarea:focus,.summary-modal textarea:focus{border-color:var(--mint)}.modal-actions{display:flex;align-items:center;gap:16px;margin-top:17px;flex-wrap:wrap}.modal-actions .primary-btn{font-size:12px}.summary-body{color:#a8beb2;line-height:1.65;font-size:13px}.summary-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#29483d;border:1px solid #29483d;margin:0 0 17px}.summary-grid div{background:#10221d;padding:11px}.summary-grid span{display:block;color:#709084;font-size:10px;margin-bottom:4px}.summary-grid strong{font-size:13px;font-weight:500;color:var(--text)}.summary-copy{margin:0 0 18px}.summary-label{display:block;color:#8ea99d;font-size:11px;margin:0 0 7px}
.year-progress{margin:-6px 0 23px;padding:12px 15px 10px;border:1px solid var(--line);background:linear-gradient(90deg,rgba(100,212,176,.07),rgba(199,229,123,.04));border-radius:3px}.year-progress-head,.year-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted)}.year-progress-head strong{font-family:"Space Grotesk";font-size:12px;color:var(--lime)}.year-progress-track{height:8px;margin:8px 0 6px;background:#152b24;border:1px solid #2b4b40;border-radius:99px;overflow:hidden;position:relative}.year-progress-track:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 9.8%,rgba(238,243,233,.12) 9.8% 10%);pointer-events:none}.year-progress-track>span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--mint),var(--lime));border-radius:inherit;box-shadow:0 0 14px rgba(199,229,123,.32);transition:width .25s linear}.year-progress-foot{font-size:9px;color:#66857a}.year-progress-foot span:nth-child(2){color:#7e9b8f}
.focus-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:18px}.focus-option{border:1px solid #2b4b40;background:#10261f;padding:10px;text-align:left;font-size:11px;color:#9ab4a8;min-height:54px}.focus-option strong{display:block;color:var(--text);font-size:12px;margin-bottom:3px}.focus-option span{display:block;color:#709084;font-size:10px;line-height:1.35}.focus-option small.focus-outcome{display:block;color:#b1c28d;font-size:9px;line-height:1.3;margin-top:5px}.focus-option:hover,.focus-option.active{border-color:var(--lime);background:#19382d;color:var(--text)}.spend-open-btn{width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:16px;border:1px solid #4b6a51;background:#182e25;color:var(--lime);padding:12px 13px;font-size:12px}.spend-open-btn:hover{border-color:var(--lime);background:#214234}.spend-balance{border:1px solid #345849;padding:13px;background:#0c1d18;color:var(--lime);font:600 16px "Space Grotesk";margin-bottom:17px}.spend-section{margin-top:17px}.spend-section-title{color:#8ea99d;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px}.spend-choices,.investment-options{display:grid;gap:7px}.spend-choice,.investment-option{display:flex;justify-content:space-between;gap:12px;border:1px solid #2e5145;background:#132a23;padding:11px;text-align:left;font-size:11px}.spend-choice:hover:not(:disabled),.investment-option:hover{border-color:var(--lime)}.spend-choice:disabled{cursor:not-allowed;opacity:.43}.spend-choice strong,.investment-option strong{display:block;color:var(--text);font-size:12px}.spend-choice small,.investment-option small{display:block;color:#77988b;margin-top:3px;line-height:1.4}.spend-cost{white-space:nowrap;color:var(--yellow);font:11px "Space Grotesk"}.investment-option.active{border-color:var(--lime);background:#19382d}.investment-option.active .spend-cost{color:var(--lime)}.spend-modal{max-height:88vh;overflow:auto}
@media(max-width:760px){.focus-options{grid-template-columns:1fr}}
.portrait.avatar{--avatar-skin:#dda07d;--avatar-hair:#211b20;--avatar-shirt:#e47b9d;background:radial-gradient(circle at 50% 28%,rgba(255,235,188,.2),transparent 34%),linear-gradient(145deg,#214a42,#0b1d19);overflow:hidden;isolation:isolate;box-shadow:inset 0 -12px 22px rgba(0,0,0,.18),0 7px 24px rgba(0,0,0,.22)}.portrait.avatar:before{content:"";position:absolute;inset:9px;border:1px solid rgba(238,243,233,.12);border-radius:50%;z-index:5;pointer-events:none}.portrait.avatar:after{content:"";position:absolute;left:14px;right:14px;bottom:-18px;height:61px;background:var(--avatar-shirt);border-radius:48% 48% 0 0;z-index:1;box-shadow:inset 0 8px 0 rgba(255,255,255,.12)}.avatar-hair{position:absolute;left:24px;top:13px;width:57px;height:54px;background:var(--avatar-hair);border-radius:52% 52% 43% 43%;z-index:3;box-shadow:6px 7px 0 -2px var(--avatar-hair),-5px 7px 0 -2px var(--avatar-hair)}.avatar-female .avatar-hair{left:18px;top:12px;width:68px;height:69px;border-radius:48% 48% 40% 40%;box-shadow:8px 16px 0 -3px var(--avatar-hair),-8px 16px 0 -3px var(--avatar-hair)}.avatar-senior .avatar-hair{box-shadow:6px 7px 0 -2px var(--avatar-hair),-5px 7px 0 -2px var(--avatar-hair),0 -2px 0 2px #dad7c2}.avatar-ear{position:absolute;top:42px;width:11px;height:17px;background:var(--avatar-skin);border-radius:50%;z-index:2}.avatar-ear.left{left:28px}.avatar-ear.right{right:28px}.avatar-face{position:absolute;left:29px;top:27px;width:47px;height:57px;background:var(--avatar-skin);border-radius:46% 46% 44% 44%;z-index:4;box-shadow:inset -5px -5px 0 rgba(122,65,51,.08)}.avatar-female .avatar-face{left:29px;top:28px}.avatar-eye{position:absolute;top:23px;width:5px;height:5px;background:#302329;border-radius:50%;box-shadow:0 1px 0 rgba(255,255,255,.32)}.avatar-eye.left{left:11px}.avatar-eye.right{right:11px}.avatar-nose{position:absolute;left:21px;top:28px;width:5px;height:8px;border-right:1px solid rgba(116,65,53,.35);transform:rotate(15deg)}.avatar-mouth{position:absolute;left:18px;top:42px;width:12px;height:5px;border-bottom:2px solid rgba(121,48,60,.65);border-radius:0 0 60% 60%}.avatar-neck{position:absolute;left:46px;bottom:25px;width:15px;height:18px;background:var(--avatar-skin);z-index:2}.avatar-body{position:absolute;left:31px;bottom:-7px;width:45px;height:48px;background:var(--avatar-shirt);border-radius:45% 45% 0 0;z-index:2;box-shadow:inset 0 7px 0 rgba(255,255,255,.1)}.avatar-detail{position:absolute;left:49px;bottom:14px;width:10px;height:13px;border-left:2px solid rgba(255,255,255,.5);border-bottom:2px solid rgba(255,255,255,.5);transform:skewY(-18deg);z-index:4}.avatar-child .avatar-detail{border-left:0;border-bottom:0;width:15px;height:9px;background:#f6d177;border-radius:0 0 8px 8px}.avatar-teen .avatar-detail{border-color:rgba(255,255,255,.65)}.avatar-senior .avatar-body{background:#a66f58}.scene-person{position:absolute;left:51%;bottom:18%;width:61px;height:104px;background:transparent;border-radius:0;box-shadow:none;z-index:3}.scene-head{position:absolute;left:19px;top:0;width:25px;height:29px;background:var(--avatar-skin);border-radius:48%;z-index:3;box-shadow:0 -6px 0 4px var(--avatar-hair)}.scene-person.female .scene-head{box-shadow:0 -5px 0 6px var(--avatar-hair),8px 6px 0 3px var(--avatar-hair),-8px 6px 0 3px var(--avatar-hair)}.scene-body{position:absolute;left:12px;top:28px;width:39px;height:65px;background:var(--avatar-shirt);border-radius:45% 45% 8px 8px;z-index:2;box-shadow:inset 0 7px 0 rgba(255,255,255,.13)}.scene-body:before,.scene-body:after{content:"";position:absolute;top:8px;width:11px;height:45px;background:var(--avatar-skin);border-radius:99px}.scene-body:before{left:-7px;transform:rotate(10deg)}.scene-body:after{right:-7px;transform:rotate(-10deg)}.scene-bag{position:absolute;right:-5px;top:39px;width:16px;height:28px;border:2px solid #d4a45f;border-radius:3px 3px 7px 7px;transform:rotate(8deg);z-index:4}.scene-bag:before{content:"";position:absolute;left:2px;top:-8px;width:8px;height:10px;border:2px solid #d4a45f;border-bottom:0;border-radius:8px 8px 0 0}.scene-person.avatar-child .scene-body{background:var(--avatar-shirt);width:36px;left:14px}.scene-person.avatar-senior .scene-body{background:#a66f58}.scene-person.avatar-senior .scene-head{box-shadow:0 -5px 0 4px var(--avatar-hair)}
.portrait.character-stack{display:block;background:radial-gradient(circle at 50% 28%,rgba(255,235,188,.2),transparent 34%),linear-gradient(145deg,#214a42,#0b1d19);overflow:hidden;isolation:isolate;box-shadow:inset 0 -12px 22px rgba(0,0,0,.18),0 7px 24px rgba(0,0,0,.22)}
.portrait.character-stack:after{display:none}
.portrait.character-stack{width:92px;height:112px;border:4px solid #d8cba8;border-radius:2px;background:linear-gradient(180deg,#27354b 0 58%,#17252f 58%);box-shadow:inset 0 0 0 2px #665e55,0 7px 18px rgba(0,0,0,.3);image-rendering:pixelated}
.portrait.character-stack:before{inset:4px;border:1px solid rgba(244,231,184,.22);border-radius:0}
.character-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;image-rendering:pixelated}
.scene-person.character-stack{left:48%;bottom:17%;width:126px;height:126px;background:transparent;border-radius:0;box-shadow:0 9px 0 -5px rgba(13,27,31,.55);z-index:3;overflow:visible;image-rendering:pixelated}
.scene-person.character-stack .character-layer{object-fit:contain}
.scene-pixel-backdrop{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;image-rendering:pixelated;z-index:0}
.scene-illustration>.sun,.scene-illustration>.mountain,.scene-illustration>.house,.scene-illustration>.road{display:none}
.scene-illustration{background:#1b263b}
@media(max-width:760px){.scene-person.character-stack{left:46%;bottom:16%;width:116px;height:116px}}
.scene-family{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);width:min(94%,560px);display:flex;justify-content:center;align-items:flex-end;gap:clamp(3px,1vw,14px);z-index:3}.scene-family-member{width:78px;min-width:0;height:130px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;position:relative}.scene-family-member.main{width:102px;height:145px}.scene-family-stack{position:relative;width:74px;height:104px;overflow:visible;image-rendering:pixelated;filter:drop-shadow(0 5px 0 rgba(13,27,31,.55))}.scene-family-member.main .scene-family-stack{width:100px;height:128px}.scene-family-stack .character-layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;image-rendering:pixelated}.scene-family-label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8eee7;background:rgba(10,24,21,.78);border:1px solid rgba(129,182,158,.28);padding:3px 7px;font-size:9px;line-height:1.2}.scene-family-member.main .scene-family-label{color:var(--lime);border-color:rgba(199,229,123,.55)}
@media(max-width:760px){.scene-family{gap:0;width:100%;bottom:8%}.scene-family-member{width:62px;height:111px}.scene-family-member.main{width:82px;height:124px}.scene-family-stack{width:59px;height:84px}.scene-family-member.main .scene-family-stack{width:80px;height:104px}.scene-family-label{font-size:8px;padding:2px 4px}}
.scene-family-member{height:138px}.scene-family-member.main{width:78px;height:138px}.scene-family-stack,.scene-family-member.main .scene-family-stack{width:84px;height:116px}.scene-family-stack.avatar-child{width:62px;height:84px}.scene-family-stack.avatar-teen{width:72px;height:100px}.scene-family-stack.avatar-adult{width:86px;height:120px}.scene-family-stack.avatar-senior{width:80px;height:112px}.scene-family-member.main .scene-family-stack.avatar-child{width:62px;height:84px}.scene-family-member.main .scene-family-stack.avatar-teen{width:72px;height:100px}.scene-family-member.main .scene-family-stack.avatar-adult{width:86px;height:120px}.scene-family-member.main .scene-family-stack.avatar-senior{width:80px;height:112px}.scene-family-member.main .scene-family-label{box-shadow:0 0 0 2px rgba(199,229,123,.08)}
@media(max-width:760px){.scene-family-member,.scene-family-member.main{width:62px;height:116px}.scene-family-stack,.scene-family-member.main .scene-family-stack{width:64px;height:88px}.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:48px;height:66px}.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:56px;height:78px}.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult{width:64px;height:90px}.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:60px;height:84px}.scene-family-label{font-size:8px;padding:2px 4px}}
.scene-family-member,.scene-family-member.main{width:88px;height:138px}.scene-family-stack,.scene-family-member.main .scene-family-stack,.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child,.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen,.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult,.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:86px;height:120px}.scene-family-member.main .scene-family-label{box-shadow:0 0 0 2px rgba(199,229,123,.08)}
@media(max-width:760px){.scene-family-member,.scene-family-member.main{width:64px;height:116px}.scene-family-stack,.scene-family-member.main .scene-family-stack,.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child,.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen,.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult,.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:64px;height:88px}}
.scene-family{bottom:12%;width:min(86%,420px);gap:4px;align-items:flex-end}.scene-family-member,.scene-family-member.main{width:64px;height:106px}.scene-family-stack,.scene-family-member.main .scene-family-stack{width:58px;height:82px}.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:44px;height:62px}.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:50px;height:72px}.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult{width:58px;height:82px}.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:54px;height:78px}.scene-family-label{display:none}.scene-family-member.main .scene-family-label{display:none}.scene-family:after{content:"";position:absolute;left:-4%;right:-4%;bottom:-2px;height:3px;background:#263536;box-shadow:0 4px 0 #142322;z-index:-1}
@media(max-width:760px){.scene-family{bottom:12%;width:100%;gap:0}.scene-family-member,.scene-family-member.main{width:56px;height:94px}.scene-family-stack,.scene-family-member.main .scene-family-stack{width:50px;height:70px}.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:38px;height:54px}.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:43px;height:61px}.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult{width:50px;height:70px}.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:47px;height:68px}}
.origin-open-btn{width:100%;border:0;border-top:1px solid #28453d;background:#142b24;color:var(--lime);padding:11px 14px;font-size:11px;text-align:left}.origin-open-btn:hover{background:#1b3a2e}
.origin-modal{max-width:760px;max-height:88vh;overflow:auto}.origin-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:16px}.origin-title-row h2{margin-bottom:5px}.origin-title-row span{color:#719086;font:11px "Space Grotesk"}.origin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#29483d;border:1px solid #29483d;margin:19px 0}.origin-cell{background:#10221d;padding:12px}.origin-cell span{display:block;color:#719086;font-size:10px;margin-bottom:5px}.origin-cell strong{display:block;color:var(--text);font-size:12px;font-weight:500;line-height:1.45}.origin-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.origin-columns section{border:1px solid #2b4b40;background:#132a23;padding:13px}.origin-columns h3{margin:0 0 7px;color:var(--mint);font-size:12px}.origin-columns p{margin:0;color:#9ab4a8;font-size:12px;line-height:1.6}.origin-disclaimer{color:#66857a!important;font-size:10px!important;line-height:1.55!important;margin:17px 0 0!important}
@media(max-width:760px){.origin-grid,.origin-columns{grid-template-columns:1fr}.origin-modal{padding:22px}}
.feed{max-height:420px;overflow-y:auto;padding-right:8px;scrollbar-color:#4e9b7d #12251f;scrollbar-width:thin}.feed::-webkit-scrollbar{width:7px}.feed::-webkit-scrollbar-track{background:#12251f;border-radius:99px}.feed::-webkit-scrollbar-thumb{background:#4e9b7d;border-radius:99px}
.feed-type{display:block;margin-top:4px;color:#66857a;font-size:9px;font-family:"IBM Plex Sans Thai",system-ui,sans-serif}.feed-item.minor .feed-type{color:var(--mint)}.feed-item.decision .feed-type{color:var(--lime)}.feed-item.family .feed-type{color:var(--pink)}.feed-item.money .feed-type{color:var(--yellow)}.feed-item.milestone .feed-type{color:#f4c77b}
.feed-item.pending .feed-type{color:#d9a7ff}.feed-item.consequence .feed-type{color:#8fd8ff}
.scene-family-label{display:block;min-width:28px;text-align:center;font-size:8px;padding:2px 4px}.scene-family-member.main .scene-family-label{display:block}
.family-details{margin-top:10px;border-top:1px solid #29483d;padding-top:4px}.family-detail{padding:9px 0;border-bottom:1px solid rgba(41,72,61,.62)}.family-detail:last-of-type{border-bottom:0}.family-detail span,.family-effect span{display:block;color:#719086;font-size:10px;margin-bottom:4px}.family-detail strong{display:block;color:#d9e5dd;font-size:11px;line-height:1.55;font-weight:400}.family-effect{margin-top:11px;padding:10px;border:1px solid rgba(199,229,123,.3);background:rgba(199,229,123,.05)}.family-effect strong{display:block;color:var(--lime);font-size:11px;line-height:1.45;font-weight:500}.family-effect small{display:block;color:#77988b;font-size:9px;line-height:1.45;margin-top:5px}
.scene-pixel-backdrop{image-rendering:pixelated;object-position:center center;filter:saturate(.92) contrast(1.04);transform:scale(1);transform-origin:center}.scene-illustration{height:clamp(230px,22vw,250px);background:#152a3a;image-rendering:pixelated}.scene-family{bottom:10%;align-items:flex-end;gap:clamp(5px,1.15vw,16px)}.scene-family-member{height:108px;justify-content:flex-end}.scene-family-member.main{height:108px}.scene-family-stack,.scene-family-member.main .scene-family-stack{width:58px;height:82px}.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:38px;height:54px}.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:48px;height:68px}.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult{width:62px;height:88px}.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:58px;height:82px}.scene-family-member.main .scene-family-stack{filter:drop-shadow(0 5px 0 rgba(13,27,31,.6))}.scene-family-label{background:rgba(8,22,20,.82);font-size:8px}.scene-family-member.main .scene-family-label{color:var(--lime)}
@media(max-width:760px){.scene-family{gap:1px}.scene-family-member,.scene-family-member.main{height:95px}.scene-family-stack,.scene-family-member.main .scene-family-stack{width:49px;height:70px}.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:32px;height:45px}.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:40px;height:57px}.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult{width:49px;height:70px}.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:46px;height:65px}}

/* บันทึกชีวิตแบบอ่านย้อนหลัง: แถบกรองยังคงอยู่เหนือรายการที่เลื่อนได้ */
.life-log-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 10px;padding:9px 0 2px;border-top:1px solid rgba(41,72,61,.62)}
.life-log-toolbar .log-filter{border:1px solid rgba(129,182,158,.25);border-radius:999px;background:#10251f;color:#8eaaa0;padding:5px 9px;font:10px "IBM Plex Sans Thai",system-ui,sans-serif;cursor:pointer;transition:.16s ease}
.life-log-toolbar .log-filter:hover,.life-log-toolbar .log-filter.active{border-color:rgba(199,229,123,.7);background:rgba(199,229,123,.1);color:var(--lime)}
.life-log-toolbar select{margin-left:auto;min-width:118px;border:1px solid rgba(129,182,158,.25);border-radius:4px;background:#10251f;color:#b8cec3;padding:5px 7px;font:10px "IBM Plex Sans Thai",system-ui,sans-serif}
.life-log-summary{display:flex;gap:8px;flex-wrap:wrap;margin:2px 0 9px;color:#66857a;font-size:9px}
.life-log-summary span{padding-right:8px;border-right:1px solid rgba(129,182,158,.22)}
.life-log-summary span:last-child{border-right:0}
.life-log-summary b{color:#d9e5dd;font-weight:500}
.feed-relation{display:block;margin-top:3px;color:#9bc8b5;font-style:normal;font-size:9px}
.feed-item.consequence .feed-relation{color:#8fd8ff}
.feed-source{display:block;margin-top:3px;color:#648579;font-style:normal;font-size:9px;line-height:1.35}
@media(max-width:760px){.life-log-toolbar select{margin-left:0;width:100%}.life-log-toolbar{gap:5px}.life-log-toolbar .log-filter{font-size:9px;padding:4px 7px}}

/* บ้านที่มีสมาชิกเพิ่มต้องยังเห็นทุกคนในเฟรมเดียว โดยลดช่องว่างก่อนลดรายละเอียด */
.scene-family.crowded{width:min(96%,570px);gap:2px}
.scene-family.crowded .scene-family-member{width:54px}
.scene-family.crowded .scene-family-member.main{width:64px}
@media(max-width:760px){.scene-family.crowded{width:100%;gap:0}.scene-family.crowded .scene-family-member,.scene-family.crowded .scene-family-member.main{width:48px}.scene-family.crowded .scene-family-stack,.scene-family.crowded .scene-family-member.main .scene-family-stack{width:42px;height:60px}.scene-family.crowded .scene-family-stack.avatar-child,.scene-family.crowded .scene-family-member.main .scene-family-stack.avatar-child{width:32px;height:45px}}

/* เมื่อจบชีวิต ให้บทสรุปกลายเป็นหน้าหลักเต็มพื้นที่ และไม่เหลือคอนโทรลของชีวิตเดิม */
#lifeSummaryModal.summary-page{display:block;overflow:auto;padding:clamp(22px,5vw,72px);background:linear-gradient(145deg,#07110e 0%,#10251e 55%,#091512 100%)}
#lifeSummaryModal.summary-page .summary-modal{max-width:980px;margin:0 auto;min-height:calc(100vh - 2 * clamp(22px,5vw,72px));padding:clamp(24px,4vw,52px);border-color:rgba(199,229,123,.28);background:linear-gradient(155deg,rgba(16,38,30,.98),rgba(8,20,16,.98));}
#lifeSummaryModal.summary-page .summary-modal h2{font-size:clamp(32px,5vw,58px);color:var(--lime);max-width:720px}
#lifeSummaryModal.summary-page .summary-body{max-height:none}
.summary-history{margin-top:26px;border-top:1px solid rgba(129,182,158,.25);padding-top:18px}
.summary-life-story{margin-top:24px;border-top:1px solid rgba(129,182,158,.25);padding-top:18px}
.summary-life-story h3{margin:0 0 12px;color:var(--mint);font-size:15px}
.summary-story-grid{display:grid;gap:1px;background:#29483d;border:1px solid #29483d}
.summary-story-line{margin:0;padding:11px 13px;background:#10221d;color:#a8beb2;font-size:12px;line-height:1.6}
.summary-story-route{color:var(--text);font-weight:500}
.summary-life-story>small{display:block;margin-top:12px;color:#78958a;font-size:10px;line-height:1.5}
.summary-history h3{margin:0 0 12px;font-size:15px;color:var(--mint)}
.summary-history .feed{max-height:310px;overflow:auto;padding-right:10px}
.summary-history .feed-item{grid-template-columns:68px 1fr}
@media(max-width:760px){#lifeSummaryModal.summary-page{padding:12px}#lifeSummaryModal.summary-page .summary-modal{min-height:calc(100vh - 24px);padding:22px 18px}.summary-history .feed{max-height:260px}}
.death-cause-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.8fr);gap:14px 22px;margin:0 0 18px;padding:16px 18px;border:1px solid rgba(239,110,158,.34);background:linear-gradient(135deg,rgba(92,35,58,.34),rgba(16,38,30,.62));}
.death-cause-card .summary-label{margin:0 0 6px;color:#e76b9a;}
.death-cause-card strong{display:block;color:var(--text);font-size:19px;line-height:1.35;}
.death-cause-card p{margin:22px 0 0;color:#bfd0c7;font-size:12px;line-height:1.6;}
.death-cause-card small{grid-column:1/-1;color:#78958a;font-size:10px;line-height:1.5;}
@media(max-width:650px){.death-cause-card{display:block}.death-cause-card p{margin:12px 0}.death-cause-card small{display:block}}
.depth-panel{border-color:rgba(129,182,158,.34)}
.depth-dimensions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#29483d;border:1px solid #29483d;margin-bottom:9px}.depth-dimension{min-width:0;background:#0f211b;padding:7px 6px}.depth-dimension span{display:block;color:#719086;font-size:8px;margin-bottom:3px}.depth-dimension strong{display:block;color:#d9e5dd;font-size:9px;line-height:1.3;font-weight:500;overflow-wrap:anywhere}.depth-dimension small{display:block;color:#668579;font-size:8px;line-height:1.25;margin-top:3px;overflow-wrap:anywhere}
#depthLifeGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#29483d;border:1px solid #29483d}
.depth-stat{min-width:0;background:#10221d;padding:9px 8px}.depth-stat span,.depth-detail-block span{display:block;color:#719086;font-size:9px;margin-bottom:4px}.depth-stat strong{display:block;color:#d9e5dd;font-size:10px;line-height:1.4;font-weight:500;overflow-wrap:anywhere}
#depthLifeDetail{margin-top:9px}.depth-detail-block{padding:8px 0;border-bottom:1px solid rgba(41,72,61,.58)}.depth-detail-block:last-child{border-bottom:0}.depth-detail-block strong{display:block;color:#b8cec3;font-size:10px;line-height:1.45;font-weight:400}.depth-detail-block small{display:block;color:#6e8e82;font-size:9px;line-height:1.45}
.summary-depth{margin-top:24px;padding-top:18px;border-top:1px solid rgba(129,182,158,.25)}.summary-depth h3{margin:0 0 12px;color:var(--mint);font-size:15px}.summary-depth-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#29483d;border:1px solid #29483d}.summary-depth-grid>div{background:#10221d;padding:12px}.summary-depth-grid span{display:block;color:#719086;font-size:10px;margin-bottom:5px}.summary-depth-grid strong{display:block;color:#d9e5dd;font-size:11px;line-height:1.5;font-weight:400}.summary-depth p{color:#8fa99d;font-size:11px;line-height:1.6;margin:14px 0 0}
@media(max-width:650px){.depth-dimensions{grid-template-columns:repeat(2,minmax(0,1fr))}#depthLifeGrid,.summary-depth-grid{grid-template-columns:1fr}}
.scene-family-stack{filter:saturate(.78) contrast(1.08) brightness(.94) drop-shadow(0 4px 0 rgba(11,24,27,.66));transform-origin:center bottom}.scene-family-member.main .scene-family-stack{filter:saturate(.78) contrast(1.08) brightness(.94) drop-shadow(0 5px 0 rgba(11,24,27,.72))}

/* Full-body atlas cells are 384x512 (3:4). Keep every display box at the
   same ratio so the complete head and feet remain inside one asset cell. */
.portrait.character-stack{width:92px;height:120px}
.scene-family-stack,.scene-family-member.main .scene-family-stack{width:66px;height:88px}
.scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:40.5px;height:54px}
.scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:51px;height:68px}
.scene-family-stack.avatar-adult,.scene-family-member.main .scene-family-stack.avatar-adult{width:66px;height:88px}
.scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:61.5px;height:82px}
@media(max-width:760px){
  .portrait.character-stack{width:78px;height:104px}
  .scene-family-stack,.scene-family-member.main .scene-family-stack{width:52.5px;height:70px}
  .scene-family-stack.avatar-child,.scene-family-member.main .scene-family-stack.avatar-child{width:33.75px;height:45px}
  .scene-family-stack.avatar-teen,.scene-family-member.main .scene-family-stack.avatar-teen{width:42.75px;height:57px}
  .scene-family-stack.avatar-senior,.scene-family-member.main .scene-family-stack.avatar-senior{width:51.75px;height:69px}
}

/* Thai spending and lifestyle sheet */
.spend-help{margin:-2px 0 12px;color:#759489;font-size:11px;line-height:1.55}
.log-more{border:1px solid #31594b;background:#122b23;color:#b5d2c4;padding:7px 9px;font-size:10px;cursor:pointer}.log-more:hover{border-color:var(--lime);color:var(--lime)}
.spend-subgroup{margin:0 0 15px}.spend-subgroup h4,.lifestyle-group h4{margin:0 0 7px;color:#b6cdc1;font-size:11px;font-weight:600}.lifestyle-frequency{float:right;color:#6f9183;font-size:9px;font-weight:400}
.spend-subgroup h4{padding-bottom:6px;border-bottom:1px solid #203b32}
.spend-recommended{padding:10px;border:1px solid rgba(199,229,123,.24);border-radius:var(--radius-sm);background:linear-gradient(145deg,rgba(199,229,123,.06),rgba(100,212,176,.035));margin-bottom:10px}.spend-context-heading{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}.spend-context-heading strong{color:var(--lime);font-size:12px}.spend-context-heading span{color:#78988b;font-size:10px;text-align:right}.spend-more-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;border:1px solid #31594b;background:#10251f;color:#b5d2c4;padding:10px 12px;font-size:11px;text-align:left;cursor:pointer;border-radius:var(--radius-sm);margin-bottom:10px}.spend-more-toggle:hover{border-color:var(--lime);color:var(--lime)}.spend-more-toggle span{font-size:16px;color:var(--lime)}.spend-more.hidden{display:none}
.lifestyle-groups{display:grid;gap:12px}.lifestyle-group{border:1px solid #23473b;background:#0e211b;padding:10px}.lifestyle-choices{display:grid;gap:6px}
.lifestyle-choice{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid #2e5145;background:#132a23;color:inherit;padding:10px;text-align:left}.lifestyle-choice:hover,.lifestyle-choice.active{border-color:var(--lime);background:#19382d}.lifestyle-choice strong{display:block;color:var(--text);font-size:11px}.lifestyle-choice small{display:block;color:#77988b;margin-top:3px;line-height:1.4;font-size:10px}.lifestyle-choice>b{white-space:nowrap;color:#7c9b8e;font-size:10px}.lifestyle-choice.active>b{color:var(--lime)}
.finance-breakdown{border:1px solid #27483c;background:#0c1d18;padding:12px;margin:-4px 0 15px;color:#9ab4a8;font-size:11px}.finance-breakdown-title{color:var(--lime);font-weight:600;margin-bottom:8px}.finance-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.finance-breakdown-grid div{border:1px solid #1e3a31;padding:7px}.finance-breakdown-grid span,.finance-breakdown-grid strong{display:block}.finance-breakdown-grid span{color:#729287}.finance-breakdown-grid strong{color:var(--text);margin-top:3px}.finance-stream-list,.finance-loan-list{display:grid;gap:3px;margin-top:9px}.finance-stream-list b,.finance-loan-list b{color:#b1c28d;font-size:10px}.finance-stream-list span,.finance-loan-list span{color:#88a89b;line-height:1.35}
.finance-actions{display:grid;gap:10px;margin:-3px 0 15px}.finance-action-block{border:1px solid #27483c;background:#0c1d18;padding:11px}.finance-action-title{color:var(--lime);font-weight:600;font-size:11px;margin-bottom:6px}.finance-action-list{display:grid;gap:6px}.finance-action,.finance-loan-action{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid #2e5145;background:#132a23;padding:9px;text-align:left}.finance-action:hover,.finance-mini-action:hover{border-color:var(--lime)}.finance-action:disabled,.finance-mini-action:disabled{opacity:.42;cursor:not-allowed}.finance-action strong,.finance-loan-action strong{display:block;color:var(--text);font-size:11px}.finance-action small,.finance-loan-action small{display:block;color:#77988b;margin-top:3px;line-height:1.35;font-size:10px}.finance-action>b{white-space:nowrap;color:var(--yellow);font-size:10px}.finance-loan-action>div{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end}.finance-mini-action{border:1px solid #315448;background:#0e211b;color:#b1c28d;padding:5px 7px;font-size:9px}

/* Soft rounded theme: friendly surfaces with the original pixel-art scene kept intact. */
:root{--radius-xs:9px;--radius-sm:12px;--radius-md:18px;--radius-lg:26px;--soft-shadow:0 14px 38px rgba(0,0,0,.16)}
body{background:radial-gradient(circle at 8% 4%,rgba(239,110,158,.09),transparent 25%),radial-gradient(circle at 92% 24%,rgba(100,212,176,.1),transparent 28%),linear-gradient(160deg,#08110f 0%,#0b1915 48%,#101d18 100%)}
.topbar{border-bottom-color:rgba(136,176,158,.18);box-shadow:0 8px 28px rgba(0,0,0,.12)}
.primary-btn{border-radius:var(--radius-sm);padding:14px 21px}.birth-card{border-radius:var(--radius-lg);box-shadow:var(--soft-shadow)}.map-art{border-radius:var(--radius-lg) var(--radius-lg) 0 0}.control-btn,.speed-btn{border-radius:var(--radius-xs)}
.panel,.scene-card{border-radius:var(--radius-md);box-shadow:var(--soft-shadow)}.panel-label{border-radius:var(--radius-md) var(--radius-md) 0 0;padding:11px 15px}.id-card .panel-label{border-radius:var(--radius-md) var(--radius-md) 0 0}
.scene-card{border-color:rgba(100,212,176,.24)}.scene-caption{background:rgba(8,22,19,.28)}.focus-icon{border-radius:14px}.focus-option{border-radius:var(--radius-sm);transition:.18s ease}.focus-option:hover,.focus-option.active{transform:translateY(-1px);box-shadow:0 7px 18px rgba(199,229,123,.08)}
.spend-open-btn,.spend-balance,.spend-choice,.investment-option,.lifestyle-choice,.finance-action,.finance-loan-action,.finance-action-block{border-radius:var(--radius-sm)}.spend-open-btn{box-shadow:0 7px 18px rgba(100,212,176,.08)}
.decision-modal,.origin-modal,.summary-modal{border-radius:var(--radius-lg);box-shadow:0 25px 100px rgba(0,0,0,.48)}.choice-btn{border-radius:var(--radius-sm)}.choice-btn:hover{transform:translateY(-2px) translateX(2px)}.toast{border-radius:var(--radius-sm)}
.summary-grid,.summary-depth-grid,.origin-grid{border-radius:var(--radius-sm);overflow:hidden}.summary-grid div,.summary-depth-grid>div,.origin-cell{background:rgba(16,34,29,.9)}
.family-effect,.finance-breakdown{border-radius:var(--radius-sm)}.life-cell{border-radius:var(--radius-xs)}.log-filter{border-radius:999px!important}.life-log-toolbar select{border-radius:var(--radius-xs)}
.modal-actions .primary-btn,.secondary-btn{border-radius:var(--radius-xs)}.reflection-modal textarea,.summary-modal textarea{border-radius:var(--radius-sm)}
@media(max-width:760px){.panel,.scene-card{border-radius:var(--radius-sm)}.birth-card{border-radius:var(--radius-md)}.map-art{border-radius:var(--radius-md) var(--radius-md) 0 0}.decision-modal,.origin-modal,.summary-modal{border-radius:var(--radius-md)}}

/* Visual polish: a cozy editorial interface around the life simulation. */
::selection{background:rgba(239,110,158,.45);color:#fff}button{transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}body{overflow-x:hidden}body:before,body:after{content:"";position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(3px);opacity:.5}.body:before{width:280px;height:280px}.topbar{isolation:isolate}.topbar:after{content:"";position:absolute;left:4vw;right:4vw;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--mint),var(--pink),transparent);opacity:.45}.intro-view{position:relative}.intro-view:before{content:"✦  ·  ◌  ·  ✦";position:absolute;right:4%;top:12%;color:rgba(199,229,123,.28);font-size:17px;letter-spacing:.55em;transform:rotate(8deg)}.intro-copy{position:relative}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(100,212,176,.26);border-radius:999px;background:rgba(100,212,176,.06);box-shadow:0 5px 18px rgba(100,212,176,.06)}.intro-copy h1{text-shadow:0 8px 30px rgba(199,229,123,.06)}.intro-stats{gap:10px}.intro-stats div{min-width:92px;padding:10px 13px;border:1px solid rgba(129,182,158,.18);border-radius:var(--radius-sm);background:rgba(16,38,30,.42)}.intro-stats strong{font-size:29px}.birth-card{background:linear-gradient(145deg,rgba(24,57,47,.88),rgba(8,19,17,.9));border-color:rgba(100,212,176,.28)}.map-art{background:radial-gradient(circle at 54% 40%,rgba(100,212,176,.2),transparent 25%),radial-gradient(circle at 18% 18%,rgba(239,110,158,.1),transparent 22%),linear-gradient(150deg,#112820,#091412)}.map-art:after{box-shadow:inset 0 0 80px rgba(6,16,13,.16)}.birth-card-footer{padding-top:17px}.quote{border-top:1px solid rgba(129,182,158,.13);margin:0 20px;padding:14px 4px 18px;color:#8aa89c}.sim-head{border-bottom-color:rgba(129,182,158,.2)}.age-number{text-shadow:0 7px 22px rgba(199,229,123,.18)}.year-progress{border-radius:var(--radius-sm);box-shadow:0 8px 24px rgba(0,0,0,.1);border-color:rgba(100,212,176,.2)}.panel,.scene-card{border-color:rgba(129,182,158,.2);box-shadow:inset 0 1px 0 rgba(238,243,233,.025),var(--soft-shadow)}.panel-title{padding-bottom:10px;border-bottom:1px solid rgba(129,182,158,.13)}.panel-title h3{display:flex;align-items:center;gap:8px}.panel-title h3:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px rgba(239,110,158,.5)}.panel-title>span{padding:4px 8px;border-radius:999px;background:rgba(129,182,158,.07)}.portrait{box-shadow:0 12px 24px rgba(0,0,0,.22),0 0 0 5px rgba(100,212,176,.04)}.money-row{transition:background .18s ease;padding-left:7px;padding-right:7px;border-radius:7px}.money-row:hover{background:rgba(100,212,176,.06)}.scene-caption{padding:15px 18px 17px;background:linear-gradient(90deg,rgba(7,20,16,.94),rgba(10,28,22,.72))}.scene-caption strong{color:#f4f7ed}.focus-main{padding:12px;border:1px solid rgba(129,182,158,.14);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(100,212,176,.06),rgba(199,229,123,.025))}.feed-panel .panel-title{margin-bottom:5px}.feed-item{border-color:rgba(129,182,158,.12);transition:background .18s ease,padding .18s ease;border-radius:8px}.feed-item:hover{background:rgba(100,212,176,.045);padding-left:7px;padding-right:7px}.family-item,.peer-item{border-color:rgba(129,182,158,.12);transition:background .18s ease}.family-item:hover,.peer-item:hover{background:rgba(100,212,176,.045);border-radius:8px}.source-panel{background:linear-gradient(145deg,rgba(17,39,31,.94),rgba(10,23,19,.96))}.modal-backdrop{background:rgba(2,8,7,.7)}.decision-modal{border-color:rgba(100,212,176,.33);background:linear-gradient(150deg,rgba(17,39,31,.98),rgba(9,21,17,.98))}.decision-kicker{display:inline-block;padding:5px 9px;border-radius:999px;background:rgba(239,110,158,.1)}.choice-num{box-shadow:inset 0 0 0 1px rgba(199,229,123,.16)}
@media(max-width:760px){.intro-view:before{right:4%;top:4%;font-size:12px}.intro-stats{gap:6px}.intro-stats div{min-width:0;flex:1;padding:9px 8px}.intro-stats strong{font-size:24px}.intro-stats span{font-size:10px}.panel-title{padding-bottom:8px}.focus-main{padding:10px}}
@keyframes feedReveal{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.feed-item-new{animation:feedReveal .42s ease-out both}@media (prefers-reduced-motion:reduce){.feed-item-new{animation:none}}

/* Birth registration flow: a calm pause between randomization and play. */
.birth-flow{min-height:calc(100vh - 70px);display:grid;place-items:center;padding:44px 3vw 76px}.birth-loading,.birth-registration{width:min(100%,920px);border:1px solid rgba(100,212,176,.28);border-radius:var(--radius-lg);background:linear-gradient(145deg,rgba(18,42,34,.97),rgba(8,20,17,.98));box-shadow:0 25px 90px rgba(0,0,0,.28);overflow:hidden}.birth-loading{text-align:center;padding:86px 28px}.birth-loader-orbit{position:relative;width:82px;height:82px;margin:0 auto 28px;border:1px solid rgba(100,212,176,.2);border-radius:50%;animation:birthOrbit 3.5s linear infinite}.birth-loader-orbit:before,.birth-loader-orbit:after{content:"";position:absolute;inset:11px;border:1px dashed rgba(239,110,158,.3);border-radius:50%;transform:rotate(35deg)}.birth-loader-orbit:after{inset:23px;border-color:rgba(199,229,123,.45);transform:rotate(-25deg)}.birth-loader-orbit span,.birth-loader-orbit i,.birth-loader-orbit b{position:absolute;display:block;width:7px;height:7px;border-radius:50%}.birth-loader-orbit span{left:4px;top:33px;background:var(--pink);box-shadow:0 0 15px var(--pink)}.birth-loader-orbit i{right:8px;top:14px;background:var(--lime);box-shadow:0 0 15px var(--lime)}.birth-loader-orbit b{left:39px;bottom:3px;background:var(--mint);box-shadow:0 0 15px var(--mint)}.birth-loading-kicker,.birth-kicker{color:var(--pink);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px}.birth-loading h2{font-family:"Space Grotesk","IBM Plex Sans Thai",sans-serif;font-size:clamp(26px,4vw,46px);margin:0 0 14px;letter-spacing:-.04em}.birth-loading>p:not(.birth-loading-kicker){max-width:480px;margin:0 auto;color:#89a79a;line-height:1.7;font-size:13px}.birth-loading-steps{display:flex;justify-content:center;gap:8px;margin-top:30px;color:#6f9184;font-size:11px}.birth-loading-steps span{padding:7px 12px;border:1px solid rgba(129,182,158,.16);border-radius:999px;background:rgba(100,212,176,.045)}.birth-loading-steps span:nth-child(2){color:#d9e99d;border-color:rgba(199,229,123,.24)}.birth-registration-head{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:17px 24px;background:linear-gradient(90deg,#e96b99,#da5a8b);color:#25151c}.birth-registration-head>div{display:flex;align-items:baseline;gap:14px}.birth-registration-label{font-size:19px;font-weight:700}.birth-registration-head strong{font-size:11px;font-weight:500;opacity:.78}.birth-registration-head code{font-size:11px;letter-spacing:.06em}.birth-registration-body{padding:34px 36px 31px;background:radial-gradient(circle at 84% 75%,rgba(40,132,112,.16),transparent 35%),linear-gradient(150deg,rgba(16,35,31,.98),rgba(8,21,18,.98))}.birth-registration-body h2{font-family:"Space Grotesk","IBM Plex Sans Thai",sans-serif;font-size:clamp(34px,5vw,60px);line-height:1;margin:0 0 13px;letter-spacing:-.05em}.birth-intro{max-width:760px;color:#b6c9bf;line-height:1.8;margin:0 0 27px;font-size:14px}.birth-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(129,182,158,.17);border-left:1px solid rgba(129,182,158,.12);margin-bottom:23px}.birth-fact{min-height:70px;padding:13px 15px;border-right:1px solid rgba(129,182,158,.12);border-bottom:1px solid rgba(129,182,158,.12);background:rgba(8,23,19,.25)}.birth-fact span,.birth-context-grid section>span{display:block;color:#719489;font-size:10px;margin-bottom:6px}.birth-fact strong{display:block;color:#e1ece3;font-size:13px;line-height:1.45;font-weight:500}.birth-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.birth-context-grid section{padding:16px;border:1px solid rgba(129,182,158,.16);border-radius:var(--radius-sm);background:rgba(100,212,176,.045)}.birth-context-grid section:last-child{background:rgba(239,110,158,.045);border-color:rgba(239,110,158,.16)}.birth-context-grid strong{display:block;color:#e9f0e7;font-size:14px;margin-bottom:5px}.birth-context-grid p{color:#8ca99d;font-size:11px;line-height:1.6;margin:0}.birth-disclaimer{color:#658276;font-size:10px;line-height:1.6;margin:21px 0 0}.birth-actions{display:flex;justify-content:flex-end;align-items:center;gap:18px;margin-top:25px}.birth-actions .secondary-btn{padding:12px 9px;color:#9bb4a9}.birth-actions .primary-btn{min-width:170px;display:flex;justify-content:space-between;align-items:center}.birth-actions .primary-btn span{font-size:19px}@keyframes birthOrbit{to{transform:rotate(360deg)}}
@media(max-width:760px){.birth-flow{padding:24px 14px 45px;min-height:calc(100vh - 62px)}.birth-loading{padding:62px 20px}.birth-registration-head{display:block;padding:15px 17px}.birth-registration-head>div{display:block}.birth-registration-head strong{display:block;margin-top:4px}.birth-registration-head code{display:block;margin-top:10px}.birth-registration-body{padding:26px 19px 22px}.birth-registration-body h2{font-size:39px}.birth-intro{font-size:13px}.birth-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.birth-fact{padding:11px 12px}.birth-context-grid{grid-template-columns:1fr}.birth-actions{justify-content:space-between;gap:8px}.birth-actions .primary-btn{min-width:0;flex:1}.birth-actions .secondary-btn{font-size:10px}}
@media(prefers-reduced-motion:reduce){.birth-loader-orbit{animation:none}}

/* Keep every modal usable when its content is taller than the viewport. */
.modal-backdrop{overflow-y:auto;overscroll-behavior:contain;align-items:center}
.modal-backdrop:not(.summary-page)>.decision-modal{max-height:calc(100vh - 40px);max-height:calc(100dvh - 40px);min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#4e9b7d #12251f}
.modal-backdrop:not(.summary-page)>.decision-modal::-webkit-scrollbar{width:8px}
.modal-backdrop:not(.summary-page)>.decision-modal::-webkit-scrollbar-track{background:#12251f;border-radius:99px}
.modal-backdrop:not(.summary-page)>.decision-modal::-webkit-scrollbar-thumb{background:#4e9b7d;border-radius:99px}
@media(max-width:760px){.modal-backdrop{padding:12px}.modal-backdrop:not(.summary-page)>.decision-modal{max-height:calc(100vh - 24px);max-height:calc(100dvh - 24px)}}

.decision-person{margin:0 0 18px;padding:13px 15px;border:1px solid rgba(239,110,158,.24);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(239,110,158,.08),rgba(100,212,176,.05))}.decision-person-label{color:var(--pink);font-size:10px;margin-bottom:6px}.decision-person strong,.decision-person span,.decision-person small{display:block}.decision-person strong{color:var(--text);font-size:15px;font-weight:600}.decision-person span{color:#b4c9be;font-size:12px;margin-top:4px}.decision-person small{color:#8faea0;font-size:11px;margin-top:4px}.family-item strong{max-width:64%;overflow-wrap:anywhere;line-height:1.45}
.birth-references{margin-top:14px;padding:13px 15px;border:1px solid rgba(199,229,123,.18);border-radius:var(--radius-sm);background:rgba(199,229,123,.035)}.birth-references>span{display:block;color:var(--lime);font-size:10px;letter-spacing:.08em;margin-bottom:6px}.birth-references p{margin:0;color:#91aaa0;font-size:11px;line-height:1.65}.birth-reference-links,.data-links{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:8px}.birth-reference-links a,.data-links a{color:#8dd7bd;font-size:10px;text-decoration:none;border-bottom:1px dotted rgba(141,215,189,.45)}.birth-reference-links a:hover,.data-links a:hover{color:var(--lime);border-color:var(--lime)}
.birth-map-card{margin-top:14px;padding:16px;border:1px solid rgba(100,212,176,.2);border-radius:var(--radius-sm);background:linear-gradient(145deg,rgba(10,33,29,.72),rgba(6,18,16,.64));position:relative;overflow:hidden}.birth-map-card:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 45%,rgba(100,212,176,.06),transparent 48%)}.birth-map-head{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid rgba(129,182,158,.14);padding-bottom:9px}.birth-map-head span{display:block;color:#719489;font-size:10px;margin-bottom:4px}.birth-map-head strong{font-size:16px;color:#eaf2e8}.birth-map-head em{font-style:normal;color:var(--pink);font-size:11px}.thai-map-wrap{position:relative;z-index:1;max-width:370px;margin:3px auto -10px}.thai-map{display:block;width:100%;height:auto;overflow:visible}.thai-map-silhouette{fill:rgba(38,91,77,.52);stroke:rgba(123,205,169,.7);stroke-width:2;stroke-linejoin:round;filter:drop-shadow(0 8px 15px rgba(0,0,0,.25))}.map-grid-lines path{fill:none;stroke:rgba(129,182,158,.13);stroke-width:1;stroke-dasharray:2 7}.thai-map-river{fill:none;stroke:rgba(100,212,176,.3);stroke-width:2;stroke-linecap:round;stroke-dasharray:2 7}.map-region-labels text{font-family:"IBM Plex Sans Thai",sans-serif;font-size:11px;fill:rgba(218,238,225,.36);text-anchor:middle}.birth-map-marker{filter:drop-shadow(0 0 8px rgba(239,110,158,.75))}.birth-map-marker .marker-halo{animation:birthMarkerPulse 2.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.marker-halo{fill:rgba(239,110,158,.12);stroke:rgba(239,110,158,.34);stroke-width:1;stroke-dasharray:3 3}.marker-ring{fill:rgba(239,110,158,.12);stroke:#ff8faf;stroke-width:2}.marker-dot{fill:#ffe5a4;stroke:#fff6dd;stroke-width:1}.birth-map-caption{position:relative;z-index:1;margin:0;color:#76978b;text-align:center;font-size:10px;line-height:1.5}@keyframes birthMarkerPulse{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.08);opacity:1}}
@media(max-width:760px){.birth-map-card{padding:13px}.thai-map-wrap{max-width:330px}.birth-map-head strong{font-size:14px}.birth-map-caption{font-size:9px}}
@media(prefers-reduced-motion:reduce){.birth-map-marker .marker-halo{animation:none}}

/* Modal contract: general sheets close explicitly; event decisions can be parked without resolving them. */
.decision-modal{position:relative}
.modal-close-btn,.modal-minimize-btn{position:absolute;top:12px;right:14px;z-index:2;border:1px solid rgba(129,182,158,.24);border-radius:999px;background:rgba(7,20,16,.62);color:#a7c0b4;min-width:32px;min-height:32px;padding:4px 9px;font-size:20px;line-height:1;cursor:pointer}
.modal-minimize-btn{border-radius:6px;min-width:auto;padding:7px 10px;font-size:10px;color:var(--mint)}
.modal-close-btn:hover,.modal-close-btn:focus-visible,.modal-minimize-btn:hover,.modal-minimize-btn:focus-visible{border-color:var(--lime);background:rgba(199,229,123,.12);color:var(--lime);outline:none}
.decision-modal:has(.modal-close-btn),.decision-modal:has(.modal-minimize-btn){padding-top:48px}
.pending-decision-dock{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-7px 0 18px;padding:11px 13px;border:1px solid rgba(239,110,158,.38);border-radius:var(--radius-sm);background:linear-gradient(90deg,rgba(83,31,54,.46),rgba(25,57,46,.72));box-shadow:0 10px 28px rgba(0,0,0,.12)}
.pending-decision-dock>div{min-width:0}.pending-decision-dock strong,.pending-decision-dock span{display:block}.pending-decision-dock strong{color:var(--pink);font-size:12px}.pending-decision-dock span{color:#b6c9bf;font-size:10px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pending-decision-dock .control-btn{white-space:nowrap;padding:8px 10px;border-color:rgba(239,110,158,.42);color:#f1c5d5}
@media(max-width:760px){.pending-decision-dock{align-items:stretch;flex-direction:column;gap:9px}.pending-decision-dock .control-btn{width:100%}.modal-close-btn,.modal-minimize-btn{top:9px;right:10px}.decision-modal:has(.modal-close-btn),.decision-modal:has(.modal-minimize-btn){padding-top:48px}}

/* Compact birth-location card: the SVG and marker scale together through the same viewBox. */
.birth-map-card{max-width:560px;margin-left:auto;margin-right:auto;padding:12px 14px}
.birth-map-head{padding-bottom:7px}
.birth-map-head strong{font-size:14px}
.thai-map-wrap{width:100%;max-width:270px;margin:2px auto -8px}
.birth-map-caption{font-size:9px}
@media(max-width:760px){.birth-map-card{max-width:none;padding:11px 12px}.thai-map-wrap{max-width:250px}}

/* Active character set: one complete full-body sprite sheet per life stage. */
.character-age-sheet-layer{position:absolute;inset:0;width:100%;height:100%;display:block;background-repeat:no-repeat;background-size:200% 100%;background-origin:border-box;background-clip:border-box;image-rendering:auto;pointer-events:none;user-select:none;transform-origin:center bottom}
.character-age-sheet-layer.pixel-art{image-rendering:pixelated}
.character-age-sheet-layer.pixel-art{background-size:400% 100%}
.character-age-sheet-layer.pixel-art.male{background-position:26% 0!important}
.character-age-sheet-layer.pixel-art.female{background-position:79% 0!important}
.character-age-sheet-layer.pixel-art-side{image-rendering:pixelated}
.character-age-sheet-layer.pixel-art-side{background-size:400% 100%}
.character-age-sheet-layer.pixel-art-side.male{background-position:26% 0!important}
.character-age-sheet-layer.pixel-art-side.female{background-position:79% 0!important}
.character-age-sheet-layer.pixel-art-small{image-rendering:pixelated}
.character-age-sheet-layer.pixel-art-small{background-size:400% 100%}
.character-age-sheet-layer.pixel-art-small.male{background-position:26% 0!important}
.character-age-sheet-layer.pixel-art-small.female{background-position:79% 0!important}
.character-age-sheet-layer.pixel-art-front{image-rendering:pixelated}
.character-age-sheet-layer.pixel-art-front{background-size:400% 100%}
.character-age-sheet-layer.pixel-art-front.male{background-position:26% 0!important}
.character-age-sheet-layer.pixel-art-front.female{background-position:79% 0!important}
.character-age-sheet-layer.age-band-infant{transform:scale(1)}
.character-age-sheet-layer.age-band-child{transform:scale(1)}
.character-age-sheet-layer.age-band-teen{transform:scale(1)}
.character-age-sheet-layer.age-band-adult{transform:scale(1)}
.character-age-sheet-layer.age-band-middle{transform:scale(1)}
.character-age-sheet-layer.age-band-golden{transform:scale(1)}
.character-age-sheet-layer.age-band-senior{transform:scale(1)}
.character-age-sheet-layer.pixel-art-front-unified{image-rendering:pixelated;background-size:auto 100%;top:0;right:0;bottom:0;left:0;width:100%;height:100%}
.character-age-sheet-layer.pixel-art-front-unified.male{background-position:26% 0!important}
.character-age-sheet-layer.pixel-art-front-unified.female{background-position:74% 0!important}
.scene-family-stack.avatar-infant,.scene-family-member.main .scene-family-stack.avatar-infant{width:32px;height:43px}
.scene-family-stack.avatar-middle,.scene-family-member.main .scene-family-stack.avatar-middle{width:65px;height:87px}
.scene-family-stack.avatar-golden,.scene-family-member.main .scene-family-stack.avatar-golden{width:63px;height:84px}
@media(max-width:760px){
  .scene-family-stack.avatar-infant,.scene-family-member.main .scene-family-stack.avatar-infant{width:27px;height:36px}
  .scene-family-stack.avatar-middle,.scene-family-member.main .scene-family-stack.avatar-middle{width:51px;height:68px}
  .scene-family-stack.avatar-golden,.scene-family-member.main .scene-family-stack.avatar-golden{width:49px;height:65px}
}
/* ป้ายความเร็วแยกจากปุ่ม เพื่อให้ผู้เล่นอ่านช่วงเวลาได้ทันที */
.speed-label{font-size:10px;color:var(--muted);margin-left:4px;white-space:nowrap}
.speed-btn{min-width:44px}
.control-btn.fast-forward-active{border-color:var(--pink);color:#ffd6e4;background:rgba(239,110,158,.14);box-shadow:0 0 16px rgba(239,110,158,.12)}
.year-progress-track.fast-forward>span{transition:none}
@media(max-width:760px){.speed-label{width:100%;margin:4px 0 0}.speed-btn{min-width:42px;padding-left:9px;padding-right:9px}}

/* viewport-first controls: เวลาอยู่กับที่ และบันทึกล่าสุดไม่ต้องไล่หาในหน้า */
.sim-head{position:sticky;top:70px;z-index:9;padding:16px 0 14px;background:rgba(8,17,15,.94);backdrop-filter:blur(16px);box-shadow:0 12px 24px rgba(0,0,0,.16)}
.life-log-dock{position:fixed;right:max(18px,4vw);bottom:18px;z-index:11;width:min(380px,calc(100vw - 36px));padding:12px 14px;border:1px solid rgba(100,212,176,.3);border-radius:var(--radius-lg);background:rgba(10,28,22,.96);box-shadow:0 14px 45px rgba(0,0,0,.38);backdrop-filter:blur(18px)}
.life-log-dock-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.life-log-dock-head>div{display:flex;align-items:baseline;gap:8px;min-width:0}.life-log-dock-kicker{font-size:12px;color:var(--text);font-weight:600;white-space:nowrap}.life-log-dock-head strong{font-size:10px;color:var(--muted);font-weight:400;white-space:nowrap}.life-log-dock-toggle,.life-log-dock-open{border:0;background:transparent;color:var(--mint);font-size:10px;padding:4px 0}.life-log-dock-toggle:hover,.life-log-dock-open:hover{color:var(--lime)}.life-log-dock-list{display:grid;gap:5px;max-height:78px;overflow:auto;margin-top:8px}.life-log-dock-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:8px;padding:6px 0;border-top:1px solid rgba(129,182,158,.13);font-size:11px;line-height:1.35}.life-log-dock-item span{color:var(--mint);font-size:10px}.life-log-dock-item strong{font-weight:400;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.life-log-dock-empty{color:var(--muted);font-size:10px;padding:8px 0}.life-log-dock-open{display:block;margin-top:5px}.life-log-dock.expanded .life-log-dock-list{max-height:260px}.sim-view{padding-bottom:130px}
@media(max-width:760px){
  .sim-head{top:62px;padding:11px 0 9px;margin-bottom:14px}
  .time-controls{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 5px;scrollbar-width:thin}
  .time-controls .speed-label{width:auto;flex:0 0 auto;margin:0 2px 0 0}
  .time-controls .control-btn,.time-controls .speed-btn{flex:0 0 auto}
  .sim-view{padding-bottom:150px}
  .life-log-dock{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;padding:10px 12px;border-radius:var(--radius-md)}
  .life-log-dock-list{max-height:44px}
  .life-log-dock.expanded .life-log-dock-list{max-height:34vh}
  .life-log-dock-item{padding:5px 0}
}
:is(button,select,textarea,input):focus-visible{outline:2px solid var(--lime);outline-offset:3px;box-shadow:0 0 0 4px rgba(199,229,123,.18)}

/* Birth registration provenance stays attached to the fact it explains. */
.birth-fact-hint{display:block;margin-top:5px;color:#6f9386;font-size:10px;line-height:1.45;font-weight:400}
.origin-cell-hint{display:block;margin-top:5px;color:#6f9386;font-size:10px;line-height:1.45;font-weight:400}
.depth-detail-note{margin:9px 0 0;color:#6e8e82;font-size:9px;line-height:1.5}
.control-btn.decision-locked,.control-btn:disabled{cursor:not-allowed;opacity:.62;filter:saturate(.65)}

/* Keep only the essential simulation status and pause control sticky. */
.sim-head{display:block;padding:10px 0 8px;margin-bottom:12px}
.sim-status-bar{display:grid;grid-template-columns:minmax(280px,auto) minmax(0,1fr) auto;grid-template-areas:"info controls pause" "progress progress progress";column-gap:14px;row-gap:7px;align-items:center}
.sim-head-info{grid-area:info;min-width:0}
.sim-head .eyebrow{margin-bottom:8px;padding:4px 8px;font-size:10px}
.sim-head .age-number{font-size:52px}
.sim-status-bar .time-controls{grid-area:controls;display:flex;min-width:0;flex-wrap:nowrap;gap:4px;align-items:center;justify-content:flex-start;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(100,212,176,.42) transparent}
.sim-status-bar .time-controls::-webkit-scrollbar{height:4px}
.sim-status-bar .time-controls::-webkit-scrollbar-track{background:transparent}
.sim-status-bar .time-controls::-webkit-scrollbar-thumb{background:rgba(100,212,176,.42);border-radius:999px}
.sim-status-bar .time-controls .speed-label{flex:0 0 auto}
.sim-status-bar .time-controls .speed-btn,.sim-status-bar .time-controls .control-btn{flex:0 0 auto;padding:8px 9px;font-size:11px}
.sim-pause-btn{grid-area:pause;min-width:88px}
.sim-status-bar .year-progress{grid-area:progress;width:100%;margin:0;padding:6px 11px 5px}
.sim-status-bar .year-progress-track{height:6px;margin:5px 0 4px}
.sim-status-bar .year-progress-foot{font-size:8px}
@media(min-width:761px){
  .sim-head-info{display:flex;align-items:center;gap:12px}
  .sim-head .eyebrow{flex:0 0 auto;margin:0}
  .sim-head .age-line{flex:0 0 auto}
  .sim-head .sim-subtitle{min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
@media(max-width:1120px){
  .sim-status-bar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"info pause" "controls controls" "progress progress"}
  .sim-status-bar .time-controls{justify-content:flex-start}
}
@media(max-width:760px){
  .sim-head{padding:9px 0 7px;margin-bottom:9px}
  .sim-status-bar{column-gap:10px;row-gap:5px}
  .sim-head-info{display:block}
  .sim-head .age-number{font-size:48px}
  .sim-subtitle{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sim-pause-btn{min-width:78px;min-height:40px;padding:8px 10px}
  .sim-status-bar .time-controls{justify-content:flex-start;padding:2px 0 5px}
  .sim-status-bar .time-controls .speed-label{width:auto;margin:0 2px 0 0}
  .sim-status-bar .year-progress{padding:5px 0 0;border:0;background:transparent;box-shadow:none}
  .sim-status-bar .year-progress-track{height:6px;margin:4px 0 0}
  .sim-status-bar .year-progress-foot{display:none}
}
