@font-face{font-family:Bricolage;src:url('./fonts/bricolage.woff2') format('woff2');font-weight:200 800;font-display:swap}@font-face{font-family:Plex;src:url('./fonts/plex-mono.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--paper:#f1efe5;--ink:#30372d;--muted:#74796b;--line:#d3d4c6;--forest:#2a3a2c;--olive:#b9c492;--mono:Plex,monospace;--gutter:clamp(22px,5.2vw,88px)}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:84px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Bricolage,Arial,sans-serif;-webkit-font-smoothing:antialiased}body.scroll-locked{position:fixed;width:100%;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,input,textarea{font:inherit}button{border:0;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:2px solid #a37848;outline-offset:6px}button:disabled{cursor:wait}img{display:block;max-width:100%}p{line-height:1.6}h1,h2,h3,p,figure{margin:0}h1,h2{font-weight:500;letter-spacing:-.065em;line-height:.98}h2{font-size:clamp(45px,6.2vw,94px)}h2 em{font-style:normal;color:#828967}h3{font-weight:500;letter-spacing:-.045em}button{background:none}.mono,.eyebrow{font:10px/1.7 var(--mono);letter-spacing:.035em}.eyebrow{display:block;margin-bottom:20px}.skip-link{position:fixed;left:16px;top:-80px;z-index:100;background:var(--paper);padding:15px}.skip-link:focus{top:16px}.site-header{position:absolute;z-index:15;top:0;left:0;right:0;height:100px;padding:26px var(--gutter);display:flex;align-items:center;gap:30px;color:#f1ead9}.brand{font-size:42px;font-weight:650;letter-spacing:-.085em;line-height:1;white-space:nowrap}.brand span,.explorer-brand>span{color:#b3c18b}.desktop-nav{display:flex;align-items:center;justify-content:center;gap:28px;margin-left:auto;font-size:13px}.desktop-nav button{font-size:13px;padding:9px 0}.desktop-nav button span{margin-left:10px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:25px}.guide-link{font-size:12px}.visit-button{display:none;gap:9px;align-items:center;font-size:12px}.visit-button [data-count]{border:1px solid currentColor;min-width:22px;height:22px;display:grid;place-items:center;border-radius:50%;font:9px var(--mono)}.site-header.is-scrolled{position:fixed;height:73px;padding-top:13px;padding-bottom:13px;background:#f1efe5f2;backdrop-filter:blur(14px);color:var(--ink);border-bottom:1px solid #d3d4c680}.is-scrolled .brand{font-size:34px}.is-scrolled .visit-button{display:flex}.is-scrolled .guide-link{display:none}.hero{height:100svh;min-height:680px;position:relative;background:#181912;color:#f4ecd9;overflow:hidden}.hero-mount,.scene-stage,.scene{position:absolute;inset:0}.scene-stage{isolation:isolate}.scene canvas{display:block;width:100%;height:100%;touch-action:pan-y}.scene-vignette{position:absolute;inset:0;background:linear-gradient(180deg,#0e140f25,transparent 33%,transparent 62%,#10160d8a);pointer-events:none}.scene-poster{width:100%;height:100%;object-fit:cover}.scene-status{position:absolute;left:var(--gutter);bottom:12px;color:#f1eddb;background:#273126b8;padding:4px 8px;font-size:7px;z-index:3}.hero .scene-status{left:auto;right:var(--gutter);bottom:72px;max-width:220px;text-align:right}.hero-coordinate{position:absolute;left:var(--gutter);top:135px;color:#d5c9aa;font-size:9px;pointer-events:none}.entry-copy,.opened-copy{position:absolute;left:var(--gutter);right:var(--gutter);bottom:105px;display:flex;align-items:end;justify-content:space-between;gap:30px;pointer-events:none}.entry-copy>* ,.opened-copy>*{pointer-events:auto}.entry-title h1,.opened-copy h1{font-size:clamp(45px,5.9vw,85px);font-weight:450}.entry-title .eyebrow,.opened-copy .eyebrow{font-size:8px;margin-bottom:17px;color:#c8c4a4}.entry-actions{padding:0 10px 8px 0;text-align:center}.nut-button{display:flex;align-items:center;gap:15px;padding:15px 20px 15px 13px;border:1px solid #b9b99b80;border-radius:50px;background:#20231d65;color:#f5ecd6;transition:background .25s,transform .25s}.nut-button:hover{background:#414a30}.round-arrow{width:35px;height:35px;border-radius:50%;background:#c1cc9e;color:#354027;display:grid;place-items:center;font-size:22px}.entry-hint{font-size:11px;color:#c3bea5;margin-top:12px}.nut-button.remind{animation:reminder 1.3s ease-in-out 2}@keyframes reminder{50%{box-shadow:0 0 0 8px #c1cc9e15;border-color:#c1cc9e}}.scroll-invitation{position:absolute;z-index:5;bottom:25px;left:var(--gutter);display:flex;align-items:center;gap:25px;font-size:13px;padding:10px 0}.scroll-arrow{font-size:24px;color:#c8d2ab}.hero-edition{position:absolute;right:var(--gutter);bottom:38px;font-size:7px;color:#b2b49b}.transition-caption{position:absolute;left:50%;top:70%;transform:translate(-50%,-50%);text-align:center;color:#f5edda;font-size:9px;pointer-events:none}.opened-copy[hidden],.entry-copy[hidden]{display:none}.hero[data-state=entering] .entry-copy{opacity:0;pointer-events:none;transition:opacity .25s}.hero[data-state=world] .hero-coordinate{color:#e6edda;text-shadow:0 1px 10px #243b26}.hero[data-state=world] .scene-vignette{background:linear-gradient(180deg,#21322536,transparent 35%,transparent 60%,#203620af)}.opened-copy .eyebrow{color:#e0e5cc}.light-button,.dark-button{padding:17px 20px;display:inline-flex;align-items:center;justify-content:space-between;gap:35px;font-size:13px;line-height:1.3;border:1px solid #d6e1bd7d;transition:background .2s}.light-button{background:#eceede;color:#30402c;border-color:#eceede}.light-button:hover{background:#ced7b7}.dark-button{background:var(--forest);color:var(--paper);border-color:var(--forest)}.dark-button:hover{background:#48563a}.light-button>span,.dark-button>span:last-child{font-size:20px}.section-shell{padding:80px var(--gutter);max-width:1600px;margin:auto}.section-heading{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:18px;margin-bottom:65px}.section-heading> :last-child{text-align:right;color:#7d826c;font-size:8px}.section-number{color:#6f7b5b}.intro-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:9vw;align-items:center}.intro-text h2{margin-bottom:35px}.intro-text .large-copy{font-size:24px;line-height:1.4;letter-spacing:-.025em;max-width:410px;margin-bottom:20px}.intro-text>p:last-of-type{font-size:14px;color:var(--muted);max-width:330px}.text-link{display:inline-flex;gap:32px;align-items:center;border-bottom:1px solid #8d9778;padding:12px 0;font-size:13px}.intro-text .text-link{margin-top:28px}.town-photo{margin-top:-15px}.town-photo img{width:100%;height:630px;object-fit:cover;object-position:center 59%;border-radius:48% 48% 2px 2px}.town-photo figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:14px;font-size:7px;color:#777d69}.experiences{padding-top:35px}.experience-heading,.places-heading,.diary-heading{display:flex;align-items:end;justify-content:space-between;gap:60px;margin-bottom:55px}.experience-heading p,.places-heading p,.diary-heading p{max-width:330px;font-size:15px;color:var(--muted)}.experience-list{border-bottom:1px solid var(--line)}.experience-row{display:grid;grid-template-columns:70px 1fr 1fr 45px;align-items:center;gap:25px;padding:28px 0;border-top:1px solid var(--line)}.experience-index{font:11px var(--mono);color:#8d9776}.experience-title{text-align:left;padding:5px 0}.experience-title .mono{display:block;color:#7b8569;font-size:8px;margin-bottom:7px}.experience-title h3{font-size:30px;line-height:1.1}.experience-title:hover h3{color:#78875b}.experience-row>p{font-size:13px;color:var(--muted);max-width:300px}.quick-add{width:43px;height:43px;border:1px solid #afb79e;border-radius:50%;font-size:23px;transition:background .2s}.quick-add:hover,.quick-add.is-added{background:#d6dec2}.one-day{margin:40px 0 0;background:#2c3b2e;color:#edf0dd;position:relative;overflow:hidden}.one-day:after{content:'';position:absolute;width:70vw;height:70vw;right:-42vw;bottom:-54vw;border:1px solid #85946844;border-radius:50%;box-shadow:0 0 0 35px #85946808,0 0 0 70px #85946808,0 0 0 105px #85946808;pointer-events:none}.one-day .section-heading{border-color:#6b79564d}.one-day .section-heading>:last-child{color:#adb793}.one-day h2{font-size:clamp(43px,5.9vw,84px)}.one-day h2 em{color:#b9c79a}.day-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;margin:65px 0 45px}.step-dot{display:grid;place-items:center;border:1px solid #81936c;border-radius:50%;width:33px;height:33px;margin-bottom:24px;font-size:8px}.day-steps h3{font-size:29px;margin-bottom:12px}.day-steps p{max-width:260px;color:#bdc7ac;font-size:13px}.day-bottom{display:flex;align-items:center;justify-content:space-between;gap:45px;border-top:1px solid #7d8a634d;padding-top:25px}.day-bottom>p{font:9px/1.8 var(--mono);color:#acb899;max-width:440px}.day-bottom button{flex-shrink:0}.text-button{padding:0;font-size:12px;text-decoration:underline;text-underline-offset:5px}.place-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px}.place-card{padding:0;text-align:left}.place-image{position:relative;overflow:hidden;aspect-ratio:1.2;background:#c8cdb6}.place-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.place-card:hover img{transform:scale(1.035)}.image-label{position:absolute;bottom:15px;left:16px;font-size:7px;color:#f5f0dc;background:#2f3c2bc9;padding:5px 8px}.place-card-caption{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.place-card-caption .mono{font-size:8px;color:#7d8868}.place-card-caption h3{font-size:29px;margin-top:8px}.card-arrow{font-size:29px}.stories-section{padding-top:30px}.stories-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:9vw}.stories-grid>div>p{max-width:270px;font-size:14px;color:var(--muted);margin-top:30px}.story-row{display:flex;gap:25px;padding:20px 0;border-bottom:1px solid var(--line);align-items:center}.story-row:first-child{padding-top:0}.story-row .mono{font-size:9px;color:#8c9678}.story-row h3{font-size:26px;line-height:1.2}.story-row small{font:7px var(--mono);display:block;margin-top:7px;color:#949a87}.diary-section{padding-top:30px}.diary-topics{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.diary-topics>div{border-top:1px solid var(--line);padding-top:20px;min-height:145px}.diary-topics .mono{font-size:8px;color:#899274}.diary-topics h3{font-size:34px;line-height:1.05;margin-top:23px}.content-note{font-size:7px;color:#969d88;margin-top:28px}.visit-section{background:#dce1c9;margin-top:30px}.visit-section .section-heading{border-color:#b6bea1}.visit-grid{display:grid;grid-template-columns:1.1fr .8fr;gap:14vw}.visit-grid h2{margin-bottom:25px}.visit-grid h2 em{color:#77865c}.visit-grid>div>p{font-size:16px;max-width:390px;margin-bottom:28px}.visit-grid .dark-button [data-count]{display:grid;place-items:center;border-radius:50%;border:1px solid #c1c9ac;width:24px;height:24px;font:10px var(--mono);margin-left:20px}.practical>div{padding:22px 0;border-top:1px solid #b7c0a2}.practical>div:first-child{padding-top:0;border:0}.practical .mono{font-size:8px;color:#73815e}.practical p{font-size:13px;color:#626e52;margin-top:9px}.practical .text-link{font-size:12px;margin-top:5px}.site-footer{padding:45px var(--gutter) 28px;display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:35px}.site-footer p{font-size:12px;color:#858b77}.site-footer>.mono{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;font-size:7px;color:#959b88}.site-footer .brand{font-size:45px}
/* One optional 3D mode, sharing the renderer and content with the guide. */
dialog{color:var(--ink);border:0;padding:0}dialog::backdrop{background:#17201380;backdrop-filter:blur(3px)}.explorer{position:fixed;inset:0;margin:0;max-width:none;max-height:none;width:100%;height:100dvh;overflow:hidden;background:#b6c6ba;color:#f5f1df}.explore-mount{position:absolute;inset:0}.explorer .scene canvas{touch-action:none}.explorer .scene-vignette{background:linear-gradient(180deg,#19302266,transparent 27%,transparent 65%,#19302280)}.explorer-bar{position:absolute;top:25px;left:var(--gutter);right:var(--gutter);display:flex;justify-content:space-between;align-items:start;gap:20px;pointer-events:none}.explorer-bar>*{pointer-events:auto}.explorer-brand{font-size:38px;font-weight:650;letter-spacing:-.08em;line-height:1}.explorer-brand small{display:block;font-size:7px;letter-spacing:.02em;margin-top:12px}.exit-explorer{display:flex;align-items:center;gap:28px;background:#f0efe4;color:#34402e;padding:13px 17px;font-size:12px}.exit-explorer span{font-size:22px;line-height:1}.explorer-caption{position:absolute;left:var(--gutter);bottom:110px;pointer-events:none;text-shadow:0 2px 25px #233a29}.explorer-caption>.mono{font-size:8px}.explorer-caption h2{font-size:44px;margin:14px 0}.explorer-caption p{font-size:12px}.explorer-places{position:absolute;left:var(--gutter);bottom:52px;display:flex;gap:18px}.explorer-places button{font-size:12px;background:#eef0ddde;color:#36462d;padding:10px 13px}.explorer-note{position:absolute;bottom:17px;left:var(--gutter);font-size:6px;color:#e6e9cf}.view-controls{position:absolute;bottom:52px;right:var(--gutter);display:flex;background:#eff0dfeb;border:1px solid #9ba980;color:#34432c}.view-controls button{width:42px;height:39px;font-size:22px}.view-controls button+button{border-left:1px solid #bdc5ad}.place-markers{position:absolute;inset:0;pointer-events:none}.place-markers[hidden]{display:none}.place-marker{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:8px;padding:7px 11px 7px 7px;background:#f0ecd9ed;color:#35432d;font-size:12px;border-radius:3px;pointer-events:auto;box-shadow:0 5px 25px #21332120;white-space:nowrap}.place-marker:after{content:'';position:absolute;left:50%;bottom:-6px;border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid #f0ecd9ed}.place-marker>span{width:25px;height:25px;display:grid;place-items:center;font:9px var(--mono);border:1px solid #a0af84;border-radius:50%}.place-marker i{font-style:normal}.explorer.has-detail .explorer-caption,.explorer.has-detail .explorer-places,.explorer.has-detail .view-controls,.explorer.has-detail .place-markers{visibility:hidden}.explorer.has-detail .explorer-brand{visibility:hidden}.detail-dialog{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;width:min(520px,calc(100% - 32px));max-width:none;max-height:86dvh;background:#f0eee3;box-shadow:0 15px 80px #17261433;overflow:hidden;display:none;flex-direction:column}.detail-dialog[open]{display:flex}.detail-dialog[data-context=explore]{top:90px;left:auto;right:20px;bottom:20px;transform:none;width:390px;max-height:none}.detail-dialog[data-context=explore]::backdrop{background:transparent;backdrop-filter:none}.detail-top{padding:22px 25px 12px;display:flex;justify-content:space-between;align-items:center;gap:15px;flex-shrink:0}.detail-top .mono{font-size:8px;color:#7a8666}.close-button{width:31px;height:31px;border:1px solid #adb697;border-radius:50%;font-size:23px;line-height:1;display:grid;place-items:center}.close-button:hover{background:#dfe4cd}.detail-body{padding:0 26px 28px;overflow:auto;overscroll-behavior:contain}.detail-body h2{font-size:47px;margin:18px 0 23px}.detail-body h2 em{color:#778461;font-style:normal}.detail-body p{font-size:13px;color:#727c63}.detail-body .lead{font-size:18px;line-height:1.45;color:#536046;margin-bottom:15px}.business-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.business-meta span{font:7px var(--mono);border:1px solid #b8c0a6;color:#758161;padding:6px 8px}.experience-offer{border-top:1px solid var(--line);margin-top:23px;padding-top:20px}.experience-offer>.mono{font-size:8px;color:#7b8869}.experience-offer h3{font-size:25px;margin:10px 0}.action-button{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;background:#35472e;color:#eef0dc;margin-top:23px;font-size:13px}.action-button:hover{background:#52643c}.action-button.added{background:#b6c497;color:#34452b}.detail-body .note{font:8px/1.8 var(--mono);color:#8c957d;border-top:1px solid var(--line);padding-top:16px;margin-top:22px}.day-item{display:flex;align-items:start;gap:15px;padding:20px 0;border-top:1px solid var(--line)}.day-item>.mono{font-size:8px;color:#83906d;margin-top:6px}.day-item h3{font-size:25px;flex:1;line-height:1.05}.day-item button{font-size:21px;line-height:1}.day-request{display:block;width:100%;min-height:100px;padding:12px;margin-top:18px;font:11px/1.7 var(--mono);color:#667455;background:#e4e7d4;border:1px solid #bbc5a5;resize:vertical}.empty-state{padding:25px 18px;margin-top:25px;border:1px dashed #a8b891;font-size:25px;line-height:1.15;color:#7b8964}.toast{position:fixed;z-index:30;bottom:24px;left:50%;transform:translate(-50%,20px);background:#293b27;color:#eef0db;padding:13px 20px;font-size:12px;box-shadow:0 4px 30px #23302122;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center;max-width:90%}.toast.show{opacity:1;transform:translate(-50%,0)}.detail-body .toast-inline{font-size:11px;color:#5c713f;margin-top:12px}.noscript-note{padding:20px var(--gutter)}
@media(min-width:1600px){.hero-mount{max-width:1900px;margin:auto}}
@media(max-width:1000px){.desktop-nav{gap:20px}.desktop-nav>a:last-of-type{display:none}.intro-grid{gap:6vw}.town-photo img{height:550px}.intro-text .large-copy{font-size:21px}.experience-row{grid-template-columns:35px 1fr .9fr 42px;gap:20px}.experience-title h3{font-size:26px}.place-card-caption h3{font-size:25px}.day-steps{gap:25px}.visit-grid{gap:9vw}.section-heading{margin-bottom:50px}.site-footer{gap:25px}.explorer-caption h2{font-size:38px}}
@media(max-width:700px){:root{--gutter:23px}.site-header{height:80px;padding-top:22px;padding-bottom:20px}.brand{font-size:35px}.desktop-nav{display:none}.header-actions{gap:16px}.guide-link{font-size:11px}.site-header.is-scrolled{height:65px}.is-scrolled .brand{font-size:30px}.visit-button{font-size:11px}.hero{height:100svh;min-height:660px}.hero-coordinate{top:109px;font-size:7px}.entry-copy,.opened-copy{bottom:112px;display:block}.entry-title h1,.opened-copy h1{font-size:45px}.entry-title .eyebrow,.opened-copy .eyebrow{font-size:6px;margin-bottom:10px}.entry-actions{padding:0;margin-top:22px;display:flex;align-items:center;gap:15px;text-align:left}.nut-button{padding:9px 14px 9px 8px;font-size:12px;gap:10px;flex-shrink:0}.round-arrow{width:27px;height:27px;font-size:18px}.entry-hint{font-size:9px;line-height:1.5;margin:0;max-width:110px}.scroll-invitation{bottom:23px;font-size:12px;gap:20px}.hero-edition{font-size:5px;bottom:37px;max-width:130px;text-align:right;line-height:1.8}.hero .scene-status{right:var(--gutter);bottom:75px;font-size:5px;max-width:200px;padding:3px 6px}.opened-copy .light-button{margin-top:20px;font-size:12px;padding:13px 15px;gap:30px}.transition-caption{font-size:7px;top:66%;width:80%}.section-shell{padding:58px var(--gutter)}.section-heading{margin-bottom:38px;padding-top:14px;gap:16px}.section-heading>.mono{font-size:8px}.section-heading>:last-child{font-size:6px;max-width:180px}.intro-grid{display:flex;flex-direction:column;gap:40px;align-items:stretch}.intro-text h2{font-size:62px;margin-bottom:25px}.intro-text .large-copy{font-size:22px;max-width:350px}.intro-text>p:last-of-type{font-size:13px}.intro-text .text-link{margin-top:18px}.town-photo{margin-top:0}.town-photo img{height:auto;max-height:650px;aspect-ratio:.8;object-fit:cover;border-radius:47% 47% 2px 2px}.town-photo figcaption{font-size:6px;line-height:1.6;gap:10px}.town-photo figcaption>span:last-child{text-align:right}.experiences{padding-top:25px}.experience-heading,.places-heading,.diary-heading{display:block;margin-bottom:35px}.experience-heading h2,.places-heading h2,.diary-heading h2{font-size:51px}.experience-heading p,.places-heading p,.diary-heading p{font-size:13px;max-width:320px;margin-top:24px}.experience-row{grid-template-columns:25px 1fr 35px;gap:12px;padding:23px 0}.experience-title .mono{font-size:6px}.experience-title h3{font-size:25px}.experience-row>p{grid-column:2;grid-row:2;font-size:12px;max-width:260px;margin-top:-3px}.experience-row>.quick-add{grid-column:3;grid-row:1/3;width:34px;height:34px;font-size:20px}.one-day{margin-top:12px}.one-day h2{font-size:44px;line-height:1.02}.day-steps{display:flex;flex-direction:column;gap:27px;margin:40px 0 35px}.day-steps>div{display:grid;grid-template-columns:34px 1fr;gap:0 18px}.step-dot{grid-row:1/3;margin-bottom:0}.day-steps h3{font-size:27px;margin-bottom:8px}.day-steps p{grid-column:2;font-size:12px;max-width:280px}.day-bottom{display:flex;flex-direction:column-reverse;align-items:start;gap:20px}.day-bottom>p{font-size:7px;max-width:320px}.day-bottom button{font-size:12px}.place-grid{grid-template-columns:1fr;gap:32px}.place-image{aspect-ratio:1.12}.place-card-caption{padding:17px 0}.place-card-caption h3{font-size:26px}.place-card-caption .mono{font-size:6px}.image-label{font-size:6px;left:12px;bottom:12px}.places-section .section-heading .text-button{max-width:145px;font-size:6px;line-height:1.8}.stories-section,.diary-section{padding-top:22px}.stories-grid{grid-template-columns:1fr;gap:35px}.stories-grid h2{font-size:51px}.stories-grid>div>p{font-size:13px;margin-top:22px}.story-row{padding:18px 0;gap:20px}.story-row h3{font-size:24px}.story-row small{font-size:6px}.diary-topics{grid-template-columns:1fr;gap:0}.diary-topics>div{display:grid;grid-template-columns:.95fr 1fr;gap:20px;align-items:start;min-height:0;padding:22px 0}.diary-topics .mono{font-size:6px;max-width:140px}.diary-topics h3{font-size:28px;margin:0}.content-note{font-size:6px;max-width:270px;margin-top:15px}.visit-section{margin-top:5px}.visit-grid{grid-template-columns:1fr;gap:45px}.visit-grid h2{font-size:64px}.visit-grid>div>p{font-size:14px;max-width:330px}.practical p{font-size:12px}.site-footer{grid-template-columns:1fr auto;gap:25px;padding-top:35px}.site-footer>.brand{font-size:37px}.site-footer>p{grid-column:1/-1;font-size:12px;grid-row:2}.site-footer>.text-button{font-size:11px}.site-footer>.mono{font-size:5px}.explorer-bar{top:20px;align-items:center}.explorer-brand{font-size:30px}.explorer-brand small{font-size:5px;margin-top:8px}.exit-explorer{font-size:10px;padding:10px 12px;gap:15px}.exit-explorer span{font-size:19px}.explorer-caption{bottom:135px;left:var(--gutter);max-width:230px}.explorer-caption>.mono{font-size:6px}.explorer-caption h2{font-size:33px;margin:10px 0}.explorer-caption p{font-size:9px;max-width:190px}.explorer-places{bottom:62px;gap:8px;left:var(--gutter)}.explorer-places button{font-size:9px;padding:10px}.view-controls{right:var(--gutter);bottom:111px}.view-controls button{width:32px;height:32px;font-size:19px}.explorer-note{bottom:23px;font-size:5px;max-width:250px}.scene-status{bottom:7px;left:var(--gutter);font-size:5px}.place-marker{font-size:9px;gap:5px;padding:5px 7px 5px 5px}.place-marker>span{width:20px;height:20px;font-size:6px}.detail-dialog{max-height:85dvh;width:calc(100% - 20px)}.detail-dialog[data-context=explore]{top:auto;bottom:8px;left:8px;right:8px;width:auto;height:56dvh;max-height:550px;border-radius:7px}.detail-top{padding:15px 20px 8px}.detail-body{padding:0 21px 22px}.detail-body h2{font-size:38px;margin:12px 0 18px}.detail-body .lead{font-size:16px}.detail-body p{font-size:12px}.detail-body .note{font-size:7px}.action-button{font-size:12px;padding:14px 16px;margin-top:19px}.business-meta{margin-bottom:18px}.business-meta span{font-size:6px}.experience-offer h3{font-size:23px}.toast{font-size:10px;padding:12px 16px;width:max-content}.day-item h3{font-size:23px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

[hidden]{display:none!important}

.mobile-explore{display:none}@media(max-width:700px){.is-scrolled .mobile-explore{display:block;font:9px var(--mono);padding:7px 0}.header-actions{gap:13px}.site-header{gap:15px}}
/* The town is directly interactive in the hero; vertical gestures still scroll. */
.scene,.scene-poster{touch-action:pan-y;user-select:none}.scene-tools{position:absolute;right:var(--gutter);bottom:83px;display:flex;gap:3px;z-index:6;background:#eff0dfeb;color:#34432c;border:1px solid #a2b08c}.scene-tools button{width:35px;height:34px;font-size:19px}.scene-tools button:hover{background:#c5d3aa}.inline-world-hint{display:flex;align-items:center;gap:15px;color:#edf1d8;padding-bottom:60px}.inline-world-hint p{font-size:12px;line-height:1.7}.drag-symbol{font-size:30px}.hero[data-state=world] .scroll-invitation{padding:10px 18px;background:#eff0df;color:#31432d;border-radius:2px;gap:45px;bottom:20px}.hero[data-state=world] .scroll-arrow{color:#5f7547}.hero[data-state=world] .hero-edition{bottom:35px}.hero .place-marker{z-index:4}.opened-copy h1{font-size:58px}.hero.has-detail .opened-copy,.hero.has-detail .hero-coordinate,.hero.has-detail .hero-edition,.hero.has-detail .scroll-invitation{visibility:hidden}.scene-detail .site-header{visibility:hidden}.scene-is-static [data-turn],.scene-is-static [data-reset]{display:none}.cut-trace{position:absolute;top:43%;left:30%;width:40%;height:2px;background:#f2e5cb;opacity:0;pointer-events:none;z-index:7;transform:scaleX(.1)}.is-cutting .cut-trace{animation:slice-trace .45s ease-out}@keyframes slice-trace{20%{opacity:.9;transform:scaleX(.5)}70%{opacity:.5;transform:scaleX(1)}100%{opacity:0;transform:scaleX(1.1)}}.museum-marker{background:#e8e2c8}.museum-card{grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:center}.museum-card .place-image{aspect-ratio:1.6}.museum-card .place-card-caption{border:0;padding:25px 0}.museum-card h3{font-size:42px;max-width:320px}.museum-card .place-card-caption p{font-size:20px;margin-top:10px;color:#7a8568}.detail-body .museum-subtitle{font-size:17px;color:#697e51;margin:-8px 0 23px}.detail-body .museum-title{font-size:43px}.museum-official{font-size:12px;margin-top:15px}.note a{text-decoration:underline;text-underline-offset:3px}.hero .entry-hint{max-width:270px}.hero .entry-actions{text-align:left}.explorer .scene-tools{display:none}.explorer-places{gap:10px}.hero[data-state=world] .hero-coordinate{top:120px}.hero[data-state=world] .scene-status{bottom:65px}
@media(max-width:700px){.opened-copy{bottom:113px}.opened-copy h1{font-size:35px}.opened-copy .eyebrow{font-size:5px}.inline-world-hint{padding:0;margin-top:14px;gap:10px;max-width:240px}.inline-world-hint p{font-size:9px;line-height:1.5}.drag-symbol{font-size:22px}.scene-tools{bottom:111px;right:18px}.scene-tools button{width:30px;height:31px;font-size:18px}.hero .entry-hint{font-size:8px;max-width:150px}.entry-actions{gap:12px}.hero[data-state=world] .scroll-invitation{font-size:11px;padding:9px 13px;gap:23px;bottom:20px}.hero[data-state=world] .hero-edition{max-width:100px;font-size:4px;bottom:30px}.hero[data-state=world] .hero-coordinate{top:100px;font-size:6px}.hero[data-state=world] .scene-status{bottom:75px}.hero .scene-tools{bottom:111px}.museum-card{display:block}.museum-card .place-image{aspect-ratio:1.25}.museum-card h3{font-size:31px}.museum-card .place-card-caption{padding:18px 0;border-bottom:1px solid var(--line)}.museum-card .place-card-caption p{font-size:16px;margin-top:6px}.detail-body .museum-title{font-size:34px}.detail-body .museum-subtitle{font-size:14px}.explorer-places{gap:5px;right:var(--gutter)}.explorer-places button{font-size:8px;padding:9px 7px}.cut-trace{left:10%;width:80%;top:35%}.place-marker{font-size:8px}.place-marker>span{width:18px;height:18px}}

/* V4: one set of scene controls and a separate, readable mobile caption. */
.scene-tools{right:var(--gutter);bottom:24px;padding:4px;gap:2px;border-radius:9px;background:#eff0e6ed;border-color:#b8c2ad;box-shadow:0 6px 24px #13291a1a}
.scene-tools button{width:44px;height:44px;display:grid;place-items:center;font-size:23px;border-radius:5px;touch-action:manipulation}
.scene-tools [data-turn]{font-size:20px}
.scene-tools button:focus-visible{outline-offset:1px}
.scene-tools [data-zoom="1"]{border-right:1px solid #c6ceba;border-radius:0;padding-right:3px;margin-right:3px}
.scene-is-static #scene-tools [data-reset]{display:grid}
.scene-poster{will-change:transform;transform-origin:center}
.place-marker{min-height:44px;font-size:12px;gap:7px;padding:7px 10px 7px 7px;white-space:nowrap;box-shadow:0 2px 12px #152b2320}
.place-marker>span{width:24px;height:24px;font-size:9px;flex-shrink:0}
.bell-marker{background:#e1e9d9}
.opened-copy{bottom:122px;align-items:end;gap:40px}
.opened-copy h1{font-size:clamp(38px,4.3vw,62px)}
.inline-world-hint{padding:0;max-width:340px;gap:12px}
.inline-world-hint p{font-size:13px;line-height:1.6}
.hero[data-state=world] .scroll-invitation{bottom:28px;font-size:13px;min-height:48px;border-radius:5px}
.hero[data-state=world] .hero-edition{right:var(--gutter);bottom:85px;font-size:8px}
.hero[data-state=world] .scene-status{bottom:86px;font-size:10px;max-width:290px}
.scene-vignette{pointer-events:none}
.explorer .scene-tools{display:flex;right:24px;bottom:24px}
.explorer .scene-tools [data-explore]{display:none}
.explorer-caption{bottom:157px;max-width:290px}
.explorer-caption h2{font-size:40px}
.explorer-caption p{font-size:12px}
.explorer-places{bottom:88px;right:24px;left:auto;max-width:80%;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.explorer-places button{font-size:12px;min-height:44px;padding:10px 13px;border-radius:5px}
.explorer-note{bottom:33px;left:var(--gutter);font-size:8px;max-width:45%}
.explorer.has-detail .explorer-places,.explorer.has-detail .scene-tools{visibility:hidden}
.museum-card{grid-column:auto;display:block}
.museum-card .place-image,.bell-card .place-image{aspect-ratio:1.2}
.museum-card .place-card-caption,.bell-card .place-card-caption{padding:22px 0;border-bottom:1px solid var(--line)}
.museum-card h3,.bell-card h3{font-size:29px;max-width:none}
.place-card-caption p{font-size:16px;margin-top:8px;color:#768367}
.detail-body .landmark-title{font-size:clamp(31px,3.3vw,43px);overflow-wrap:normal;letter-spacing:-.055em}
.detail-body .landmark-subtitle{font-size:16px;color:#637653;margin:-6px 0 23px}
.close-button{min-width:44px;min-height:44px}
.business-meta{flex-wrap:wrap;gap:8px}
.scene canvas:focus-visible{outline:2px solid #d1dfb5;outline-offset:-5px}
@media(min-width:701px) and (max-height:720px){
 .hero{min-height:600px}.hero-coordinate{top:105px}.opened-copy{bottom:115px}.opened-copy h1{font-size:38px}.inline-world-hint p{font-size:12px}.hero[data-state=world] .hero-edition{display:none}
}
@media(max-width:700px){
 .hero[data-state=world]{height:auto;min-height:0;padding-bottom:22px;overflow:visible;background:#213d2c}
 .hero[data-state=world] .hero-mount{position:relative;height:clamp(420px,66svh,650px);inset:auto}
 .hero[data-state=world] .opened-copy{position:relative;inset:auto;padding:21px 22px 0;display:block}
 .hero[data-state=world] .opened-copy h1{font-size:34px;line-height:1.02;max-width:310px}
 .hero[data-state=world] .opened-copy .eyebrow{font-size:9px;line-height:1.5;margin-bottom:10px;color:#c5d2b7}
 .hero[data-state=world] .inline-world-hint{max-width:340px;gap:10px;margin-top:15px;padding:0}
 .hero[data-state=world] .inline-world-hint p{font-size:12px;line-height:1.55;color:#d0d9c4}
 .hero[data-state=world] .drag-symbol{font-size:25px}
 .hero[data-state=world] .scroll-invitation{position:relative;inset:auto;margin:19px 22px 0;display:inline-flex;font-size:13px;padding:10px 15px;gap:35px;min-height:46px}
 .hero[data-state=world] .hero-edition{display:none}
 .hero[data-state=world] .hero-coordinate{top:95px;font-size:9px;line-height:1.5;max-width:140px}
 .hero .scene-tools{right:16px;bottom:16px}
 .hero .scene-tools [data-turn]{display:none}
 .hero[data-state=world] .scene-status{left:18px;right:auto;bottom:77px;max-width:275px;font-size:9px;text-align:left}
 .hero.has-detail[data-state=world]{height:100dvh;padding:0;overflow:hidden}
 .hero.has-detail[data-state=world] .hero-mount{height:100%;position:absolute;inset:0}
 .hero.has-detail .opened-copy,.hero.has-detail .scroll-invitation{display:none}
 .hero .entry-hint{font-size:11px;line-height:1.5;max-width:160px}
 .hero .entry-actions{align-items:center;gap:12px}
 .entry-copy{bottom:125px}.entry-title .eyebrow{font-size:9px}.nut-button{min-height:46px;font-size:12px}
 .hero .scene-status{font-size:9px;bottom:77px}
 .hero-edition{font-size:7px;max-width:128px;bottom:34px}
 .place-marker{font-size:11px;gap:5px;padding:6px 8px 6px 6px;min-height:44px}
 .place-marker>span{width:22px;height:22px;font-size:8px}
 .site-header{gap:12px}.header-actions{gap:12px}.guide-link{font-size:12px}.is-scrolled .mobile-explore{font-size:11px}.visit-button{font-size:12px}
 .site-header.is-scrolled{padding-top:10px;padding-bottom:10px}.is-scrolled .brand{font-size:29px}
 .hero .scene-tools button,.explorer .scene-tools button{width:44px;height:44px}
 .explorer .scene-tools{right:16px;bottom:max(17px,env(safe-area-inset-bottom))}
 .explorer .scene-tools [data-turn]{display:none}
 .explorer-caption{top:108px;bottom:auto;max-width:250px;pointer-events:none}
 .explorer-caption h2{font-size:27px;margin:8px 0}.explorer-caption p{font-size:12px;max-width:240px}.explorer-caption>.mono{font-size:9px}
 .explorer-places{bottom:84px;right:16px;left:16px;max-width:none;justify-content:flex-start;gap:6px}
 .explorer-places button{font-size:11px;min-height:44px;padding:9px 10px}
 .explorer-note{display:none}.explorer .scene-status{top:92px;bottom:auto;left:auto;right:18px;font-size:9px;max-width:180px;text-align:right}
 .exit-explorer{min-height:44px;font-size:12px;gap:14px}.explorer-brand small{font-size:8px}
 .detail-dialog[data-context=explore]{height:52dvh;max-height:560px;bottom:max(8px,env(safe-area-inset-bottom))}
 .detail-top{padding:10px 16px 4px}.detail-top>.mono{font-size:9px;line-height:1.5;padding-right:10px}
 .detail-body{padding:0 20px 24px}.detail-body .landmark-title{font-size:34px;line-height:1.02;margin-top:10px}
 .detail-body .landmark-subtitle{font-size:14px;margin-bottom:18px}.detail-body .note{font-size:10px;line-height:1.6}.business-meta span{font-size:9px}
 .museum-card .place-image,.bell-card .place-image{aspect-ratio:1.2}.museum-card h3,.bell-card h3{font-size:27px}.museum-card .place-card-caption,.bell-card .place-card-caption{padding:18px 0}
 .image-label{font-size:8px}.place-card-caption .mono{font-size:9px}.section-heading>.mono{font-size:10px}.section-heading>:last-child{font-size:9px}.experience-title .mono{font-size:9px}.story-row small{font-size:9px}
}
@media(max-width:370px){.entry-actions{flex-wrap:wrap}.hero .entry-hint{max-width:270px}.opened-copy h1{font-size:31px}.site-header .brand{font-size:31px}.is-scrolled .brand{font-size:26px}.header-actions{gap:8px}.visit-button{font-size:11px}}
@media(max-width:700px) and (max-height:500px){.hero[data-state=world] .hero-mount{height:390px}.entry-copy{bottom:105px}.entry-title h1{font-size:34px}.hero-coordinate{top:94px}.explorer-caption{display:none}}
/* Contain image zoom without clipping the independent place labels or page caption. */
.scene{overflow:hidden}
.hero[data-state=world] .hero-edition{display:none}

/* Compact language selector; translations are intentionally still pending. */
.language-picker{position:relative;flex-shrink:0;font-size:12px;text-align:left}
.language-picker>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:6px;min-width:64px;min-height:40px;padding:7px 9px;border:1px solid #c3cbbb70;border-radius:5px;cursor:pointer;user-select:none}
.language-picker>summary::-webkit-details-marker{display:none}
.language-picker>summary:hover{background:#b7c6a31a}
.language-picker>summary:focus-visible{outline:2px solid #a37848;outline-offset:4px}
.language-chevron{font-size:14px;line-height:1;margin-top:-4px}
.language-menu{position:absolute;top:calc(100% + 9px);right:0;z-index:100;width:225px;padding:10px;background:#f1efe5;color:#303c2d;border:1px solid #ccd0be;border-radius:7px;box-shadow:0 12px 35px #11241438}
.language-heading{font:9px/1.5 var(--mono);letter-spacing:.04em;color:#77836c;padding:4px 9px 8px}
.language-menu button{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:9px 10px;font-size:14px;text-align:left;border-radius:4px}
.language-menu button:hover{background:#e2e7d6}
.language-menu button[aria-pressed=true]{background:#dce4ce}
.language-code{font:10px var(--mono);color:#7d896e}
.language-note{font-size:11px;line-height:1.5;color:#78836d;padding:10px 9px 3px;border-top:1px solid #d5dac8;margin-top:7px}
.explorer-actions{display:flex;align-items:center;gap:12px}
@media(max-width:700px){
 .language-picker>summary{min-width:57px;min-height:44px;padding:7px 8px;gap:5px}
 .language-picker>summary svg{width:13px;height:13px}
 .header-actions{gap:9px}.site-header{gap:10px}
 .is-scrolled .visit-button .visit-label{display:none}
 .is-scrolled .visit-button{min-height:44px;padding:0}
 .is-scrolled .visit-button [data-count]{width:27px;height:27px;font-size:11px}
 .explorer-actions{gap:8px}.explorer .language-picker>summary{min-width:55px}
 .language-menu{width:210px}.language-menu button{min-height:44px}
}

/* Make the invitation unmistakable; the first two visits get two stronger pulses. */
.nut-button{min-height:88px;min-width:330px;padding:15px 28px 15px 16px;font-size:23px;gap:19px;background:#e5ebcd;color:#273b25;border:2px solid #e5ebcd;box-shadow:0 8px 35px #0e170c33}
.nut-button .round-arrow{width:56px;height:56px;font-size:32px;background:#345130;color:#eaf0d8;flex-shrink:0}
.nut-button:hover{background:#f0f3df;border-color:#f0f3df}
.entry-hint{font-size:13px;line-height:1.6;max-width:330px;margin-top:18px;color:#d7d3bc}
.nut-button.is-inviting{animation:nut-breath 3.2s ease-in-out infinite}
.hero[data-intro=first] .nut-button.is-inviting{animation:nut-welcome 2.3s ease-in-out 0s 2,nut-breath 3.2s ease-in-out 4.6s infinite}
@keyframes nut-welcome{0%,100%{transform:scale(1);box-shadow:0 8px 35px #0e170c33,0 0 0 0 #e5ebcd55}45%{transform:scale(1.065);box-shadow:0 12px 42px #0e170c44,0 0 0 15px #e5ebcd15}75%{box-shadow:0 8px 35px #0e170c33,0 0 0 25px #e5ebcd00}}
@keyframes nut-breath{0%,100%{transform:scale(1);box-shadow:0 8px 35px #0e170c33,0 0 0 0 #e5ebcd30}50%{transform:scale(1.025);box-shadow:0 10px 35px #0e170c33,0 0 0 10px #e5ebcd06}}
@media(max-width:700px){
 .entry-copy{bottom:112px}.entry-actions{width:100%;display:flex;flex-direction:column;align-items:stretch;margin-top:24px;gap:0;padding:0}
 .hero .entry-actions{align-items:stretch;gap:0}
 .nut-button{width:100%;min-width:0;min-height:76px;padding:12px 20px 12px 12px;font-size:20px;gap:16px;justify-content:flex-start}
 .nut-button .round-arrow{width:48px;height:48px;font-size:28px}
 .hero .entry-hint{max-width:none;font-size:12px;line-height:1.5;margin-top:15px}
 .hero[data-intro=first] .nut-button.is-inviting{animation:nut-welcome-mobile 2.3s ease-in-out 0s 2,nut-breath 3.2s ease-in-out 4.6s infinite}
 @keyframes nut-welcome-mobile{0%,100%{transform:scale(1);box-shadow:0 8px 35px #0e170c33,0 0 0 0 #e5ebcd55}45%{transform:scale(1.04);box-shadow:0 12px 42px #0e170c44,0 0 0 11px #e5ebcd15}75%{box-shadow:0 8px 35px #0e170c33,0 0 0 19px #e5ebcd00}}
}
@media(prefers-reduced-motion:reduce){.nut-button.is-inviting,.hero[data-intro=first] .nut-button.is-inviting{animation:none}}
