@charset "UTF-8";
:root{font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;color:#20332e;background:#e5e8e0;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid #ae6737;outline-offset:4px}main{height:100dvh;min-height:640px;position:relative;overflow:hidden}#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:absolute;top:32px;left:38px;right:38px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{display:flex;gap:13px;align-items:center;color:inherit;text-decoration:none;font-size:16px;letter-spacing:.15em;pointer-events:auto}.seal{display:grid;place-items:center;width:42px;height:48px;border:1px solid #263d35;font-family:serif;font-size:25px}.brand small{display:block;font-size:12px;letter-spacing:.2em;margin-top:5px}.edition{font-size:12px;letter-spacing:.16em}.edition b{font-size:23px;margin-left:22px;font-weight:400}.intro{position:absolute;top:145px;left:42px;pointer-events:none}.eyebrow{font-size:13px;letter-spacing:.25em}h1{font-family:"Yu Mincho",serif;font-weight:500;font-size:clamp(32px,3.8vw,57px);line-height:1.55;letter-spacing:.12em;margin:19px 0}.intro p{font-size:14px;line-height:2;letter-spacing:.13em}.detail{position:absolute;right:36px;top:146px;width:255px;padding:25px;background:#f8f8f0e8;border:1px solid #ffffffa0;box-shadow:0 12px 45px #23362b08}.detail-top{display:flex;justify-content:space-between;align-items:start;font-size:11px;letter-spacing:.1em}.vertical{writing-mode:vertical-rl;font-family:serif;font-size:16px;letter-spacing:.25em}h2{font-family:"Yu Mincho",serif;font-size:23px;font-weight:500;margin:6px 0 15px}.detail p{font-size:14px;line-height:1.9;margin:0;color:#55655d}.plan{margin:23px 0;display:grid;grid-template-columns:30px 1fr;grid-template-rows:repeat(5,29px);gap:3px}.plan button,.plan div{display:grid;place-items:center;background:#e7eadd;border:1px solid #c9d0c0;color:#4d6152;font-size:12px}.plan .doma{grid-row:1/5;writing-mode:vertical-rl;letter-spacing:.3em}.plan button:last-child{grid-column:1/3;background:#d5ddc6}.plan button.active{background:#274639;color:#fff}.primary{display:flex;justify-content:space-between;align-items:center;width:100%;padding:15px 14px;background:#263f34;color:#fff;border:0;font-size:15px}.detail .detail-note{font-size:11px;margin-top:13px;text-align:center}.view-tools{position:absolute;left:42px;bottom:133px;display:flex;gap:5px}.view-tools button{border:1px solid #b9c5b7;background:#f4f6efdb;color:#30493b;font-size:13px;padding:11px 16px}.view-tools button[aria-pressed=true]{background:#263f34;color:#fff}footer{position:absolute;bottom:0;left:0;right:0;min-height:100px;display:flex;align-items:center;padding:16px 38px;background:#f9faf3e8;border-top:1px solid #cbd1c6;gap:35px}.journey-label{min-width:155px}.journey-label span{font-size:10px;letter-spacing:.12em;display:block}.journey-label b{font-family:serif;display:block;font-size:18px;font-weight:500;margin-top:6px}nav{display:flex;flex:1;height:66px;gap:7px}nav button{flex:1;max-width:160px;border:0;border-bottom:2px solid transparent;background:transparent;color:#69776c;font-size:15px;text-align:left;padding:8px 15px}nav small{display:block;font-size:11px;margin-bottom:8px}nav button.active{color:#243f31;border-bottom-color:#263f34;background:#e4e9dd}#hint{font-size:12px;line-height:1.9;color:#6a786c}.pin{position:absolute;transform:translate(-50%,-50%);border:1px solid #fff9;background:#253e32e8;color:#fff;border-radius:30px;padding:8px 13px;font-size:12px;box-shadow:0 3px 20px #0002;white-space:nowrap}.pin:before{content:'＋';margin-right:6px}#loading{position:absolute;inset:0;background:#e5e8e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;z-index:10}#loading h2{margin-top:18px}#loading p{font-size:14px}progress{accent-color:#324c3b;width:240px;height:4px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}body.inside .intro{display:none}body.inside .detail{background:#f8f8f0ed}body.inside header{color:#fff;text-shadow:0 1px 7px #000}body.inside header .seal{border-color:#fff}body.inside .edition{display:none}@media(max-width:1000px){.detail{right:22px;width:220px;padding:18px}.intro{left:26px}h1{font-size:36px}header{left:26px;right:26px}.journey-label{display:none}footer{gap:15px;padding:15px 22px}.view-tools{left:26px}.detail-note{display:none}}@media(max-width:700px){main{min-height:600px}header{top:20px;left:20px;right:20px}.edition{display:none}.intro{top:98px;left:22px}h1{font-size:29px;margin:10px 0}.intro p{display:none}.eyebrow{font-size:11px}.detail{left:18px;right:18px;top:auto;bottom:146px;width:auto;padding:14px 16px;display:grid;grid-template-columns:1fr 150px;gap:4px 14px}.detail-top,.plan,.detail .detail-note{display:none}.detail h2{font-size:19px;margin:0}.detail p{font-size:12px;line-height:1.7}.primary{grid-column:2;grid-row:1/3;font-size:14px;align-self:center}.view-tools{left:18px;bottom:105px;gap:4px}.view-tools button{padding:8px 12px;font-size:12px}footer{height:90px;min-height:90px;padding:9px 12px}nav{gap:2px;height:67px}nav button{font-size:13px;padding:8px 10px}#hint{display:none}.pin{font-size:11px;padding:7px 9px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}

.experience-tabs{display:flex;gap:3px;margin:-10px -10px 22px;border-bottom:1px solid #c9d0c0;padding-bottom:10px}.experience-tabs button{flex:1;border:0;background:transparent;color:#536358;padding:10px 3px;font-size:14px;white-space:nowrap}.experience-tabs button[aria-pressed=true]{background:#263f34;color:white}body[data-experience=structure] .plan,body[data-experience=structure] #enter,body[data-experience=structure] .detail-note,body[data-experience=hare] .plan,body[data-experience=hare] #enter,body[data-experience=hare] .detail-note{display:none}.detail{max-height:calc(100dvh - 280px);overflow:auto}.event-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:20px}.event-options button,.structure-steps button,.secondary{border:1px solid #c9d0c0;background:#f6f7ee;color:#30483a;padding:11px 8px;font-size:14px;text-align:left}.event-options button[aria-pressed=true],.structure-steps button[aria-pressed=true]{background:#263f34;color:white}.structure-steps{display:grid;gap:5px;margin-top:18px}.secondary{width:100%;margin-top:12px;text-align:center}.detail-top{margin-top:3px}body[data-experience=structure] #pins{display:none}body[data-experience=hare] #description{font-size:13px}.detail p{overflow-wrap:anywhere}@media(max-width:700px){.detail{max-height:43dvh;display:block;bottom:146px}.experience-tabs{margin:0 0 10px;padding-bottom:7px}.detail h2{margin-bottom:7px}.detail .primary{margin-top:10px}.event-options{margin-top:12px}.structure-steps{grid-template-columns:1fr 1fr;margin-top:10px}.structure-steps button{font-size:12px;padding:8px}.detail .detail-note{display:none}body[data-experience=structure] .intro,body[data-experience=hare] .intro{display:none}}
body[data-experience=hare] .intro,body[data-experience=structure] .intro,body[data-experience=hare] #pins{display:none}
@media(max-width:700px){nav button{padding:8px 6px;white-space:nowrap;font-size:12px}}

/* Mobile: compact dock, with a dedicated, unobstructed 3D viewport. */
#detail-toggle{display:none}
@media(max-width:700px){
 main{min-height:0;height:100dvh}header{top:max(12px,env(safe-area-inset-top));left:14px;right:14px}.brand{font-size:13px;gap:8px}.brand .seal{width:30px;height:34px;font-size:20px}.brand small{display:none}.intro{display:none}
 #viewport{top:55px;bottom:var(--mobile-dock,160px)}
 .view-tools{top:10px;bottom:auto;left:auto;right:12px;gap:4px}.view-tools button{min-height:36px;padding:5px 8px;font-size:12px}.view-tools #overview{display:none}
 .detail{left:8px;right:8px;top:auto;bottom:calc(52px + env(safe-area-inset-bottom));padding:6px 10px 8px;max-height:48dvh;overflow:auto;border-radius:12px;background:#f8f8f0f5;box-shadow:0 -3px 20px #20332e0a}
 .experience-tabs{margin:0 0 4px;padding:0;border:0;gap:4px}.experience-tabs button{min-height:40px;padding:7px 5px;font-size:14px;border-radius:7px}
 #detail-toggle{display:block;float:right;min-height:32px;min-width:48px;padding:5px 8px;border:0;background:#e7ebdf;color:#30483a;border-radius:5px;font-size:13px}
 .detail h2{font-size:16px;line-height:32px;margin:0 55px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detail #description{display:none;clear:both;font-size:14px;line-height:1.7;padding:8px 0}.detail.expanded #description{display:block}.detail .primary,.detail .plan,.detail .detail-note{display:none}
 #experience-panel{clear:both}.event-options,.structure-steps{display:flex;gap:5px;overflow-x:auto;overscroll-behavior-x:contain;margin:5px 0 0;padding:0 0 3px;scrollbar-width:thin}.event-options button,.structure-steps button{flex:none;white-space:nowrap;min-height:40px;font-size:13px;padding:8px 10px;border-radius:5px}.event-options button{flex:1}.event-options button:nth-child(2){font-size:0}.event-options button:nth-child(2)::after{content:'祇園祭';font-size:13px}
 .secondary{margin:4px 0 0;min-height:36px;font-size:13px;padding:6px}body[data-experience=hare] .secondary{display:none}.detail.expanded .secondary{display:block}
 footer{height:calc(48px + env(safe-area-inset-bottom));min-height:48px;padding:3px 8px calc(3px + env(safe-area-inset-bottom))}nav{height:42px;gap:2px}nav button{min-width:0;max-width:none;padding:8px 4px;font-size:13px;text-align:center;border-radius:6px}nav small{display:none}
 .pin{font-size:12px;padding:9px 10px}body[data-experience=walk] #pins{display:none}
}
@media(max-width:700px) and (max-height:500px){header{top:8px}.brand{display:none}#viewport{top:40px}.detail{max-height:40dvh}.detail h2,#detail-toggle{display:none}.experience-tabs button{min-height:34px;padding:4px}.structure-steps button,.event-options button{min-height:34px}.secondary{min-height:30px}}

@media(max-width:700px){#pins{display:none}}
