:root{color-scheme:light;--paper:#f7efe0;--ink:#332b21;--muted:#625346;--line:#cdbca1;--rust:#8f4034;--serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);font-family:system-ui,"Hiragino Sans",sans-serif;line-height:1.65;background:radial-gradient(ellipse at 50% 12%,#fffbf1,transparent 65%),url("paper.svg"),var(--paper)}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:3px solid #245468;outline-offset:4px}
.skip{position:absolute;top:0;left:8px;padding:8px;background:#fff;transform:translateY(-110%);z-index:2}.skip:focus{transform:none}
.mast{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px clamp(12px,5vw,70px);border-bottom:1px solid var(--line);background:#fff8edb0}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--serif);font-weight:bold;font-size:20px;line-height:1.1;white-space:nowrap}
.brand small{display:block;font:10px system-ui;letter-spacing:.16em;margin-top:3px}.seal{display:grid;place-items:center;background:var(--rust);color:#fff4e0;width:36px;height:38px;border-radius:7px 5px 8px 5px;box-shadow:inset 0 0 0 2px #fff3,0 2px 0 #5e2923;transform:rotate(-5deg)}
nav{display:flex;gap:clamp(6px,2vw,30px);font-size:clamp(12px,3vw,15px);font-weight:650}nav a{display:grid;place-items:center;min-height:44px;padding:0 5px}nav a:hover,footer a:hover{text-decoration:underline}
main{width:min(100% - 24px,1150px);margin:auto}.welcome{text-align:center;padding:clamp(26px,5vw,60px) 0 22px}
.eyebrow{margin:0;font-size:14px;font-weight:700;letter-spacing:.22em;color:var(--rust)}
h1,h2,h3,.tagline{font-family:var(--serif)}
h1{margin:.02em 0 .07em;font-size:clamp(56px,11vw,116px);font-weight:900;letter-spacing:.08em;line-height:1.18;text-indent:.08em;text-shadow:1px 2px 0 #ddc6a5}
.tagline{margin:.3em 0;font-weight:750;font-size:clamp(17px,4.5vw,29px)}
.intro{color:var(--muted);font-size:clamp(13px,2.5vw,15px);margin:10px 0 0}
.section-title{display:flex;justify-content:center;align-items:center;gap:13px;color:var(--rust);margin:0 0 12px}.section-title span{font-size:8px}.section-title h2{color:var(--ink);font-size:clamp(19px,4vw,24px);margin:0;letter-spacing:.08em}
.map{margin:0;padding:clamp(5px,1vw,12px);background:repeating-linear-gradient(2deg,#0000 0 5px,#47230715 6px,#0000 7px 12px),linear-gradient(100deg,#805536,#a7774b 48%,#815535);border:1px solid #755138;border-radius:10px;box-shadow:0 6px 18px #5d3f302d}
.scene{position:relative;overflow:hidden;border-radius:5px;background:#e3cbaa;isolation:isolate}.scene img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.pin{position:absolute;display:grid;place-items:center;width:clamp(44px,5vw,54px);aspect-ratio:1;transform:translate(-50%,-50%);background:#70352a;color:#fff7e6;border:2px solid #fff1d7;border-radius:50%;font:bold 18px var(--serif);box-shadow:0 3px 8px #301c1690}.pin:hover{background:#402d21}.pin:focus-visible{outline-color:#fff}
.pin1{left:25%;top:37%}.pin2{left:72%;top:32%;background:#345562}.pin3{left:22%;top:63%;background:#7a4a23}.pin4{left:77%;top:67%;background:#435538}.pin5{left:49%;top:79%;background:#624237}.pin6{left:56%;top:18%;background:#67405b}
figcaption{text-align:center;font-size:12px;color:#fff7e9;padding:5px 0 0}
.directory{margin:clamp(32px,6vw,62px) auto;width:min(100%,960px)}.places{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.place{--accent:#803f32;display:grid;grid-template-columns:44px 1fr;gap:3px 11px;align-items:center;padding:12px 14px;background:#fffbf2;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:5px;box-shadow:0 2px 3px #68472c12;scroll-margin-top:15px}.place:target{outline:3px solid var(--accent);outline-offset:2px}
.blue{--accent:#345562}.amber{--accent:#7a4a23}.green{--accent:#435538}.brown{--accent:#624237}.plum{--accent:#67405b}
.badge{grid-row:span 2;align-self:start;display:grid;place-items:center;width:42px;height:42px;color:#fff7e6;background:var(--accent);border-radius:5px;font:bold 17px var(--serif);box-shadow:inset 0 0 0 3px #fff3}
h3{font-size:clamp(18px,4vw,22px);line-height:1.35;margin:0}h3 small{display:inline-block;font-size:.7em}
.place p{margin:4px 0 0;color:var(--muted);font-size:14px}
.place a,.closed{grid-column:2;justify-self:start;color:var(--accent);font-weight:700;font-size:13px;display:flex;align-items:center;min-height:44px}.place a{text-decoration:underline;text-underline-offset:4px}.place a:hover{text-decoration-thickness:2px}.closed{min-height:28px;border:1px dashed currentColor;padding:0 9px;margin-top:5px}
footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:20px clamp(12px,5vw,70px);color:var(--muted);font-size:13px}footer a{font-weight:700}
@media(min-width:660px){.place{grid-template-columns:44px 1fr auto;gap:14px;padding:14px 20px}.place .badge{grid-row:auto;align-self:center}.place a,.closed{grid-column:3;justify-self:end}.closed{margin:0}}

.copyright{flex-basis:100%;text-align:center;font-size:11px}

.bookshop{--accent:#7b4739}
.story-lab{--accent:#3d5c55}
.facility{width:min(100% - 32px,680px);padding-bottom:44px}
.facility .badge{margin:0 auto 14px}
.facility h1{font-size:clamp(33px,8vw,66px)}
.facility-intro{margin:0 0 24px;line-height:1.95}
.facility-notice{padding:clamp(16px,4vw,25px);background:#fffbf2;border:1px solid var(--line);border-top:4px solid var(--accent);border-radius:5px}
.facility-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.facility-heading h2{margin:0;font-size:21px}
.facility-heading .closed{margin:0}
.facility-notice ul{margin:12px 0 0;padding-left:1.4em}
.facility-notice li + li{margin-top:5px}
.facility-back{display:inline-flex;align-items:center;min-height:44px;margin-top:12px;color:var(--accent);font-weight:700;text-decoration:underline;text-underline-offset:4px}

.bamboo-pins{position:absolute;left:40%;top:14%;display:flex;gap:5px;transform:translate(-50%,-50%)}
.bamboo-pins .pin{position:static;width:clamp(34px,5vw,54px);transform:none;background:var(--accent)}
.bamboo-pins .pin:hover{background:#402d21}
.bamboo-pins svg{width:55%;height:55%}
@media(max-width:400px){.bamboo-pins{left:37%;top:13%}}
