:root{--night:#0b3029;--deep:#071f1b;--paper:#eadfbe;--cream:#f7efd9;--ink:#18372f;--cinnabar:#b84934;--gold:#d1ad4f;--display:Palatino Linotype,Book Antiqua,Palatino,Georgia,serif;--body:Georgia,Times New Roman,serif;--utility:Segoe UI,Arial,sans-serif}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--deep);color:var(--ink)}body{font-family:var(--body);overflow:hidden}button,a{font:inherit}.masthead{position:fixed;z-index:30;inset:0 0 auto;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;color:var(--cream);background:linear-gradient(180deg,#08241ff2,#08241fb8 62%,transparent)}.brand{color:inherit;text-decoration:none}.brand b{display:block;font:600 24px/1 var(--display);letter-spacing:4px}.brand span{display:block;margin-top:5px;color:#cdbd88;font:600 8px var(--utility);letter-spacing:2px}.mast-actions{display:flex;gap:8px;align-items:center}.mast-actions button,.language-link{border:1px solid #f7efd947;background:#f7efd90d;color:#f7efd9;padding:8px 11px;text-decoration:none;font:600 10px var(--utility);letter-spacing:.7px}.mast-actions button:hover,.language-link:hover{background:#f7efd91c;border-color:var(--gold)}main{height:100vh}.atlas-stage{position:absolute;inset:0 405px 96px 0;overflow:hidden;background:#d6c392 url('../assets/illustrations/tang-atlas.webp') center/cover no-repeat}.atlas-stage:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f3e8cbd9 0%,#f3e8cb7a 23%,transparent 50%,#09292255 100%),linear-gradient(0deg,#092922b8 0%,transparent 27%),radial-gradient(circle at 50% 46%,transparent 26%,#1a271f52 100%)}.atlas-stage:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 70px #271c12a6}.map-wash{position:absolute;inset:0;background:repeating-linear-gradient(94deg,transparent 0 31px,#4c4b3620 32px 33px);mix-blend-mode:multiply;opacity:.25}.hero-copy{position:absolute;z-index:4;left:5.5%;top:102px;width:min(360px,38vw);color:var(--ink);text-shadow:0 1px #f7e9c8}.kicker{margin:0 0 12px;color:var(--cinnabar);font:700 9px var(--utility);letter-spacing:2.3px;text-transform:uppercase}.hero-copy h1{margin:0;font:600 clamp(48px,6vw,88px)/.9 var(--display);letter-spacing:-3px}.hero-copy h2{margin:13px 0 17px;font:italic 500 clamp(24px,2.7vw,39px)/1.08 var(--display)}.hero-copy>p:last-child{max-width:340px;margin:0;color:#3e574c;font:15px/1.65 var(--body)}.route-lines{position:absolute;z-index:3;inset:0;width:100%;height:100%;pointer-events:none}.route-lines line{stroke:#a27f2f;stroke-width:.27;stroke-dasharray:1.3 1.1;vector-effect:non-scaling-stroke;opacity:.3}.route-lines line.done{stroke:var(--cinnabar);stroke-width:.48;opacity:.86;animation:route-in .6s ease both}@keyframes route-in{from{stroke-dashoffset:8;opacity:0}to{stroke-dashoffset:0;opacity:.86}}.map-markers{position:absolute;z-index:5;inset:0}.map-marker{position:absolute;transform:translate(-50%,-50%);border:0;background:transparent;color:var(--ink);padding:0;text-align:center}.map-marker i{display:grid;place-items:center;width:30px;height:30px;margin:auto;border:2px solid currentColor;border-radius:50%;background:#f8ecc9;color:var(--cinnabar);box-shadow:0 3px 12px #0b2d276b;font:700 10px var(--utility);font-style:normal}.map-marker span{display:block;margin-top:4px;padding:3px 6px;background:#f8efd9de;color:#213c34;box-shadow:2px 2px 0 #b89542;font:600 11px var(--display);white-space:nowrap}.map-marker:hover,.map-marker:focus-visible{z-index:4;transform:translate(-50%,-50%) scale(1.08)}.map-marker.active i{background:var(--cinnabar);color:#fff;border-color:#8e3828;box-shadow:0 0 0 6px #d6b15a66}.map-marker.done i{border-color:var(--gold);color:#795814}.map-key,.map-disclaimer{position:absolute;z-index:6;left:5.5%;bottom:38px;color:#dbe2d6;font:9px var(--utility);letter-spacing:.6px}.map-key{display:flex;gap:18px}.map-key i{display:inline-block;width:8px;height:8px;margin-right:5px;border-radius:50%;background:var(--cinnabar)}.map-key span+span i{background:var(--gold)}.map-disclaimer{bottom:18px;margin:0;color:#acbcb0;font-size:8px}.story-panel{position:fixed;z-index:20;right:0;top:0;width:405px;height:calc(100vh - 96px);overflow:auto;background:var(--cream);padding:82px 28px 30px;box-shadow:-14px 0 38px #061d18a6}.stop-number{margin:0;color:var(--cinnabar);font:700 9px var(--utility);letter-spacing:2px}.story-panel h2{margin:8px 0 2px;font:600 39px/1.03 var(--display);letter-spacing:-1px}.stop-subtitle{margin:7px 0 18px;color:#917039;font:italic 15px/1.5 var(--body)}.story-figure{margin:0 0 19px;border:1px solid #b49c61;background:#d5c18b}.story-figure img{display:block;width:100%;height:174px;object-fit:cover;filter:saturate(.76) sepia(.07)}.story-figure figcaption{padding:6px 8px;color:#6c603f;font:8px/1.45 var(--utility)}.story-lead{margin:0;padding:0 0 17px;border-bottom:1px solid #c9b98e;font:16px/1.7 var(--body)}.field-block,.why-block{padding:16px 0;border-bottom:1px solid #c9b98e}.field-block>p,.why-block>p{margin:0 0 8px;color:var(--cinnabar);font:700 9px var(--utility);letter-spacing:1.5px}.field-block ul{margin:0;padding-left:19px}.field-block li{margin:6px 0;color:#40594f;font:13px/1.55 var(--body)}.plain-note{margin:17px 0 0;padding:13px 14px;background:var(--night);color:#f7ecd1;border-top:3px solid var(--gold)}.plain-note span{display:block;color:#d6bb66;font:700 8px var(--utility);letter-spacing:1.4px}.plain-note strong{display:block;margin:5px 0 4px;font:600 18px var(--display)}.plain-note p{margin:0;color:#ccd9ce;font:12px/1.6 var(--body)}.why-block div{color:#40594f;font:14px/1.7 var(--body)}.source-row{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:15px 0}.source-row a,.source-row button{border:0;background:transparent;padding:0;color:#8e3b2c;font:700 9px var(--utility);text-decoration:none}.source-row button{text-align:right}.next-stop{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:var(--cinnabar);color:white;padding:13px 14px;font:700 11px var(--utility);letter-spacing:.4px}.next-stop b{font:23px var(--display)}.journey-rail{position:fixed;z-index:25;left:0;right:0;bottom:0;height:96px;display:grid;grid-template-columns:285px 1fr;align-items:stretch;background:var(--night);color:#f5e8ca;border-top:1px solid #a9893d}.journey-heading{display:flex;flex-direction:column;justify-content:center;padding:0 28px;border-right:1px solid #f7efd920}.journey-heading span{color:var(--gold);font:700 8px var(--utility);letter-spacing:1.5px}.journey-heading strong{margin-top:5px;font:600 13px/1.3 var(--display)}.journey-steps{display:grid;grid-template-columns:repeat(7,1fr)}.journey-steps button{position:relative;border:0;border-right:1px solid #f7efd917;background:transparent;color:#92a9a0;padding:15px 7px 11px;text-align:left}.journey-steps button i{display:block;color:#6f8b80;font:700 9px var(--utility);font-style:normal}.journey-steps button strong{display:block;margin-top:6px;font:600 11px/1.2 var(--display)}.journey-steps button.active{background:#f7efd910;color:#f7e7bd}.journey-steps button.active i{color:var(--gold)}.journey-steps button.done{color:#d0c391}.journey-progress{position:absolute;left:285px;right:0;bottom:0;height:3px;background:#fff1c516}.journey-progress i{display:block;width:0;height:100%;background:var(--gold);transition:width .4s ease}.world-sheet{position:fixed;z-index:50;inset:0;overflow:auto;padding:80px max(6vw,28px) 55px;background:var(--night);color:#f6ead0}.world-sheet:before{content:"同";position:fixed;right:6vw;bottom:-8vw;color:#e6ca6a0c;font:600 46vw/1 var(--display)}.world-sheet>*{position:relative}.world-close{position:fixed;z-index:2;right:24px;top:22px;width:38px;height:38px;border:1px solid #f6ead063;background:transparent;color:#f6ead0;font-size:26px}.world-sheet h2{max-width:850px;margin:0;font:600 clamp(40px,6vw,76px)/1.02 var(--display);letter-spacing:-2px}.world-intro{max-width:690px;color:#b7c9bf;font:15px/1.75 var(--body)}.world-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:38px}.world-grid article{min-height:260px;padding:20px;border-top:4px solid var(--cinnabar);background:#f0e3c1;color:var(--ink)}.world-grid span{color:var(--cinnabar);font:700 8px var(--utility);letter-spacing:1.4px}.world-grid h3{margin:34px 0 10px;font:600 28px var(--display)}.world-grid p{color:#4b6258;font:13px/1.7 var(--body)}.world-question{margin-top:11px;padding:18px 20px;background:#d1ad4f;color:#16382f}.world-question span{display:block;font:700 8px var(--utility);letter-spacing:1.4px}.world-question strong{display:block;margin-top:5px;font:600 20px/1.4 var(--display)}#toast{position:fixed;z-index:100;left:50%;bottom:115px;transform:translate(-50%,12px);padding:9px 13px;background:var(--deep);color:#f6ead0;opacity:0;pointer-events:none;font:10px var(--utility);transition:.2s}#toast.show{opacity:1;transform:translate(-50%,0)}button:focus-visible,a:focus-visible{outline:3px solid #f0ce67;outline-offset:3px}
@media(max-width:1000px){.atlas-stage{right:360px}.story-panel{width:360px;padding-inline:22px}.journey-rail{grid-template-columns:235px 1fr}.journey-heading{padding-inline:19px}.journey-progress{left:235px}.hero-copy{top:92px}.world-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){body{overflow:auto}.masthead{height:58px;padding:0 13px;background:#08241fee}.brand b{font-size:18px;letter-spacing:3px}.brand span{font-size:6px;letter-spacing:1.1px}.mast-actions button{display:none}.language-link{padding:7px 9px}.atlas-stage{position:relative;inset:auto;width:100%;height:56vh;min-height:450px;background-size:auto 100%;background-position:center}.atlas-stage:before{background:linear-gradient(90deg,#f3e8cbdc 0%,#f3e8cb54 58%,#09292236 100%),linear-gradient(0deg,#092922b5 0%,transparent 31%)}.hero-copy{left:17px;top:76px;width:55vw}.hero-copy h1{font-size:46px}.hero-copy h2{font-size:22px}.hero-copy>p:last-child{font-size:11px;line-height:1.5}.map-marker span{font-size:9px}.map-marker i{width:26px;height:26px}.map-key{left:15px;bottom:25px}.map-disclaimer{display:none}.story-panel{position:relative;right:auto;top:auto;width:100%;height:auto;min-height:60vh;padding:34px 19px 125px;box-shadow:none}.story-panel h2{font-size:36px}.story-figure img{height:220px}.journey-rail{height:102px;grid-template-columns:1fr;overflow:hidden}.journey-heading{display:none}.journey-steps{overflow-x:auto;scroll-snap-type:x mandatory}.journey-steps button{min-width:112px;scroll-snap-align:start}.journey-progress{left:0}.world-sheet{padding:75px 18px 40px}.world-sheet h2{font-size:41px}.world-grid{grid-template-columns:1fr}.world-grid article{min-height:210px}#toast{bottom:115px}}
@media(max-width:430px){.hero-copy{width:62vw}.hero-copy>p:last-child{display:none}.map-marker span{max-width:88px;overflow:hidden;text-overflow:ellipsis}.story-figure img{height:190px}.source-row{align-items:flex-start}}@media(prefers-reduced-motion:reduce){.route-lines line.done{animation:none}.journey-progress i{transition:none}}

/* Each seal receives its own cartographic breathing room; labels should read like annotations, not a pin pile. */
@media(min-width:761px){.hero-copy{left:4.2%;width:min(300px,25vw)}.map-marker span{position:absolute;left:50%;top:34px;margin:0}.map-marker[data-index="0"] span{transform:translate(-96%,-9px)}.map-marker[data-index="1"] span{transform:translate(5%,-31px)}.map-marker[data-index="2"] span{transform:translate(4%,-24px)}.map-marker[data-index="3"] span{transform:translate(-106%,-8px)}.map-marker[data-index="4"] span{transform:translate(4%,-10px)}.map-marker[data-index="5"] span{transform:translate(-50%,0)}.map-marker[data-index="6"] span{transform:translate(3%,-7px)}}

/* English pilot v2: context, thematic routes and shareable field notes. */
.journey-steps{grid-template-columns:repeat(var(--step-count,7),1fr)}
.map-marker.route-muted{opacity:.2;filter:grayscale(1);pointer-events:none}
.map-marker.route-muted span{box-shadow:none}
.field-sheet{position:fixed;z-index:70;inset:0;overflow:auto;background:var(--night);color:var(--cream)}
.field-sheet[hidden]{display:none}
.sheet-close{position:fixed;z-index:3;right:24px;top:22px;width:40px;height:40px;border:1px solid #f6ead063;background:#08251f;color:#f6ead0;font-size:26px}
.intro-sheet{display:grid;grid-template-columns:minmax(430px,1.05fr) minmax(380px,.95fr);padding:82px max(6vw,50px) 54px;gap:6vw;align-items:center}
.intro-sheet:before,.route-sheet:before,.share-sheet:before{content:"";position:fixed;inset:0;pointer-events:none;background:repeating-linear-gradient(94deg,transparent 0 36px,#fff 37px 38px);opacity:.025}
.intro-copy,.intro-diagram,.route-sheet>*,.share-sheet>*{position:relative}
.intro-copy h2,.route-sheet h2,.share-copy h2{margin:0;font:600 clamp(47px,6vw,82px)/.98 var(--display);letter-spacing:-2px}
.intro-lead,.route-intro,.share-copy>p{max-width:680px;color:#b9cbc1;font:15px/1.75 var(--body)}
.intro-facts{display:grid;grid-template-columns:repeat(3,1fr);margin:34px 0 28px;border-top:1px solid #d2ad4e66;border-bottom:1px solid #d2ad4e66}
.intro-facts article{min-height:130px;padding:17px 14px;border-right:1px solid #d2ad4e35}.intro-facts article:last-child{border-right:0}
.intro-facts i{float:right;color:#d1ad4f55;font:italic 25px var(--display)}.intro-facts span{display:block;color:var(--gold);font:700 8px var(--utility);letter-spacing:1.6px}.intro-facts strong{display:block;margin-top:24px;font:600 15px/1.45 var(--display)}
.intro-actions{display:flex;gap:9px;align-items:center}.intro-actions button,.share-actions button{border:1px solid #d1ad4f;background:transparent;color:var(--cream);padding:13px 16px;font:700 10px var(--utility);letter-spacing:.5px}.intro-actions button:first-child,.share-actions button:first-child{background:var(--cinnabar);border-color:var(--cinnabar)}.intro-actions b{margin-left:20px;font:20px var(--display)}
.intro-diagram{aspect-ratio:1/1;display:grid;place-items:center;max-width:540px;margin:auto;border:1px solid #d1ad4f66;border-radius:50%;background:radial-gradient(circle,#eadfbe12 0 2%,transparent 2% 25%,#d1ad4f16 25.3% 25.7%,transparent 26% 46%,#d1ad4f10 46.3% 46.6%,transparent 47%)}
.intro-diagram:before,.intro-diagram:after{content:"";position:absolute;width:86%;height:1px;background:#d1ad4f45;transform:rotate(-17deg)}.intro-diagram:after{transform:rotate(37deg)}
.diagram-city{z-index:2;display:flex;flex-direction:column;align-items:center}.diagram-city i{display:grid;place-items:center;width:74px;height:74px;border:2px solid var(--cinnabar);border-radius:50%;background:var(--cream);color:var(--cinnabar);font:600 31px var(--display);font-style:normal;box-shadow:0 0 0 10px #d1ad4f22}.diagram-city strong{margin-top:19px;color:var(--cream);font:700 13px var(--utility);letter-spacing:3px}.diagram-city span{margin-top:5px;color:#aebfb6;font:9px var(--utility);letter-spacing:1px}.diagram-note{position:absolute;padding:5px 8px;background:#e8ddb9;color:#173a31;font:700 8px var(--utility);letter-spacing:.4px}.note-west{left:0;top:36%}.note-east{right:-2%;bottom:31%}.intro-diagram>p{position:absolute;left:50%;bottom:8%;transform:translateX(-50%);width:80%;text-align:center;color:var(--gold);font:700 8px/1.7 var(--utility);letter-spacing:2px}.intro-diagram small{color:#96aaa0;letter-spacing:.5px}
.route-sheet{padding:80px max(6vw,34px) 55px}.route-sheet h2{max-width:820px}.route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:34px}.route-grid button{min-height:230px;border:1px solid #d1ad4f44;border-top:4px solid var(--cinnabar);background:#f1e5c4;color:var(--ink);padding:21px;text-align:left}.route-grid button:hover,.route-grid button:focus-visible{transform:translateY(-3px);border-color:var(--gold)}.route-grid button span{color:var(--cinnabar);font:700 8px var(--utility);letter-spacing:1.5px}.route-grid button strong{display:block;max-width:460px;margin:35px 0 10px;font:600 27px/1.18 var(--display)}.route-grid button p{max-width:530px;color:#4a6258;font:13px/1.6 var(--body)}.route-grid button i{display:block;margin-top:20px;color:#8c3b2d;font:700 9px var(--utility);font-style:normal}
.share-sheet{display:grid;grid-template-columns:minmax(300px,.75fr) minmax(340px,1.25fr);align-items:center;gap:5vw;padding:78px max(6vw,38px) 45px}.share-copy h2{font-size:clamp(44px,5vw,68px)}.share-actions{display:flex;gap:8px;margin:28px 0 12px}.share-copy small{color:#8ca198;font:8px var(--utility);letter-spacing:1.4px}.share-preview{position:relative;width:min(54vh,440px);aspect-ratio:3/4;margin:auto;background:#e9ddba;box-shadow:18px 20px 0 #051a16,0 0 0 1px #d1ad4f88}.share-preview img{display:block;width:100%;height:100%;object-fit:contain}.share-preview img:not([src]){display:none}#card-loading{position:absolute;inset:0;display:grid;place-items:center;color:#6d613e;font:italic 16px var(--display)}
@media(max-width:1050px){.masthead{padding-inline:18px}.mast-actions{gap:5px}.mast-actions button,.language-link{padding:7px 8px;font-size:9px}}
@media(max-width:760px){.mast-actions #intro-button,.mast-actions #routes-button{display:inline-block}.mast-actions #intro-button{display:none}.mast-actions #world-button{display:none}.mast-actions{gap:5px}.mast-actions button,.language-link{padding:7px 7px;font-size:8px}.intro-sheet,.share-sheet{display:block;padding:76px 18px 42px}.intro-copy h2,.route-sheet h2,.share-copy h2{font-size:43px}.intro-facts{grid-template-columns:1fr;margin-top:25px}.intro-facts article{min-height:82px;border-right:0;border-bottom:1px solid #d2ad4e35}.intro-facts article:last-child{border-bottom:0}.intro-facts strong{margin-top:11px}.intro-actions{align-items:stretch;flex-direction:column}.intro-diagram{margin-top:38px;width:90vw}.route-sheet{padding:75px 18px 38px}.route-grid{grid-template-columns:1fr}.route-grid button{min-height:205px}.share-preview{width:min(82vw,390px);margin-top:35px}.share-actions{flex-direction:column}.journey-steps{grid-template-columns:repeat(var(--step-count,7),112px)}.sheet-close{right:14px;top:13px}}
@media(max-width:430px){.language-link{display:none}.mast-actions #routes-button{font-size:8px}.route-grid button strong{font-size:24px}.intro-lead,.route-intro,.share-copy>p{font-size:14px}}
.route-sheet>.sheet-close,.share-sheet>.sheet-close{position:fixed;right:24px;top:22px}
@media(max-width:760px){.route-sheet>.sheet-close,.share-sheet>.sheet-close{right:14px;top:13px}}
#card-loading[hidden]{display:none}

/* Explicit wayfinding: overlays always name the place they return to. */
.sheet-close,.world-close{width:auto;height:40px;padding:0 14px;display:flex;align-items:center;justify-content:center;gap:8px;border-color:#d1ad4f88;background:#08251fe8;color:var(--cream);font:700 9px var(--utility);letter-spacing:.8px;text-transform:uppercase;white-space:nowrap}
.sheet-close span,.world-close span{color:var(--gold);font:18px/1 var(--display)}
.sheet-close:hover,.world-close:hover{border-color:var(--gold);background:#123d34}
