@font-face{font-family:ShinoSerif;src:url("assets/serif.woff2") format("woff2");font-display:swap;font-weight:400}
:root{--paper:#ede8df;--ink:#20251f;--rust:#834b37;--gold:#c6a570;--line:rgba(157,135,101,.3);--ease:cubic-bezier(.22,1,.36,1);--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;font:400 16px/1.9 ShinoSerif,"Yu Mincho",serif;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;color:inherit;background:none;border:0}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}img{display:block;max-width:100%}figure,h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}button svg,a svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.3}.sans,.kicker,.number,.caption{font-family:var(--sans)}.kicker{font-size:10px;letter-spacing:.18em;line-height:1.6;text-transform:uppercase}.caption{font-size:11px;line-height:1.8;letter-spacing:.04em}.muted{opacity:.68}.wrap{width:min(1240px,calc(100% - 120px));margin-inline:auto}.section-heading{font-size:clamp(32px,4vw,58px);line-height:1.65;letter-spacing:.09em}.body-copy{font-size:15px;line-height:2.5;letter-spacing:.06em}.text-link{display:inline-flex;gap:36px;align-items:center;border-bottom:1px solid var(--line);padding:14px 0;font-family:var(--sans);font-size:12px;letter-spacing:.12em}.text-link .arrow{transition:transform .35s}.text-link:hover .arrow{transform:translate(4px,-4px)}.round-arrow{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border:1px solid var(--line);border-radius:100%;font-family:var(--sans)}.section-label{display:flex;align-items:center;gap:18px;margin-bottom:40px}.section-label:before{content:"";height:1px;width:35px;background:currentColor;opacity:.4}
.site-header{position:absolute;z-index:20;inset:0 0 auto;display:flex;justify-content:space-between;align-items:flex-start;padding:34px 48px}.brand-mark{width:63px}.brand-mark img{width:100%;height:auto}.header-actions{display:flex;align-items:center;gap:26px}.desktop-nav{display:flex;gap:28px;font-size:12px;letter-spacing:.12em}.reserve-mini{display:flex;align-items:center;gap:27px;font:12px var(--sans);letter-spacing:.1em;border:1px solid currentColor;padding:14px 21px}.menu-toggle{width:48px;height:48px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}.menu-toggle span{height:1px;background:currentColor;width:25px;transition:transform .3s}.menu-toggle:hover span:first-child{transform:translateX(3px)}.menu-toggle:hover span:last-child{transform:translateX(-3px)}.progress-line{position:fixed;z-index:80;inset:0 auto auto 0;background:var(--gold);height:2px;transform-origin:left;width:100%;transform:scaleX(0)}
.motion-control{position:fixed;right:24px;bottom:26px;z-index:28;width:44px;height:44px;border-radius:50%;border:1px solid #a9947155;background:#242821;color:#fff;display:grid;place-items:center;font-family:var(--sans);font-size:13px;box-shadow:0 3px 12px #0002}.motion-control.paused{background:#e9e3d7;color:#222}.mobile-dock{display:none}
.picture{overflow:hidden;position:relative}.picture img{width:100%;height:100%;object-fit:cover}.photo-zoom img{transition:transform 1.2s var(--ease)}.photo-zoom:hover img{transform:scale(1.045)}.img-credit{display:block;margin-top:9px;opacity:.58;font:10px/1.6 var(--sans)}.vertical{writing-mode:vertical-rl;line-height:1.75;letter-spacing:.17em}.r{opacity:1;transform:none}.js.motion-on .r:not(.visible){opacity:0;transform:translateY(36px)}.r{transition:opacity 1s var(--ease),transform 1.2s var(--ease);transition-delay:var(--delay,0s)}.js.motion-on .wipe:not(.visible){clip-path:inset(0 0 100% 0);transform:translateY(25px)}.wipe{transition:clip-path 1.4s var(--ease),transform 1.4s var(--ease);clip-path:inset(0)}.rule{height:1px;background:var(--line);transform-origin:left}.js.motion-on .rule:not(.visible){transform:scaleX(.05)}.rule{transition:transform 1.4s var(--ease)}
.menu-panel{background:var(--paper);color:var(--ink);position:fixed;z-index:70;inset:0;display:none;padding:65px max(8vw,25px);overflow:auto}.menu-panel.open{display:grid;grid-template-columns:1fr 1.1fr;gap:60px;animation:menuReveal .55s var(--ease)}.menu-panel .brand-mark{width:95px;margin-bottom:25px}.menu-panel nav{display:grid;align-content:center;gap:6px}.menu-panel nav a{font-size:clamp(25px,4vw,50px);border-bottom:1px solid #2930242e;padding:14px 0;display:flex;justify-content:space-between}.menu-panel nav a span{font:10px var(--sans);letter-spacing:.12em;align-self:center}.close-menu,.dialog-close{position:absolute;right:25px;top:23px;width:48px;height:48px;font:30px var(--sans)}.menu-panel .reserve-menu{font-size:19px;line-height:1.7;margin-top:20px}.menu-info{font:12px/2 var(--sans);opacity:.7}
dialog{width:min(510px,calc(100% - 32px));max-height:calc(100svh - 50px);overflow:auto;border:1px solid #aa967466;border-radius:0;background:#f0ece3;color:#252820;padding:55px 38px;box-shadow:0 20px 120px #0007}dialog::backdrop{background:#090c0bd9;backdrop-filter:blur(8px)}dialog h2{font-size:30px;letter-spacing:.1em;margin:14px 0 24px}.dialog-option{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #242a1e30;padding:22px 0;font:14px var(--sans)}.dialog-option:last-of-type{border-bottom:1px solid #242a1e30}.dialog-option small{font-size:10px;display:block;margin-top:7px;opacity:.6}.dialog-note{font:11px/1.9 var(--sans);margin-top:24px;opacity:.65}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:9vw}.visit-title{font-size:clamp(34px,5vw,70px);letter-spacing:.09em;line-height:1.6;margin:25px 0 45px}.visit-photo{height:480px;width:85%;margin-top:65px;object-fit:cover;object-position:center}.info-list{margin:0}.info-list div{padding:24px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:80px 1fr;gap:20px}.info-list dt{font:11px var(--sans);opacity:.65;letter-spacing:.1em}.info-list dd{margin:0;font-size:15px;line-height:2}.info-list dd small{font:11px/1.8 var(--sans);opacity:.7;display:block}.big-reserve{display:flex;justify-content:space-between;align-items:center;width:100%;padding:28px 0;border-bottom:1px solid var(--line);font-size:24px;margin-top:35px;text-align:left;letter-spacing:.1em}.faq{margin-top:40px}.faq summary{font:13px/1.7 var(--sans);cursor:pointer;padding:20px 0;list-style:none;border-bottom:1px solid var(--line)}.faq summary:after{content:"＋";float:right}.faq[open] summary:after{content:"−"}.faq p{font:12px/2 var(--sans);padding:15px 0}.site-footer{display:flex;justify-content:space-between;gap:25px;padding:42px 5vw;font:10px/1.9 var(--sans);border-top:1px solid var(--line)}.site-footer a{text-decoration:underline;text-underline-offset:4px}.site-footer .footer-links{display:flex;gap:20px}
@keyframes menuReveal{from{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}@keyframes fadeUp{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}
.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition-duration:0s!important}.motion-off .r,.motion-off .wipe{opacity:1!important;transform:none!important;clip-path:none!important}.motion-off .parallax-img{transform:none!important}.motion-off{scroll-behavior:auto}
@media(max-width:760px){html{scroll-padding-top:30px}.wrap{width:calc(100% - 44px)}.site-header{padding:21px 22px}.desktop-nav{display:none}.header-actions{gap:6px}.reserve-mini{font-size:11px;padding:11px 14px;gap:16px}.brand-mark{width:47px}.section-heading{font-size:31px}.body-copy{font-size:14px;line-height:2.35}.section-label{margin-bottom:26px}.mobile-dock{display:grid;grid-template-columns:1fr 1.65fr;gap:8px;position:fixed;z-index:40;bottom:0;inset-inline:0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:#171b16ef;backdrop-filter:blur(16px);border-top:1px solid #b5a17b40;color:#f2ece0}.mobile-dock a,.mobile-dock button{display:flex;align-items:center;justify-content:center;gap:11px;min-height:49px;font:12px var(--sans);letter-spacing:.1em;border:1px solid #c6a5706b}.mobile-dock button{background:#bc9b67;color:#151b14}.motion-control{bottom:91px;right:15px;width:36px;height:36px;font-size:11px}.menu-panel.open{grid-template-columns:1fr;gap:25px;padding:46px 28px}.menu-panel .brand-mark{width:53px;margin-bottom:12px}.menu-panel nav a{font-size:28px;padding:15px 0}.menu-info{display:none}.visit-grid{grid-template-columns:1fr;gap:42px}.visit-photo{height:290px;width:100%;margin-top:30px}.visit-title{font-size:36px;margin:15px 0 25px}.info-list div{padding:20px 0;grid-template-columns:65px 1fr;gap:13px}.info-list dd{font-size:14px}.big-reserve{font-size:21px}.site-footer{padding:30px 22px 100px;flex-direction:column;font-size:9px}.site-footer .footer-links{gap:18px}dialog{padding:45px 24px}.img-credit{font-size:9px}.section-heading br{display:initial}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.r,.wipe{opacity:1!important;transform:none!important;clip-path:none!important}.parallax-img{transform:none!important}}
