@charset "UTF-8";
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/source/b6f2cc8d9905e97b-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/source/b6f2cc8d9905e97b.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/source/3772689bdef0cd28-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/source/3772689bdef0cd28.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/source/26efb7fbad9540df-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/source/26efb7fbad9540df.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/source/e53acf3eb590b2ff-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Sans 3';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/source/e53acf3eb590b2ff.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/source/8ca4d603b02214e2-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/source/8ca4d603b02214e2.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/source/ab7df847d18e9ad1-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/source/ab7df847d18e9ad1.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/source/3f471d65b233b067-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/source/3f471d65b233b067.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/source/00441a2f2ffdad09-latin.woff2) format('woff2');
unicode-range:U+0000-03FF,U+1E00-1EFF,U+2000-206F,U+20A0-20CF,U+2100-22FF;}
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/source/00441a2f2ffdad09.woff2) format('woff2');
unicode-range:U+0400-1DFF,U+1F00-1FFF,U+2070-209F,U+20D0-20FF,U+2300-10FFFF;}

:root{--ink:#253127;--muted:#596150;--gold:#ac874c;--line:rgba(62,66,50,.2);--paper:#f4f0e6}*{box-sizing:border-box}html{scrollbar-width:thin;scrollbar-color:#b49a6d #ece9de}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Source Sans 3',Arial,Helvetica,sans-serif;transition:color 1s}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}#world{position:fixed;inset:0;width:100%;height:100%;display:block}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,rgba(244,240,230,.95),rgba(244,240,230,.74) 24%,transparent 53%),linear-gradient(0deg,rgba(244,240,230,.93),transparent 23%);transition:opacity 1.2s}header{position:fixed;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:28px 4%}.brand{display:flex;align-items:center;gap:10px;font-family:'Source Serif 4',Georgia,serif;font-size:30px;letter-spacing:-1px}.brand-lex{font-weight:bold}.brand sup{font:9px 'Source Sans 3',Arial;position:relative;top:-12px;margin-left:3px}.header-note{font-size:9px;letter-spacing:2.4px;position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap}.round-button{border:1px solid var(--line);background:transparent;border-radius:50%;width:36px;height:36px;font-family:'Source Serif 4',Georgia,serif;font-size:18px}.round-button:hover{background:#b99c6222}#journey{position:relative;pointer-events:none}#journey section{height:180vh}.story{position:fixed;z-index:3;left:6%;top:25%;width:370px;pointer-events:none;transition:opacity .7s,transform .7s}.eyebrow{display:flex;align-items:center;gap:12px;font-size:9px;letter-spacing:2px;font-weight:500}.rule{width:28px;height:1px;background:var(--gold)}.date-row{display:flex;align-items:baseline;gap:16px;margin:18px 0 16px}#year{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(72px,8.8vw,136px);font-weight:400;letter-spacing:-7px;line-height:.9}#era{font-family:'Source Serif 4',Georgia,serif;font-style:italic;font-size:20px;color:var(--muted)}h2{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;letter-spacing:-1.2px;font-size:36px;line-height:1.12;font-weight:400;margin:22px 0 16px}#description{font-size:13px;line-height:1.9;color:var(--muted);max-width:295px}.event-button{pointer-events:auto;display:flex;align-items:center;gap:9px;border:0;border-top:1px solid var(--line);padding:17px 0 10px;background:transparent;font-size:10px;text-align:left;margin-top:25px}.event-dot{width:5px;height:5px;background:var(--gold);border-radius:100%;box-shadow:0 0 0 4px #ac874c15}.event-button>span:last-child{margin-left:15px}.landmark{position:fixed;right:5%;top:30%;font-size:10px;display:flex;gap:10px;align-items:center;max-width:220px;padding:10px 15px;background:#f4f0e6a8;backdrop-filter:blur(12px);border:1px solid #fff5;border-radius:3px;transition:opacity .7s}.landmark strong{display:block;font-family:'Source Serif 4',Georgia,serif;font-size:15px;font-weight:400}.landmark div>span{display:block;font-size:9px;letter-spacing:.5px;color:var(--muted);margin-top:5px}.target-cross{font-size:23px;font-weight:200;color:var(--gold)}footer{position:fixed;z-index:5;bottom:28px;left:6%;right:6%}.footer-caption{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.7px;margin-bottom:20px;color:var(--muted)}#timeline{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}#timeline button{background:transparent;border:0;text-align:left;padding:0 0 15px;opacity:.45;transition:opacity .3s}#timeline button:hover,#timeline button[aria-current="step"]{opacity:1}#timeline strong{display:block;font-family:'Source Serif 4',Georgia,serif;font-size:19px;font-weight:400;margin-bottom:4px}#timeline span{font-size:8px;letter-spacing:1px;text-transform:uppercase}.timeline-track{height:1px;background:var(--line)}#timeline-progress{width:0;height:2px;background:var(--gold);position:relative;top:-1px}.travel-controls{position:fixed;right:5%;bottom:160px;z-index:6;display:flex;gap:9px;align-items:center}.pill{border:1px solid var(--line);border-radius:25px;padding:11px 17px;font-size:10px;background:#f4f0e6b3;backdrop-filter:blur(10px)}.pill:hover{background:#e5dece}.primary{background:#263e34;color:#fff;border-color:transparent}#asklex-link{display:none}.is-digital #asklex-link{display:block}.intro{position:fixed;z-index:4;left:7%;top:30%;transition:opacity .7s,transform 1s}.intro h1{font-family:'Source Serif 4',Georgia,serif;font-size:clamp(55px,7vw,104px);line-height:1.05;font-weight:400;letter-spacing:-3px;margin:23px 0}.intro h1 em{color:#ddc599;font-weight:400}.intro p{font-size:12px;letter-spacing:.2px;color:#a7b9bd}.text-button{background:transparent;border:0;border-bottom:1px solid #ffffff40;padding:13px 0;font-size:10px;color:inherit}.text-button span{margin-left:30px}#coordinate{position:fixed;right:14%;top:49%;display:flex;flex-direction:column;gap:10px;opacity:0;pointer-events:none;color:white;transition:opacity .5s}#coordinate>span{font-size:9px;letter-spacing:2px;color:#d6bf91}#coordinate strong{font:42px 'Source Serif 4',Georgia}#coordinate small{font-size:11px;color:#bdc9cd}#flash{position:fixed;inset:0;background:#f4f0e6;pointer-events:none;z-index:2;opacity:0}.in-arrival{color:#eff1e9;--line:#ffffff30}.in-arrival .vignette{opacity:0}.in-arrival .story,.in-arrival footer,.in-arrival .travel-controls,.in-arrival .landmark{opacity:0;pointer-events:none}.in-arrival .story{transform:translateY(20px)}body:not(.in-arrival) .intro{opacity:0;transform:translateY(-15px);pointer-events:none}#loading{position:fixed;z-index:20;inset:0;background:#071820;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#e6ddca;font-size:11px;letter-spacing:1px;transition:opacity .45s}#loading small{font-size:9px;color:#a1aba5}#loading.done{opacity:0;pointer-events:none}.loader-orbit{width:50px;height:50px;border:1px solid #c5a76530;border-top-color:#c5a765;border-radius:50%;animation:orbit 1.3s linear infinite}@keyframes orbit{to{transform:rotate(360deg)}}dialog{border:1px solid #ccb991;background:#f4f0e6;color:#253127;padding:50px;width:min(540px,90vw);border-radius:4px}dialog::backdrop{background:#071820a6;backdrop-filter:blur(7px)}dialog #close-dialog{position:absolute;right:14px;top:14px}dialog p{font-size:14px;line-height:1.9;color:#596150}dialog a{font-size:12px;color:#8a6836;border-bottom:1px solid #bfa879;padding-bottom:6px}.fallback{position:fixed;inset:0;background:#f4f0e6;padding:20%;z-index:99}.night{--ink:#eceddf;--muted:#bec9c2;--line:#bfcdbc36}.night .vignette{background:linear-gradient(90deg,#0e242cee,#0e242caa 24%,transparent 58%),linear-gradient(0deg,#0e242cee,transparent 24%)}.night .landmark,.night .pill{background:#14303bb3}.night .pill:hover{background:#284c58}.night .round-button{color:var(--ink)}
@media(min-width:1700px){.story{left:8%;width:420px;top:28%}#description{font-size:15px;max-width:350px}h2{font-size:44px}}
@media(max-width:700px){header{padding:21px 6%}.brand{font-size:25px}.brand img{width:28px;height:28px}.header-note{display:none}.story{top:15%;left:7%;width:80%}.eyebrow{font-size:8px;letter-spacing:1.6px}.date-row{margin:15px 0 10px;gap:13px}#year{font-size:76px;letter-spacing:-4px}#era{font-size:18px}h2{font-size:29px;margin:12px 0}#description{font-size:11px;line-height:1.65;width:70%;max-width:290px}.event-button{margin-top:12px;padding-top:12px;font-size:9px}.vignette{background:linear-gradient(180deg,#f4f0e6e8, #f4f0e6d9 29%,transparent 65%),linear-gradient(0deg,#f4f0e6ef,transparent 25%)}.night .vignette{background:linear-gradient(180deg,#0e242cf2,#0e242cdb 29%,transparent 65%),linear-gradient(0deg,#0e242cf0,transparent 25%)}.landmark{top:auto;bottom:200px;right:5%;max-width:195px;padding:8px 10px}.landmark strong{font-size:12px}.landmark div>span{font-size:8px}.travel-controls{bottom:137px;right:6%;gap:6px}.pill{padding:9px 12px;font-size:9px}.travel-controls .round-button{width:30px;height:30px;font-size:16px}footer{bottom:25px;left:6%;right:6%}.footer-caption{font-size:7px;letter-spacing:.8px;margin-bottom:17px}#timeline{gap:5px}#timeline strong{font-size:16px}#timeline span{font-size:6px;letter-spacing:0}#timeline button{padding-bottom:12px}.intro{left:7%;right:7%;top:25%}.intro h1{font-size:63px}.intro p{font-size:10px;max-width:240px;line-height:1.8}#coordinate{right:10%;top:61%}#coordinate strong{font-size:30px}#progress-label{display:none}.is-digital .travel-controls{left:6%;justify-content:flex-end}dialog{padding:40px 27px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#flash{transition:opacity .35s}

@media(max-width:700px){.in-arrival .intro h1{text-shadow:0 2px 24px #07182055}}

/* Lex2's open sky and village framing introduce 1843, before the road journey. */
.village-hero:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb 0%,#d0e1eb 23%,#d0e1ebcf 39%,#d0e1eb00 65%),linear-gradient(0deg,#f4f0e6e0,transparent 16%)}
.village-hero .story{top:11%;left:50%;transform:translateX(-50%);width:min(850px,90%);text-align:center}
.village-hero .eyebrow,.village-hero .date-row{justify-content:center}
.village-hero .date-row{margin:14px 0 8px}.village-hero #year{font-size:72px;letter-spacing:-3px}.village-hero #era{font-size:24px}
.village-hero h2{font-size:52px;margin:12px 0}.village-hero h2 br{display:none}
.village-hero #description{max-width:560px;margin:10px auto;font-size:13px;line-height:1.65}
.village-hero .event-button{margin:12px auto 0;padding:10px 0;border-top:0}.village-hero .landmark{top:auto;bottom:220px}
@media(max-width:700px){.village-hero .story{top:10%;width:90%}.village-hero #year{font-size:57px}.village-hero #era{font-size:20px}.village-hero h2{font-size:31px;max-width:330px;margin:10px auto}.village-hero #description{width:90%;font-size:11px;max-width:340px}.village-hero .date-row{margin:11px 0 5px}.village-hero .event-button{margin-top:6px;font-size:8px}.village-hero .landmark{bottom:186px}.village-hero:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb 0%,#d0e1ebee 28%,#d0e1eb00 60%),linear-gradient(0deg,#f4f0e6e8,transparent 19%)}}

.village-hero:not(.in-arrival){color:var(--ink);transition:none}
@media(max-width:700px){
 .is-digital .story{top:13%;width:51%}
 .is-digital #year{font-size:59px}.is-digital #era{font-size:14px}.is-digital .date-row{gap:9px}
 .is-digital h2{font-size:24px;letter-spacing:-.7px}.is-digital #description{width:100%;font-size:10px}
 .is-digital .eyebrow{font-size:6px;gap:7px;letter-spacing:1px}.is-digital .rule{width:14px}
 .is-digital .event-button{font-size:8px;line-height:1.6}.is-digital .landmark{display:none}
 .is-digital .vignette{background:linear-gradient(90deg,#0e242cee,#0e242cbb 40%,transparent 69%),linear-gradient(0deg,#0e242cf0,transparent 23%)}
}

/* One sunlit material and colour language through every land chapter. */
body:not(.in-arrival) .vignette{background:linear-gradient(90deg,#d0e1ebf0,#d0e1ebaf 22%,transparent 49%),linear-gradient(0deg,#f4f0e6e8,transparent 20%)}
body.village-hero:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb 0%,#d0e1eb 23%,#d0e1ebcf 39%,#d0e1eb00 65%),linear-gradient(0deg,#f4f0e6e0,transparent 16%)}
@media(max-width:700px){body:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1ebee,#d0e1ebc9 28%,transparent 62%),linear-gradient(0deg,#f4f0e6ed,transparent 22%)}body.village-hero:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb 0%,#d0e1ebee 28%,#d0e1eb00 60%),linear-gradient(0deg,#f4f0e6e8,transparent 19%)}body.is-digital:not(.in-arrival) .vignette{background:linear-gradient(90deg,#d0e1ebe8,#d0e1ebaa 38%,transparent 67%),linear-gradient(0deg,#f4f0e6ec,transparent 20%)}}

/* Keep the masthead centred and chapter labels legible at every viewport. */
.story{top:max(110px,25vh)}
.village-hero .story{top:max(110px,11vh)}
header{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:20px;row-gap:12px}
header .brand{justify-self:start}
header #about-button{justify-self:end}
.header-note{position:static;transform:none;display:block;text-align:center;font-size:10px;line-height:1.4;letter-spacing:1.5px}
#story>.eyebrow{align-items:center;gap:12px;line-height:1.5}
#chapter{flex:0 0 auto;white-space:nowrap;font-size:11px;line-height:1.5;letter-spacing:.06em;font-variant-numeric:tabular-nums;font-weight:500}
#story>.eyebrow .rule{flex:0 0 28px;width:28px}
#place{min-width:0;font-size:9px;line-height:1.5;letter-spacing:1.3px;text-wrap:balance}
@media(max-width:700px){
 header{grid-template-columns:minmax(0,1fr) auto;padding:18px 6% 12px;column-gap:12px;row-gap:11px}
 header .brand{grid-column:1;grid-row:1}
 header #about-button{grid-column:2;grid-row:1}
 .header-note{grid-column:1/-1;grid-row:2;font-size:8.5px;letter-spacing:1.1px}
 .story{top:max(118px,15vh)}
 .village-hero .story{top:max(110px,10vh)}
 .is-digital .story{top:max(112px,13vh)}
 #story>.eyebrow{gap:9px}
 #chapter{font-size:10px}
 #place{font-size:8.5px;letter-spacing:1px}
 #story>.eyebrow .rule{flex-basis:22px;width:22px}
 .is-digital #story>.eyebrow{flex-wrap:wrap;row-gap:5px}
 .is-digital #place{flex-basis:100%;text-wrap:initial}
}

/* Lighter overlays leave more of the scenery visible. */
body:not(.in-arrival) .vignette{background:linear-gradient(90deg,#d0e1ebbf,#d0e1eb70 20%,transparent 43%),linear-gradient(0deg,#f4f0e6c4,transparent 16%)}
body.village-hero:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb66,#d0e1eb22 18%,transparent 38%),linear-gradient(0deg,#f4f0e6b3,transparent 14%)}
body.night:not(.in-arrival) .vignette{background:linear-gradient(90deg,#0a172ac9,#0a172a70 23%,transparent 48%),linear-gradient(0deg,#0a172add,transparent 20%)}
@media(max-width:700px){
 body:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb73,#d0e1eb33 20%,transparent 42%),linear-gradient(0deg,#f4f0e6d4,transparent 18%)}
 body.village-hero:not(.in-arrival) .vignette{background:linear-gradient(180deg,#d0e1eb66,#d0e1eb22 18%,transparent 38%),linear-gradient(0deg,#f4f0e6bd,transparent 16%)}
 body.is-digital.night:not(.in-arrival) .vignette{background:linear-gradient(90deg,#0a172ab8,#0a172a66 38%,transparent 64%),linear-gradient(0deg,#0a172ae0,transparent 19%)}
}

/* The introduction now descends directly through daylight into the village. */
.in-arrival{color:#253127;--line:rgba(62,66,50,.2)}
.in-arrival .vignette{opacity:1;background:linear-gradient(90deg,#d0e1eb88,transparent 65%)}
.in-arrival .intro h1{text-shadow:0 1px 18px #d0e1eb44}
.in-arrival .intro h1 em{color:#8a6935}
.in-arrival .intro p{color:#42594e}
.in-arrival .text-button{border-bottom-color:#52695c55}
#loading{background:#d0e1eb;color:#253127}
#loading small{color:#586554}

/* A quiet navigation HUD keeps location metadata beside the journey controls. */
.journey-status{display:inline-flex;align-items:center;gap:12px;min-height:38px;max-width:100%;margin:0 0 18px;padding:10px 15px;border:1px solid #ffffff80;border-radius:8px;background:#f4f0e6d9;box-shadow:0 3px 18px #182d2310,inset 0 1px 0 #ffffff80;backdrop-filter:blur(16px);color:#344237}
.status-orbit{width:7px;height:7px;flex:0 0 7px;border:1px solid #a18451;border-radius:50%;box-shadow:0 0 0 3px #a1845118;background:#ad8c54}
.status-divider{width:1px;height:12px;background:#74807040;flex:0 0 1px}
.journey-status #chapter{font-size:10px;letter-spacing:.1em;color:#627062}
.journey-status #place{font-size:9px;line-height:1.5;letter-spacing:1.1px;text-wrap:initial;flex-basis:auto}
.night .journey-status{background:#102433d9;border-color:#c5dfed25;box-shadow:0 4px 24px #0002,inset 0 1px 0 #ffffff0d;color:#e0e9e8}
.night .journey-status #chapter{color:#acc0c7}
.night .status-divider{background:#b7cbd438}
footer{bottom:24px}
.footer-caption{margin-bottom:16px}
#timeline button{position:relative;min-height:51px;opacity:.6}
#timeline button[aria-current="step"]::after{content:"";position:absolute;left:0;bottom:-3px;width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 4px #ac874c18}
.travel-controls{bottom:165px}
.village-hero .date-row{margin-top:0}
@media(max-width:700px){
 footer{bottom:max(18px,env(safe-area-inset-bottom));left:6%;right:6%}
 .journey-status{gap:9px;min-height:34px;padding:8px 11px;margin-bottom:12px;border-radius:7px}
 .journey-status #chapter{font-size:9px}
 .journey-status #place{font-size:8px;letter-spacing:.65px}
 .footer-caption{margin-bottom:12px}
 .travel-controls{bottom:177px}
 .landmark,.village-hero .landmark{bottom:224px}
 #timeline button{min-height:44px}
}
@media(max-width:360px){.journey-status{gap:7px;padding:8px 9px}.journey-status #place{letter-spacing:.25px;font-size:7.5px}}

@media(max-width:480px){
 #timeline{gap:8px}
 #timeline span{display:none}
 #timeline strong{font-size:17px;margin:0}
 #timeline button{min-height:44px;padding:10px 0 14px}
 .footer-caption{font-size:8px;letter-spacing:.65px}
 .is-digital #description{font-size:11px;line-height:1.7}
}

/* Local contrast for small text leaves the sky and scenery unobscured. */
.village-hero #description{padding:8px 14px;border-radius:6px;background:#d0e1ebcc;backdrop-filter:blur(8px);color:#344b3e}
.village-hero .event-button{padding:9px 13px;background:#d0e1ebd9;border:1px solid #ffffff40;border-radius:5px;color:#344b3e}

/* The landmark card stays anchored while the chapter text changes. */
.landmark,.village-hero .landmark{top:auto;bottom:220px}
#platform-heading[hidden]{display:none}
#platform-heading{font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-weight:400}
.village-hero #platform-heading{font-size:52px;line-height:1.12;letter-spacing:-1.2px;margin:10px 0 12px}
@media(max-width:700px){.landmark,.village-hero .landmark{top:auto;bottom:224px}.village-hero #platform-heading{font-size:31px;margin:9px auto}}
@media(max-width:700px) and (max-height:740px){.village-hero #year{font-size:46px}.village-hero h2,.village-hero #platform-heading{font-size:25px;margin:6px auto}.village-hero #description{font-size:10px;line-height:1.5;padding:6px 10px}.village-hero .event-button{font-size:7px;padding:7px 9px}}

/* Minimal historical introduction: plain text over the open sky. */
.village-hero #description{background:none;backdrop-filter:none;padding:0;border:0;border-radius:0;box-shadow:none;font-family:'Source Serif 4',Georgia,'Times New Roman',serif;font-size:21px;line-height:1.5;color:var(--ink);max-width:620px;margin:14px auto}
.village-hero .event-button{background:none;border:0;border-radius:0;backdrop-filter:none;padding:8px 0}
@media(max-width:700px){.village-hero #description{font-size:17px;width:90%;margin:12px auto}.village-hero .event-button{font-size:8px}}

/* Lightweight loading identity, with progress driven by completed scene builds. */
#loading{overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#25473e 0%,#102c27 45%,#081c19 100%);color:#f4efdf;gap:0;isolation:isolate}
.loading-content{position:relative;width:min(390px,82vw);text-align:center;z-index:1}
.loading-brand{font:28px 'Source Serif 4',Georgia,serif;letter-spacing:-1px;margin-bottom:34px}.loading-brand span{font-weight:bold}
.loading-emblem{width:100px;height:100px;margin:0 auto 30px;filter:drop-shadow(0 0 20px #c9aa6240);animation:loading-breathe 3s ease-in-out infinite}
.loading-emblem svg{width:100%;height:100%;fill:none;stroke:#d2b77c;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}.loading-emblem circle:nth-child(2){stroke-dasharray:2 8;opacity:.5}
.loading-kicker{font-size:8px;letter-spacing:2.4px;color:#c4b68f}.loading-content h2{font-size:32px;letter-spacing:-.6px;margin:18px 0 12px}.loading-subtitle{font-size:11px;line-height:1.7;color:#b4c3b9;letter-spacing:.15px}
.loading-track{height:2px;background:#ffffff18;margin-top:34px;overflow:hidden}.loading-track i{display:block;width:0;height:100%;background:linear-gradient(90deg,#8d7446,#e4ce9a);transition:width .35s ease;box-shadow:0 0 12px #d4b979}
.loading-meta{display:flex;justify-content:space-between;align-items:center;margin-top:13px;font-size:9px;font-variant-numeric:tabular-nums}#loading small{color:#b4c3b9;font-size:9px;letter-spacing:.3px}.loading-years{display:flex;justify-content:space-between;margin-top:40px;color:#ae9870;font:11px 'Source Serif 4',Georgia,serif}
.loading-halo{position:absolute;width:740px;height:740px;border-radius:50%;border:1px solid #d2b77c0c;box-shadow:0 0 0 90px #d2b77c04,0 0 0 180px #d2b77c03;pointer-events:none}
@keyframes loading-breathe{50%{transform:translateY(-4px);filter:drop-shadow(0 0 30px #c9aa6270)}}
/* Soft local contrast keeps the typography readable without a boxed panel. */
.story{text-shadow:0 1px 18px #f4f0e699}.night .story{text-shadow:0 2px 16px #071420,0 1px 3px #071420}.village-hero .story{text-shadow:0 1px 14px #e5edf2,0 1px 3px #e5edf299}
@media(prefers-reduced-motion:reduce){.loading-emblem{animation:none}.loading-track i{transition:none}}
/* Readability follows the text, rather than washing out the full scene. */
body{--muted:#435246}.night{--muted:#d0dad4}
.story{isolation:isolate}.story::before{content:"";position:absolute;z-index:-1;inset:-32px -45px;pointer-events:none;background:radial-gradient(ellipse at 43% 48%,#e0e9eeeF 0%,#e0e9eee8 45%,#e0e9ee90 62%,transparent 76%);filter:blur(12px)}
.night .story::before{background:radial-gradient(ellipse at 43% 48%,#0a172af5 0%,#0a172aeb 45%,#0a172a99 62%,transparent 76%)}
.village-hero .story::before{inset:-20px -35px;background:radial-gradient(ellipse,#dbe7eef5 0%,#dbe7eeeb 45%,#dbe7ee80 66%,transparent 78%)}
#timeline button{opacity:1;color:#435246}#timeline button[aria-current="step"]{color:#172b20}#timeline button:hover{color:#172b20}.night #timeline button{color:#c3cec9}.night #timeline button[aria-current="step"],.night #timeline button:hover{color:#fff5dc}
footer::before{content:"";position:absolute;z-index:-1;inset:-18px -8vw -30px;background:linear-gradient(0deg,#f4f0e6fa 0%,#f4f0e6ed 60%,transparent);pointer-events:none}.night footer::before{background:linear-gradient(0deg,#0a172afa 0%,#0a172aeb 60%,transparent)}
header::before{content:"";position:absolute;inset:0 0 -16px;z-index:-1;background:linear-gradient(#dce7eef0,#dce7eea0 65%,transparent);pointer-events:none}.night header::before{background:linear-gradient(#0a172af0,#0a172aa0 65%,transparent)}
@media(max-width:700px){.story::before{inset:-22px -28px}.village-hero .story::before{inset:-20px -15px}.is-digital .story::before{inset:-24px -28px}.loading-content h2{font-size:29px}}
@media(max-height:700px) and (min-width:701px){.story{top:110px}#year{font-size:82px}h2{font-size:30px;margin:14px 0}#description{line-height:1.65}.event-button{margin-top:12px}.village-hero h2{font-size:40px}.village-hero #description{font-size:18px}}

/* Clouds frame the opening lettering and part with the camera descent. */
.village-hero .story::before{background:radial-gradient(ellipse at 25% 60%,#f4f7f9 0%,#f0f5f7ee 30%,transparent 63%),radial-gradient(ellipse at 65% 40%,#f7fafbee 0%,#eef4f7eb 36%,transparent 69%),radial-gradient(ellipse at 50% 75%,#eef4f7f5 0%,transparent 72%);filter:blur(14px)}
.vignette::after{content:"";position:absolute;inset:-20%;pointer-events:none;background:radial-gradient(ellipse at 12% 45%,#f6fafb 0%,#edf4f8e0 16%,transparent 35%),radial-gradient(ellipse at 82% 38%,#f8fbfc 0%,#edf4f8d9 20%,transparent 39%),radial-gradient(ellipse at 48% 75%,#edf4f8bb 0%,transparent 40%);opacity:var(--arrival-cloud-opacity,0);transform:scale(var(--arrival-cloud-scale,1));filter:blur(18px)}
.in-arrival .intro{isolation:isolate}.in-arrival .intro::before{content:"";position:absolute;inset:-35px -55px;z-index:-1;background:radial-gradient(ellipse,#f2f7f9f2 10%,#ecf3f8cc 45%,transparent 73%);filter:blur(18px)}
/* Keep the opening cloud treatment light and close to the lettering. */
.village-hero .story::before{inset:-8px -12px;opacity:.55;filter:blur(18px)}
.vignette::after{opacity:calc(var(--arrival-cloud-opacity,0)*.45)}
.in-arrival .intro::before{opacity:.6}
/* Confine the daylight footer fade to the year labels. */
body:not(.night):not(.in-arrival) .vignette{background-size:100% 100%,100% 65px;background-position:top,bottom;background-repeat:no-repeat}
body:not(.night) footer::before{inset:58px -8vw -30px;background:linear-gradient(0deg,#f4f0e6e8 0%,#f4f0e6b3 48%,transparent 100%)}
/* Keep the scenery visible beside the story. */
body:not(.night):not(.in-arrival):not(.village-hero) .vignette{background-image:linear-gradient(90deg,#d0e1eb38,transparent 30%),linear-gradient(0deg,#f4f0e680,transparent)}
body:not(.night):not(.village-hero) .story::before{inset:-12px -18px;opacity:.7;filter:blur(16px)}
body.night:not(.in-arrival) .vignette{background-image:linear-gradient(90deg,#0a172a60,transparent 36%),linear-gradient(0deg,#0a172ab0,transparent 16%)}
/* Reference-matched pale blue loading screen (#d0e1eb). */
#loading{background:#d0e1eb;color:#182b3b}
.loading-brand{color:#182b3b}.loading-emblem svg{stroke:#243fe0}.loading-emblem{filter:drop-shadow(0 0 20px #243fe018)}
.loading-kicker,.loading-years{color:#355168}.loading-subtitle,#loading small{color:#445d6c}
.loading-track{background:#233f681c}.loading-track i{background:#ff8a36;box-shadow:0 0 12px #ff8a3625}
.loading-halo{border-color:#38597720;box-shadow:0 0 0 90px #38597705,0 0 0 180px #38597703}
@keyframes loading-breathe{50%{transform:translateY(-4px);filter:drop-shadow(0 0 25px #243fe035)}}
/* Stronger year navigation, resting on a soft blue cloud rather than the scenery. */
#timeline strong{font-size:23px;font-weight:600;letter-spacing:.1px}
#timeline span{font-size:9px;font-weight:600;letter-spacing:.7px}
#timeline button{color:#273c54;opacity:1;min-height:58px}
#timeline button[aria-current="step"]{color:#101a32}
#timeline button[aria-current="step"]::after{width:24px;height:3px;border-radius:2px;bottom:-3px;box-shadow:none;background:#ff8a36}
body:not(.night) footer::before{inset:38px -8vw -30px;background:radial-gradient(ellipse at 25% 90%,#dbe8f1 0%,#dbe8f1f5 40%,transparent 76%),radial-gradient(ellipse at 76% 90%,#e4eef5 0%,#dbe8f1f5 40%,transparent 76%);filter:blur(7px)}
.night footer::before{inset:38px -8vw -30px;background:radial-gradient(ellipse at 50% 90%,#102137 0%,#102137f5 55%,transparent 85%);filter:blur(7px)}
.night #timeline button{color:#e0eaf2}.night #timeline button[aria-current="step"]{color:#ffc18c}
.village-hero .story::before{opacity:.68}
@media(max-width:700px){#timeline{gap:4px}#timeline strong{font-size:21px;letter-spacing:-.5px}#timeline button{min-height:48px}#timeline span{font-size:7px}}
@media(max-width:360px){#timeline strong{font-size:19px}}
/* Clouds stay within navigation; no extra veil across the landscape. */
.village-hero .story::before{opacity:.5}
body:not(.in-arrival) .vignette{background:none}
body:not(.night) footer::before,.night footer::before{inset:auto -8vw -28px;height:100px;filter:blur(5px)}
@media(max-width:700px){body:not(.night) footer::before,.night footer::before{height:86px}}

/* Original scenery/UI palette with orange scroll wayfinding. */
:root{--ink:#253127;--paper:#f4f0e6;--gold:#ff8a36}
body:not(.night){--muted:#435246}.night{--muted:#d0dad4;--gold:#ff8a36}
body:not(.night) .journey-status,body:not(.night) .landmark,body:not(.night) .pill{background:#f4f0e6dc;border-color:#ffffff70}
body:not(.night) .pill:hover{background:#e5dece}
body:not(.night) footer::before{background:radial-gradient(ellipse at 25% 90%,#f4f0e6 0%,#f4f0e6f5 40%,transparent 76%),radial-gradient(ellipse at 76% 90%,#f4f0e6 0%,#f4f0e6f5 40%,transparent 76%)}
/* Lighter, tighter haze beneath the timeline labels. */
body:not(.night) footer::before{height:78px;opacity:.58;filter:blur(7px)}
@media(max-width:700px){body:not(.night) footer::before{height:70px}}
/* Blend the Digital chapter into the sky instead of a dense black patch. */
.night .story::before{background:radial-gradient(ellipse at 38% 45%,#0a172a80 0%,#0a172a40 44%,transparent 73%);filter:blur(26px);opacity:.65}
.night .story{text-shadow:0 1px 5px #08152166}
.night #year{color:#f4f1e5}.night #era{color:#dce6e7}
.night .date-row{align-items:baseline}
@media(max-width:700px){.is-digital.night #era{font-size:16px}}

/* One continuous fill, without separate dots or short chapter markers. */
#timeline button::before,#timeline button::after{display:none!important;content:none!important}
.timeline-track{height:3px;background:rgba(75,86,74,.22)}
#timeline-progress{height:3px;top:0;background:#ff8a36}
.night .timeline-track{background:rgba(216,227,230,.22)}

/* Source family: optical sizing preserves readable serif shapes at every heading size. */
h1,h2,h3,h4,h5,h6{font-optical-sizing:auto}
