:root{--ink:#193e37;--cream:#f5f5ed;--green:#c8dcad;--lime:#d7e89f;--line:#cbd6c7;--orange:#e47a50}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Manrope,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;border-bottom:1px solid var(--line)}.brand{font:700 21px Unbounded,sans-serif;letter-spacing:-1px;display:flex;gap:10px;align-items:center}.brand-icon{font:32px sans-serif;color:#598b67}.brand-dot,h2 span{color:var(--orange)}.top-center,.top-link,.section-no,.eyebrow,.head-right,.viewer-badge,.reset,.viewer-bottom,.explorer-foot,.card-top,.facts span,footer{font-size:10px;font-weight:800;letter-spacing:.12em}.top-center span{color:#a3b5a1;margin:0 12px}.top-link span{font-size:16px;margin-left:15px}.hero{padding:85px 5.2% 69px;display:flex;justify-content:space-between;align-items:end}.eyebrow{display:flex;align-items:center;gap:9px;color:#658074}.live-dot,.status-dot{width:7px;height:7px;border-radius:50%;background:#79a878;display:inline-block}.slash{margin:0 5px;color:#9aaf9e}h1,h2,p{margin:0}h1,h2{font-family:Unbounded,sans-serif;letter-spacing:-.055em}h1{font-size:clamp(44px,6.4vw,92px);line-height:1.08;font-weight:600;margin:27px 0 23px}h1 em,h2 em{font-style:normal;color:#789c78}.hero-intro>p{font-size:15px;color:#718579}.intro-aside{text-align:right;display:flex;flex-direction:column;align-items:end;gap:16px}.asterisk{font-size:58px;color:#8fb686;line-height:.8}.intro-aside p{font-size:12px;line-height:1.5;font-weight:700}.aside-number{font-size:9px;letter-spacing:.1em;line-height:1.7;color:#8aa093}.explorer{margin:0 5.2%;border-top:1px solid var(--ink)}.explorer-head{display:flex;justify-content:space-between;align-items:end;padding:29px 0}.section-no{color:#779384}h2{font-size:clamp(28px,3.1vw,44px);line-height:1.2;margin-top:13px;font-weight:500}.head-right{display:flex;gap:8px;align-items:center;color:#668374}.viewer-wrap{height:min(68vw,690px);min-height:460px;position:relative;background:#dbe7d3;overflow:hidden;border-radius:4px}.scene{position:absolute;inset:0;touch-action:none}.scene canvas{display:block;width:100%;height:100%}.viewer-top,.viewer-bottom{position:absolute;left:25px;right:25px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.viewer-top{top:24px}.viewer-bottom{bottom:24px;align-items:end}.viewer-badge,.reset,.gesture,.model-label{background:rgba(249,250,242,.9);border-radius:3px;padding:12px 14px;box-shadow:0 2px 12px #2444310b}.viewer-badge span{color:#82a979;font-size:18px;margin-right:7px}.viewer-badge small{color:#9aaa9a;font-size:9px}.reset{pointer-events:auto;border:0;color:var(--ink);cursor:pointer}.reset:hover{background:white}.gesture{display:flex;align-items:center;gap:12px}.gesture-icon{font-size:26px;font-weight:400}.gesture b,.gesture small{display:block}.gesture small{font-size:10px;letter-spacing:0;font-weight:500;color:#85998a;margin-top:3px}.model-label{font-size:9px;color:#698675}.model-label span{font-size:15px;color:#e2936e;margin-right:5px}.loading{position:absolute;inset:0;display:grid;place-items:center;color:#67816c;font-size:12px;pointer-events:none}.loading.hidden{display:none}.explorer-foot{display:flex;justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--line);color:#82968a}.foot-star{font-size:17px;color:#8aae84;margin-right:8px}.places{padding:115px 5.2%}.places-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:40px}.places-heading p{font-size:13px;line-height:1.7;color:#809287;max-width:265px}.place-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.place-card{text-align:left;min-height:245px;border:1px solid #d6e0d1;background:#edf2e8;padding:20px;display:flex;flex-direction:column;color:var(--ink);cursor:pointer;transition:transform .2s,background .2s}.place-card:hover,.place-card.active{background:#d8e8be;transform:translateY(-4px)}.card-top{display:flex;justify-content:space-between;width:100%;color:#829b88}.card-top span:last-child{font-size:17px}.card-symbol{font:45px Georgia,serif;color:#78a185;margin:25px 0 15px;line-height:1}.place-card strong{font-family:Unbounded,sans-serif;font-size:15px;line-height:1.4;font-weight:500;letter-spacing:-.03em}.card-desc{font-size:11px;color:#779083;margin-top:12px;line-height:1.5}.story{margin:0 5.2%;background:#214a3d;color:#eef5e5;display:grid;grid-template-columns:1fr 1fr;gap:12%;padding:65px 6%;min-height:430px}.light{color:#abc7ac}.story h2{font-size:clamp(34px,4vw,58px);margin-top:35px}.story h2 em{color:#a4c997}.story-flower{font-size:100px;line-height:1;color:#85b488;margin-top:50px}.story-content{padding-top:40px}.story-lead{font-family:Unbounded,sans-serif;font-size:19px;line-height:1.6;letter-spacing:-.04em}.story-content>p:nth-child(2){font-size:13px;line-height:1.9;color:#b8cfc0;margin-top:22px}.facts{display:flex;gap:15%;margin-top:45px;border-top:1px solid #5f8272;padding-top:22px}.facts strong,.facts span{display:block}.facts strong{font-family:Unbounded,sans-serif;font-weight:500;font-size:28px}.facts strong small{font-size:14px}.facts span{color:#a4c1ad;margin-top:9px;font-size:9px;white-space:nowrap}.sources{padding:115px 5.2%;display:grid;grid-template-columns:1fr 1fr;gap:15%}.sources p{max-width:390px;line-height:1.8;font-size:13px;color:#7a8f81;margin-top:23px}.source-list a{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:18px 0}.source-list a:first-child{border-top:1px solid var(--line)}.source-list a>span{font-size:10px;color:#91a79a}.source-list a div{flex:1}.source-list b,.source-list small{display:block}.source-list b{font-size:13px}.source-list small{color:#8b9e90;margin-top:5px;font-size:11px}.source-list i{font-style:normal;font-size:20px}.source-list a:hover b{color:#82a779}footer{border-top:1px solid var(--line);padding:28px 5.2%;display:flex;justify-content:space-between;align-items:center;color:#8ba092}footer .brand{color:var(--ink)}@media(max-width:700px){.topbar{height:65px}.top-center{display:none}.hero{padding-top:60px}.intro-aside{display:none}.hero-intro>p{line-height:1.6}.explorer-head{align-items:start}.head-right{font-size:8px}.viewer-wrap{height:66vh;min-height:420px}.viewer-top,.viewer-bottom{left:12px;right:12px}.model-label{display:none}.gesture small{max-width:180px;line-height:1.4}.explorer-foot{font-size:8px;gap:15px}.places{padding:75px 5.2%}.places-heading{display:block}.places-heading p{margin-top:20px}.place-grid{grid-template-columns:1fr 1fr}.place-card{min-height:215px}.story{grid-template-columns:1fr;padding:45px 7%;gap:0}.story-flower{font-size:55px;margin-top:25px}.story-content{padding-top:20px}.facts{gap:9%}.facts strong{font-size:21px}.facts span{font-size:7px}.sources{grid-template-columns:1fr;padding:75px 5.2%;gap:35px}footer>span{display:none}}
/* Winter concept */
:root{--ink:#173e35;--cream:#f1f3ef;--green:#cbdccf;--lime:#d4e2d4;--line:#cddad4;--orange:#c6964d}.hero{padding-top:55px;padding-bottom:48px}.hero h1{font-size:clamp(42px,5.3vw,76px)}.viewer-wrap{background:#b5c8d7}.place-grid{grid-template-columns:repeat(5,1fr)}.place-card{background:#e7eeea;border-color:#cedbd2}.place-card:hover,.place-card.active{background:#d1e1d2}.card-symbol{color:#789b84}.story{background:#1f493d}.source-note{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:18px 0}.source-note:first-child{border-top:1px solid var(--line)}.source-note>span{font-size:10px;color:#91a79a}.source-note b,.source-note small{display:block}.source-note b{font-size:13px}.source-note small{color:#8b9e90;margin-top:5px;font-size:11px}@media(max-width:700px){.place-grid{grid-template-columns:1fr 1fr}}

.view-actions{display:flex;gap:8px;pointer-events:auto}.view-actions .reset{white-space:nowrap}@media(max-width:700px){.view-actions{gap:4px}.view-actions .reset{font-size:8px;padding:10px 8px}.viewer-badge{padding:10px 8px}}

@media(max-width:550px){.viewer-top .viewer-badge{display:none}.viewer-top{justify-content:flex-end}.view-actions .reset{font-size:7px;padding:9px 6px;letter-spacing:.06em}}
.geo-label-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.geo-label{position:absolute;top:0;left:0;background:#f4f7f2eb;color:#23453b;padding:7px 10px;border-radius:3px;font-size:10px;white-space:nowrap;box-shadow:0 2px 10px #132a2a12;border-bottom:2px solid #be965d}.inline-source{display:block;margin-top:20px;color:#e7cf9c;text-decoration:underline;text-underline-offset:4px}.view-actions{flex-wrap:wrap;justify-content:flex-end}.viewer-top{align-items:start}.viewer-badge{white-space:nowrap}.geo-label-layer[hidden]{display:none}@media(max-width:700px){.viewer-top{top:12px}.view-actions{max-width:310px}.viewer-top .viewer-badge{display:none}.geo-label{font-size:8px;padding:5px 7px}}
.viewer-wrap{height:min(72vh,690px)}

/* The free camera stays available alongside the fixed viewpoints. */
.viewer-top{gap:14px}.view-actions{min-width:0}
.reset[aria-pressed="true"]{background:#214a3d;color:#f2f5e9;box-shadow:inset 0 0 0 1px #a5c7ac}
.reset:focus-visible{outline:2px solid #c6964d;outline-offset:3px}
.scene canvas:focus-visible{outline:2px solid #c6964d;outline-offset:-2px}
#camera-help small{white-space:pre-line;line-height:1.6;max-width:470px}
@media(max-width:700px){#camera-help small{max-width:250px}}

/* Routes through the continuation shown in the user's panoramas. */
.park-section{margin:0 5.2% 90px;padding-top:34px;border-top:1px solid var(--line)}.park-views{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.park-card{cursor:pointer;border:1px solid var(--line);background:#e7eeea;color:var(--ink);padding:24px;text-align:left;min-height:150px;display:flex;flex-direction:column;gap:14px}.park-card:hover{background:#d6e5d8}.park-card>span{font-size:9px;letter-spacing:.12em;font-weight:800;color:#769481}.park-card strong{font-family:Unbounded,sans-serif;font-weight:500;font-size:16px}.park-card small{font-size:12px;color:#6d8678;line-height:1.6}.park-card:focus-visible{outline:3px solid #c6964d;outline-offset:3px}@media(max-width:700px){.park-views{grid-template-columns:1fr}.park-card{min-height:125px}.park-section{margin-bottom:65px}}

@media(min-width:701px) and (max-width:1050px){.park-views{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Keep the scene and its controls usable in a portrait phone viewport. */
@media(max-width:700px) and (orientation:portrait){.viewer-wrap{height:min(62vh,460px)}}

/* Time of day is independent of camera controls. */
.scene-effects{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:20px 22px;background:#e5ece6;border:1px solid var(--line);border-top:0}
.effect-heading{display:flex;gap:9px;align-items:center;margin-right:auto;font-size:12px}.effect-heading>span{color:#9b793e;font-size:27px}
.scene-effects label{display:flex;flex-direction:column;gap:5px;font-size:10px;font-weight:700}
.scene-effects select,.scene-effects button{min-height:40px;border:1px solid #bacbc0;border-radius:4px;background:#f5f7f1;color:var(--ink);padding:9px 11px;font:600 11px Manrope,sans-serif;cursor:pointer}
.scene-effects button:hover,.scene-effects a:hover{background:#d4e1d5}.scene-effects .effect-check{flex-direction:row;align-items:center;gap:7px;min-height:44px;font-size:11px}
.scene-effects input{accent-color:#214a3d;width:17px;height:17px}.scene-effects a{font-size:11px;font-weight:800;text-decoration:underline;text-underline-offset:4px;padding:11px 0}
.scene-effects :focus-visible{outline:2px solid #9a6d24;outline-offset:3px}.scene-effects :disabled{opacity:.5;cursor:wait}
#effect-status{flex-basis:100%;margin:0;font-size:11px}#effect-status:empty{display:none}
@media(max-width:700px){.scene-effects{padding:16px;gap:12px}.effect-heading{flex-basis:100%}.scene-effects select,.scene-effects button{min-height:44px}.scene-effects a{flex-basis:100%}}
.viewer-identity{display:flex;flex-direction:column;align-items:flex-start;gap:12px;pointer-events:none}
.lighting-controls{display:flex;padding:3px;gap:3px;background:rgba(249,250,242,.94);border-radius:5px;box-shadow:0 2px 12px #24443114;pointer-events:auto}
.lighting-button{min-width:68px;min-height:38px;padding:8px 13px;border:0;border-radius:3px;background:transparent;color:var(--ink);font-size:11px;font-weight:800;cursor:pointer}
.lighting-button:hover{background:#e0e9de}
.lighting-button[aria-pressed="true"]{background:#214a3d;color:#f2f5e9;box-shadow:inset 0 0 0 1px #a5c7ac}
.lighting-button:focus-visible{outline:2px solid #c6964d;outline-offset:1px}
.lighting-button:disabled{cursor:wait;opacity:.6}
@media(max-width:700px){.viewer-top{flex-wrap:wrap;gap:8px}.viewer-identity{order:2;flex-basis:100%}.view-actions{order:1;margin-left:auto}.lighting-button{min-height:44px;min-width:65px;padding:8px 11px;font-size:10px}}

/* The main page is the scene; all controls stay within its viewport. */
html:has(body.scene-only){height:100%;overflow:hidden;scroll-behavior:auto}
body.scene-only{height:100%;overflow:hidden;background:#14243a}
.scene-page{width:100%;height:100vh;height:100dvh}
.scene-page .viewer-wrap{height:100%;min-height:0;border-radius:0}
.scene-page .viewer-top,.scene-page .viewer-bottom{z-index:2}
.scene-page .viewer-bottom{gap:18px}
.effects-menu{position:relative;pointer-events:auto;flex-shrink:0;margin-left:auto;letter-spacing:0}
.effects-menu>summary{list-style:none;cursor:pointer;padding:13px 16px;background:rgba(249,250,242,.94);color:var(--ink);border-radius:5px;box-shadow:0 2px 12px #24443114;font-size:11px;font-weight:800;min-height:44px;display:flex;align-items:center;gap:8px}
.effects-menu>summary::-webkit-details-marker{display:none}
.effects-menu>summary::after{content:'+';font-size:16px;margin-left:8px;font-weight:500}
.effects-menu[open]>summary::after{content:'−'}
.effects-menu>summary:hover{background:#fff}
.effects-menu>summary:focus-visible{outline:2px solid #c6964d;outline-offset:3px}
.effects-menu .scene-effects{position:absolute;right:0;bottom:calc(100% + 12px);width:340px;max-width:calc(100vw - 24px);max-height:calc(100vh - 190px);max-height:calc(100dvh - 190px);overflow-y:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;padding:18px;background:rgba(240,245,237,.98);border:1px solid #bbcfc0;border-radius:7px;box-shadow:0 8px 32px #102b3640;letter-spacing:0}
.effects-menu .effect-heading,.effects-menu .effect-check,.effects-menu a,.effects-menu #effect-status{grid-column:1 / -1}
.effects-menu .effect-heading{margin-right:0}
.effects-menu select{width:100%}
.effects-menu .effect-check{min-height:30px}
.effects-menu a{line-height:1.6;padding:5px 0}
.effects-menu #effect-status{font-weight:500;line-height:1.5}
.scene-page #camera-help{min-width:0}
[data-editor-only][hidden]{display:none!important}
.geo-label-layer .geo-label{z-index:1;font-size:12px;font-weight:700;line-height:1.35;padding:8px 11px;border:1px solid #d2ddd1;border-bottom:2px solid #be965d;border-radius:4px;box-shadow:0 2px 9px #122b3033}
.geo-label-leader,.geo-label-dot{position:absolute;left:0;top:0;pointer-events:none;background:#edf3e6;box-shadow:0 0 2px #173e35}
.geo-label-leader{height:1px;transform-origin:0 50%}.geo-label-dot{width:4px;height:4px;border-radius:50%}
.geo-label-layer [hidden]{display:none!important}
@media(max-width:700px){.geo-label-layer .geo-label{font-size:10px;padding:6px 8px}}
@media(max-width:700px){.scene-page .viewer-bottom{gap:10px;bottom:max(12px,env(safe-area-inset-bottom))}.scene-page #camera-help{padding:10px;gap:7px}.scene-page #camera-help b{font-size:8px;letter-spacing:.04em}.scene-page #camera-help small{font-size:9px;max-width:180px}.effects-menu>summary{padding:11px 12px;font-size:10px}.effects-menu .scene-effects{padding:16px}}
@media(max-width:400px){.scene-page #camera-help .gesture-icon{display:none}.scene-page #camera-help b{font-size:7px}.scene-page #camera-help small{font-size:8px}}

/* One switch controls music, the river, the tree, fireworks and visitors. */
.sound-control{pointer-events:auto;position:relative;width:164px;max-width:230px}
.sound-toggle{display:flex;align-items:center;gap:9px;min-height:44px;border-radius:5px;font-size:11px;letter-spacing:.02em;font-weight:800;background:rgba(249,250,242,.94)}
.sound-toggle svg{width:20px;height:20px;flex-shrink:0}
.sound-toggle .sound-waves,.sound-toggle[aria-pressed="true"] .sound-muted{display:none}
.sound-toggle[aria-pressed="true"] .sound-waves{display:block}
.sound-toggle:disabled{opacity:.6;cursor:wait}
.sound-toggle{width:100%}
.volume-menu{margin-top:4px;font-size:11px;letter-spacing:0}
.volume-menu>summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;min-height:32px;padding:7px 12px;background:rgba(249,250,242,.94);border-radius:4px;font-weight:700;list-style:none}
.volume-menu>summary::-webkit-details-marker{display:none}
.volume-menu>summary::after{content:'+';font-size:15px;font-weight:500}
.volume-menu[open]>summary::after{content:'−'}
.volume-mixer{position:absolute;top:calc(100% + 7px);left:0;width:214px;max-width:calc(100vw - 24px);display:grid;gap:5px;padding:14px 16px;border:1px solid #bbcebe;border-radius:6px;background:rgba(244,248,240,.98);box-shadow:0 5px 24px #102b362b}
.volume-mixer label{display:flex;justify-content:space-between;font-size:11px;font-weight:800}
.volume-mixer output{font-variant-numeric:tabular-nums;color:#64816c}
.volume-mixer input{display:block;width:100%;height:28px;margin:0;accent-color:#2f6550;cursor:pointer}
.volume-menu :focus-visible{outline:2px solid #c6964d;outline-offset:3px}
#sound-status:empty{display:none}
#sound-status{margin-top:7px;padding:9px 11px;border-radius:4px;background:#f7f0df;color:#6c481b;font-size:11px;line-height:1.5}
@media(max-width:700px){.viewer-identity{flex-direction:row;align-items:flex-start;gap:8px;flex-wrap:wrap}.sound-toggle{font-size:10px;padding:10px 12px}.sound-control{max-width:calc(100vw - 184px)}}
@media(max-width:700px){.volume-mixer{left:auto;right:0}.volume-menu>summary{min-height:36px}}

/* The viewer is revealed atomically after assets, audio and the first frame. */
.scene-only[data-loading]:not([data-loading="ready"]) #scene,
.scene-only[data-loading]:not([data-loading="ready"]) .idea-controls,
.scene-only[data-loading]:not([data-loading="ready"]) .viewer-top,
.scene-only[data-loading]:not([data-loading="ready"]) .viewer-bottom{visibility:hidden}
.scene-only .loading{z-index:100;pointer-events:auto;background:#101e2b;color:#eff5f5;text-align:center;padding:28px}
.scene-only .loading-card{width:min(420px,100%)}
.scene-only .loading-mark{font-size:44px;line-height:1;color:#b8d9ce;margin-bottom:24px}
.scene-only .loading-brand{font-size:11px;letter-spacing:.2em;color:#a4c1b8;margin:0 0 16px}
.scene-only .loading h1{font-size:clamp(21px,4vw,28px);line-height:1.35;font-weight:600;margin:0 0 24px}
.scene-only #loading-stage{font-size:13px;margin:0 0 18px;color:#d2dfdf;min-height:20px}
.scene-only #loading-detail{font-size:11px;line-height:1.6;color:#9baeb9;margin:16px 0 0;overflow-wrap:anywhere}
.scene-only #loading-progress-caption{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;color:#b5c8d0;font-size:12px}
.scene-only #loading-progress-caption[hidden]{display:none}
.scene-only #loading-percent{font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;color:#eff5f5}
.scene-only #loading-progress{appearance:none;width:100%;height:4px;border:0;border-radius:4px;overflow:hidden;background:#2d414d;accent-color:#a8d2bf}
.scene-only #loading-progress::-webkit-progress-bar{background:#2d414d}
.scene-only #loading-progress::-webkit-progress-value{background:#a8d2bf;border-radius:4px}
.scene-only #loading-retry{margin-top:26px;padding:12px 22px;border:1px solid #a8d2bf;border-radius:9px;background:#a8d2bf;color:#142e29;font:inherit;font-size:13px;cursor:pointer}
.scene-only #loading-retry:hover{background:#c1dfd2}
.scene-only #loading-retry:focus-visible{outline:2px solid #fff;outline-offset:4px}
.interface-hidden .viewer-top,
.interface-hidden .viewer-bottom,
.interface-hidden .idea-controls,
.interface-hidden .tree-properties,
.interface-hidden .focus-controls{display:none!important}
.focus-controls{position:absolute;z-index:6;bottom:100px;left:50%;transform:translateX(-50%);width:min(400px,calc(100% - 32px));padding:16px 20px;border:1px solid #7c9a8b;border-radius:12px;background:#16312ef5;color:#edf1e2;box-shadow:0 8px 35px #001e2640}
.focus-controls[hidden]{display:none}
.focus-controls label{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:700}
.focus-controls output{white-space:nowrap;font-variant-numeric:tabular-nums}
.focus-controls input{display:block;width:100%;height:28px;margin:8px 0;accent-color:#a8d2bf;cursor:pointer}
.focus-controls small{display:flex;justify-content:space-between;color:#b7cdbb;font-size:10px}
.focus-controls input:focus-visible{outline:2px solid #c6964d;outline-offset:3px}
@media(max-width:700px){.focus-controls{bottom:130px}}
