@font-face{font-family:Bricolage;src:url('assets/bricolage.woff2') format('woff2');font-weight:200 800;font-display:swap}@font-face{font-family:Manrope;src:url('assets/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{--ivory:#f1efdb;--ink:#233d3e;--yellow:#f8dc5b;--glass:rgba(20,48,52,.7)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#28545c;color:var(--ivory)}body{font:var(--t-caption) Manrope,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--yellow);outline-offset:5px}button:disabled{cursor:default}a{color:inherit;text-decoration:none}h1,h2,p{margin:0}button[hidden],[hidden]{display:none!important}#world{position:fixed;inset:0;touch-action:none}#world canvas{display:block;width:100%;height:100%;cursor:grab}#world canvas:active{cursor:grabbing}.vignette{position:fixed;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(14,39,48,.36),transparent 20%,transparent 68%,rgba(8,33,38,.53)),radial-gradient(ellipse at center,transparent 45%,#08252b20 100%);z-index:2}.film-grain{position:fixed;inset:0;z-index:3;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 150 150' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E")}
header{position:fixed;z-index:6;top:28px;left:35px;right:35px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}header button{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;text-align:left;font:650 21px/.95 Bricolage,Arial,sans-serif;letter-spacing:-.6px;padding:0}.brand svg{width:34px;height:39px;color:var(--yellow);transform:rotate(-9deg)}.world-title{text-align:center;position:absolute;left:50%;transform:translateX(-50%);font:500 var(--t-body) Bricolage,Arial,sans-serif;letter-spacing:-.3px}.world-title span{display:block;font:var(--t-caption) Manrope,Arial,sans-serif;margin-top:5px;opacity:.65;letter-spacing:.3px}.header-tools{display:flex;align-items:center;gap:18px}.circle{border:1px solid #f1efdb45;width:39px;height:39px;border-radius:50%;display:grid;place-items:center;font-size:var(--t-body);backdrop-filter:blur(8px);background:#163e4320}.utility{border:1px solid #f1efdb44;border-radius:30px;padding:11px 17px;font-size:var(--t-caption);background:#13353b55;backdrop-filter:blur(15px)}main{position:fixed;inset:0;z-index:4;pointer-events:none}.arrival{position:absolute;left:4vw;bottom:13%;pointer-events:none;text-shadow:0 3px 20px #133a3d55;transition:opacity .5s,transform .5s}.mini-label{font-size:var(--t-caption);display:block;margin-bottom:14px;opacity:.72}h1{font:500 clamp(34px,3.5vw,54px)/.97 Bricolage,Arial,sans-serif;letter-spacing:-.045em}.arrival p{font-size:var(--t-caption);line-height:1.8;opacity:.8;margin-top:17px}.arrival-gesture{display:flex;gap:9px;align-items:center;font-size:var(--t-caption);margin-top:22px;opacity:.6}.arrival-gesture svg{width:27px;fill:none;stroke:currentColor;stroke-width:1}.arrival-gesture>span{margin:0 1px}body:not([data-place=overview]) .arrival{opacity:0;transform:translateY(15px);visibility:hidden}
.landmark{position:absolute;top:0;left:0;transform:translate(-50%,-100%);display:flex;flex-direction:column;align-items:center;pointer-events:auto;padding:0;will-change:transform;filter:drop-shadow(0 3px 12px #173d4866);transition:opacity .22s}.beacon{order:2;width:34px;height:34px;display:grid;place-items:center;position:relative;margin-top:8px;border:1px solid #fff6;border-radius:50%;background:#173c4655;backdrop-filter:blur(5px)}.beacon:after{content:'';position:absolute;height:28px;width:1px;background:linear-gradient(#f8dc5baa,transparent);top:33px}.beacon i{width:6px;height:6px;background:var(--yellow);border-radius:50%;box-shadow:0 0 14px #ffdc79aa;transition:transform .2s}.landmark-label{text-align:center;background:#1c4149ce;border:1px solid #e7eddd30;border-radius:6px;padding:10px 14px;backdrop-filter:blur(12px);transition:background .2s,transform .2s;white-space:nowrap}.landmark strong{font:550 var(--t-body) Bricolage,Arial,sans-serif;letter-spacing:-.3px;display:block}.landmark small{font-size:var(--t-caption);display:block;margin-top:4px;opacity:.75}.landmark:hover .landmark-label,.landmark:focus-visible .landmark-label{background:#f5da6b;color:#203a3c;transform:translateY(-4px)}.landmark:hover .beacon i{transform:scale(1.7)}.landmark.small strong{font-size:var(--t-caption)}.landmark.small .landmark-label{padding:8px 13px}.landmark.hub .landmark-label{background:#4e592de6}.landmark.visited .beacon i{background:#eff5c1}.landmark.visited small:after{content:'  ✓';color:var(--yellow)}body[data-state=travelling] .landmark{opacity:0;pointer-events:none}
.journal{position:absolute;left:4vw;bottom:13%;max-width:335px;width:29vw;pointer-events:auto;padding:25px 27px 21px;background:linear-gradient(145deg,#143d43e8,#23494bd9);backdrop-filter:blur(22px);border:1px solid #d6e9da25;border-radius:7px;box-shadow:0 18px 70px #061c3022;animation:journal-in .5s ease}.journal-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;color:var(--yellow);font-size:var(--t-caption)}.journal-top button{font-size:22px;line-height:1;opacity:.65}.journal h2{font:500 35px/1.02 Bricolage,Arial,sans-serif;letter-spacing:-.045em;outline:none}.journal>p{font-size:var(--t-caption);line-height:1.85;margin-top:15px;color:#e3e9d9d9}#place-services{display:flex;gap:7px;flex-wrap:wrap;margin-top:18px;font-size:var(--t-caption);color:#d6dfd1b3}#place-services span{border-bottom:1px solid #e1e8d13d;padding-bottom:4px}.journal-actions{display:flex;flex-direction:column;align-items:flex-start;gap:15px;margin-top:23px}.experience{background:var(--yellow);color:var(--ink);border-radius:30px;display:inline-flex;justify-content:space-between;gap:24px;align-items:center;padding:13px 18px;font-size:var(--t-caption);font-weight:700;transition:background .2s}.experience:hover{background:#ffeaa0}.text-link{font-size:var(--t-caption);padding:0;text-decoration:underline;text-underline-offset:4px}.journal #interaction-result{font-size:var(--t-caption);color:var(--yellow);margin-top:0;line-height:1.6}.journal #interaction-result:not(:empty){margin-top:13px}.show-journal{position:absolute;left:4vw;bottom:13%;pointer-events:auto}#travel-caption{position:absolute;bottom:14%;left:50%;transform:translateX(-50%);text-align:center;opacity:0;transition:opacity .4s;white-space:nowrap;text-shadow:0 2px 10px #08292b}#travel-caption span{font:500 30px Bricolage,Arial,sans-serif;letter-spacing:-.7px}#travel-caption p{font-size:var(--t-caption);margin-top:9px;opacity:.7}body[data-state=travelling] #travel-caption{opacity:1}#fallback{position:absolute;left:50%;top:40%;transform:translateX(-50%);max-width:380px;font-size:var(--t-body);line-height:1.8}
.atlas{position:fixed;right:33px;bottom:85px;z-index:6;width:150px;text-align:center}.atlas-map{position:relative;height:150px;opacity:.85;background:radial-gradient(#11363d4d,transparent 66%);border-radius:50%}.atlas svg{width:150px;height:150px;fill:none;stroke:#f0f1d72b;stroke-width:1}.atlas svg>path:first-of-type{stroke-dasharray:2 4}.atlas #compass-bearing{fill:#eeeec94d;stroke:none;transform-origin:75px 75px}.atlas-map button{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;display:grid;place-items:center}.atlas-map button i{display:block;width:6px;height:6px;border-radius:50%;background:#f5edb4;box-shadow:0 0 0 4px #f0f0cf0d}.atlas-map button:hover i,.atlas-map button.active i{background:var(--yellow);box-shadow:0 0 0 6px #f8dc5b29}.atlas-map button.visited i{background:#a7ceb3}.atlas-map button.active i{width:9px;height:9px;background:var(--yellow)}#atlas-label{font-size:var(--t-caption);opacity:.65;display:block;margin-top:4px}footer{position:fixed;left:35px;right:35px;bottom:24px;z-index:6;display:flex;justify-content:space-between;align-items:center;font-size:var(--t-caption);color:#f1efdbb0}footer button{font-size:var(--t-caption);padding:8px 0}.settings{display:flex;gap:23px}.controls-note{display:flex;align-items:center;gap:8px;position:absolute;left:50%;transform:translateX(-50%);font-size:var(--t-caption);white-space:nowrap}.live-dot{width:4px;height:4px;border-radius:50%;background:var(--yellow)}
dialog{max-width:min(92vw,670px);max-height:88svh;padding:55px;background:#eef0df;color:var(--ink);border:0;border-radius:7px;box-shadow:0 20px 100px #08282b66}dialog::backdrop{background:#17373b88;backdrop-filter:blur(13px)}dialog .close{position:absolute;right:20px;top:20px;border-color:#28484b33;font-size:var(--t-small)}dialog h2{font:500 49px/1.02 Bricolage,Arial,sans-serif;letter-spacing:-.05em}dialog>p{font-size:var(--t-caption);line-height:1.9;margin-top:23px}dialog .keyboard-help{font-size:var(--t-caption);opacity:.7}dialog .text-link{display:inline-block;margin-top:25px}dialog .experience{margin-top:25px}dialog small{display:block;font-size:var(--t-caption);margin-top:12px;opacity:.7}.phone{display:block;margin-top:28px;font-size:20px}.place-list{margin-top:30px}.place-list button{display:grid;grid-template-columns:1fr auto;position:relative;width:100%;text-align:left;padding:15px 25px 15px 0;border-top:1px solid #20474b22}.place-list button span{font:500 22px Bricolage,Arial,sans-serif;letter-spacing:-.5px}.place-list button small{font-size:var(--t-caption);margin-top:5px;grid-column:1}#contact-dialog{background:#f1d66d}#loading{position:fixed;inset:0;z-index:20;background:#254e57;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:opacity .7s;pointer-events:none}#loading svg{color:var(--yellow);width:55px;height:55px;transform:rotate(-12deg)}#loading p{font-size:var(--t-caption);margin-top:20px;opacity:.7}body:not([data-state=loading]) #loading{opacity:0;visibility:hidden;transition:opacity .7s,visibility 0s .7s}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@keyframes journal-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@media(max-width:760px){header{left:22px;right:22px;top:22px}.brand{font-size:var(--t-body);gap:7px}.brand svg{width:26px;height:33px}.world-title{display:none}.header-tools{gap:10px}.circle{width:34px;height:34px}.utility{font-size:var(--t-caption);padding:9px 12px}.arrival{left:24px;bottom:13%}h1{font-size:36px}.arrival p{font-size:var(--t-caption);margin-top:12px}.arrival-gesture{margin-top:15px;font-size:var(--t-caption);max-width:240px;flex-wrap:wrap}.arrival-gesture svg{width:22px}.arrival-gesture span{display:none}.landmark strong{font-size:var(--t-caption)}.landmark small{font-size:var(--t-caption)}.landmark-label{padding:8px 10px}.landmark.small strong,.landmark.hub strong{font-size:var(--t-caption)}.landmark.hub small{display:none}.beacon{width:26px;height:26px;margin-top:5px}.beacon:after{top:25px;height:19px}.landmark.small .landmark-label{padding:7px 10px}.atlas{right:12px;bottom:94px;width:105px}.atlas-map{width:105px;height:105px}.atlas svg{width:105px;height:105px}.atlas-map button{width:28px;height:28px}#atlas-label{font-size:var(--t-caption);max-width:100px;margin:0 auto}.journal{left:16px;right:16px;bottom:85px;width:auto;max-width:none;padding:18px 22px;max-height:40svh;overflow:auto}.journal-top{font-size:var(--t-caption);margin-bottom:7px}.journal h2{font-size:28px}.journal>p{font-size:var(--t-caption);line-height:1.7;margin-top:9px;max-width:340px}#place-services{margin-top:10px;font-size:var(--t-caption);gap:9px}.journal-actions{flex-direction:row;align-items:center;gap:20px;margin-top:14px}.experience{padding:11px 15px;font-size:var(--t-caption)}.text-link{font-size:var(--t-caption)}body:not([data-place=overview]) .atlas{bottom:auto;top:86px;right:12px;background:#153d4380;border-radius:50%;padding-bottom:12px}.show-journal{left:22px;bottom:100px}#travel-caption{bottom:17%;max-width:90vw}#travel-caption span{font-size:24px}#travel-caption p{font-size:var(--t-caption)}footer{left:22px;right:22px;bottom:19px;align-items:flex-end}footer button{font-size:var(--t-caption)}.settings{gap:16px;max-width:180px}.controls-note{bottom:30px;font-size:var(--t-caption);width:90vw;justify-content:center}.arrival{max-width:68%}.arrival p{max-width:200px}dialog{padding:50px 28px 30px}dialog h2{font-size:37px}dialog>p{font-size:var(--t-caption)}.place-list button span{font-size:20px}.place-list button{padding-top:12px;padding-bottom:12px}#fallback{font-size:var(--t-small);width:75%}.journal #interaction-result{font-size:var(--t-caption)}body[data-place=overview] .landmark.hub{opacity:.85}}
@media(max-height:680px) and (min-width:761px){.journal{bottom:13%;padding:19px 23px;max-width:310px}.journal h2{font-size:30px}.journal>p{margin-top:11px;font-size:var(--t-caption)}.journal-actions{margin-top:16px}#place-services{margin-top:12px}.atlas{bottom:76px}.arrival{bottom:15%}h1{font-size:40px}.arrival-gesture{margin-top:14px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

body:not([data-state=travelling]) #travel-caption{visibility:hidden}
@media(max-width:760px){body[data-place=overview] .landmark small{display:none}body[data-place=overview] .landmark-label{padding:7px 9px}body[data-place=overview] .landmark strong{font-size:var(--t-caption)}body[data-place=overview] .beacon{width:20px;height:20px}body[data-place=overview] .beacon:after{top:19px;height:12px}}
/* Walking mode keeps reading and movement separate on the same landscape. */
kbd{font:var(--t-caption) Manrope,Arial,sans-serif;display:inline-grid;place-items:center;border:1px solid #f5eec144;border-radius:4px;padding:3px 5px;margin-left:8px;min-width:20px}.world-title .location-eyebrow{font-size:var(--t-caption);letter-spacing:2px;opacity:.6;margin:0 0 6px}.world-title strong{font:500 var(--t-body) Bricolage,Arial,sans-serif}.walk-hud{position:absolute;inset:0;pointer-events:none}.crosshair{position:absolute;left:50%;top:50%;width:5px;height:5px;border-radius:50%;background:#fff7cfaa;box-shadow:0 0 0 4px #153d4322;transform:translate(-50%,-50%)}.walking-intro{position:absolute;left:4vw;bottom:18%;text-shadow:0 2px 15px #123c42}.walking-intro h1{font-size:44px}.walking-intro p{font-size:var(--t-caption);line-height:1.8;margin-top:18px;opacity:.8}.discover{pointer-events:auto;position:absolute;left:50%;bottom:105px;transform:translateX(-50%);display:flex;gap:14px;align-items:center;background:#163d40e6;border:1px solid #e6db9c77;border-radius:40px;padding:12px 20px 12px 12px;box-shadow:0 6px 25px #122c4355;backdrop-filter:blur(12px);font-size:var(--t-caption);white-space:nowrap}.discover kbd{background:var(--yellow);color:var(--ink);margin:0;border:0;width:27px;height:27px;font-size:var(--t-caption)}#walking-route{position:absolute;bottom:106px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:10px;align-items:center;font-size:var(--t-caption);text-shadow:0 2px 15px #123c42}#stop-walking{pointer-events:auto;border:1px solid #eee4b366;border-radius:30px;background:#173e41dd;font-size:var(--t-caption);padding:10px 14px}#stop-walking span{margin-left:14px;opacity:.7}body[data-auto=true] #discover{display:none}.mouse-look{position:absolute;pointer-events:auto;left:50%;bottom:65px;transform:translateX(-50%);font-size:var(--t-caption);opacity:.7;border-bottom:1px solid #fff4;padding:3px 0}.joystick,.touch-look{display:none}.atlas-map{background:#143c4355;backdrop-filter:blur(8px)}#player-marker circle{fill:var(--yellow);stroke:#fff5c2;stroke-width:1.5}#player-marker path{fill:var(--yellow);stroke:none}body[data-mode=walk] .landmark .landmark-label{background:#173e4180;border-color:#f5edbb30;padding:7px 11px}body[data-mode=walk] .landmark strong{font-size:var(--t-caption)}body[data-mode=walk] .landmark small{display:none}body[data-mode=walk] .landmark .beacon{width:24px;height:24px}body[data-mode=walk] .landmark .beacon:after{height:20px;top:23px}body[data-mode=walk] #arrival{display:none}body[data-mode=map] .walk-hud{display:none}body[data-mode=map] .arrival{visibility:visible!important;opacity:1!important;transform:none!important}body[data-mode=map] #journal{display:none}body[data-mode=walk] .journal{bottom:115px;z-index:5}.journal-top button{padding:5px}.vignette{background:linear-gradient(180deg,rgba(14,39,48,.36),transparent 24%,transparent 68%,rgba(8,33,38,.45))}
@media(max-width:760px){.walking-intro{left:24px;bottom:205px}.walking-intro h1{font-size:33px}.walking-intro p{font-size:var(--t-caption);margin-top:12px}.walking-intro .mini-label{font-size:var(--t-caption)}.joystick{display:block;pointer-events:auto;position:absolute;left:27px;bottom:88px;width:108px;height:108px;border-radius:50%;border:1px solid #ffefb955;background:#123d4388;backdrop-filter:blur(8px);touch-action:none;user-select:none}.stick-directions{position:absolute;inset:12px;text-align:center;line-height:27px;font-size:var(--t-small);opacity:.4}#stick-thumb{position:absolute;left:34px;top:34px;width:38px;height:38px;border-radius:50%;background:#f8dc5b99;border:1px solid #ffeab5;box-shadow:0 4px 12px #10252c33}.joystick small{position:absolute;left:0;right:0;bottom:-21px;text-align:center;font-size:var(--t-caption);letter-spacing:2px;opacity:.6}.touch-look{display:block;position:absolute;right:27px;bottom:92px;font-size:var(--t-caption);opacity:.7}.mouse-look{display:none}.discover{left:auto;right:20px;bottom:133px;transform:none;max-width:208px;padding:12px 15px;gap:8px;font-size:var(--t-caption);white-space:normal}.discover kbd{display:none}.discover span{max-width:148px;text-align:left}#walking-route{bottom:135px;left:auto;right:20px;transform:none;max-width:210px;align-items:flex-end;text-align:right;font-size:var(--t-caption)}body[data-mode=walk] .journal{bottom:220px;max-height:51svh}body[data-mode=walk] .atlas{top:85px;bottom:auto;right:12px}body[data-mode=walk] .landmark strong{font-size:var(--t-caption)}.controls-note{max-width:330px;white-space:normal;text-align:center;font-size:var(--t-caption)}.utility kbd{display:none}body[data-mode=walk] .world-title{display:none}body[data-mode=map] .atlas{top:auto;bottom:90px}.header-tools{gap:8px}body[data-mode=map] #arrival{bottom:160px;max-width:60%}.arrival h1{font-size:28px}.atlas-map{background:#143c4355}}
@media(pointer:coarse) and (min-width:761px){.joystick{display:block;pointer-events:auto;position:absolute;left:40px;bottom:90px;width:108px;height:108px;border-radius:50%;border:1px solid #fff6;background:#123d4388;touch-action:none}#stick-thumb{position:absolute;left:34px;top:34px;width:38px;height:38px;border-radius:50%;background:#f8dc5b99}.stick-directions,.joystick small{display:none}.mouse-look{display:none}}

/* Reflections live in the places; the pocket trail keeps choices within reach. */
.discovery-trigger{position:fixed;z-index:7;left:35px;top:100px;display:flex;align-items:center;gap:12px;border:1px solid #e6dfb855;background:#173b40c9;border-radius:30px;padding:10px 16px;backdrop-filter:blur(15px);box-shadow:0 5px 24px #0e2a3322;font-size:var(--t-caption)}.discovery-trigger small{font-size:var(--t-caption);color:#d7dfd5}.discovery-seeds{display:flex;gap:5px}.discovery-seeds i{font-style:normal;color:#c7d8cc55;font-size:var(--t-body)}.discovery-seeds i.answered{color:var(--yellow)}.atlas-map button.answered i{box-shadow:0 0 0 3px #173e41,0 0 0 4px var(--yellow)}.landmark.answered .beacon{border-color:var(--yellow);background:#6a713966}.home-discovery{margin-top:20px}.journal{max-height:calc(100svh - 245px);overflow:auto;scrollbar-width:thin;scrollbar-color:#bfc9a766 transparent}.journal:has(#reflection:not([hidden])){width:360px;max-width:360px}.journal h2{font-size:32px}#place-story{margin-top:20px;padding-top:13px;border-top:1px solid #f1efdb30}#place-story summary{cursor:pointer;font-size:var(--t-caption);opacity:.65}#place-story[open] summary{margin-bottom:12px}#place-story p{font-size:var(--t-caption);line-height:1.85;color:#e3e9d9d9}#place-story .journal-actions{margin-top:18px}.reflection-hint{font-size:var(--t-caption);line-height:1.7;opacity:.75;margin:12px 0 16px}.reflection-options{display:grid;gap:7px}.reflection-choice{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;text-align:left;padding:12px 13px;border:1px solid #eceac52b;border-radius:5px;background:#ffffff07;transition:background .2s,border-color .2s}.reflection-choice:hover{background:#fff1bd13;border-color:#f8dc5b88}.reflection-choice strong{display:block;font-size:var(--t-caption);font-weight:600}.reflection-choice small{display:block;font-size:var(--t-caption);line-height:1.6;margin-top:5px;opacity:.65}.choice-mark{color:var(--yellow);font-size:var(--t-body)}.reflection-choice[aria-pressed=true]{border-color:#f8dc5bbb;background:#f8dc5b19}.reflection-response{margin:15px 0;font-size:var(--t-caption);line-height:1.7;color:var(--yellow)}.reflection-next{width:100%;margin-top:6px;padding:12px 15px;text-align:left;font-size:var(--t-caption)}.reflection-privacy{font-size:var(--t-caption);line-height:1.7;opacity:.55;margin-top:16px}.reflection-choice:focus-visible{outline-offset:2px}.journal[hidden]~.discover{display:flex}#discovery-dialog{width:650px;padding:46px;scrollbar-width:thin;background:#eef0df;background-image:radial-gradient(ellipse at top right,#f8dc5b50,transparent 56%)}#discovery-dialog h2{font-size:43px;max-width:510px}#discovery-dialog .mini-label{font-size:var(--t-caption);letter-spacing:1.3px}#discovery-dialog .close{right:14px;top:14px}#discovery-dialog .reflection-privacy{margin-top:20px}#discovery-dialog .reflection-hint{margin-top:20px;font-size:var(--t-caption)}#discovery-dialog .reflection-choice{border-color:#233d3e30;background:#ffffff22;padding:14px 16px}#discovery-dialog .reflection-choice strong{font-size:var(--t-caption)}#discovery-dialog .reflection-choice small{font-size:var(--t-caption)}#discovery-dialog .reflection-choice[aria-pressed=true]{background:#f6dd70;border-color:#a79547}#discovery-dialog .reflection-response{color:#496345}#discovery-dialog .choice-mark{color:#52685b}#discovery-dialog .text-link{margin-top:20px}.trail-intro{font-size:var(--t-caption);line-height:1.8;margin-top:18px;max-width:470px;opacity:.8}.discovery-stations{margin-top:26px}.discovery-station{display:grid;grid-template-columns:38px 1fr auto;gap:13px;padding:21px 0;border-top:1px solid #233d3e25;align-items:center}.station-symbol{font-size:31px;color:#69816c}.discovery-station.complete .station-symbol{color:#a08619}.discovery-station small{font-size:var(--t-caption);margin:0 0 7px;opacity:.65}.discovery-station strong{font:500 21px Bricolage,Arial,sans-serif;letter-spacing:-.5px}.discovery-station p{font-size:var(--t-caption);line-height:1.6;margin-top:6px;opacity:.7}.station-actions{display:flex;flex-direction:column;gap:9px;align-items:flex-end;min-width:87px}.station-actions button{font-size:var(--t-caption)}.station-actions .text-link{font-size:var(--t-caption)!important;margin:0!important;opacity:.65}.trail-mode{margin-right:25px}.trail-reset{margin-left:25px;opacity:.65}.result-perspective{font-size:var(--t-caption);line-height:1.7;margin-top:18px;opacity:.7}.result-offer{margin-top:22px;border-left:2px solid #b9a12b;padding:0 0 0 20px}.result-offer small{font-size:var(--t-caption);letter-spacing:1.1px}.result-offer h3{font:550 25px/1.15 Bricolage,Arial,sans-serif;letter-spacing:-.6px;margin:10px 0}.result-offer p{font-size:var(--t-caption);line-height:1.8;opacity:.8}.result-services{display:flex;gap:12px;flex-wrap:wrap;margin-top:13px;font-size:var(--t-caption);color:#536b5b}.result-services span{border-bottom:1px solid #536b5b55;padding-bottom:5px}.result-trace{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:25px 0}.result-trace>div{border-top:1px solid #233d3e22;padding-top:12px}.result-trace span{display:block;font-size:23px;color:#81905b}.result-trace small{font-size:var(--t-caption);margin-top:6px}.result-trace strong{display:block;font-size:var(--t-caption);font-weight:600;line-height:1.6;margin-top:6px}.result-context{font-size:var(--t-caption);line-height:1.8;opacity:.8}.result-actions{display:flex;align-items:center;flex-wrap:wrap;gap:19px}#discovery-dialog .result-actions .text-link{font-size:var(--t-caption)}.direct-reflection+.text-link{display:inline-block}.journal:has(#reflection:not([hidden]))~#show-journal{display:none}
@media(max-width:760px){.discovery-trigger{top:80px;left:20px;right:132px;padding:9px 12px;gap:8px;flex-wrap:wrap;border-radius:12px;max-width:250px}.discovery-trigger .discovery-seeds{gap:4px}.discovery-trigger .discovery-seeds i{font-size:var(--t-small)}#discovery-label{font-size:var(--t-caption);flex-basis:calc(100% - 66px)}.discovery-trigger small{font-size:var(--t-caption)}.journal:has(#reflection:not([hidden])){width:auto;max-width:none}body[data-mode=walk] .journal{bottom:91px;max-height:calc(100svh - 260px);padding:19px 21px}body:has(.journal:not([hidden])) .joystick,body:has(.journal:not([hidden])) .touch-look,body:has(.journal:not([hidden])) #discover,body:has(.journal:not([hidden])) .mouse-look{visibility:hidden}.journal h2{font-size:29px}.reflection-choice{padding:11px 12px}.reflection-choice strong{font-size:var(--t-caption)}.reflection-choice small{font-size:var(--t-caption)}.reflection-hint{font-size:var(--t-caption);margin:10px 0 12px}.reflection-response{font-size:var(--t-caption);margin:12px 0}.reflection-privacy{font-size:var(--t-caption);margin-top:12px}#place-story{margin-top:15px;padding-top:12px}#discovery-dialog{padding:43px 25px 26px;max-height:90svh;width:calc(100vw - 28px);max-width:none}#discovery-dialog h2{font-size:34px}.discovery-station{grid-template-columns:26px 1fr;gap:10px;padding:16px 0}.station-symbol{font-size:25px}.discovery-station strong{font-size:20px}.station-actions{grid-column:2;flex-direction:row;align-items:center;gap:24px;margin-top:2px}.trail-intro{font-size:var(--t-caption)}.discovery-stations{margin-top:20px}.result-trace{gap:12px;margin:20px 0}.result-trace strong{font-size:var(--t-caption)}.result-offer{padding-left:15px}.result-offer h3{font-size:23px}.result-offer p{font-size:var(--t-caption)}.result-actions{gap:0;align-items:flex-start;flex-direction:column}#discovery-dialog .result-actions .text-link{margin-top:16px}.trail-reset{margin-left:20px}.trail-mode{margin-right:0}#discovery-dialog .reflection-choice strong{font-size:var(--t-caption)}#discovery-dialog .reflection-choice small{font-size:var(--t-caption)}.walking-intro{bottom:230px}}
@media(min-width:761px){body[data-mode=walk] .journal{bottom:95px;max-height:calc(100svh - 260px)}body:has(.journal:not([hidden])) .mouse-look{visibility:hidden}.journal h2{font-size:30px}.journal:has(#reflection:not([hidden])){width:370px;max-width:370px}}
@media(max-width:760px){.discovery-trigger{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;padding:11px 12px}.discovery-trigger .discovery-seeds{grid-row:1/3}.discovery-trigger #discovery-label{grid-column:2}.discovery-trigger small{grid-column:2}.discovery-trigger .discovery-seeds i{font-size:var(--t-body)}}
/* The table is the primary choice interface. Labels stay attached to its objects. */
.object-experience{position:absolute;inset:0;pointer-events:none;z-index:5}.object-heading{position:absolute;top:155px;left:50%;transform:translateX(-50%);text-align:center;width:min(90vw,620px);text-shadow:0 3px 24px #15393d}.object-heading>span{font-size:var(--t-caption);color:var(--yellow)}.object-heading h2{font:500 37px/1.07 Bricolage,Arial,sans-serif;letter-spacing:-1.3px;margin-top:9px;outline:none}.object-heading p{font-size:var(--t-caption);margin-top:10px;color:#e4ead8}.object-anchor{position:absolute;top:0;left:0;pointer-events:auto;width:155px;min-height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0;color:var(--ivory);text-shadow:0 2px 7px #112d33;will-change:transform}.object-hit{width:64px;height:64px;border:1px solid transparent;border-radius:50%;display:block;margin-bottom:22px;transition:border .15s}.object-name{font:550 var(--t-body) Bricolage,Arial,sans-serif;background:#143f43d9;border:1px solid #e5dfb947;border-radius:4px;padding:5px 10px;white-space:nowrap}.object-anchor small{font-size:var(--t-caption);line-height:1.5;background:#143f43c9;padding:3px 7px;border-radius:0 0 4px 4px;white-space:nowrap}.object-anchor:hover .object-hit,.object-anchor:focus-visible .object-hit{border-color:#fff0b199;box-shadow:0 0 25px #ffe98a33}.object-anchor[aria-pressed=true] .object-name{background:var(--yellow);color:var(--ink);text-shadow:none}.object-anchor[aria-pressed=true] .object-name:after{content:' ✓';font-size:var(--t-caption)}.object-reply{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);width:min(590px,70vw);padding:16px 20px;border:1px solid #e5dfb936;border-radius:9px;background:#123a40eb;backdrop-filter:blur(15px);display:flex;align-items:center;gap:18px;pointer-events:auto}.object-reply strong{font:500 var(--t-body) Bricolage,Arial,sans-serif;color:var(--yellow)}.object-reply p{font-size:var(--t-caption);line-height:1.75;margin-top:6px}.object-reply .experience{flex-shrink:0;max-width:220px;text-align:left;font-size:var(--t-caption);padding:12px 15px}.object-tools{position:absolute;left:35px;bottom:95px;display:flex;flex-direction:column;align-items:flex-start;gap:14px;pointer-events:auto}.object-tools>span{font-size:var(--t-caption);opacity:.55}.choice-object-name{display:block;font-style:normal;font-size:var(--t-caption);color:#8b7c3a;margin-bottom:5px}body[data-choosing=true] #walk-hud,body[data-choosing=true] #landmarks,body[data-choosing=true] .controls-note{visibility:hidden}body[data-choosing=true] .atlas{opacity:.45;pointer-events:none}body[data-choosing=true] #world canvas{cursor:pointer}body[data-choosing=true] .vignette{background:linear-gradient(#0f343e55,transparent 35%,transparent 65%,#0c2d3855)}
@media(max-width:1000px) and (min-width:761px){.object-tools{bottom:240px;left:25px}.object-reply{width:70vw}.object-heading{top:166px}.object-heading h2{font-size:32px}}
@media(max-width:760px){.object-heading{top:162px;width:calc(100vw - 40px)}.object-heading h2{font-size:28px;letter-spacing:-.8px;margin-top:8px}.object-heading p{font-size:var(--t-caption);margin-top:8px}.object-heading>span{font-size:var(--t-caption)}.object-anchor{width:104px;min-height:98px}.object-hit{width:56px;height:56px;margin-bottom:12px}.object-name{font-size:var(--t-caption);padding:5px 7px;max-width:100px;white-space:normal}.object-anchor small{font-size:var(--t-caption);white-space:normal;max-width:100px;padding:3px 5px}.object-reply{bottom:110px;left:16px;right:16px;transform:none;width:auto;display:block;padding:13px 15px}.object-reply strong{font-size:var(--t-body)}.object-reply p{font-size:var(--t-caption);line-height:1.6;margin-top:5px}.object-reply .experience{margin-top:10px;max-width:none;width:100%;font-size:var(--t-caption);padding:10px 14px}.object-tools{bottom:70px;left:20px;right:20px;flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.object-tools .utility{padding:8px 12px}.object-tools>span{display:none}body[data-choosing=true] .atlas{display:none}body[data-choosing=true] .discovery-trigger{right:20px;width:max-content;max-width:calc(100vw - 40px);display:flex;border-radius:30px;flex-wrap:nowrap}body[data-choosing=true] #discovery-label{flex-basis:auto}}
@media(max-height:650px){.object-heading{top:140px}.object-heading h2{font-size:25px}.object-heading p{display:none}.object-reply{bottom:70px;padding:10px 15px}.object-tools{bottom:210px}}

body[data-choosing=true] #landmarks{display:none}.object-experience[data-selected=true] .object-heading{visibility:hidden}

.result-next-step{margin-top:20px;padding:18px 20px;background:#e4d78a55;border:1px solid #b9a12b44;border-radius:6px}.result-next-step small{font-size:var(--t-caption);letter-spacing:1px;margin:0}.result-next-step h3{font:550 23px Bricolage,Arial,sans-serif;margin:9px 0}.result-next-step p{font-size:var(--t-caption);line-height:1.8}.result-trace{grid-template-columns:repeat(auto-fit,minmax(85px,1fr));gap:12px}
@media(max-width:760px){.discovery-trigger .discovery-seeds{gap:3px}.discovery-trigger .discovery-seeds i{font-size:var(--t-caption)}.object-tools{gap:8px}.object-tools .text-link{font-size:var(--t-caption)}}

/* The camera travels through the islands while the story stays out of its way. */
body[data-welcome=true]>header,body[data-welcome=true]>main,body[data-welcome=true]>.atlas,body[data-welcome=true]>footer,body[data-welcome=true]>.discovery-trigger{visibility:hidden;pointer-events:none}
body[data-welcome=true] #world canvas{cursor:default}
#welcome{position:fixed;inset:0;z-index:12;color:var(--ivory);overflow:hidden}
.welcome-shade{position:absolute;inset:0;background:linear-gradient(90deg,#102f35ec, #143a40b3 34%,transparent 72%),linear-gradient(0deg,#102d34e6,transparent 45%,transparent 80%,#102d3470);pointer-events:none}
.welcome-top{position:absolute;top:32px;left:4.5vw;right:4.5vw;display:flex;align-items:center;justify-content:space-between;z-index:2}
.welcome-brand{display:flex;align-items:center;gap:11px;font:650 23px/.94 Bricolage,Arial,sans-serif;letter-spacing:-.7px}.welcome-brand svg{width:37px;height:43px;color:var(--yellow);transform:rotate(-9deg)}
.welcome-tools{display:flex;align-items:center;gap:30px}.welcome-tools button{font-size:var(--t-caption);padding:10px 0;border-bottom:1px solid #f1efdb55}.welcome-tools #welcome-motion{border:0;opacity:.8}
#welcome-reading{position:absolute;left:6vw;bottom:140px;width:min(46vw,540px);max-height:calc(100svh - 260px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#d7d9aa55 transparent;padding:8px 16px 12px 0}
#welcome-eyebrow{font-size:var(--t-caption);color:#e9d981;margin-bottom:17px}#welcome-heading{font:500 clamp(42px,5vw,76px)/1.01 Bricolage,Arial,sans-serif;letter-spacing:-.05em;white-space:pre-line;outline:none}
#welcome-copy{font-size:var(--t-body);line-height:1.8;margin-top:22px;max-width:410px;color:#e9ead6}#welcome-note{font-size:var(--t-caption);line-height:1.8;max-width:400px;margin-top:18px;color:#dce2c8c9}
#welcome-autoplay{font-size:var(--t-caption);line-height:1.6;color:#dce2c8a6;margin-top:22px}.welcome-actions{display:flex;align-items:center;gap:24px;margin-top:18px}#welcome-next{display:inline-flex;align-items:center;padding:15px 23px;background:var(--yellow);color:var(--ink);border-radius:50px;font-size:var(--t-caption);font-weight:650}#welcome-next:hover{background:#ffeaa0}#welcome-next:disabled{opacity:.4}#welcome-back{font-size:var(--t-caption);border-bottom:1px solid #f1efdb55;padding:8px 0}
.welcome-bottom{position:absolute;bottom:34px;left:6vw;right:4.5vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #edf0d72b;padding-top:20px;gap:20px}.welcome-bottom nav{display:flex;gap:28px}.welcome-bottom button{font-size:var(--t-caption);padding:6px 0;color:#dbe4d19c}.welcome-bottom button[aria-current=step]{color:var(--yellow);border-top:2px solid var(--yellow);margin-top:-2px}#welcome-page{font-size:var(--t-caption);opacity:.6;white-space:nowrap}
.welcome-location{position:absolute;right:5vw;bottom:160px;padding-left:23px;text-shadow:0 2px 12px #102c35;max-width:300px}.welcome-location-dot{position:absolute;left:0;top:6px;width:6px;height:6px;background:var(--yellow);border-radius:50%;box-shadow:0 0 0 6px #f8dc5b22}.welcome-location strong{font:500 23px Bricolage,Arial,sans-serif;letter-spacing:-.5px}.welcome-location p{font-size:var(--t-caption);margin-top:8px;opacity:.75}
#welcome-choices{display:grid;gap:9px;margin-top:20px}.welcome-choice{display:flex;align-items:center;gap:16px;text-align:left;padding:12px 14px;border:1px solid #e7e4bc44;border-radius:8px;background:#13363bb8}.welcome-choice:hover{border-color:#f8dc5b99;background:#214b4ddd}.welcome-choice[aria-pressed=true]{border-color:var(--yellow);background:#52603ad9}.welcome-choice-orb{flex:0 0 48px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;font:500 24px Bricolage,Arial,sans-serif;color:var(--object-color);background:radial-gradient(circle at 30% 25%,#ffffff65,transparent 35%),radial-gradient(circle at 55% 70%,#ffffff20,#ffffff05 65%);border:1px solid var(--object-color);box-shadow:inset 0 0 15px #ffffff15;transition:transform .25s}.welcome-choice[aria-pressed=true] .welcome-choice-orb{transform:translateY(-4px);box-shadow:0 6px 20px #0003,inset 0 0 15px #ffffff25}.welcome-choice-copy{display:grid;gap:4px}.welcome-choice-copy small{font-size:var(--t-caption);color:#e8d88f}.welcome-choice-copy strong{font-size:var(--t-caption);font-weight:650}.welcome-choice-copy>span{font-size:var(--t-caption);line-height:1.6;color:#dee6d2b8}
#welcome[data-phase=choices] #welcome-heading{font-size:clamp(30px,3.2vw,46px)}#welcome[data-phase=choices] #welcome-copy{font-size:var(--t-caption);margin-top:12px}#welcome[data-phase=choices] #welcome-reading{bottom:112px;max-height:calc(100svh - 220px)}#welcome[data-phase=choices] #welcome-autoplay{margin-top:14px}#welcome[data-phase=choices] .welcome-actions{margin-top:12px}
#welcome[data-phase=landing] #welcome-heading{font-size:clamp(38px,4.4vw,64px)}#welcome-landing{border-left:2px solid var(--yellow);padding-left:17px;margin-top:22px}#welcome-landing small{font-size:var(--t-caption);color:#dddcb6}#welcome-landing strong{display:block;font:500 24px Bricolage,Arial,sans-serif;margin-top:8px}#welcome-landing p{font-size:var(--t-caption);line-height:1.7;margin-top:8px;color:#dce2c8}
#welcome.entering{pointer-events:none}#welcome.entering>*{opacity:0;transition:opacity .65s}#welcome.entering .welcome-shade{transition:opacity 1.8s}.header-tools #welcome-replay{background:#173b4077}
@media(min-width:761px) and (max-height:760px){#welcome-reading{bottom:105px;max-height:calc(100svh - 210px)}#welcome-heading{font-size:48px}#welcome-copy{font-size:var(--t-caption);margin-top:17px}#welcome-note{margin-top:12px}#welcome-autoplay{margin-top:15px}.welcome-bottom{bottom:25px;padding-top:15px}.welcome-top{top:24px}#welcome[data-phase=choices] #welcome-reading{bottom:95px;max-height:calc(100svh - 195px)}#welcome[data-phase=choices] #welcome-heading{font-size:32px}.welcome-choice{padding:9px 12px}.welcome-choice-orb{width:40px;height:40px;flex-basis:40px}#welcome-choices{gap:7px;margin-top:14px}}
@media(max-width:760px){.welcome-top{top:22px;left:22px;right:22px}.welcome-brand{font-size:var(--t-body);gap:7px;flex-shrink:0}.welcome-brand svg{width:28px;height:33px}.welcome-tools{gap:14px}.welcome-tools button{font-size:var(--t-caption)}.welcome-tools #welcome-motion{font-size:var(--t-caption)}.welcome-shade{background:linear-gradient(0deg,#102f35 0%,#102f35f2 30%,#143a4099 52%,transparent 78%),linear-gradient(180deg,#102d3480,transparent 25%)}#welcome-reading{left:25px;right:23px;bottom:104px;max-height:53svh;width:auto;padding:8px 5px 12px 0}#welcome-eyebrow{font-size:var(--t-caption);margin-bottom:12px}#welcome-heading{font-size:clamp(37px,10vw,60px)}#welcome-copy{font-size:var(--t-caption);line-height:1.75;margin-top:16px}#welcome-note{font-size:var(--t-caption);margin-top:12px}#welcome-autoplay{font-size:var(--t-caption);margin-top:15px}.welcome-actions{margin-top:17px;gap:20px}#welcome-next{font-size:var(--t-caption);padding:13px 19px}.welcome-location{top:18%;bottom:auto;right:23px;max-width:200px}.welcome-location strong{font-size:var(--t-body)}.welcome-location p{font-size:var(--t-caption);line-height:1.6;margin-top:5px}.welcome-location-dot{top:4px;width:5px;height:5px}.welcome-bottom{left:25px;right:25px;bottom:24px;padding-top:14px}.welcome-bottom nav{width:100%;display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.welcome-bottom button{font-size:var(--t-caption);line-height:1.5;text-align:left}#welcome-page{display:none}#welcome[data-phase=choices] #welcome-reading{bottom:92px;max-height:66svh}#welcome[data-phase=choices] #welcome-heading{font-size:30px}#welcome[data-phase=choices] .welcome-location{top:13%}#welcome[data-phase=choices] .welcome-shade{background:linear-gradient(0deg,#102f35 15%,#102f35ed 55%,#143a4077 77%,transparent)}.welcome-choice{padding:10px 12px;gap:13px}.welcome-choice-orb{width:39px;height:39px;flex-basis:39px;font-size:21px}.welcome-choice-copy strong{font-size:var(--t-caption)}.welcome-choice-copy>span{font-size:var(--t-caption)}#welcome-choices{gap:8px;margin-top:15px}#welcome[data-phase=landing] #welcome-heading{font-size:38px}#welcome-landing strong{font-size:22px}.header-tools #welcome-replay{font-size:var(--t-caption);padding:9px 10px}.header-tools{gap:7px}}
@media(max-height:600px){.welcome-location{display:none}#welcome-reading,#welcome[data-phase=choices] #welcome-reading{top:100px;bottom:85px;max-height:none}.welcome-bottom{bottom:15px;padding-top:10px}.welcome-top{top:17px}#welcome-heading{font-size:35px}}

/* Josh hosts the conversation beside the visitor's view of the table. */
#welcome:not([data-phase=tour]){pointer-events:none}
#welcome:not([data-phase=tour]) .welcome-top,#welcome:not([data-phase=tour]) #welcome-reading{pointer-events:auto}
#welcome:not([data-phase=tour]) .welcome-shade{background:linear-gradient(90deg,transparent 40%,#102f3560 70%,#102f35aa),linear-gradient(180deg,#102d3466,transparent 25%)}
#welcome:not([data-phase=tour]) .welcome-bottom,#welcome:not([data-phase=tour]) .welcome-location{display:none}
#welcome:not([data-phase=tour]) #welcome-reading{left:auto;right:4vw;top:112px;bottom:auto;width:min(38vw,450px);max-height:calc(100svh - 142px);padding:25px;background:#11383df0;border:1px solid #dfe8cf33;border-radius:12px;box-shadow:0 20px 70px #0c272c40;backdrop-filter:blur(16px)}
#welcome:not([data-phase=tour]) #welcome-eyebrow{font-size:var(--t-caption);letter-spacing:.5px;margin-bottom:12px}
#welcome:not([data-phase=tour]) #welcome-heading{font-size:clamp(27px,2.7vw,37px);line-height:1.08;letter-spacing:-.035em}
#welcome:not([data-phase=tour]) #welcome-copy{font-size:var(--t-caption);line-height:1.75;margin-top:13px}
#welcome:not([data-phase=tour]) #welcome-choices{gap:7px;margin-top:17px}
#welcome:not([data-phase=tour]) .welcome-choice{padding:11px 12px;gap:12px;background:#ffffff05}
#welcome:not([data-phase=tour]) .welcome-choice[aria-pressed=true]{background:#f8dc5b1a}
#welcome:not([data-phase=tour]) .welcome-choice-orb{width:32px;height:32px;flex-basis:32px;font-size:var(--t-body)}
#welcome:not([data-phase=tour]) .welcome-choice-copy{gap:3px}
#welcome:not([data-phase=tour]) .welcome-choice-copy strong{font-size:var(--t-caption)}
#welcome:not([data-phase=tour]) .welcome-choice-copy>span{font-size:var(--t-caption)}
.josh-response{border-left:2px solid var(--yellow);padding-left:12px;margin-top:17px;font-size:var(--t-caption);line-height:1.8;color:#f2e5ad}
#welcome:not([data-phase=tour]) #welcome-autoplay{font-size:var(--t-caption);margin-top:17px;max-width:300px}
#welcome:not([data-phase=tour]) .welcome-actions{margin-top:16px;gap:20px}
#welcome:not([data-phase=tour]) #welcome-next{font-size:var(--t-caption);padding:13px 18px}
.welcome-object-targets{position:absolute;inset:0;pointer-events:none}
.welcome-object-targets .object-anchor{width:110px;min-height:80px}
.welcome-object-targets .object-hit{height:42px;width:42px;margin-bottom:10px}
.welcome-object-targets .object-name{font-size:var(--t-caption);padding:4px 8px}
.welcome-object-targets .object-anchor small{display:none}
#welcome.entering *{pointer-events:none!important}
@media(max-aspect-ratio:1/1){
  #welcome:not([data-phase=tour]) .welcome-top{top:20px;left:20px;right:20px;align-items:flex-start}
  #welcome:not([data-phase=tour]) .welcome-tools{gap:12px;max-width:210px;justify-content:flex-end;flex-wrap:wrap}
  #welcome:not([data-phase=tour]) .welcome-tools button{font-size:var(--t-caption);padding:4px 0}
  #welcome:not([data-phase=tour]) .welcome-shade{background:linear-gradient(0deg,#102f3580,transparent 60%),linear-gradient(180deg,#102d3470,transparent 22%)}
  #welcome:not([data-phase=tour]) #welcome-reading{left:16px;right:16px;top:auto;bottom:16px;width:auto;max-height:48svh;padding:19px 20px}
  #welcome:not([data-phase=tour]) #welcome-heading{font-size:27px}
  #welcome:not([data-phase=tour]) #welcome-eyebrow{font-size:var(--t-caption);margin-bottom:9px}
  #welcome:not([data-phase=tour]) #welcome-copy{font-size:var(--t-caption);line-height:1.65;margin-top:10px}
  #welcome:not([data-phase=tour]) #welcome-choices{margin-top:12px;gap:6px}
  #welcome:not([data-phase=tour]) .welcome-choice{padding:9px 10px;gap:10px}
  #welcome:not([data-phase=tour]) .welcome-choice-copy>span{display:none}
  #welcome:not([data-phase=tour]) .welcome-choice-copy small{font-size:var(--t-caption)}
  #welcome:not([data-phase=tour]) .welcome-choice-copy strong{font-size:var(--t-caption)}
  #welcome:not([data-phase=tour]) .welcome-choice-orb{width:27px;height:27px;flex-basis:27px;font-size:var(--t-small)}
  #welcome:not([data-phase=tour]) #welcome-autoplay{margin-top:12px;font-size:var(--t-caption)}
  #welcome:not([data-phase=tour]) .welcome-actions{margin-top:12px}
  #welcome:not([data-phase=tour]) #welcome-next{font-size:var(--t-caption);padding:11px 15px}
  .josh-response{margin-top:12px;font-size:var(--t-caption);line-height:1.65}
  .welcome-object-targets .object-anchor{width:90px;min-height:70px}
  .welcome-object-targets .object-name{font-size:var(--t-caption);padding:4px 6px}
}

#welcome:not([data-phase=tour]) .welcome-actions{position:sticky;bottom:-25px;padding:13px 0 9px;background:#11383d;box-shadow:0 -12px 16px #11383deb;z-index:2}
@media(max-aspect-ratio:1/1){#welcome:not([data-phase=tour]) .welcome-actions{bottom:-19px;padding:10px 0 6px}}
#welcome:not([data-phase=tour]) #welcome-reading{scroll-padding-bottom:80px}
#welcome[data-phase=choices][data-answer=true] #welcome-copy{display:none}
#welcome:not([data-phase=tour]) #welcome-reading{z-index:1}

/* Josh's summary: every return to the table shows what he knows and one primary contact action. */
.header-tools .talk{background:var(--yellow);color:var(--ink);border-color:var(--yellow);font-weight:700}
.welcome-primary{display:inline-flex;align-items:center;padding:15px 23px;background:var(--yellow);color:var(--ink);border-radius:50px;font-size:var(--t-caption);font-weight:650}.welcome-primary:hover{background:#ffeaa0}
.welcome-summary .result-offer{border-left-color:var(--yellow);margin-top:18px}.welcome-summary .result-offer small,.welcome-summary .result-next-step small{color:#e8d88f;letter-spacing:.5px}.welcome-summary .result-services{color:#dce2c8}.welcome-summary .result-services span{border-color:#dce2c855}
.welcome-summary .result-next-step{background:#f8dc5b14;border-color:#f8dc5b44}
.summary-empty{font-size:var(--t-caption);line-height:1.75;margin-top:14px}
.summary-choices{list-style:none;margin:20px 0 0;padding:0}.summary-choices li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 0;border-top:1px solid #f1efdb22}.summary-choices .station-symbol{font-size:19px;color:#a4b8a8}.summary-choices li.chosen .station-symbol{color:var(--yellow)}.summary-choices small{display:block;font-size:var(--t-caption);opacity:.7;margin:0}.summary-choices strong{display:block;font-size:var(--t-caption);font-weight:600;margin-top:3px}.summary-choices li:not(.chosen) strong{opacity:.6;font-weight:500}
.summary-choices .text-link{padding:10px 0;margin:0}
.summary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:16px}.summary-actions a,.summary-actions button{font-size:var(--t-caption);margin:0!important}.summary-phone{font-weight:650;border-bottom:1px solid currentColor;padding:8px 0}
#discovery-dialog .summary-choices li{border-color:#233d3e22}#discovery-dialog .summary-choices .station-symbol{color:#69816c}#discovery-dialog .summary-choices li.chosen .station-symbol{color:#a08619}#discovery-dialog .result-actions .experience{margin-top:20px}
#contact-summary{display:block;margin-top:22px}

/* Studio type scale (Jay, 29 Oct 2026): Apple iPhone defaults as web pixels, nothing under 13px.
   Defined here from the documented values; the template file was not on the approved portal branch. */
:root{--t-display:clamp(34px, 25.54px + 2.115vw, 56px);--t-h1:clamp(28px, 23.38px + 1.154vw, 40px);--t-h2:clamp(22px, 18.92px + .769vw, 30px);--t-h3:clamp(20px, 19.23px + .192vw, 22px);--t-h4:17px;--t-body:17px;--t-small:15px;--t-caption:13px}

/* The content layer: readable without JavaScript or WebGL, and on request as a page. */
.skip-link{position:fixed;left:16px;top:-80px;z-index:30;background:var(--yellow);color:var(--ink);padding:12px 18px;border-radius:30px;font:700 var(--t-small) Manrope,Arial,sans-serif}.skip-link:focus{top:16px}
#site-content{display:none;position:fixed;inset:0;z-index:25;overflow-y:auto;background:#f1efdb;color:var(--ink);font:var(--t-body)/1.6 Manrope,Arial,sans-serif;padding:max(24px,env(safe-area-inset-top)) 16px 48px;outline:none}
#site-content>*{max-width:720px;margin-left:auto;margin-right:auto}
html:not(.js) #site-content,html.load-failed #site-content,body[data-view=page] #site-content{display:block}
html:not(.js) body>*:not(#site-content),html.load-failed body>*:not(#site-content):not(.skip-link){display:none!important}
html:not(.js) body,html.load-failed body{overflow:auto}
.page-notice{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:#233d3e;color:var(--ivory);border-radius:10px;padding:14px 16px;font-size:var(--t-small)}
body[data-view=page] .page-notice{background:#e4dfb8;color:var(--ink)}
#page-retry{display:none}html.load-failed #page-retry,body[data-view=page][data-world=failed] #page-retry{display:inline-flex}
.page-head{margin-top:36px}.page-brand{font:650 var(--t-h3)/1 Bricolage,Arial,sans-serif;letter-spacing:-.5px}
#site-content h1{font:500 var(--t-display)/1.05 Bricolage,Arial,sans-serif;letter-spacing:-.04em;margin-top:24px}
#site-content h2{font:500 var(--t-h2)/1.2 Bricolage,Arial,sans-serif;letter-spacing:-.02em;margin-top:48px}
#site-content h3{font:600 var(--t-h3)/1.25 Bricolage,Arial,sans-serif;margin:0}
#site-content p{margin:16px 0 0}.page-lede{font-size:var(--t-body);max-width:600px}
.page-actions{display:flex;flex-wrap:wrap;gap:12px}
.page-button{display:inline-flex;align-items:center;min-height:44px;padding:10px 20px;border-radius:30px;border:1px solid currentColor;font:650 var(--t-small) Manrope,Arial,sans-serif;color:inherit;background:none}
.page-button.primary{background:var(--yellow);border-color:var(--yellow);color:var(--ink)}
.page-service{margin-top:24px;padding:20px;border-radius:10px;background:#fffdf2;border:1px solid #233d3e1f}
.page-service dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;margin:14px 0 0}.page-service dt{font:700 var(--t-caption) Manrope,Arial,sans-serif;letter-spacing:.4px;text-transform:uppercase;padding-top:3px;color:#59705f}.page-service dd{margin:0;font-size:var(--t-body)}
@media(max-width:520px){.page-service dl{grid-template-columns:1fr;gap:2px}.page-service dd{margin-bottom:10px}}
.page-foot{margin-top:48px;font-size:var(--t-small);opacity:.8}.page-foot a{text-decoration:underline}

/* Reading copy at body size; controls at least 44px. */
#welcome #welcome-copy,#welcome .josh-response,#welcome-landing p,.summary-empty,.result-offer p,.result-next-step p,dialog>p,.journal>p,#place-story p,.object-reply p,.trail-intro,.page-lede{font-size:var(--t-body);line-height:1.6}
.reflection-hint,.result-perspective,#welcome-note,.welcome-choice-copy>span,.reflection-choice small,.discovery-station p{font-size:var(--t-small);line-height:1.55}
.utility,.circle,.experience,.welcome-primary,#welcome-next,.discover,#stop-walking,.reflection-choice,.welcome-choice,.menu-item,.place-list button,.summary-actions a,.summary-actions button,.station-actions button,.text-link,.welcome-tools button,#welcome-back,.mouse-look,.discovery-trigger,.object-tools .utility,.josh-greeting,.page-button,.journal-top button,dialog .close{min-height:44px}
.circle,dialog .close{min-width:44px}
.text-link,.welcome-tools button,#welcome-back,.station-actions button{display:inline-flex;align-items:center}
.utility{display:inline-flex;align-items:center;padding:0 18px;font-size:var(--t-small);gap:4px}
.header-tools{gap:10px}
body[data-mode=walk] #overview{display:none}
.atlas-map button{width:44px;height:44px}
.journal-top button{min-width:44px}
/* The menu replaces the scattered header and footer controls. */
#menu-dialog{width:min(92vw,520px);padding:40px 32px 32px}#menu-dialog h2{font-size:var(--t-h1)}
.menu-group{margin-top:24px}.menu-group h3{font:700 var(--t-caption) Manrope,Arial,sans-serif;letter-spacing:.6px;text-transform:uppercase;opacity:.65;margin:0 0 4px}
.menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;font-size:var(--t-body);padding:10px 0;border-top:1px solid #20474b22}.menu-item kbd{border-color:#233d3e44}
.menu-item[aria-pressed=true]{font-weight:700}
#menu-dialog .place-list{margin-top:0}#menu-dialog .place-list button span{font-size:var(--t-h3)}#menu-dialog .place-list button small{font-size:var(--t-small)}
footer{justify-content:center}
@media(max-width:760px){
  .atlas{display:none}
  header{top:max(14px,env(safe-area-inset-top));left:16px;right:16px}
  .header-tools{gap:6px}.utility{padding:0 14px}
  .brand span{display:none}
  .discovery-trigger{left:16px;top:72px;right:auto;max-width:calc(100vw - 32px)}
  .controls-note{font-size:var(--t-caption);bottom:max(12px,env(safe-area-inset-bottom))}
  footer{bottom:max(10px,env(safe-area-inset-bottom))}
}
.brand{min-height:44px;min-width:44px}.phone{display:flex;align-items:center;min-height:44px}
.object-anchor .object-name,.object-anchor small{white-space:normal;max-width:100%;overflow-wrap:anywhere}
#welcome-back{min-width:44px;justify-content:center;padding-left:6px;padding-right:6px}

/* Welcome: in the opening, pause and skip icons at the top and Contact Josh under Explore.
   At Josh's table, contact and skip at the top; voice and motion beside the panel's actions. */
#welcome .welcome-tools .welcome-icon{width:44px;height:44px;justify-content:center;padding:0;border:1px solid #f1efdb55;border-radius:50%;opacity:1;background:#13353b55;backdrop-filter:blur(15px)}
#welcome .welcome-tools .welcome-icon svg{width:18px;height:18px;fill:currentColor}
#welcome .welcome-tools .welcome-icon:hover{border-color:var(--yellow);color:var(--yellow)}
#welcome[data-phase=tour] .welcome-tools{gap:12px}
#welcome[data-phase=tour] .welcome-access #welcome-contact{text-decoration:underline;text-underline-offset:4px;opacity:1}
.welcome-access{display:flex;flex-wrap:wrap;gap:20px;margin-top:6px}.welcome-access button{font-size:var(--t-caption);min-height:44px;display:inline-flex;align-items:center;opacity:.85;border-bottom:0!important;padding:0!important}
#welcome:not([data-phase=tour]) .welcome-access{position:relative;z-index:2}
.welcome-tools{gap:22px}
@media(max-width:760px){
  .welcome-brand span{display:none}
  .welcome-tools{gap:16px}.welcome-tools button{font-size:var(--t-small)}
  #welcome:not([data-phase=tour]) .welcome-choice-copy small{display:none}
  #welcome:not([data-phase=tour]) .welcome-choice{min-height:48px;padding:6px 12px}
  #welcome:not([data-phase=tour]) .josh-response{font-size:var(--t-small);line-height:1.5}
  #welcome:not([data-phase=tour]) #welcome-heading{font-size:var(--t-h2)}
  #welcome:not([data-phase=tour]) #welcome-reading{max-height:54svh}
}
@media(max-aspect-ratio:1/1){#welcome:not([data-phase=tour]) .welcome-tools{max-width:none;flex-wrap:nowrap}}
dialog .close{z-index:2}
@media(max-aspect-ratio:1/1){#welcome[data-phase=landing] #welcome-landing>p:first-of-type,#welcome[data-phase=landing] #welcome-landing>small:first-of-type{display:none}#welcome[data-phase=landing] #welcome-reading{max-height:44svh}}

/* Island activities: one panel beside the centrepiece; buttons only, so touch, keys and screen readers match. */
.activity{position:absolute;right:4vw;top:112px;width:min(40vw,460px);max-height:calc(100svh - 150px);overflow-y:auto;pointer-events:auto;z-index:5;padding:24px;background:#11383df2;border:1px solid #dfe8cf33;border-radius:12px;box-shadow:0 20px 70px #0c272c40;backdrop-filter:blur(16px);scrollbar-width:thin}
.activity-place{display:block;font-size:var(--t-caption);color:var(--yellow);letter-spacing:.4px}
#activity-question{font:500 var(--t-h2)/1.12 Bricolage,Arial,sans-serif;letter-spacing:-.02em;margin-top:8px;outline:none}
#activity-hint{font-size:var(--t-small);line-height:1.5;margin-top:10px;color:#dce2c8}
.activity-group{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.activity-group h3{grid-column:1/-1;margin:0;font:700 var(--t-caption) Manrope,Arial,sans-serif;letter-spacing:.5px;text-transform:uppercase;color:#e8d88f}
.activity-choice{min-height:44px;padding:8px 12px;text-align:left;border:1px solid #e7e4bc44;border-radius:8px;background:#ffffff08;font-size:var(--t-small);line-height:1.3}
.activity-choice:hover:not(:disabled){border-color:#f8dc5b99}.activity-choice[aria-pressed=true]{border-color:var(--yellow);background:#f8dc5b26;font-weight:650}.activity-choice:disabled{opacity:.35}
.activity-row{margin-top:14px}.activity-row strong{display:block;font-size:var(--t-small);font-weight:650;margin-bottom:6px}
.activity-stages{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.activity-stages .activity-choice{font-size:var(--t-caption);text-align:center;padding:6px}
#activity-reply{margin-top:16px;border-left:2px solid var(--yellow);padding-left:12px;font-size:var(--t-body);line-height:1.55;color:#f2e5ad}#activity-reply:empty{display:none}
.activity-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:18px;position:sticky;bottom:-24px;padding:12px 0;background:#11383d;box-shadow:0 -12px 16px #11383deb}
.activity-actions .experience{min-height:44px;font-size:var(--t-small)}.activity-actions .experience:disabled{opacity:.45}
body[data-activity] #walk-hud,body[data-activity] #landmarks,body[data-activity] .controls-note{visibility:hidden}
.summary-noticed{margin-top:18px}.summary-noticed small{display:block;font-size:var(--t-caption);color:#e8d88f;letter-spacing:.5px;margin:0}.summary-noticed ul{margin:8px 0 0;padding:0;list-style:none}.summary-noticed li{font-size:var(--t-small);line-height:1.5;padding:6px 0;border-top:1px solid #f1efdb22}
#discovery-dialog .summary-noticed small{color:#7a6a24}#discovery-dialog .summary-noticed li{border-color:#233d3e22}
.trail-activities{display:flex;flex-direction:column;align-items:flex-start;margin-top:20px}.trail-activities small{font-size:var(--t-caption);opacity:.7;margin:0}.trail-activities .text-link{margin-top:4px!important}
@media(max-width:760px),(max-aspect-ratio:1/1){
  .activity{left:16px;right:16px;top:auto;bottom:max(16px,env(safe-area-inset-bottom));width:auto;max-height:56svh;padding:18px}
  .activity-group{grid-template-columns:1fr}
  #activity-question{font-size:var(--t-h3)}
  .activity-actions{bottom:-18px}
  body[data-activity] .discovery-trigger{display:none}
}
body[data-activity] .atlas{display:none}.activity{z-index:7}
/* With one opening chapter there is no chapter strip, so the intro text sits at the foot of the screen and never scrolls inside itself. */
#welcome[data-phase=tour]:has(.welcome-bottom[hidden]) #welcome-reading{bottom:max(40px,env(safe-area-inset-bottom));max-height:calc(100svh - 140px)}
@media(max-width:760px){
  #welcome[data-phase=tour]:has(.welcome-bottom[hidden]) #welcome-reading{bottom:max(20px,env(safe-area-inset-bottom));max-height:calc(100svh - 110px)}
  #welcome[data-phase=tour] .welcome-location{display:none}
}
