/* 1in8blife.life — independent editorial redesign */
:root,:root[data-theme="light"]{color-scheme:light;--paper:#f4f6fa;--card:#fff;--card-soft:#edf1f7;--ink:#19263b;--ink2:#4e5f76;--ink3:#78889e;--rule:#dce3ec;--rule2:#e9eef4;--accent:#d95d46;--accent-ink:#fff;--accent-soft:#fff0eb;--stamp:#315cbb;--stamp-soft:#eaf0ff;--gold:#a66e28;--tg-land:#dbe3ee;--grid-lo:#e9eef5;--grid-mid:#93a8d4;--grid-hi:#d95d46;--shadow:0 18px 48px -34px #26365055}
:root[data-theme="dark"]{color-scheme:dark;--paper:#101827;--card:#182338;--card-soft:#202e45;--ink:#f1f4fa;--ink2:#c2cede;--ink3:#93a3b9;--rule:#34445e;--rule2:#293952;--accent:#ff947a;--accent-ink:#2b1715;--accent-soft:#3a272b;--stamp:#a9c0ff;--stamp-soft:#26324d;--gold:#e7bb76;--tg-land:#35445d;--grid-lo:#27364d;--grid-mid:#778db9;--grid-hi:#ff947a;--shadow:0 20px 55px -34px #0009}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--paper:#101827;--card:#182338;--card-soft:#202e45;--ink:#f1f4fa;--ink2:#c2cede;--ink3:#93a3b9;--rule:#34445e;--rule2:#293952;--accent:#ff947a;--accent-ink:#2b1715;--accent-soft:#3a272b;--stamp:#a9c0ff;--stamp-soft:#26324d;--gold:#e7bb76;--tg-land:#35445d;--grid-lo:#27364d;--grid-mid:#778db9;--grid-hi:#ff947a}}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink)}::selection{background:var(--stamp-soft);color:var(--ink)}button,a,select,input{font:inherit}button{color:inherit}a{color:var(--stamp)}:focus-visible{outline:3px solid color-mix(in srgb,var(--stamp) 60%,transparent);outline-offset:3px}
.wrap{width:min(1180px,calc(100% - 48px));margin-inline:auto}.langsw{display:flex;align-items:center;justify-content:flex-end;gap:4px;width:max-content;max-width:100%;margin:16px 0 10px auto;padding:5px;border:1px solid var(--rule);border-radius:999px;background:var(--card);box-shadow:var(--shadow)}.langsw a{flex:0 0 auto;padding:8px 11px;border-radius:999px;color:var(--ink2);font-size:12px;text-decoration:none;white-space:nowrap}.langsw a[aria-current="page"],.langsw a:hover{background:var(--stamp-soft);color:var(--stamp)}.desktop-nav{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:4px;margin:8px 0 24px;padding:8px 0;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(14px)}.desktop-nav button{min-height:40px;padding:8px 16px;border:0;border-radius:999px;background:transparent;color:var(--ink2);font-weight:650;cursor:pointer;transition:background .18s,color .18s}.desktop-nav button:hover,.desktop-nav button[aria-current="page"]{background:var(--card);color:var(--stamp);box-shadow:0 4px 18px -14px #1c2e4b88}
.hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start;gap:24px;padding:10px 0 26px}.herotext{position:relative;display:flex;flex-direction:column;justify-content:flex-start;min-width:0;overflow:hidden;padding:clamp(28px,4vw,48px);border:1px solid #ead8ce;border-radius:28px;background:linear-gradient(145deg,#fff7ef 0%,#f6e9de 100%);color:#19263b;box-shadow:var(--shadow)}.herotext:after{position:absolute;right:-110px;bottom:-140px;width:270px;height:270px;border:1px solid #d95d4622;border-radius:50%;box-shadow:0 0 0 28px #d95d4608,0 0 0 56px #d95d4606;content:"";pointer-events:none}.herotext .kicker{color:#315cbb;font-size:11px;font-weight:750;letter-spacing:.08em}.hero h1{max-width:660px;margin:22px 0 18px;font-family:var(--f-display,Georgia,serif);font-size:clamp(62px,7vw,94px);font-weight:700;line-height:1.03;letter-spacing:-.055em;color:#19263b}.hero h1 em{color:#d95d46;font-style:normal}.hero .lede{max-width:46ch;margin:0;color:#4e5f76;font-size:16px;line-height:1.8}.herotext .counter{display:flex;gap:0;margin:28px 0 18px;padding:0;border:0}.herotext .counter>div{min-width:0;flex:1;padding:0 14px;border:0;border-left:1px solid #d7c8bf;border-radius:0;background:transparent}.herotext .counter>div:first-child{padding-left:0;border-left:0}.herotext .counter strong{display:block;color:#315cbb;font-size:28px;font-variant-numeric:tabular-nums;line-height:1.1}.herotext .counter span{display:block;margin-top:5px;color:#65758a;font-size:11px;line-height:1.5}.herotext .tdband{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;max-width:100%;padding:9px 13px;border:1px solid #e6d2c5;border-radius:999px;background:#fff9f4;color:#66584e;font-size:12px;line-height:1.55}.herotext .tdband strong,.herotext .tdband b{color:#d95d46}
.heroside{display:flex;flex-direction:column;gap:14px;min-width:0;padding:0}.hero .tg-bg{position:relative;min-height:230px;flex:1;overflow:hidden;border:1px solid var(--rule);border-radius:26px;background:linear-gradient(140deg,#e8eef7,#f8fafc)}.hero .tg-bg img,.hero #tgMap{max-width:100%}.tg-live,.tgLive{color:var(--ink2)}.odds{margin:0;padding:22px 24px;border:1px solid var(--rule);border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.odds h2,.community h2,.together h2{margin-top:0;letter-spacing:-.025em}.odds .oddsrow{gap:12px}.odds a,.odds .ghost{border-radius:999px}
.community,.memo-box,.pastlives .panel,.together{min-width:0;padding:24px;border:1px solid var(--rule);border-radius:24px;background:var(--card);box-shadow:var(--shadow)}.community{margin:12px 0 24px}.memo-box{margin:16px 0}.pastlives .panel{margin:14px 0}.community h2,.memo-box h2,.together h2{font-family:var(--f-display,Georgia,serif);font-size:22px}.community p,.memo-box p,.notes p{color:var(--ink2);line-height:1.75}.memoPrev,.cmPrev{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.memoPrev button,.cmPrev button{min-width:0;padding:16px;border:1px solid var(--rule);border-radius:16px;background:var(--paper);text-align:left;line-height:1.65}.memoPrev button:hover,.cmPrev button:hover{border-color:var(--stamp);background:var(--stamp-soft)}
.opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0;padding:0;border:0;background:transparent;box-shadow:none}.opts>.optgroup{min-width:0;margin:0;padding:20px 22px;border:1px solid var(--rule);border-radius:20px;background:var(--card);box-shadow:var(--shadow)}.opts .lbl{display:block;margin-bottom:9px;color:var(--stamp);font-size:12px;font-weight:750;letter-spacing:.04em}.opts .seg{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;border:0;background:transparent}.opts .seg button,.opts .sel{min-height:43px;border:1px solid var(--rule);border-radius:12px;background:var(--paper);color:var(--ink2);font-size:13px;font-weight:600}.opts .seg button{flex:1 1 auto;padding:8px 12px;cursor:pointer}.opts .seg button[aria-pressed="true"],.opts .seg button[aria-checked="true"]{border-color:var(--stamp);background:var(--stamp-soft);color:var(--stamp)}.opts .sel{width:100%;margin-top:8px;padding:9px 12px}.opts .hint,.opts small{color:var(--ink3);font-size:12px;line-height:1.65}.opts .ctarow,.opts .introfoot,.opts .unl-back,.opts .guard{grid-column:1/-1}.opts .ctarow{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:8px 4px}.cta{min-height:48px;padding:12px 25px;border:0;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-weight:750;box-shadow:0 10px 24px -16px var(--accent);cursor:pointer;transition:transform .18s,filter .18s}.cta:hover{filter:saturate(1.12);transform:translateY(-1px)}.ghost{min-height:42px;padding:9px 15px;border:1px solid var(--rule);border-radius:999px;background:var(--card);color:var(--ink2);cursor:pointer}.ghost:hover{border-color:var(--stamp);color:var(--stamp)}.warnline{margin:14px 0;padding:13px 16px;border-left:3px solid var(--accent);border-radius:0 14px 14px 0;background:var(--accent-soft);color:var(--ink2);line-height:1.7}.rateNote,.rate-note{margin:18px 0;padding:13px 16px;border:1px solid var(--rule);border-radius:16px;background:var(--card-soft);color:var(--ink2);font-size:12px;line-height:1.7}.notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:24px 0}.notes>div{min-width:0;margin:0;padding:20px;border:1px solid var(--rule);border-radius:20px;background:var(--card);box-shadow:var(--shadow)}.notes h2,.notes h3{margin-top:0;font-family:var(--f-display,Georgia,serif)}.notes>div p{margin-bottom:0}
.introfoot,#introFoot{display:none!important}.mobile-shell,.mobile-tabs{display:none}.account-dialog{width:min(460px,calc(100% - 32px));max-height:86vh;overflow:auto;padding:24px;border:1px solid var(--rule);border-radius:22px;background:var(--card);color:var(--ink);box-shadow:0 24px 80px #14213a44}.account-dialog::backdrop{background:#101827aa;backdrop-filter:blur(5px)}.account-dialog header{display:flex;align-items:center;justify-content:space-between;gap:16px}.account-dialog h2{font-family:var(--f-display,Georgia,serif);font-size:24px}.account-dialog label{display:block;margin:14px 0;font-size:14px}.account-dialog input,.account-dialog select{width:100%;margin-top:8px;padding:12px;border:1px solid var(--rule);border-radius:12px;background:var(--paper);color:var(--ink);font:inherit}.account-dialog button{min-height:44px;cursor:pointer}.account-dialog form .cta,.google-continue{width:100%;margin:10px 0}.google-continue span{margin-right:8px;color:#4285f4;font:700 19px Arial}.account-pass{padding:18px;border:1px solid var(--rule);border-radius:16px;background:var(--paper);line-height:1.8}.account-pass .cta{width:100%}.account-dialog [data-message]{color:var(--stamp);font-size:13px}.account-order{padding-bottom:12px;border-bottom:1px solid var(--rule);font-size:12px}.account-trigger{max-width:180px;overflow:hidden;font-size:12px;text-overflow:ellipsis}.mobile-mast .account-trigger{max-width:120px}
.toast{bottom:96px!important}.scrim{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.memo{bottom:76px!important}.totop{bottom:92px!important}.decpeek{bottom:86px!important}.toolbar{top:0}.cert{padding-bottom:30px}.panel{border-radius:20px}.scene{border-radius:18px}.topbar .wrap{padding-top:10px;padding-bottom:10px}.mobile-game{display:none}
/* Legal, about and country pages */
.site-page{width:min(1040px,calc(100% - 40px));margin:42px auto;padding:0 0 36px;color:var(--ink)}.site-languages{display:flex;gap:5px;margin:0 0 18px;padding:5px;overflow-x:auto;border:1px solid var(--rule);border-radius:999px;background:var(--card);scrollbar-width:thin}.site-languages a{flex:0 0 auto;padding:8px 11px;border-radius:999px;color:var(--ink2);font-size:12px;text-decoration:none}.site-languages a[aria-current="page"],.site-languages a:hover{background:var(--stamp-soft);color:var(--stamp);font-weight:700}.site-page-head{margin-bottom:18px;padding:clamp(28px,5vw,52px);border:1px solid #ead8ce;border-radius:26px;background:linear-gradient(145deg,#fff7ef,#f6e9de);color:#19263b;box-shadow:var(--shadow)}.site-eyebrow{margin:0 0 12px;color:#315cbb;font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.site-page h1{margin:0;color:#19263b;font-family:var(--f-display,Georgia,serif);font-size:clamp(34px,6vw,58px);line-height:1.12;letter-spacing:-.04em}.site-lead{max-width:75ch;margin:17px 0 0;color:#4e5f76;font-size:16px;line-height:1.8}.site-section,.country-group{margin:12px 0;padding:clamp(20px,3vw,30px);border:1px solid var(--rule);border-radius:20px;background:var(--card);box-shadow:var(--shadow)}.site-section h2,.country-group h2{margin:0 0 10px;color:var(--stamp);font-size:19px}.site-section p{max-width:78ch;margin:0;color:var(--ink2);line-height:1.85}.site-links{display:flex;flex-wrap:wrap;gap:9px;margin:18px 0}.site-links a{display:inline-flex;align-items:center;min-height:42px;padding:0 15px;border:1px solid var(--rule);border-radius:999px;background:var(--card);color:var(--ink2);font-weight:650;text-decoration:none}.site-links a:hover{border-color:var(--stamp);color:var(--stamp)}.site-callout{margin:18px 0;padding:15px 18px;border-left:3px solid var(--accent);border-radius:0 14px 14px 0;background:var(--accent-soft);color:var(--ink2);line-height:1.75}.country-list .site-page-head{margin-top:8px}.country-table-wrap{overflow:auto;border:1px solid var(--rule);border-radius:20px;background:var(--card);box-shadow:var(--shadow)}.country-table{width:100%;min-width:780px;border-collapse:separate;border-spacing:0;font-size:14px}.country-table th,.country-table td{padding:12px 14px;border-bottom:1px solid var(--rule2);text-align:right;white-space:nowrap}.country-table thead th{position:sticky;top:0;background:var(--card-soft);color:var(--ink);font-size:12px;line-height:1.4}.country-table th:first-child,.country-table tbody th{text-align:left}.country-table tbody th{font-weight:650}.country-table tbody tr:hover{background:var(--stamp-soft)}.country-table a{color:var(--stamp);text-decoration:none}.country-table a:hover{text-decoration:underline}.country-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:18px 0}.country-metric{margin:0;padding:16px;border:1px solid var(--rule);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}.country-metric dt{color:var(--ink3);font-size:12px;line-height:1.5}.country-metric dd{margin:7px 0 0;color:var(--ink);font-size:21px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}.country-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0}.country-grid .country-metric{background:var(--paper);box-shadow:none}.country-actions{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}

@media(max-width:980px){.wrap{width:min(100% - 36px,760px)}.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.herotext{padding:28px}.hero h1{font-size:clamp(54px,7vw,78px)}.hero .tg-bg{min-height:200px}.opts>.optgroup{padding:18px}}
@media(max-width:700px){.site-page h1{overflow-wrap:anywhere;word-break:normal}}
@media(max-width:700px){.hero:not(:has(>.herotext>*,>.heroside>*)){display:none!important}html{scroll-padding-top:16px}body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.wrap{width:calc(100% - 28px)}.langsw{position:static!important;width:100%;justify-content:flex-start;gap:2px;margin:10px 0;padding:5px;overflow-x:auto;border-radius:14px;scrollbar-width:none}.langsw::-webkit-scrollbar{display:none}.langsw a{padding:8px 10px}.desktop-nav{display:none}.mobile-shell{display:block;padding:4px 0}.mobile-shell .mobile-mast{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 16px}.mobile-mast strong{min-width:0;color:var(--ink);font-family:var(--f-display,Georgia,serif);font-size:18px}.mobile-mast small{display:none}.mobile-hero{position:relative;isolation:isolate;overflow:hidden;margin:8px 0 16px;padding:23px 19px 20px;border:1px solid #ead8ce;border-radius:24px;background:linear-gradient(145deg,#fff7ef,#f6e9de);box-shadow:var(--shadow);color:#19263b}.mobile-hero:after{position:absolute;z-index:-1;right:-100px;bottom:-130px;width:230px;height:230px;border:1px solid #d95d4622;border-radius:50%;box-shadow:0 0 0 28px #d95d4608,0 0 0 56px #d95d4606;content:""}.mobile-hero h1{max-width:100%;margin:14px 0;font-family:var(--f-display,Georgia,serif);font-size:39px;line-height:1.12;letter-spacing:-.04em;color:#19263b}.mobile-hero h1 em{color:#d95d46;font-style:normal}.mobile-hero .kicker{color:#315cbb;font-size:10px;line-height:1.7}.mobile-hero .lede{margin:0 0 15px;color:#4e5f76;font-size:14px;line-height:1.8}.mobile-hero .counter{display:flex;gap:0;margin:16px 0;padding:0;border:0}.mobile-hero .counter>div{min-width:0;flex:1;padding:0 10px;border:0;border-left:1px solid #d7c8bf;border-radius:0;background:transparent}.mobile-hero .counter>div:first-child{padding-left:0;border-left:0}.mobile-hero .counter strong{display:block;color:#315cbb;font-size:23px}.mobile-hero .counter span{color:#65758a;font-size:10px;line-height:1.45}.mobile-hero .tdband{display:flex;flex-wrap:wrap;gap:6px;padding:9px 11px;border:1px solid #e6d2c5;border-radius:14px;background:#fff9f4;color:#66584e;font-size:11px;line-height:1.5}.mobile-hero .tdband strong,.mobile-hero .tdband b{color:#d95d46}.mobile-settings .opts{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0;padding:0}.mobile-settings .opts>.optgroup{margin:0;padding:16px;border-radius:17px;background:var(--card);box-shadow:var(--shadow)}.mobile-settings .opts .seg{gap:6px}.mobile-settings .opts .seg button{min-height:42px;padding:8px;font-size:12px}.mobile-settings .opts .ctarow{display:grid;grid-template-columns:1fr;gap:9px;padding:4px 0}.mobile-settings .opts #startBtn,.mobile-settings .opts #beginBtn{width:100%;min-height:50px}.mobile-settings .opts .ctahint{font-size:12px}.mobile-settings .warnline{font-size:12px}.mobile-map .tg-bg{position:relative!important;inset:auto!important;height:168px;min-height:168px;margin:12px 0;overflow:hidden;border-radius:19px}.mobile-map .odds{margin:10px 0;padding:17px;border-radius:19px}.mobile-map .odds h2{font-size:18px}.mobile-memories>.community,.mobile-memories>.memo-box{margin:12px 0;padding:17px;border-radius:19px}.mobile-memories .memoPrev,.mobile-memories .cmPrev{grid-template-columns:minmax(0,1fr)}.mobile-details .notes{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;margin:14px 0}.mobile-details .notes>div{margin:0;padding:17px}.mobile-details .legal{overflow-wrap:anywhere}.mobile-tabs{position:fixed;z-index:95;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:7px 8px calc(7px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 -10px 30px #15223b10;backdrop-filter:blur(18px)}.mobile-tabs button,.mobile-tabs a{display:flex;min-width:0;min-height:52px;align-items:center;justify-content:center;flex-direction:column;gap:4px;border:0;border-radius:12px;background:transparent;color:var(--ink3);font:10px system-ui;text-decoration:none;cursor:pointer}.mobile-tabs button span,.mobile-tabs a span{font-size:18px;line-height:22px}.mobile-tabs button[aria-current="page"],.mobile-tabs a[aria-current="page"]{background:var(--stamp-soft);color:var(--stamp)}.mobile-tabs.is-playing{grid-template-columns:repeat(4,minmax(0,1fr))}.mobile-tabs.is-playing [data-account-tab]{display:none}.mobile-tabs.is-playing button{font-size:10px}.site-page{width:calc(100% - 28px);margin:16px auto;padding-bottom:26px}.site-languages{margin-bottom:12px;border-radius:14px}.site-page-head{padding:24px 19px;border-radius:22px}.site-page h1{font-size:35px}.site-lead{font-size:14px}.site-section,.country-group{margin:10px 0;padding:18px 16px;border-radius:17px}.site-section h2,.country-group h2{font-size:17px}.country-table{min-width:760px;font-size:12px}.country-table th,.country-table td{padding:10px}.country-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.country-metric{padding:13px}.country-metric dd{font-size:18px}.country-grid{grid-template-columns:minmax(0,1fr)}.country-actions{gap:8px}.mobile-game{display:block;padding:12px}.mobile-game .panel{margin:0 0 12px}.mobile-game .panel h3{font-size:15px}.mobile-game .col{width:100%;min-width:0}#lifeview>.wrap.life{display:none!important}.mobile-game .scene{width:100%;min-height:145px}.mobile-game [data-game-panel]{display:flex;flex-direction:column;gap:10px}.mobile-game [data-game-panel][hidden]{display:none!important}.mobile-game .p-focus{display:block!important}.mobile-game .minibar{position:relative;inset:auto}.mobile-game .p-id{width:100%}.mobile-game .p-feed .feed{max-height:none}.topbar .wrap{padding:9px 12px}.toast{bottom:calc(82px + env(safe-area-inset-bottom))!important}.memo{bottom:76px!important}.totop{bottom:88px!important}.decpeek{bottom:82px!important}.cert{padding-bottom:16px}}
@media(max-width:360px){.wrap,.site-page{width:calc(100% - 20px)}.mobile-hero{padding:20px 16px}.mobile-hero h1{font-size:34px}.mobile-tabs{padding-inline:4px}.mobile-tabs button,.mobile-tabs a{font-size:9px}.opts .seg button{padding-inline:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

.sample-memorials{margin:16px 0 8px;padding:17px;border:1px solid var(--rule);border-radius:18px;background:var(--card-soft)}.sample-memorials-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.sample-memorials-head h3{margin:0;color:var(--ink);font-size:15px}.sample-memorials-head p{max-width:58ch;margin:0;color:var(--ink3);font-size:11px;line-height:1.6}.sample-memorials-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.sample-memorial-card{min-width:0;padding:13px;border:1px solid var(--rule);border-radius:14px;background:var(--card)}.sample-memorial-card small{display:block;color:var(--stamp);font-size:10px;font-weight:700;line-height:1.5}.sample-memorial-card p{margin:7px 0 0;color:var(--ink2);font-size:12px;line-height:1.65}@media(max-width:700px){.sample-memorials{padding:14px}.sample-memorials-head{display:block}.sample-memorials-head p{margin-top:5px}.sample-memorials-grid{grid-template-columns:minmax(0,1fr)}.sample-memorial-card{padding:12px}}

/* Keep the primary life-start action within reach while the visitor configures their life. */
#startBtn{display:none!important}
.introfoot,#introFoot{display:flex!important;position:fixed;z-index:110;left:50%;right:auto;bottom:20px;transform:translateX(-50%)!important;opacity:1!important;pointer-events:auto!important;align-items:center;justify-content:center;padding:10px;border:1px solid var(--rule);border-radius:999px;background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 12px 36px -16px #15223b55;backdrop-filter:blur(14px)}
.introfoot.off,#introFoot.off{transform:translateX(-50%)!important;opacity:1!important;pointer-events:auto!important}
.introfoot .cta,#introFoot .cta{min-width:250px;min-height:54px;justify-content:center;padding:13px 30px;font-size:16px}
.toast{background:#3a3a3a!important;color:#fff!important}
@media(max-width:700px){body:has(#roll:not([hidden])) .mobile-tabs{display:none!important}}
@media(max-width:700px){
  #intro{padding-bottom:calc(148px + env(safe-area-inset-bottom))}
  .introfoot,#introFoot{left:14px;right:14px;bottom:calc(74px + env(safe-area-inset-bottom));transform:none!important;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;gap:10px}
  .introfoot.off,#introFoot.off{transform:none!important}
  /* Give the primary action the room it needs but let the resume button keep
     its own label on one line. Taking the full width squeezed the resume
     button to ~106px, which broke "继续 · 略麦隆，6岁" across two lines. */
  .introfoot .cta,#introFoot .cta{flex:1 1 auto;width:auto;min-width:0;min-height:56px;padding:13px 16px;font-size:16px;white-space:nowrap}
  .introfoot .ghost,#introFoot .ghost{flex:0 1 auto;min-width:0;max-width:52%;min-height:56px;display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:12px 8px}
}

/* A unified botanical-tech palette, with a map surface that follows the active theme. */
:root,:root[data-theme="light"]{color-scheme:light;--paper:#f2f7f3;--card:#f9fcfa;--card-soft:#e8f1eb;--ink:#17372d;--ink2:#486459;--ink3:#71877d;--rule:#d5e3da;--rule2:#e4ede7;--accent:#378e68;--accent-ink:#f7fff9;--accent-soft:#e2f2e8;--stamp:#1d7054;--stamp-soft:#dcefe4;--gold:#9a7239;--tg-land:#aec8b9;--grid-lo:#e5eee8;--grid-mid:#78a18b;--grid-hi:#378e68;--shadow:0 18px 46px -34px #173a2c55;--map-top:#e2eee7;--map-bottom:#d7e8dc;--map-point:#36966d;--map-point-ring:#f8fff9}
:root[data-theme="dark"]{color-scheme:dark;--paper:#0c1714;--card:#14231e;--card-soft:#1b2d26;--ink:#e8f3ec;--ink2:#bfd0c5;--ink3:#8fa89a;--rule:#2a4036;--rule2:#21362d;--accent:#9de4bc;--accent-ink:#10251b;--accent-soft:#203b2e;--stamp:#79cda0;--stamp-soft:#1d3a2d;--gold:#e2c078;--tg-land:#456858;--grid-lo:#20372c;--grid-mid:#5c9a78;--grid-hi:#a0e3bd;--shadow:0 22px 60px -38px #000b;--map-top:#152a23;--map-bottom:#0d1d19;--map-point:#91e0b1;--map-point-ring:#19382c}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--paper:#0c1714;--card:#14231e;--card-soft:#1b2d26;--ink:#e8f3ec;--ink2:#bfd0c5;--ink3:#8fa89a;--rule:#2a4036;--rule2:#21362d;--accent:#9de4bc;--accent-ink:#10251b;--accent-soft:#203b2e;--stamp:#79cda0;--stamp-soft:#1d3a2d;--gold:#e2c078;--tg-land:#456858;--grid-lo:#20372c;--grid-mid:#5c9a78;--grid-hi:#a0e3bd;--shadow:0 22px 60px -38px #000b;--map-top:#152a23;--map-bottom:#0d1d19;--map-point:#91e0b1;--map-point-ring:#19382c}}

/* Independent visual system: editorial atlas, ink-blue surfaces and coral accents. */
:root,:root[data-theme="light"]{--paper:#f2f4f8;--card:#ffffff;--card-soft:#e9edf5;--ink:#17243a;--ink2:#46566f;--ink3:#71809a;--rule:#cbd4e2;--rule2:#e0e5ee;--accent:#e5765b;--accent-ink:#fffaf6;--accent-soft:#fff0e9;--stamp:#374f88;--stamp-soft:#e4eafa;--gold:#a86a35;--tg-land:#b7c6dc;--grid-lo:#e8edf5;--grid-mid:#8ea4c4;--grid-hi:#4e6ea5;--shadow:0 18px 48px -32px #23365750;--map-top:#e8edf6;--map-bottom:#d9e1ee;--map-point:#536fa3;--map-point-ring:#f8f9fc}
:root[data-theme="dark"]{color-scheme:dark;--paper:#111722;--card:#1b2432;--card-soft:#242f40;--ink:#f1f3f8;--ink2:#c4ccda;--ink3:#98a5b9;--rule:#354154;--rule2:#2c3748;--accent:#f09a7e;--accent-ink:#241b1b;--accent-soft:#382b2e;--stamp:#9eb6e8;--stamp-soft:#293754;--gold:#e7bd78;--tg-land:#42536e;--grid-lo:#263449;--grid-mid:#637fa9;--grid-hi:#a8c1ee;--shadow:0 22px 60px -38px #000b;--map-top:#202c3d;--map-bottom:#151e2b;--map-point:#a4bee9;--map-point-ring:#202d40}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--paper:#111722;--card:#1b2432;--card-soft:#242f40;--ink:#f1f3f8;--ink2:#c4ccda;--ink3:#98a5b9;--rule:#354154;--rule2:#2c3748;--accent:#f09a7e;--accent-ink:#241b1b;--accent-soft:#382b2e;--stamp:#9eb6e8;--stamp-soft:#293754;--gold:#e7bd78;--tg-land:#42536e;--grid-lo:#263449;--grid-mid:#637fa9;--grid-hi:#a8c1ee;--shadow:0 22px 60px -38px #000b;--map-top:#202c3d;--map-bottom:#151e2b;--map-point:#a4bee9;--map-point-ring:#202d40}}
body{background:radial-gradient(ellipse at 12% 0%,color-mix(in srgb,var(--stamp-soft) 70%,transparent),transparent 34rem),var(--paper);color:var(--ink)}
.wrap{max-width:1440px}
.langsw{gap:5px;padding:7px 10px;border:1px solid var(--rule);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}
.langsw .locale-picker{min-width:142px;min-height:40px;padding:8px 34px 8px 12px;border:1px solid var(--rule);border-radius:11px;background:var(--card-soft);color:var(--ink);font:600 13px system-ui;cursor:pointer}
.langsw .locale-picker:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.desktop-nav{display:flex;gap:8px;margin:16px 0 22px;padding:8px;border:1px solid var(--rule);border-radius:16px;background:var(--card);box-shadow:var(--shadow)}
.desktop-nav button{min-height:42px;padding:0 17px;border:0;border-radius:11px;background:transparent;color:var(--ink2);font:650 14px system-ui;cursor:pointer}
.desktop-nav button[aria-current="page"]{background:var(--stamp-soft);color:var(--stamp)}
.hero{gap:24px}
.herotext,.heroside,.opts>.optgroup,.notes>div,.odds,.community,.memo-box,.panel{border-color:var(--rule)!important;border-radius:22px!important;background:var(--card)!important;box-shadow:var(--shadow)}
.herotext{padding:clamp(28px,4vw,54px)!important}
.hero h1,.mobile-hero h1{font-family:ui-serif,Georgia,serif;letter-spacing:-.045em}
.hero h1 em,.mobile-hero h1 em{color:var(--accent)!important}
.kicker{color:var(--stamp)!important;letter-spacing:.08em}
.cta,.account-trigger{border:0!important;border-radius:14px!important;background:var(--accent)!important;color:var(--accent-ink)!important;box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 24%,transparent)}
.cta:hover,.account-trigger:hover{filter:brightness(1.06)}
.opts>.optgroup{padding:22px!important}
.optgroup input,.optgroup select,.optgroup textarea,.speed button,.ghost,.mini-btn{border-color:var(--rule)!important;border-radius:12px!important;background:var(--card-soft)!important;color:var(--ink)!important}
.tg-bg,.odds,.notes>div,.sample-memorials{border-radius:20px!important}
.sample-memorials{border-color:var(--rule)!important;background:var(--card-soft)!important}
.sample-memorial-card{border-color:var(--rule)!important;border-radius:16px!important;background:var(--card)!important}
.sample-memorial-art{border-radius:12px 12px 0 0;overflow:hidden}
.map-birth-caption{border-color:var(--rule)!important;background:var(--card)!important;color:var(--ink2)!important}
.introfoot,#introFoot{border-color:var(--rule)!important;background:color-mix(in srgb,var(--card) 95%,transparent)!important}
.mobile-hero{border-color:var(--rule)!important;border-radius:22px!important;background:linear-gradient(145deg,var(--card),var(--card-soft))!important;color:var(--ink)!important}
.mobile-hero h1{color:var(--ink)!important}
.mobile-hero .lede{color:var(--ink2)!important}
.mobile-hero .counter>div{border-color:var(--rule)!important}
.mobile-tabs{border-color:var(--rule)!important;background:color-mix(in srgb,var(--card) 96%,transparent)!important}
.mobile-tabs button[aria-current="page"]{background:var(--stamp-soft)!important;color:var(--stamp)!important}
.account-dialog{border:1px solid var(--rule)!important;border-radius:22px!important;background:var(--card)!important;color:var(--ink)!important}
.account-dialog .account-pass{display:none!important}
.home-keep-offer,#keepPanel,.kp-pass,.kp-buy,#pastPass,[data-keep="buyclick"],.account-pass{display:none!important}
@media(max-width:700px){
  /* The landing top bar is absolutely positioned on desktop. On phones it has to
     join the document flow, but the inherited left/right offsets then push the
     bar past the viewport and cut the page off. Fall back to a static, full
     width bar and let it scroll horizontally when the language list is long. */
  .langsw{position:static!important;left:auto;right:auto;width:100%;max-width:none;margin:12px 0 14px;padding:6px;justify-content:flex-start;gap:8px;overflow-x:auto;scrollbar-width:none}
  .langsw::-webkit-scrollbar{display:none}
  /* Keep language on the left and the theme/account controls on the right. */
  .langsw .locale-picker{flex:0 1 auto;width:auto;min-width:0;max-width:52%}
  .langsw > .account-trigger{flex:0 0 auto;margin-left:auto;margin-inline:0}
  .langsw .themebtn{flex:0 0 auto;margin-left:0}
  .desktop-nav{display:none}
  .mobile-hero{padding:22px 18px 20px;margin:0 0 16px}
  .mobile-tabs{box-shadow:0 -8px 26px #1a29401c}
}
body{background:radial-gradient(ellipse at 11% 0%,color-mix(in srgb,var(--stamp-soft) 46%,transparent),transparent 34rem),var(--paper);color:var(--ink)}
.langsw,.site-languages{border-color:var(--rule);background:color-mix(in srgb,var(--card) 90%,transparent);box-shadow:var(--shadow)}
.desktop-nav{border-color:var(--rule);background:color-mix(in srgb,var(--paper) 90%,transparent)}
.desktop-nav button:hover,.desktop-nav button[aria-current="page"]{background:var(--stamp-soft);color:var(--stamp);box-shadow:none}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(30px,5vw,68px);padding:16px 0 34px}
.herotext{padding:clamp(12px,2vw,24px) 0;background:transparent;border-color:transparent;border-radius:0;box-shadow:none;color:var(--ink)}
.herotext:after{display:none}
.hero h1{color:var(--ink);font-size:clamp(66px,8vw,112px);letter-spacing:-.065em}
.hero h1 em,.mobile-hero h1 em{color:var(--accent);font-style:normal}
.herotext .kicker,.mobile-hero .kicker{color:var(--stamp);letter-spacing:.07em}
.herotext .lede,.mobile-hero .lede{color:var(--ink2)}
.herotext .counter>div,.mobile-hero .counter>div{border-left-color:var(--rule)}
.herotext .counter strong,.mobile-hero .counter strong{color:var(--stamp)}
.herotext .counter span,.mobile-hero .counter span{color:var(--ink3)}
.herotext .tdband,.mobile-hero .tdband{border-color:var(--rule);background:color-mix(in srgb,var(--card-soft) 78%,transparent);color:var(--ink2)}
.herotext .tdband strong,.herotext .tdband .tdt,.mobile-hero .tdband strong,.mobile-hero .tdband .tdt{color:var(--stamp)}
.herotext .tdband b,.mobile-hero .tdband b{background:var(--stamp);color:var(--accent-ink)}
.hero .tg-bg,.mobile-map .tg-bg{position:relative;isolation:isolate;min-height:0;height:auto;aspect-ratio:156/66;overflow:hidden;border:1px solid var(--rule);border-radius:26px;background:radial-gradient(ellipse at 54% 46%,color-mix(in srgb,var(--stamp-soft) 58%,transparent),transparent 70%),linear-gradient(145deg,var(--map-top),var(--map-bottom));box-shadow:var(--shadow)}
.hero #tgMap,.mobile-map #tgMap{position:relative;z-index:1;display:block;width:100%;height:auto!important}
.map-birth-points{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible;pointer-events:auto}
.map-birth-marker{cursor:pointer}
.map-birth-hit{fill:transparent;pointer-events:all}
.map-birth-dot{fill:var(--map-point);stroke:var(--map-point-ring);stroke-width:.55;opacity:.78;transition:opacity .16s,stroke-width .16s}
.map-birth-marker:hover .map-birth-dot,.map-birth-marker:focus .map-birth-dot{opacity:1;stroke-width:1.1}
.map-birth-caption{position:absolute;z-index:4;top:10px;left:12px;max-width:calc(100% - 24px);padding:6px 9px;border:1px solid var(--rule);border-radius:999px;background:color-mix(in srgb,var(--card) 84%,transparent);color:var(--ink2);font-size:10px;font-weight:650;line-height:1.35;backdrop-filter:blur(8px);pointer-events:none}
.map-birth-caption:before{display:inline-block;width:7px;height:7px;margin:0 6px 0 1px;border-radius:50%;background:var(--map-point);content:""}
.map-birth-tip{position:absolute;z-index:5;min-width:154px;max-width:min(220px,calc(100% - 20px));padding:10px 12px;border:1px solid var(--rule);border-radius:13px;background:var(--card);color:var(--ink);font-size:12px;line-height:1.55;box-shadow:0 12px 30px #06130e66;pointer-events:none}
.map-birth-tip[hidden]{display:none}
.map-birth-tip strong,.map-birth-tip span{display:block}
.map-birth-tip span{margin-top:3px;color:var(--ink2);font-variant-numeric:tabular-nums}
.odds{border-color:var(--rule);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:var(--shadow)}

/* Keep the landing hero inside its content column at every desktop width. */
.wrap{width:min(1320px,calc(100% - 64px));max-width:1320px;margin-inline:auto}
.hero{grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);align-items:stretch;gap:clamp(22px,3vw,42px);padding:16px 0 34px}
.hero>.herotext,.hero>.heroside{width:100%;min-width:0;max-width:100%}
.herotext{padding:clamp(28px,3.4vw,46px)!important;border:1px solid var(--rule)!important;border-radius:22px!important;background:var(--card)!important;box-shadow:var(--shadow)!important;color:var(--ink)}
.hero h1{max-width:100%;font-size:clamp(48px,5.2vw,76px);line-height:1.08;letter-spacing:-.045em;overflow-wrap:normal}
.heroside{width:100%;min-width:0;align-self:stretch}
.hero .tg-bg,.hero .odds{box-sizing:border-box;width:100%;min-width:0;max-width:100%}
.hero .tg-bg{height:auto;min-height:0;flex:0 0 auto;aspect-ratio:156/66}
.hero .odds{margin:0}
@media(max-width:900px){
  .wrap{width:min(100% - 40px,720px)}
  .hero{grid-template-columns:minmax(0,1fr);gap:18px;padding-top:12px}
  .hero h1{font-size:clamp(46px,8vw,72px)}
  .herotext{padding:clamp(24px,5vw,38px)!important}
}
@media(max-width:700px){
  .wrap{width:calc(100% - 28px)}
  .hero{display:none}
}

/* Keep the population map as a visible, oversized backdrop behind the page. */
body{isolation:isolate}
.world-map-backdrop#tgBg{position:fixed;z-index:-1;top:50%;left:50%;width:min(205vw,2800px);height:auto;min-height:0;aspect-ratio:156/66;flex:none;transform:translate(-50%,-50%);transform-origin:center;overflow:visible;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;opacity:.9;pointer-events:none}
.world-map-backdrop #tgMap{position:absolute;inset:0;display:block;width:100%;height:100%!important;max-width:none;opacity:0;pointer-events:none}
.world-map-backdrop .map-birth-points{pointer-events:none}
.world-map-backdrop .map-birth-caption{display:none}
.hero>.heroside{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;padding:0!important}
.herotext{background:linear-gradient(145deg,color-mix(in srgb,#fff7ef 86%,transparent),color-mix(in srgb,#f6e9de 86%,transparent))}
.odds,.opts>.optgroup,.community,.memo-box,.pastlives .panel,.together,.notes>div,.site-section,.country-group,.country-table-wrap{background:color-mix(in srgb,var(--card) 88%,transparent)}
:root[data-theme="dark"] .herotext{background:linear-gradient(145deg,#182338e8,#202e45e8)}
@media(max-width:700px){
  .world-map-backdrop#tgBg{top:50%;width:520vw;max-width:none;transform:translate(-50%,-50%);opacity:.9}
  .herotext{background:linear-gradient(145deg,#fff7efed,#f6e9deed)}
}
.odds h2,.community h2,.memo-box h2,.together h2{color:var(--ink)}
.opts>.optgroup,.community,.memo-box,.pastlives .panel,.together,.notes>div,.site-section,.country-group,.country-table-wrap{border-color:var(--rule);background:var(--card);box-shadow:var(--shadow)}
.opts .seg button,.opts .sel,.account-dialog input,.account-dialog select{border-color:var(--rule);background:var(--paper);color:var(--ink)}
.opts .seg button[aria-pressed="true"],.opts .seg button[aria-checked="true"]{border-color:var(--stamp);background:var(--stamp-soft);color:var(--stamp)}
.cta{background:var(--accent);color:var(--accent-ink);box-shadow:0 10px 26px -15px var(--stamp)}
.cta:hover{filter:brightness(1.06) saturate(1.05)}
.ghost{border-color:var(--rule);background:var(--card);color:var(--ink2)}
.ghost:hover{border-color:var(--stamp);background:var(--stamp-soft);color:var(--stamp)}
.mobile-tabs{border-color:var(--rule);background:color-mix(in srgb,var(--card) 94%,transparent);box-shadow:0 -10px 32px #07181122}
.mobile-tabs button,.mobile-tabs a{color:var(--ink3)}
.mobile-tabs button[aria-current="page"],.mobile-tabs a[aria-current="page"]{background:var(--stamp-soft);color:var(--stamp)}
.site-page-head{border-color:var(--rule);background:linear-gradient(145deg,color-mix(in srgb,var(--stamp-soft) 54%,var(--card)),var(--card));color:var(--ink)}
.site-eyebrow,.site-page h1{color:var(--ink)}
.site-lead{color:var(--ink2)}
@media(max-width:980px){.hero{gap:24px}}
@media(max-width:700px){
  body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
  .langsw{flex-wrap:nowrap;min-width:0;gap:2px;scroll-snap-type:x proximity}
  .langsw a{scroll-snap-align:start}
  /* Keep the language button compact so the theme toggle stays on the same row. */
  .langsw .locale-picker{flex:0 1 auto;width:auto;min-width:0;max-width:min(58%,220px)}
  .langsw .themebtn{flex:0 0 auto}
  .mobile-hero{isolation:isolate;overflow:visible;margin:0 0 16px;padding:22px 18px 20px;color:var(--ink)}
  .mobile-hero:after{display:none}
  .mobile-hero h1{color:var(--ink);font-size:clamp(38px,11vw,48px);letter-spacing:-.05em}
  .mobile-hero .counter{margin:17px 0;display:flex;flex-direction:column;gap:12px}
  /* The counter labels are long sentences. On a phone they read far better as
     one full-width row each than squeezed into two narrow columns. */
  .mobile-hero .counter > div{flex-direction:row;align-items:baseline;gap:10px;min-width:0}
  .mobile-hero .counter strong{font-size:32px;flex:0 0 auto}
  .mobile-hero .counter span{font-size:13px;line-height:1.4;text-wrap:pretty;min-width:0}
  .mobile-hero .tdband{border-radius:13px}
  .mobile-map .tg-bg{height:auto;min-height:0;margin:8px 0 14px;border-radius:20px}
  .mobile-map .odds{margin:10px 0;padding:17px;border-radius:18px}
  .mobile-tabs{padding:6px 8px calc(7px + env(safe-area-inset-bottom))}
  .mobile-tabs button,.mobile-tabs a{min-height:54px;gap:3px}
  .mobile-tabs button span,.mobile-tabs a span{font-size:17px}
  .introfoot,#introFoot{background:transparent}
}
@media(max-width:360px){.mobile-hero h1{font-size:35px}.map-birth-caption{top:7px;left:8px;font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important}}

.sample-memorial-card{cursor:pointer;transition:border-color .16s,transform .16s}
.sample-memorials-in-sheet{grid-column:1/-1;margin:4px 0 0;padding:15px}
.sample-memorials-in-sheet .sample-memorials-head{display:block}
.sample-memorials-in-sheet .sample-memorials-head p{margin-top:5px}
.sample-memorial-card:hover{border-color:var(--stamp);transform:translateY(-1px)}
.sample-memorial-card:focus-visible{outline:3px solid color-mix(in srgb,var(--stamp) 60%,transparent);outline-offset:3px}
.sample-memorials-grid .sample-memorial-card{font:inherit;text-align:left}
.sample-story-dialog{width:min(520px,calc(100% - 30px));max-height:calc(100dvh - 32px);margin:auto;padding:clamp(20px,5vw,32px);overflow:auto;border:1px solid var(--rule);border-radius:24px;background:var(--card);color:var(--ink);box-shadow:0 24px 76px #0008}
.sample-story-dialog::backdrop{background:#07120dcc;backdrop-filter:blur(7px)}
.sample-story-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.sample-story-head h2{margin:4px 0 0;font-family:var(--f-display,Georgia,serif);font-size:clamp(22px,5vw,30px);line-height:1.25}
.sample-story-kicker{margin:0;color:var(--stamp);font-size:11px;font-weight:750;letter-spacing:.05em}
.sample-story-close{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--rule);border-radius:50%;background:var(--card-soft);color:var(--ink);font-size:24px;cursor:pointer}
.sample-story-note{margin:14px 0 18px;color:var(--ink3);font-size:12px;line-height:1.7}
.sample-story-content{padding:17px;border:1px solid var(--rule);border-radius:17px;background:var(--card-soft)}
.sample-story-content small{display:block;color:var(--stamp);font-size:12px;font-weight:750;line-height:1.6}
.sample-story-content p{margin:9px 0 0;color:var(--ink2);font-size:16px;line-height:1.8}
.sample-story-actions{display:flex;justify-content:flex-end;margin-top:16px}
.sample-story-next{min-width:140px}
@media(max-width:700px){.sample-story-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px);padding:21px 18px;border-radius:21px}.sample-story-content{padding:15px}.sample-story-content p{font-size:15px}}
.hero{align-items:start}
#intro{padding-bottom:120px}
@media(max-width:700px){#intro{padding-bottom:calc(148px + env(safe-area-inset-bottom))}}

/* Featured memorial records and a legible theme label in both color schemes. */
#memoBox .memo-car[hidden]{display:none!important}
.sample-memorials{padding:20px;background:var(--card)}
.sample-memorials-head h3{font-family:var(--f-display,Georgia,serif);font-size:20px}
.sample-memorials-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:12px}
.sample-memorials-grid .sample-memorial-card{display:block;width:100%;min-width:0;padding:0;overflow:hidden;border:1px solid var(--rule);border-radius:16px;background:var(--card);color:var(--ink);text-align:left;white-space:normal}
.sample-memorial-art{position:relative;display:block;height:112px;overflow:hidden;background:var(--card-soft)}
.sample-memorial-cover{display:block;width:100%;height:100%;object-fit:cover;object-position:center 58%;image-rendering:pixelated}
.sample-memorial-content{display:grid;gap:5px;padding:13px}
.sample-memorial-name{display:block;color:var(--ink);font-family:var(--f-display,Georgia,serif);font-size:18px;line-height:1.35}
.sample-memorial-meta{display:block;color:var(--ink3);font-size:12px;line-height:1.5}
.sample-memorial-story{display:block;color:var(--ink);font-size:13px;font-weight:650;line-height:1.6}
.sample-memorial-candles{display:block;min-height:23px;margin-top:2px;color:var(--gold);font-size:17px;letter-spacing:2px;line-height:1.4}
.sample-story-meta{display:block;margin-top:6px;color:var(--ink3);font-size:13px}
.sample-story-candles{min-height:24px;margin-top:13px;color:var(--gold);font-size:18px;letter-spacing:3px}
.sample-story-content>p{margin:0;color:var(--ink);font-size:16px;font-weight:650;line-height:1.75}

/* Let the enlarged map read through the page surfaces instead of disappearing behind opaque cards. */
.world-map-backdrop#tgBg::before{position:absolute;z-index:0;inset:0;background:url('/world-map-backdrop.svg') center/100% 100% no-repeat;content:"";opacity:.9;pointer-events:none}
.world-map-backdrop #tgMap{z-index:1;opacity:0}
.world-map-backdrop .map-birth-points{display:none}
#intro .herotext{background:linear-gradient(145deg,color-mix(in srgb,#fff7ef 84%,transparent),color-mix(in srgb,#f6e9de 84%,transparent))}
#intro .odds,#intro .opts>.optgroup,#intro .community,#intro .memo-box,#intro .pastlives .panel,#intro .together,#intro .notes>div,#intro .site-section,#intro .country-group,#intro .country-table-wrap,#intro .sample-memorials{background:color-mix(in srgb,var(--card) 82%,transparent)}
#intro .sample-memorials-grid .sample-memorial-card{background:color-mix(in srgb,var(--card) 88%,transparent)}
:root[data-theme="dark"] #intro .herotext{background:linear-gradient(145deg,#182338e8,#202e45e8)}
@media(max-width:700px){#intro .mobile-hero{background:color-mix(in srgb,var(--paper) 82%,transparent)}}
@media(max-width:700px){.sample-memorials{padding:16px}.sample-memorials-grid{grid-template-columns:minmax(0,1fr)}.sample-memorial-art{height:130px}.sample-memorials-head p{font-size:12px}}

/* Keep yearly-focus choices aligned and easy to tap during the life simulation. */
#focusChips {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: 10px;
}
.p-focus { container: focus / inline-size; }
#focusChips > .chip {
  width: 100%;
  min-width: 0;
  min-height: 68px;
  justify-content: center;
  gap: 5px;
  padding: 11px 14px;
  border-radius: 16px;
  white-space: normal;
  overflow-wrap: anywhere;
}
#focusChips > .chip small { line-height: 1.4; }
#focusChips > :not(.chip) { grid-column: 1 / -1; }
#mbPick {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
#mbPick > .chip {
  width: 100%;
  min-width: 0;
  min-height: 56px;
  justify-content: center;
  gap: 4px;
  padding: 9px 10px;
  border-radius: 14px;
  white-space: normal;
  overflow-wrap: anywhere;
}
#mbPick > :not(.chip) { grid-column: 1 / -1; }
@container focus (min-width: 720px) {
  #focusChips { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  #focusChips { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  #focusChips > .chip { min-height: 72px; padding: 10px 11px; border-radius: 15px; }
}
@media (max-width: 360px) {
  #focusChips > .chip { padding-inline: 8px; font-size: 12.5px; }
  #focusChips > .chip small { font-size: 10px; }
}

.home-keep-offer {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  margin: 18px 0 4px;
  padding: 16px 18px;
  border: 1px solid var(--stamp);
  border-radius: 18px;
  background: color-mix(in srgb, var(--stamp-soft) 68%, var(--card));
}
.home-keep-eyebrow { display: block; color: var(--stamp); font-size: 10px; font-weight: 750; letter-spacing: .06em; }
.home-keep-copy h2 { margin: 3px 0 4px; color: var(--ink); font-family: var(--f-display, Georgia, serif); font-size: 19px; line-height: 1.35; }
.home-keep-copy p { margin: 0; color: var(--ink2); font-size: 13px; line-height: 1.6; }
.home-keep-copy small { display: block; margin-top: 4px; color: var(--ink3); font-size: 11px; }
.home-keep-offer > .cta { white-space: nowrap; }
#keepPanel.pitch > .kp-buy { margin: 12px 0 18px; padding: 16px; border: 1px solid var(--stamp); border-radius: 18px; background: color-mix(in srgb, var(--stamp-soft) 68%, var(--card)); }
#keepPanel.pitch > .kp-buy > small { color: var(--ink2); line-height: 1.7; }
@media (max-width: 700px) {
  .home-keep-offer { grid-template-columns: minmax(0, 1fr); gap: 12px; margin: 13px 0 8px; padding: 14px; border-radius: 16px; }
  .home-keep-copy h2 { font-size: 17px; }
  .home-keep-offer > .cta { width: 100%; min-height: 48px; }
  #keepPanel.pitch > .kp-buy { padding: 14px; }
}

.life-album-card { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; min-height: 430px; margin: 18px 0 24px; padding: clamp(22px, 4vw, 38px); overflow: hidden; border: 1px solid color-mix(in srgb, var(--gold) 72%, var(--rule)); border-radius: 20px; background: color-mix(in srgb, var(--gold) 5%, var(--card)); box-shadow: 0 18px 42px -30px color-mix(in srgb, var(--gold) 55%, transparent); }
.life-album-copy { position: relative; z-index: 1; align-self: center; max-width: 760px; }
.life-album-card h2 { margin: 3px 0 5px; color: var(--ink); font-family: var(--f-display, Georgia, serif); font-size: clamp(21px, 4vw, 28px); line-height: 1.3; }
.life-album-description,.life-album-contents { max-width: 760px; color: var(--ink2); line-height: 1.7; }
.life-album-visual { position: absolute; z-index: 0; inset: 0; min-height: 0; overflow: hidden; border: 0; border-radius: inherit; background-color: #10201a; background-image: url('/life-album-sunrise.png'); background-position: right center; background-size: cover; }
.life-album-visual::after { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, rgba(7, 19, 15, .92) 0%, rgba(7, 19, 15, .78) 36%, rgba(7, 19, 15, .38) 68%, rgba(7, 19, 15, .12) 100%), linear-gradient(0deg, rgba(7, 19, 15, .32), transparent 48%); content: ''; pointer-events: none; }
.life-album-badge { margin: 0; color: var(--gold)!important; font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.life-album-price { margin: 4px 0 8px; color: var(--gold)!important; font-size: 17px; font-weight: 800; }
.life-album-contents { margin-bottom: 8px; }
.life-album-once { padding-left: 12px; border-left: 3px solid var(--gold); font-size: 13px; }
.life-album-copy > .cta { min-width: min(100%, 320px); min-height: 58px; margin-top: 8px; padding: 15px 30px; border: 1px solid color-mix(in srgb, var(--gold) 88%, #fff); border-radius: 999px; background: var(--gold); color: #17211a; font-size: 18px; font-weight: 850; letter-spacing: .01em; box-shadow: 0 0 0 4px color-mix(in srgb, var(--gold) 16%, transparent), 0 14px 32px -12px color-mix(in srgb, var(--gold) 72%, transparent); transition: filter .18s, transform .18s, box-shadow .18s; }
.life-album-copy > .cta:hover:not(:disabled) { filter: brightness(1.07) saturate(1.08); transform: translateY(-2px); box-shadow: 0 0 0 5px color-mix(in srgb, var(--gold) 20%, transparent), 0 16px 36px -10px color-mix(in srgb, var(--gold) 80%, transparent); }
.life-album-copy > .cta:disabled { opacity: 1; cursor: not-allowed; }
.checkout-loading { cursor: wait!important; }
.checkout-loading::before { display: inline-block; width: .82em; height: .82em; margin-inline-end: .55em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -.08em; animation: checkout-spin .7s linear infinite; content: ''; }
@keyframes checkout-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .checkout-loading::before { animation: none; } }
.life-album-status { min-height: 1.5em; margin: 9px 0 0!important; color: var(--ink3)!important; font-size: 12px; }
.life-album-dialog { width: min(680px, calc(100% - 24px)); max-height: calc(100dvh - 28px); margin: auto; padding: clamp(20px, 5vw, 32px); overflow: auto; border: 1px solid var(--rule); border-radius: 22px; background: var(--card); color: var(--ink); box-shadow: 0 24px 76px #0008; }
.life-album-dialog::backdrop { background: #07120dcc; backdrop-filter: blur(6px); }
.life-album-dialog-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.life-album-dialog-head h2 { margin: 3px 0 12px; font-family: var(--f-display, Georgia, serif); font-size: clamp(21px, 5vw, 28px); line-height: 1.3; }
.life-album-close { flex: 0 0 auto; width: 42px; height: 42px; border: 1px solid var(--rule); border-radius: 50%; background: var(--card-soft); color: var(--ink); font-size: 24px; cursor: pointer; }
.life-album-consent,.life-album-fiction { color: var(--ink2); font-size: 14px; line-height: 1.8; }
.life-album-check { display: flex; align-items: flex-start; gap: 10px; margin: 13px 0; padding: 12px; border: 1px solid var(--rule); border-radius: 12px; background: var(--card-soft); color: var(--ink2); font-size: 13px; line-height: 1.65; }
.life-album-check input { flex: 0 0 auto; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--stamp); }
.life-album-error { color: #b33!important; font-size: 13px; }
.life-album-dialog-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 18px; }
.life-album-report { display: grid; gap: 18px; }
.life-album-report figure { margin: 0; overflow: hidden; border-radius: 16px; background: var(--card-soft); }
.life-album-report figure img { display: block; width: 100%; max-height: 540px; object-fit: cover; }
.life-album-report figcaption { padding: 8px 12px; color: var(--ink3); font-size: 11px; }
.life-album-report section { padding: 16px; border: 1px solid var(--rule); border-radius: 15px; background: var(--card-soft); }
.life-album-report h3 { margin: 0 0 8px; color: var(--stamp); font-family: var(--f-display, Georgia, serif); font-size: 18px; }
.life-album-report section p { margin: 0; color: var(--ink2); white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.85; }
@media (max-width: 700px) { .life-album-card { min-height: 500px; gap: 18px; padding: 19px; border-radius: 17px; } .life-album-visual { background-position: 72% center; } .life-album-visual::after { background: linear-gradient(90deg, rgba(7, 19, 15, .83), rgba(7, 19, 15, .45)), linear-gradient(0deg, rgba(7, 19, 15, .44), transparent 62%); } .life-album-copy > .cta { width: 100%; } .life-album-dialog { width: calc(100% - 16px); max-height: calc(100dvh - 16px); padding: 19px 16px; border-radius: 18px; } .life-album-report figure img { max-height: 55vh; } }

#dead > .dtop { margin: 14px 0 12px; }
#dead > .dtop > #homeBtnTop { min-width: 190px; min-height: 56px; padding: 12px 22px; border: 2px solid var(--accent) !important; background: var(--accent) !important; color: var(--accent-ink) !important; font-size: 16px !important; font-weight: 800 !important; box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 20%, transparent), 0 12px 28px -14px color-mix(in srgb, var(--accent) 80%, transparent); transition: filter .18s, transform .18s, box-shadow .18s; }
#dead > .dtop > #homeBtnTop:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 23%, transparent), 0 14px 32px -12px color-mix(in srgb, var(--accent) 85%, transparent); }
#dead > .dtop > #homeBtnTop:focus-visible { outline: 3px solid var(--stamp); outline-offset: 5px; }
@media (max-width: 700px) { #dead > .dtop > #homeBtnTop { width: 100%; min-width: 0; min-height: 58px; } }
.langsw > .account-trigger { flex: 0 0 auto; margin-inline: 4px; padding: 9px 13px; border: 1px solid var(--stamp); border-radius: 999px; background: var(--stamp); color: var(--paper); font: inherit; font-size: 13px; font-weight: 750; white-space: nowrap; cursor: pointer; }
.langsw > .account-trigger:hover { filter: brightness(1.08); }
.langsw > .account-trigger:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
/* Keep account access in the language bar; the hero already carries the title. */
@media (max-width: 700px) {
  .mobile-mast { display: none; }
}

/* Tighten the mobile account flow and use every bottom-navigation track. */
@media (max-width: 700px) {
  .mobile-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .mobile-tabs > button,
  .mobile-tabs > a { width: 100%; min-width: 0; justify-self: stretch; }

  .home-keep-offer {
    width: 100%;
    max-width: none;
    min-width: 0;
    grid-column: 1 / -1;
    justify-self: stretch;
  }
  .home-keep-copy { width: 100%; min-width: 0; }
  #keepPanel.pitch { width: 100%; max-width: none; min-width: 0; }
  #keepPanel.pitch > .kp-hero,
  #keepPanel.pitch > .kp-pass,
  #keepPanel.pitch > .kp-buy {
    width: 100%;
    max-width: none;
    min-width: 0;
    grid-column: 1 / -1;
    justify-self: stretch;
  }
  #keepPanel.pitch > .kp-buy > * { min-width: 0; max-width: 100%; }

  .account-dialog {
    width: min(460px, calc(100vw - 24px));
    max-width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    margin: auto;
    padding: 18px 16px;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .account-dialog > header {
    position: sticky;
    z-index: 1;
    top: -18px;
    margin: -10px 0 10px;
    padding: 10px 0 8px;
    background: var(--card);
  }
  .account-dialog h2 { margin: 0; font-size: 22px; }
  .account-pass { min-width: 0; padding: 15px; line-height: 1.65; }
}

/* Keep account access visible on phones and make blocking choices usable on short screens. */
.mobile-mast > .account-trigger {
  flex: 0 0 auto;
  min-height: 44px;
  max-width: 120px;
  padding: 8px 11px;
  border: 1px solid var(--stamp);
  border-radius: 999px;
  background: var(--stamp);
  color: var(--paper);
  font: inherit;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: pointer;
}
.mobile-mast > .account-trigger:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.account-loading { display: flex; min-height: 72px; align-items: center; justify-content: center; gap: 11px; color: var(--ink2); }
.account-loading-spinner { width: 20px; height: 20px; flex: 0 0 auto; border: 2px solid var(--rule); border-right-color: var(--stamp); border-radius: 50%; animation: account-loading-spin .8s linear infinite; }
@keyframes account-loading-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .account-loading-spinner { animation: none; } }
.langsw > .account-trigger.is-signed-in {
  display: inline-grid;
  width: 40px;
  min-width: 40px;
  max-width: 40px;
  height: 40px;
  min-height: 40px;
  flex: 0 0 40px;
  place-items: center;
  margin-inline: 0;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--rule) !important;
  border-radius: 50% !important;
  background: var(--card-soft) !important;
  color: var(--stamp) !important;
  box-shadow: none !important;
}
.langsw > .account-trigger.is-signed-in svg {
  display: block;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@media (max-width: 700px) {
  body:has(.scrim:not([hidden])) .mobile-tabs { display: none !important; }
  .scrim { padding-top: calc(12px + env(safe-area-inset-top)); padding-bottom: calc(12px + env(safe-area-inset-bottom)); }
  .scrim > div.dec {
    box-sizing: border-box;
    width: min(560px, 100%);
    max-height: calc(100vh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  .scrim > div.dec > .hd { position: sticky; z-index: 1; top: 0; background: var(--card); }
  .speed { box-sizing: border-box; width: 100%; max-width: 100%; min-width: 0; flex: 0 0 100%; flex-wrap: wrap; row-gap: 4px; }
  .speed #pauseBtn, .speed .sps button { min-width: 44px; min-height: 44px; }
  .speed .sps button { flex: 0 0 44px; padding-inline: 2px; }
  .speed #pauseBtn { flex: 0 0 44px; padding-inline: 4px; }
}
@media (max-width: 350px) {
  .speed #pauseBtn, .speed .sps button { min-width: 38px; min-height: 44px; }
  .speed .sps button { flex-basis: 38px; }
  .speed #pauseBtn { flex-basis: 38px; }
}
/* A distinct editorial layout for the life simulation. The original runtime
   still owns state and controls; this layer only changes visual composition. */
@media (min-width: 1101px) {
  #lifeview > .wrap.life {
    grid-template-columns: minmax(240px, .82fr) minmax(420px, 1.35fr) minmax(250px, .83fr);
    grid-template-areas:
      "identity journal peers"
      "stats journal focus"
      "family journal map"
      "scene journal survival"
      "country country country";
    align-items: start;
    gap: 18px;
    padding-top: 24px;
  }
  #lifeview > .wrap.life > .col,
  #lifeview > .wrap.life > .col3 { display: contents; }
  #lifeview .p-scene { grid-area: scene; }
  #lifeview .p-scene .scene { aspect-ratio: 3.2 / 1; max-height: 125px; }
  #lifeview .p-scene .scenecap { padding: 10px 14px 12px; font-size: 13px; }
  #lifeview .p-id { grid-area: identity; }
  #lifeview .p-stats { grid-area: stats; }
  #lifeview .p-fam { grid-area: family; }
  #lifeview .p-focus { grid-area: focus; }
  #lifeview .p-feed { grid-area: journal; }
  #lifeview .p-comps { grid-area: peers; }
  #lifeview .p-grid { grid-area: map; }
  #lifeview .p-chart { grid-area: survival; }
  #lifeview .p-cty { grid-area: country; }
  #lifeview .panel,
  #lifeview .minibar {
    border-radius: 16px;
    box-shadow: 0 12px 30px color-mix(in srgb, var(--ink) 7%, transparent);
  }
  #lifeview .p-id { border-top: 3px solid var(--accent); }
  #lifeview .p-feed { padding: 22px; }
  #lifeview .p-feed .feed { max-height: min(62vh, 620px); overflow-y: auto; }
  #lifeview #feed:not(.all) > li:nth-child(n+11) { display: none; }
  #lifeview .p-feed .feedmore { display: block; margin: 12px auto 2px; padding: 9px 16px; min-height: 38px; font-size: 14px; }
  #lifeview #feed.all { max-height: min(62vh, 620px); overflow-y: auto; }
  #lifeview .p-feed h3 { padding: 8px 0 12px; border-bottom: 1px solid var(--rule); }
  #lifeview .p-feed { padding: 18px; }
  #lifeview .p-focus { padding: 20px; }
  #lifeview .p-comps .comps { max-height: 360px; overflow: auto; }
  #lifeview .topbar { backdrop-filter: blur(14px); }
  #lifeview .topbar .wrap { max-width: 1560px; gap: 14px; }
  #lifeview > .wrap.life { max-width: 1560px; }
}

@media (min-width: 801px) and (max-width: 1100px) {
  #lifeview > .wrap.life {
    display: grid;
    grid-template-columns: minmax(210px, .82fr) minmax(0, 1.35fr);
    grid-template-areas:
      "identity journal"
      "stats journal"
      "focus journal"
      "family journal"
      "scene peers"
      "map survival"
      "country country";
    gap: 14px;
  }
  #lifeview > .wrap.life > .col,
  #lifeview > .wrap.life > .col3 { display: contents; }
  #lifeview .p-scene { grid-area: scene; }
  #lifeview .p-scene .scene { aspect-ratio: 3 / 1; max-height: 110px; }
  #lifeview .p-scene .scenecap { padding: 9px 12px; font-size: 12px; }
  #lifeview .p-id { grid-area: identity; }
  #lifeview .p-stats { grid-area: stats; }
  #lifeview .p-fam { grid-area: family; }
  #lifeview .p-focus { grid-area: focus; }
  #lifeview .p-feed { grid-area: journal; }
  #lifeview .p-feed .feed { max-height: min(62vh, 600px); overflow-y: auto; }
  #lifeview #feed:not(.all) > li:nth-child(n+11) { display: none; }
  #lifeview .p-feed .feedmore { display: block; }
  #lifeview #feed.all { max-height: min(62vh, 600px); overflow-y: auto; }
  #lifeview .p-comps { grid-area: peers; }
  #lifeview .p-grid { grid-area: map; }
  #lifeview .p-chart { grid-area: survival; }
  #lifeview .p-cty { grid-area: country; }
  #lifeview .panel { border-radius: 14px; }
}

@media (max-width: 800px) {
  .mobile-game { padding: 12px 14px 20px; }
  .mobile-game .panel { border-radius: 18px; padding: 17px; }
  .mobile-game .p-scene { padding: 0; }
  .mobile-game .scene { min-height: 0; max-height: 140px; aspect-ratio: 2.8 / 1; border-radius: 17px 17px 0 0; }
  .mobile-game .scenecap { padding: 12px 15px 14px; line-height: 1.65; }
  .mobile-game .p-feed { border-top: 2px solid var(--accent); }
  .mobile-game .p-feed .feed { padding-left: 4px; }
  #lifeview #feed:not(.all) > li:nth-child(n+11) { display: none; }
  #lifeview #feed.all { max-height: min(62vh, 600px); overflow-y: auto; }
  .mobile-game .p-feed .feedmore { display: block; }
  .mobile-game .feed li { grid-template-columns: 3.2em minmax(0, 1fr); gap: 8px; padding: 12px 0; line-height: 1.65; }
  .mobile-game .panel > h3 { align-items: flex-start; line-height: 1.45; }
  .mobile-game .panel > h3 .lbl { max-width: 45%; text-align: right; line-height: 1.45; }
}

@media (min-width: 701px) and (max-width: 800px) {
  #lifeview .p-feed { order: -1; }
  #lifeview .p-scene { order: 4; }
  #lifeview .p-scene .scene { max-height: 132px; aspect-ratio: 2.8 / 1; }
  #lifeview .p-feed .feed { max-height: min(62vh, 600px); overflow-y: auto; }
  #lifeview #feed:not(.all) > li:nth-child(n+11) { display: none; }
  #lifeview .p-feed .feedmore { display: block; }
}

/* 2026-10 dashboard refactor: quiet atlas surfaces, readable data, journal first. */
:root,
:root[data-theme="light"] {
  --paper: #eef2f3;
  --card: #f9fbfb;
  --card-soft: #e7edee;
  --ink: #142a33;
  --ink2: #455e67;
  --ink3: #71858b;
  --rule: #cbd7d9;
  --rule2: #dfe7e8;
  --accent: #216d68;
  --accent-ink: #f7ffff;
  --accent-soft: #dfeeeb;
  --stamp: #285c72;
  --stamp-soft: #dfe9ee;
  --gold: #9b7438;
  --atlas-line: #6f8790;
  --atlas-glow: #b7945b;
  --panel: rgba(249, 251, 251, .9);
  --panel-strong: rgba(251, 252, 252, .97);
  --panel-hover: rgba(255, 255, 255, .98);
  --topbar: rgba(238, 242, 243, .82);
  --shadow: 0 1px 1px rgba(18, 43, 52, .03), 0 18px 46px -30px rgba(18, 43, 52, .28);
  --shadow-journal: 0 24px 64px -34px rgba(25, 71, 72, .38);
}
:root[data-theme="dark"] {
  --paper: #091218;
  --card: #111f27;
  --card-soft: #182a32;
  --ink: #e9f0ef;
  --ink2: #b2c2c3;
  --ink3: #7f969b;
  --rule: #293d44;
  --rule2: #203239;
  --accent: #82c7b5;
  --accent-ink: #09231e;
  --accent-soft: #17372f;
  --stamp: #91b9cf;
  --stamp-soft: #1b303d;
  --gold: #d2b176;
  --atlas-line: #87a8b2;
  --atlas-glow: #d2b176;
  --panel: rgba(17, 31, 39, .9);
  --panel-strong: rgba(18, 33, 41, .97);
  --panel-hover: rgba(23, 40, 48, .98);
  --topbar: rgba(9, 18, 24, .82);
  --shadow: 0 1px 1px rgba(0, 0, 0, .18), 0 22px 54px -30px rgba(0, 0, 0, .72);
  --shadow-journal: 0 26px 70px -34px rgba(0, 0, 0, .88);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --paper: #091218;
    --card: #111f27;
    --card-soft: #182a32;
    --ink: #e9f0ef;
    --ink2: #b2c2c3;
    --ink3: #7f969b;
    --rule: #293d44;
    --rule2: #203239;
    --accent: #82c7b5;
    --accent-ink: #09231e;
    --accent-soft: #17372f;
    --stamp: #91b9cf;
    --stamp-soft: #1b303d;
    --gold: #d2b176;
    --atlas-line: #87a8b2;
    --atlas-glow: #d2b176;
    --panel: rgba(17, 31, 39, .9);
    --panel-strong: rgba(18, 33, 41, .97);
    --panel-hover: rgba(23, 40, 48, .98);
    --topbar: rgba(9, 18, 24, .82);
    --shadow: 0 1px 1px rgba(0, 0, 0, .18), 0 22px 54px -30px rgba(0, 0, 0, .72);
    --shadow-journal: 0 26px 70px -34px rgba(0, 0, 0, .88);
  }
}

html { background: var(--paper); }
body {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(ellipse 70% 52% at 50% -8%, color-mix(in srgb, var(--stamp-soft) 72%, transparent), transparent 72%),
    radial-gradient(ellipse 42% 42% at 96% 32%, color-mix(in srgb, var(--accent-soft) 38%, transparent), transparent 78%),
    var(--paper);
  color: var(--ink);
  font-family: var(--f-body, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
  letter-spacing: .002em;
}
body > main { position: relative; z-index: 1; }

/* A restrained atlas backdrop: no oversized crop, no hard rectangle. */
.world-map-backdrop#tgBg {
  position: fixed;
  z-index: 0;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100vh;
  aspect-ratio: auto;
  transform: none;
  overflow: visible;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  opacity: 1;
  pointer-events: none;
}
.world-map-backdrop#tgBg::before {
  position: absolute;
  inset: 0;
  height: 100vh;
  background: url('/world-map-backdrop.svg') center 24% / contain no-repeat;
  content: "";
  opacity: .82;
  filter: saturate(.8) contrast(.96);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 46%, rgba(0, 0, 0, .35) 74%, transparent 96%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 46%, rgba(0, 0, 0, .35) 74%, transparent 96%);
  pointer-events: none;
}
.world-map-backdrop #tgMap,
.world-map-backdrop .map-birth-points,
.world-map-backdrop .map-birth-caption,
.world-map-backdrop .map-birth-tip { display: none !important; }

/* Shared surface language for the landing page and simulation. */
.langsw,
.desktop-nav {
  border: 1px solid color-mix(in srgb, var(--rule) 76%, transparent);
  background: var(--topbar);
  box-shadow: 0 12px 34px -28px rgba(20, 43, 51, .5);
  backdrop-filter: blur(20px) saturate(1.2);
  -webkit-backdrop-filter: blur(20px) saturate(1.2);
}
.herotext,
.opts > .optgroup,
.odds,
.community,
.memo-box,
.pastlives .panel,
.together,
.notes > div,
.sample-memorials {
  border-color: color-mix(in srgb, var(--rule) 78%, transparent) !important;
  background: var(--panel) !important;
  box-shadow: var(--shadow) !important;
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
}
.herotext { border-radius: 28px !important; }
.hero h1,
.mobile-hero h1 {
  font-weight: 650;
  letter-spacing: -.055em;
}
.hero h1 em,
.mobile-hero h1 em { color: var(--accent) !important; }
.cta {
  border-radius: 13px !important;
  background: var(--accent) !important;
  color: var(--accent-ink) !important;
  box-shadow: 0 12px 28px -16px color-mix(in srgb, var(--accent) 78%, transparent);
}

/* Simulation chrome: compact, calm, and subordinate to the content. */
#lifeview .topbar {
  border-bottom: 1px solid color-mix(in srgb, var(--rule) 76%, transparent);
  background: var(--topbar);
  box-shadow: 0 12px 36px -32px rgba(10, 31, 39, .68);
  backdrop-filter: blur(22px) saturate(1.25);
  -webkit-backdrop-filter: blur(22px) saturate(1.25);
}
#lifeview .topbar .wrap {
  width: min(1560px, calc(100% - 48px));
  max-width: none;
  min-height: 76px;
  padding: 10px 0;
  gap: 22px;
}
#lifeview .brand {
  color: var(--ink);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -.03em;
}
#lifeview .brand em { color: var(--accent); }
#lifeview .agebox { gap: 14px; }
#lifeview .agebox .age {
  min-width: 2.1em;
  color: var(--ink);
  font-size: 42px;
  font-weight: 650;
  letter-spacing: -.05em;
}
#lifeview .agebox .age small {
  color: var(--ink3);
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
}
#lifeview .agebox .yr { gap: 7px; }
#lifeview .agebox .yr .t { color: var(--ink2); font-size: 12px; }
#lifeview .agebox .prog {
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: var(--rule2);
}
#lifeview .agebox .prog i { border-radius: inherit; background: var(--accent); }
#lifeview .speed {
  gap: 5px;
  padding: 5px;
  border: 1px solid color-mix(in srgb, var(--rule) 78%, transparent);
  border-radius: 15px;
  background: color-mix(in srgb, var(--card) 72%, transparent);
}
#lifeview .speed button {
  min-height: 36px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink2);
  font-size: 12px;
  font-weight: 650;
  transition: background .16s, color .16s, box-shadow .16s;
}
#lifeview .speed button:hover { background: var(--card-soft); color: var(--ink); }
#lifeview .speed button[aria-pressed="true"] {
  background: var(--accent);
  color: var(--accent-ink);
  box-shadow: 0 6px 16px -10px var(--accent);
}
#lifeview .speed .sps { gap: 2px; }
/* The caption only exists to explain the collapsed speed select on phones. */
#lifeview .speed .speed-caption { display: none; }
#lifeview .speed #pauseBtn { padding-inline: 12px; background: var(--ink); color: var(--paper); }
#lifeview .speed .ff { padding-inline: 11px; }
#lifeview .more {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 60;
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  min-width: 214px;
  padding: 8px;
  border: 1px solid var(--rule);
  border-radius: 16px;
  background: var(--panel-strong);
  box-shadow: var(--shadow);
  backdrop-filter: blur(20px) saturate(1.1);
  -webkit-backdrop-filter: blur(20px) saturate(1.1);
}
#lifeview .more.open { display: flex; }
#lifeview .speed .more button {
  justify-content: flex-start;
  padding: 10px 12px;
  border-radius: 10px;
  font-size: 13px;
  text-align: left;
}
#lifeview .speed .more button:hover { background: var(--card-soft); color: var(--ink); }

#lifeview > .wrap.life > .col,
#lifeview > .wrap.life > .col3 { display: contents; }
#lifeview .panel,
#lifeview .minibar {
  border: 1px solid color-mix(in srgb, var(--rule) 80%, transparent);
  border-radius: 20px;
  background: var(--panel);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
}
#lifeview .panel { padding: 20px; }
#lifeview .panel > h3 {
  min-height: 25px;
  margin: 0 0 15px;
  gap: 12px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 720;
  letter-spacing: .01em;
}
#lifeview .panel > h3 > span:first-child { display: inline-flex; align-items: center; gap: 8px; }
#lifeview .panel > h3 .lbl {
  color: var(--ink3);
  font-size: 10px;
  font-weight: 560;
  letter-spacing: .025em;
  line-height: 1.5;
  text-align: right;
  text-transform: none;
}

/* The journal is the primary surface, never an endless left rail. */
#lifeview .p-feed {
  position: relative;
  padding: 23px 24px 18px;
  overflow: hidden;
  border-color: color-mix(in srgb, var(--accent) 24%, var(--rule));
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--accent-soft) 38%, transparent), transparent 32%),
    var(--panel-strong);
  box-shadow: var(--shadow-journal);
}
#lifeview .p-feed::before {
  position: absolute;
  top: 0;
  left: 24px;
  width: 56px;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: var(--accent);
  content: "";
}
#lifeview .p-feed > h3 {
  margin-bottom: 13px;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--rule2);
  font-size: 18px;
  letter-spacing: -.015em;
}
#lifeview .p-feed > h3 > span:first-child::before {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--accent) 12%, transparent);
  content: "";
}
#lifeview .p-feed .feed {
  max-height: none;
  padding: 0;
  overflow: visible;
  overscroll-behavior: auto;
}
#lifeview #feed:not(.all) > li:nth-child(-n+10) { display: grid; }
#lifeview #feed:not(.all) > li:nth-child(n+11) { display: none; }
#lifeview .p-feed .feed li {
  grid-template-columns: 3.3em minmax(0, 1fr);
  gap: 13px;
  margin: 0;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid var(--rule2);
  border-radius: 11px;
  color: var(--ink2);
  font-size: 14px;
  line-height: 1.58;
  transition: background .15s, border-color .15s;
}
#lifeview .p-feed .feed li:last-child { border-bottom-color: transparent; }
#lifeview .p-feed .feed li:hover { background: var(--card-soft); }
#lifeview .p-feed .feed li:first-child {
  margin-bottom: 5px;
  border-bottom-color: transparent;
  background: color-mix(in srgb, var(--accent-soft) 74%, transparent);
  color: var(--ink);
}
#lifeview .p-feed .feed .a {
  padding-top: 2px;
  color: var(--ink3);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
}
#lifeview .p-feed .feed li:first-child .a { color: var(--accent); }
#lifeview .p-feed .feed .x { color: inherit; line-height: 1.58; overflow-wrap: anywhere; }
#lifeview .p-feed .feed li.big .x,
#lifeview .p-feed .feed li:first-child .x { font-weight: 620; }
#lifeview .p-feed .feed li.bad .x { color: var(--bad); }
#lifeview .p-feed .feed li.ms .x { color: var(--stamp); }
#lifeview .p-feed .feedmore {
  width: 100%;
  min-height: 40px;
  margin: 13px 0 0;
  border: 1px solid var(--rule);
  border-radius: 11px;
  background: var(--card-soft);
  color: var(--ink2);
  font-size: 12px;
}
#lifeview .p-feed .feedmore:hover { border-color: var(--accent); color: var(--accent); }
#lifeview #feed.all {
  max-height: min(64vh, 640px);
  padding-right: 5px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--rule) transparent;
}

/* Identity, state, family and annual intent stay visible together on desktop. */
#lifeview .p-id {
  overflow: hidden;
  border-top: 1px solid color-mix(in srgb, var(--rule) 80%, transparent);
  background: var(--panel-strong);
}
#lifeview .idcard .top {
  padding: 10px 16px;
  background: #183a42;
  color: #d9eee9;
  font-size: 10px;
  letter-spacing: .075em;
}
:root[data-theme="dark"] #lifeview .idcard .top { background: #1d383d; color: #d6e9e4; }
#lifeview .idcard .in { grid-template-columns: 58px minmax(0, 1fr); gap: 13px; padding: 17px 17px 12px; }
#lifeview .idcard .portrait {
  width: 58px;
  height: 70px;
  border: 1px solid var(--rule2);
  border-radius: 13px;
  background: var(--card-soft);
}
#lifeview .idcard .nm { font-size: 20px; letter-spacing: -.02em; }
#lifeview .idcard dl { gap: 3px 8px; margin-top: 7px; font-size: 12px; line-height: 1.45; }
#lifeview .idcard dt { font-size: 11px; }
#lifeview .idcard .mrz { opacity: .48; }
#lifeview .p-stats .stat {
  grid-template-columns: 3.3em minmax(0, 1fr) 2em;
  gap: 9px;
  padding: 6px 0;
  font-size: 12px;
}
#lifeview .p-stats .stat .bar { height: 6px; border-radius: 999px; background: var(--rule2); }
#lifeview .p-stats .stat .bar i { border-radius: inherit; }
#lifeview .p-stats .stat .v { color: var(--ink2); font-size: 11px; }
#lifeview .p-stats .money {
  gap: 10px;
  margin-top: 13px;
  padding: 13px 12px;
  border: 0;
  border-radius: 13px;
  background: var(--card-soft);
}
#lifeview .p-stats .money b { font-family: var(--f-body); font-size: 15px; font-weight: 720; }
#lifeview .p-stats .money small { font-size: 10px; }
#lifeview .stathelp summary { min-height: 27px; padding: 5px 0; font-size: 11px; }
#lifeview .p-fam .fam { gap: 0; font-size: 12px; }
#lifeview .p-fam .fam .row {
  gap: 12px;
  padding: 7px 0;
  border-bottom: 1px solid var(--rule2);
  line-height: 1.45;
}
#lifeview .p-fam .fam .row:last-child { border-bottom: 0; }
#lifeview .p-focus { background: var(--panel-strong); }
#lifeview .p-focus .status { margin-bottom: 12px; font-size: 12px; line-height: 1.6; }
#lifeview #focusChips { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
#lifeview #focusChips > .chip {
  min-height: 54px;
  gap: 4px;
  padding: 9px 10px;
  border: 1px solid var(--rule2);
  border-radius: 12px;
  background: var(--card-soft);
  color: var(--ink2);
  font-size: 12px;
  line-height: 1.3;
  transition: border-color .15s, background .15s, color .15s;
}
#lifeview #focusChips > .chip small { color: var(--ink3); font-size: 10px; }
#lifeview #focusChips > .chip:hover { border-color: var(--accent); color: var(--ink); }
#lifeview #focusChips > .chip[aria-pressed="true"],
#lifeview #focusChips > .chip[aria-checked="true"] {
  border-color: color-mix(in srgb, var(--accent) 58%, var(--rule));
  background: var(--accent-soft);
  color: var(--accent);
}
#lifeview .p-scene { padding: 0; overflow: hidden; }
#lifeview .p-scene .scene { aspect-ratio: 3.8 / 1; max-height: 150px; }
#lifeview .p-scene .scenecap { padding: 13px 18px 15px; color: var(--ink2); font-size: 12px; line-height: 1.65; }
#lifeview .p-comps .comps { max-height: 360px; overflow: auto; scrollbar-width: thin; }
#lifeview .p-comps .comps li { padding-block: 9px; border-bottom-color: var(--rule2); }
#lifeview .p-grid .grid10 { gap: 4px; }
#lifeview .p-grid .grid10 .c { border-radius: 3px; }
#lifeview .p-cty dl { gap: 8px 14px; }

@media (min-width: 1200px) {
  #lifeview > .wrap.life {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 18px;
    width: min(1560px, calc(100% - 48px));
    max-width: none;
    padding: 24px 0 64px;
    align-items: start;
  }
  #lifeview .p-feed { grid-column: 1 / 7; grid-row: 1 / 3; }
  #lifeview .p-id { grid-column: 7 / 10; grid-row: 1; }
  #lifeview .p-stats { grid-column: 10 / 13; grid-row: 1; }
  #lifeview .p-fam { grid-column: 7 / 10; grid-row: 2; }
  #lifeview .p-focus { grid-column: 10 / 13; grid-row: 2; }
  #lifeview .p-scene { grid-column: 1 / 7; grid-row: 3; }
  #lifeview .p-comps { grid-column: 7 / 10; grid-row: 3; }
  #lifeview .p-grid { grid-column: 10 / 13; grid-row: 3; }
  #lifeview .p-chart { grid-column: 1 / 7; grid-row: 4; }
  #lifeview .p-cty { grid-column: 7 / 13; grid-row: 4; }
  #lifeview > .wrap.life > .panel { align-self: start; }
}

@media (min-width: 901px) and (max-width: 1199px) {
  #lifeview > .wrap.life {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 16px;
    width: calc(100% - 40px);
    max-width: none;
    padding: 20px 0 56px;
    align-items: start;
  }
  #lifeview .p-feed { grid-column: 1 / 8; grid-row: 1 / 3; }
  #lifeview .p-id { grid-column: 8 / 13; grid-row: 1; }
  #lifeview .p-stats { grid-column: 8 / 13; grid-row: 2; }
  #lifeview .p-fam { grid-column: 1 / 7; grid-row: 3; }
  #lifeview .p-focus { grid-column: 7 / 13; grid-row: 3; }
  #lifeview .p-scene { grid-column: 1 / 7; grid-row: 4; }
  #lifeview .p-comps { grid-column: 7 / 10; grid-row: 4; }
  #lifeview .p-grid { grid-column: 10 / 13; grid-row: 4; }
  #lifeview .p-chart { grid-column: 1 / 7; grid-row: 5; }
  #lifeview .p-cty { grid-column: 7 / 13; grid-row: 5; }
  #lifeview > .wrap.life > .panel { align-self: start; }
  #lifeview .p-feed .feed { max-height: 680px; overflow-y: auto; scrollbar-width: thin; }
}

@media (min-width: 701px) and (max-width: 900px) {
  #lifeview .topbar .wrap { width: calc(100% - 32px); flex-wrap: wrap; }
  #lifeview .agebox { min-width: 160px; }
  #lifeview > .wrap.life {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: none;
    gap: 14px;
    width: calc(100% - 32px);
    max-width: none;
    padding: 16px 0 48px;
  }
  #lifeview .p-feed { grid-column: 1 / -1; grid-row: 1; }
  #lifeview .p-id { grid-column: 1; grid-row: 2; }
  #lifeview .p-stats { grid-column: 2; grid-row: 2; }
  #lifeview .p-fam { grid-column: 1; grid-row: 3; }
  #lifeview .p-focus { grid-column: 2; grid-row: 3; }
  #lifeview .p-scene { grid-column: 1 / -1; grid-row: 4; }
  #lifeview .p-comps { grid-column: 1; grid-row: 5; }
  #lifeview .p-grid { grid-column: 2; grid-row: 5; }
  #lifeview .p-chart { grid-column: 1 / -1; grid-row: 6; }
  #lifeview .p-cty { grid-column: 1 / -1; grid-row: 7; }
  #lifeview .p-feed .feed { max-height: 590px; overflow-y: auto; scrollbar-width: thin; }
}

@media (max-width: 700px) {
  .world-map-backdrop#tgBg::before {
    height: 100vh;
    background-position: center 18%;
    opacity: .62;
  }
  #lifeview .topbar .wrap {
    width: 100%;
    min-height: 0;
    padding: 8px 12px;
    gap: 8px;
  }
  #lifeview .agebox { gap: 9px; }
  #lifeview .agebox .age { font-size: 34px; }
  #lifeview .speed { gap: 3px; padding: 4px; border-radius: 13px; }
  #lifeview .speed button { min-height: 38px; border-radius: 9px; }
  #lifeview .mobile-game { padding: 12px 12px 26px; }
  #lifeview .mobile-game [data-game-panel] { display: flex; flex-direction: column; gap: 12px; }
  #lifeview .mobile-game [data-game-panel] > * { order: 0; }
  #lifeview .mobile-game .panel,
  #lifeview .mobile-game .minibar { border-radius: 18px; }
  #lifeview .mobile-game .p-feed { padding: 20px 16px 15px; }
  #lifeview .p-feed::before { left: 18px; }
  #lifeview .p-feed > h3 { align-items: flex-start; font-size: 17px; }
  #lifeview .p-feed > h3 .lbl { max-width: 52%; }
  #lifeview .p-feed .feed,
  #lifeview .p-feed #feed:not(.all) { max-height: none; overflow: visible; }
  #lifeview .p-feed .feed li {
    grid-template-columns: 3em minmax(0, 1fr);
    gap: 9px;
    padding: 11px 8px;
    font-size: 13.5px;
    line-height: 1.6;
  }
  #lifeview .p-feed .feed li:first-child { padding: 12px 10px; }
  #lifeview .p-feed #feed.all { max-height: 62vh; overflow-y: auto; }
  #lifeview .mobile-game .p-focus,
  #lifeview .mobile-game .p-id,
  #lifeview .mobile-game .p-stats,
  #lifeview .mobile-game .p-fam { padding: 18px 16px; }
  #lifeview .mobile-game .p-scene { padding: 0; }
  #lifeview .mobile-game .scene { max-height: 145px; }
  #lifeview .p-stats .stat { font-size: 13px; }
  #lifeview .p-fam .fam { font-size: 13px; }
  #lifeview #focusChips > .chip { min-height: 62px; font-size: 12.5px; }
}

@media (max-width: 380px) {
  #lifeview .mobile-game { padding-inline: 9px; }
  #lifeview .mobile-game .p-feed { padding-inline: 13px; }
  #lifeview .p-feed .feed li { grid-template-columns: 2.8em minmax(0, 1fr); gap: 7px; font-size: 13px; }
  #lifeview .p-feed > h3 .lbl { max-width: 48%; font-size: 9px; }
}

/* Mobile speed control: one select instead of six buttons. */
.speed-select {
  display: none;
  min-height: 36px;
  padding: 0 28px 0 11px;
  border: 1px solid var(--rule);
  border-radius: 11px;
  background: var(--card-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2371808b' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 10px center / 9px 6px;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  -webkit-appearance: none;
  appearance: none;
}
.speed-select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (max-width: 700px) {
  #lifeview .speed .sps { display: none; }
  #lifeview .speed-select { display: inline-block; }
  #lifeview .speed { padding: 4px; gap: 4px; }
  /* On a phone the journal is the main body, so show five entries and leave the
     rest behind the "more" button. The desktop rule above still shows ten. */
  #lifeview #feed:not(.all) > li:nth-child(-n+5) { display: grid; }
  #lifeview #feed:not(.all) > li:nth-child(n+6) { display: none; }
}

/* Mobile sheets become bottom sheets: the question stays the focus. */
@media (max-width: 700px) {  #modal,
  #sheet {
    align-items: end;
    align-content: end;
    padding: 0;
    background: rgba(6, 12, 16, .58);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
  }
  #modal > *,
  #sheet > * { margin-block: 0; justify-self: stretch; }
  #modal > :not(.dec),
  #sheet > :not(.dec) { align-self: center; margin-block: auto; }
  #modal .dec,
  #sheet .dec {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: none;
    height: auto;
    max-height: 86vh;
    overflow: hidden;
    border: 0;
    border-radius: 24px 24px 0 0;
    background: var(--card);
    box-shadow: 0 -22px 60px -22px rgba(4, 12, 18, .62);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  #modal .dec::before,
  #sheet .dec::before {
    flex: none;
    width: 38px;
    height: 4px;
    margin: 9px auto 2px;
    border-radius: 999px;
    background: var(--rule);
    content: "";
  }
  #modal .dec .hd,
  #sheet .dec .hd {
    flex: none;
    padding: 8px 16px 10px;
    font-size: 11px;
  }
  #modal .dec .hd .sheet-x,
  #sheet .dec .hd .sheet-x {
    min-height: 30px;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 12px;
  }
  #modal .dec .bd,
  #sheet .dec .bd {
    flex: 1 1 auto;
    min-height: 0;
    padding: 4px 16px 18px;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }
  #modal .dec h2 { margin-bottom: 5px; font-size: 18px; line-height: 1.3; }
  #modal .dec .q { margin: 3px 0 7px; font-size: 15.5px; line-height: 1.45; }
  #modal .dec p { margin-bottom: 8px; font-size: 12.5px; line-height: 1.55; }
  #modal .dec p.dec-fa { font-size: 11.5px; }
  #modal .dec .fact { margin-bottom: 10px; padding: 6px 8px; font-size: 11px; line-height: 1.4; }
  #modal .dec textarea { min-height: 56px; margin-bottom: 9px; padding: 8px 10px; font-size: 13.5px; }
  #modal .dec .ch { gap: 6px; }
  #modal .dec .ch button,
  #modal .dec .ch .chg { padding: 9px 11px; border-radius: 12px; }
  #modal .dec .ch button b,
  #modal .dec .ch .chg > b { font-size: 14px; line-height: 1.4; }
  #modal .dec .ch button small,
  #modal .dec .ch .chg > small { font-size: 11.5px; }
  #modal .dec .ch .chips button { padding: 6px 12px; font-size: 12.5px; }
  #modal .dec .dec-name input { padding: 8px 11px; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  #lifeview .p-feed .feed li { animation: none; }
  #lifeview .mobile-fact-panel.is-entering { animation: none; }
}

/* The tabbed quick-facts block exists only on a phone; the desktop layout keeps
   its own columns, so the section stays out of the way entirely. */
#lifeview .mobile-facts { display: none; }

/* The mobile life view leads with the journal; quick facts and illustration stay secondary. */
@media (max-width: 700px) {
  #lifeview .topbar .wrap {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 5px;
    width: 100%;
    min-height: 0;
    padding: 7px 11px 8px;
  }
  #lifeview .topbar .brand { display: none; }
  #lifeview .agebox { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px; min-width: 0; }
  #lifeview .agebox .age { min-width: 0; font-size: 30px; line-height: 1; }
  #lifeview .agebox .age small { font-size: 11px; }
  #lifeview .agebox .yr { min-width: 0; gap: 4px; }
  #lifeview .agebox .yr .t { display: block; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
  #lifeview .agebox .prog { height: 3px; }
  #lifeview .speed {
    position: relative;
    display: flex;
    flex: 0 1 auto;
    flex-wrap: nowrap;
    gap: 3px;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    padding: 3px;
    overflow: visible;
    border-radius: 12px;
    /* Every control sits on the right edge; the more menu is the last item, so
       it lands at the far right on its own. */
    justify-content: flex-end;
  }
  /* The pause/resume toggle is the most-used control in the bar, so give it a
     comfortable 48px touch target instead of the cramped 38px it had. */
  #lifeview .speed #pauseBtn { flex: 0 0 48px; min-width: 48px; min-height: 48px; padding-inline: 6px; font-size: 18px; }
  #lifeview .speed #pauseBtn .pzl { display: none; }
  #lifeview .speed .speed-caption { display: inline-flex; flex: 0 0 auto; align-items: center; min-height: 44px; padding-inline: 2px 1px; color: var(--ink3); font-size: 11px; font-weight: 700; letter-spacing: .02em; white-space: nowrap; }
  #lifeview .speed .speed-select { flex: 0 0 auto; min-height: 44px; font-size: 13px; }
  #lifeview .speed #ffBtn { flex: 0 0 36px; min-width: 36px; min-height: 34px; padding: 0; font-size: 0; }
  #lifeview .speed #ffBtn::after { color: inherit; font-size: 17px; content: '»'; }
  /* …but once it folds into the overflow menu it must read as a labelled row
     again, not as a bare chevron. */
  #lifeview .speed #ffBtn.in-more { flex: 0 0 auto; min-width: 0; min-height: 0; padding: 10px 12px; font-size: 13px; }
  #lifeview .speed #ffBtn.in-more::after { content: none; }
  #lifeview .speed #ffBtn.in-more .fftx { display: inline; }
  #lifeview .speed #moreBtn { flex: 0 0 44px; min-width: 44px; min-height: 44px; padding-inline: 4px; font-size: 18px; }
  #lifeview .more button.ff { justify-content: flex-start; text-align: left; }
  #lifeview .more button.ff .ffsh { display: none; }
  #lifeview .mobile-game { padding: 8px 11px calc(88px + env(safe-area-inset-bottom)); }
  #lifeview .mobile-game [data-game-panel] { display: flex; flex-direction: column; gap: 10px; }
  #lifeview .mobile-game [data-game-panel][hidden] { display: none !important; }
  #lifeview .mobile-game .panel,
  #lifeview .mobile-game .minibar { margin: 0; border-radius: 15px; }
  #lifeview .mobile-game .p-feed { display: flex; flex-direction: column; gap: 0; order: 0; padding: 15px 14px 12px; border-top: 2px solid var(--accent); }
  #lifeview .p-feed::before { left: 15px; }
  #lifeview .p-feed > h3 { align-items: flex-start; gap: 8px; margin-bottom: 8px; font-size: 16px; line-height: 1.35; }
  #lifeview .p-feed > h3 .lbl { max-width: 53%; font-size: 9px; line-height: 1.4; }
  #lifeview .p-feed > h3 { order: 0; }
  #lifeview .p-feed .feed { order: 1; }
  #lifeview .p-feed .feedmore { order: 2; }
  #lifeview .p-feed #tgLine,
  #lifeview .p-feed #feedMoney { order: 3; }
  #lifeview .p-feed .feed { max-height: min(54dvh, 430px); overflow-y: auto; padding-left: 2px; scrollbar-width: thin; }
  #lifeview #feed:not(.all) > li:nth-child(n+11) { display: none; }
  #lifeview .p-feed .feedmore { display: block; margin-top: 7px; }
  #lifeview .p-feed .feed li { grid-template-columns: 2.8em minmax(0, 1fr); gap: 7px; padding: 9px 5px; font-size: 13px; line-height: 1.52; }
  #lifeview .p-feed .feed li:first-child { padding: 10px 7px; }
  #lifeview .p-feed #feed.all { max-height: min(54dvh, 430px); overflow-y: auto; }
  #lifeview .mobile-facts { display: grid; gap: 10px; min-width: 0; padding: 0 1px; }
  /* App-style tab strip: a single row of labels with an underline marking the
     active one. When eight labels no longer fit the strip scrolls sideways,
     and the panel below can be swiped to move between tabs as well. */
  #lifeview .mobile-fact-tabs { display: flex; align-items: stretch; gap: 2px; min-width: 0; padding: 0; overflow-x: auto; overscroll-behavior-x: contain; border-bottom: 1px solid var(--rule); scrollbar-width: none; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; }
  #lifeview .mobile-fact-tabs::-webkit-scrollbar { display: none; }
  /* Fade the edge that still hides tabs, so the strip reads as scrollable. */
  #lifeview .mobile-fact-tabs[data-edge="right"] { mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent); -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 24px), transparent); }
  #lifeview .mobile-fact-tabs[data-edge="left"] { mask-image: linear-gradient(to left, #000 calc(100% - 24px), transparent); -webkit-mask-image: linear-gradient(to left, #000 calc(100% - 24px), transparent); }
  #lifeview .mobile-fact-tabs[data-edge="both"] { mask-image: linear-gradient(to right, transparent, #000 24px, #000 calc(100% - 24px), transparent); -webkit-mask-image: linear-gradient(to right, transparent, #000 24px, #000 calc(100% - 24px), transparent); }
  #lifeview .mobile-fact { position: relative; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 0; min-height: 40px; padding: 9px 12px 11px; border: 0; border-radius: 0; background: none; color: var(--ink3); font: inherit; font-size: 12.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; scroll-snap-align: center; transition: color .16s ease; }
  #lifeview .mobile-fact[aria-selected="true"] { color: var(--ink); font-weight: 700; }
  #lifeview .mobile-fact[aria-selected="true"]::after { position: absolute; right: 9px; bottom: -1px; left: 9px; height: 2px; border-radius: 2px; background: var(--ink); content: ''; }
  /* The revealed view keeps its own card styling: it is literally the desktop
     panel, moved here, so it must look unchanged. */
  #lifeview .mobile-fact-panel { display: grid; gap: 10px; min-width: 0; touch-action: pan-y; }
  #lifeview .mobile-fact-panel[hidden] { display: none; }
  #lifeview .mobile-fact-panel.is-entering { animation: factIn .18s ease-out; }
  @keyframes factIn { from { opacity: .35; transform: translateX(var(--fact-dx, 0)); } to { opacity: 1; transform: none; } }
  #lifeview .mobile-game .minibar { padding: 9px 10px; }
  /* Four-character stat labels ("人际关系") must not break onto a second line. */
  #lifeview .p-stats .stat { grid-template-columns: 4.4em minmax(0, 1fr) 2.1em; }
  #lifeview .p-stats .stat > span:first-child { white-space: nowrap; }
  #lifeview .mobile-game .p-focus,
  #lifeview .mobile-game .p-id,
  #lifeview .mobile-game .p-stats,
  #lifeview .mobile-game .p-fam,
  #lifeview .mobile-game .p-comps,
  #lifeview .mobile-game .p-grid,
  #lifeview .mobile-game .p-chart,
  #lifeview .mobile-game .p-cty { padding: 14px; }
  #lifeview .mobile-game .p-focus { order: 2; }
  #lifeview .mobile-game .p-scene { order: -1; padding: 0; overflow: hidden; }
  #lifeview .mobile-game .p-scene .scene { height: 96px; min-height: 0; max-height: 96px; aspect-ratio: 3.2 / 1; border-radius: 14px 14px 0 0; }
  #lifeview .mobile-game .p-scene .scenecap { display: -webkit-box; padding: 8px 11px; overflow: hidden; font-size: 11px; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  #lifeview .p-stats .stat { grid-template-columns: 4.4em minmax(0, 1fr) 2em; gap: 7px; padding: 4px 0; font-size: 12px; }
  #lifeview .p-stats .stathelp { margin-top: 7px; }
  #lifeview .p-fam .fam { font-size: 12px; line-height: 1.5; }
  #lifeview #focusChips > .chip { min-height: 48px; padding: 9px 11px; font-size: 12px; }
  #lifeview .more { max-height: calc(100dvh - 120px); overflow-y: auto; }
}

@media (max-width: 380px) {
  #lifeview .topbar .wrap { padding-inline: 9px; }
  #lifeview .mobile-game { padding-inline: 9px; }
  #lifeview .p-feed > h3 .lbl { max-width: 48%; font-size: 8px; }
  #lifeview .p-feed .feed li { grid-template-columns: 2.5em minmax(0, 1fr); gap: 6px; font-size: 12.5px; }
  #lifeview .mobile-fact { padding-inline: 11px; font-size: 12px; }
}

@media (max-width: 700px) {
  #modal .dec .bd { padding-bottom: calc(86px + env(safe-area-inset-bottom, 0px)); }
  #modal .dec #autoOn,
  #modal .dec .autonote #autoStop {
    position: fixed;
    z-index: 60;
    right: max(16px, env(safe-area-inset-right, 0px));
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    max-width: calc(100vw - 32px);
    min-height: 52px;
    margin: 0;
    padding: 12px 20px;
    border: 1px solid color-mix(in srgb, var(--accent) 82%, transparent);
    border-radius: 999px;
    background: var(--accent);
    color: var(--accent-ink);
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    box-shadow: 0 12px 30px -8px color-mix(in srgb, var(--accent) 58%, transparent);
    cursor: pointer;
  }
  #modal .dec #autoOn:hover,
  #modal .dec .autonote #autoStop:hover { filter: brightness(1.06); }
  #modal .dec #autoOn:focus-visible,
  #modal .dec .autonote #autoStop:focus-visible { outline: 3px solid var(--stamp); outline-offset: 3px; }
}

/* Three floating simulation controls on mobile, clear of the bottom tabs. */
@media (max-width: 700px) {
  #lifeview .speed {
    position: fixed;
    z-index: 90;
    right: max(12px, env(safe-area-inset-right, 0px));
    bottom: calc(84px + env(safe-area-inset-bottom, 0px));
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    width: auto;
    max-width: calc(100vw - 24px);
    min-width: 0;
    padding: 0;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    backdrop-filter: none;
  }
  #lifeview .speed .speed-caption { display: none; }
  #lifeview .speed #pauseBtn {
    flex: 0 0 54px;
    width: 54px;
    min-width: 54px;
    height: 54px;
    min-height: 54px;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--accent) 86%, white) !important;
    border-radius: 50% !important;
    background: var(--accent) !important;
    color: var(--accent-ink) !important;
    font-size: 18px;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent),
      0 9px 24px -8px color-mix(in srgb, var(--accent) 72%, transparent);
  }
  #lifeview .speed .speed-select {
    flex: 0 0 66px;
    width: 66px;
    min-height: 50px;
    padding: 0 20px 0 9px;
    border-radius: 16px;
    border: 2px solid color-mix(in srgb, var(--stamp) 70%, white) !important;
    background-color: var(--stamp) !important;
    color: var(--accent-ink) !important;
    text-align: center;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--stamp) 16%, transparent),
      0 7px 18px -8px color-mix(in srgb, var(--stamp) 55%, transparent);
  }
  #lifeview .speed .speed-select option { background: var(--card); color: var(--ink); }
  #lifeview .speed #moreBtn {
    flex: 0 0 50px;
    width: 50px;
    min-width: 50px;
    height: 50px;
    min-height: 50px;
    padding: 0;
    border: 1px solid color-mix(in srgb, var(--stamp) 86%, white) !important;
    border-radius: 50% !important;
    background: var(--stamp) !important;
    color: var(--accent-ink) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--stamp) 16%, transparent),
      0 7px 18px -8px color-mix(in srgb, var(--stamp) 55%, transparent);
  }
  #lifeview .speed #pauseBtn:hover,
  #lifeview .speed #moreBtn:hover { filter: brightness(1.1); }
  #lifeview .speed .speed-select:hover { filter: brightness(1.08); }
  #lifeview .speed #pauseBtn:focus-visible,
  #lifeview .speed .speed-select:focus-visible,
  #lifeview .speed #moreBtn:focus-visible {
    outline: 3px solid var(--ink) !important;
    outline-offset: 3px;
  }
  #lifeview .more {
    top: auto;
    right: 0;
    bottom: calc(100% + 12px);
    max-width: calc(100vw - 24px);
    max-height: calc(100dvh - 190px);
    overflow-y: auto;
  }
  #lifeview .speed .speedhint {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: min(260px, calc(100vw - 32px));
    margin: 0;
  }
}

/* The simulation controls float above the page (bottom: 84px + 54px tall), so
   the last card needs a matching runway — otherwise the bottom rows of a panel
   scroll underneath them and stay unreadable. */
@media (max-width: 700px) {
  #lifeview .mobile-game { padding-bottom: calc(152px + env(safe-area-inset-bottom, 0px)); }
}

/* Floating circles over a card read as a rendering bug unless they sit on
   something. Give the cluster one soft pill so it behaves like a layer above
   the page instead of text struck through by buttons. */
@media (max-width: 700px) {
  #lifeview .speed {
    padding: 6px;
    border: 1px solid var(--rule);
    border-radius: 999px;
    background: color-mix(in srgb, var(--card) 82%, var(--paper));
    box-shadow: 0 14px 34px -18px rgb(0 0 0 / 62%), 0 2px 8px -4px rgb(0 0 0 / 40%);
    backdrop-filter: blur(14px) saturate(1.15);
    -webkit-backdrop-filter: blur(14px) saturate(1.15);
  }
  /* ...and the runway has to clear the pill's own padding too. */
  #lifeview .mobile-game { padding-bottom: calc(164px + env(safe-area-inset-bottom, 0px)); }
}

/* Desktop simulation layout: put the pixel scene first and keep the life
   record centered at a steady height. Mobile layout remains unchanged. */
@media (min-width: 801px) {
  #lifeview > .wrap.life {
    display: grid;
    grid-template-columns: minmax(180px, .82fr) minmax(340px, 1.35fr) minmax(180px, .83fr);
    grid-template-areas:
      "scene journal identity"
      "stats journal focus"
      "family journal peers"
      "map journal survival"
      "country country country";
    align-items: start;
    gap: 18px;
  }
  #lifeview > .wrap.life > .col,
  #lifeview > .wrap.life > .col3 { display: contents; }
  #lifeview .p-scene { grid-area: scene; }
  #lifeview .p-id { grid-area: identity; }
  #lifeview .p-stats { grid-area: stats; }
  #lifeview .p-fam { grid-area: family; }
  #lifeview .p-focus { grid-area: focus; }
  #lifeview .p-feed {
    grid-area: journal;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    height: min(78vh, 920px);
    min-height: 560px;
    max-height: 920px;
  }
  #lifeview .p-feed .feed,
  #lifeview #feed.all {
    flex: 1 1 auto;
    height: 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
  }
  #lifeview .p-comps { grid-area: peers; }
  #lifeview .p-grid { grid-area: map; }
  #lifeview .p-chart { grid-area: survival; }
  #lifeview .p-cty { grid-area: country; }
}

@media (min-width: 1101px) {
  #lifeview > .wrap.life {
    grid-template-columns: minmax(240px, .82fr) minmax(420px, 1.35fr) minmax(250px, .83fr);
  }
}

/* Compact desktop lanes: independent columns prevent tall cards from creating
   blank grid rows across the other columns. */
@media (min-width: 801px) {
  #lifeview > .wrap.life {
    grid-template-columns: minmax(190px, .85fr) minmax(320px, 1.4fr) minmax(190px, .85fr);
    grid-template-areas: none;
    align-items: start;
    gap: 16px;
    padding-block: 14px 32px;
  }
  #lifeview > .wrap.life > .col,
  #lifeview > .wrap.life > .col3 {
    display: flex;
    flex-direction: column;
    align-self: start;
    gap: 16px;
    min-width: 0;
    grid-row: 1;
  }
  #lifeview > .wrap.life > .col:first-child { grid-column: 1; }
  #lifeview > .wrap.life > .col:nth-child(2) { grid-column: 2; }
  #lifeview > .wrap.life > .col3 { grid-column: 3; }
  #lifeview .p-feed {
    box-sizing: border-box;
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    height: min(70vh, 720px);
    min-height: 560px;
    max-height: 720px;
  }
  #lifeview .p-feed .feed,
  #lifeview #feed.all {
    flex: 1 1 auto;
    height: 0;
    min-height: 0;
    max-height: none;
    overflow-y: auto;
  }
  #lifeview .p-id { order: 0; }
  #lifeview .p-focus { order: 1; }
  #lifeview .p-fam { order: 2; }
  #lifeview .p-comps { order: 3; }
  #lifeview .p-grid { order: 4; }
  #lifeview .p-chart { order: 5; }
  #lifeview .p-feed { order: 0; }
  #lifeview .p-cty { order: 1; }
}

@media (min-width: 1101px) {
  #lifeview > .wrap.life {
    grid-template-columns: minmax(240px, .82fr) minmax(420px, 1.35fr) minmax(250px, .83fr);
  }
}
