@font-face{font-family:ShimizuSerif;src:url('../fonts/serif.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#f4f4ef;--paper-deep:#e5e9e1;--ink:#202924;--muted:#626c65;--line:#c2c8c0;--forest:#2d4036;--serif:ShimizuSerif,"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;--gutter:clamp(28px,5.6vw,96px);--page-progress:0}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px;scrollbar-gutter:stable}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-weight:400;font-size:18px;line-height:2.05;letter-spacing:.075em;-webkit-text-size-adjust:100%}
body.menu-is-open{overflow:hidden}
button,a{-webkit-tap-highlight-color:transparent}
button{font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer}
a{color:inherit;text-decoration:none;text-underline-offset:7px}
a:hover{color:var(--muted)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:7px}
img{display:block;max-width:100%;height:auto}
figure,h1,h2,h3,p{margin:0}
h1,h2,h3{font-size:inherit;font-weight:400}
[hidden]{display:none!important}
::selection{background:#d8ded4;color:#19251e}
.skip-link{position:fixed;z-index:100;left:20px;top:-100px;background:var(--paper);padding:10px 20px}
.skip-link:focus{top:20px}
.header{height:108px;padding:26px var(--gutter);display:flex;align-items:center;justify-content:space-between;position:absolute;left:0;right:0;top:0;z-index:10;font-size:13px;letter-spacing:.16em}
.header-actions{display:flex;align-items:center;gap:26px}
.booking-link{min-height:44px;display:flex;align-items:center;gap:22px}
.booking-link::after{content:"";height:1px;width:40px;background:currentColor}
.icon-button{width:44px;height:44px;display:grid;place-items:center;border:0;padding:8px;background:transparent}
.icon-button img{width:28px;height:28px}
.header.is-scrolled{position:fixed;height:76px;background:var(--paper);border-bottom:1px solid var(--line);animation:header-enter .3s ease}
@keyframes header-enter{from{transform:translateY(-100%)}to{transform:translateY(0)}}
.hero{max-width:1600px;margin:0 auto;padding:142px var(--gutter) 116px;display:grid;grid-template-columns:1.07fr 1fr;column-gap:7.4%;position:relative;align-items:center}
.hero-picture{width:100%;max-width:590px;justify-self:center;display:block;grid-column:1;grid-row:1}
.hero-image{width:100%;aspect-ratio:936/1681;object-fit:cover}
.hero-identity{grid-column:2;grid-row:1;display:flex;align-items:center;flex-direction:column;transform:translateY(-3%)}
.hero-logo{display:block;width:100%;max-width:500px;margin-bottom:75px}
.hero-logo img{width:100%;height:auto}
h1{display:flex;flex-direction:row-reverse;justify-content:center;gap:18px;font-size:clamp(24px,2.1vw,34px);line-height:2;letter-spacing:.2em}
h1 span{writing-mode:vertical-rl;white-space:nowrap}
h1 span+span{padding-top:1.8em}
.hero-place{display:none}
.hero-scroll{position:absolute;bottom:52px;right:var(--gutter);display:flex;align-items:center;gap:18px;font-size:12px;color:var(--muted)}
.vertical-rule{display:block;width:1px;height:42px;background:var(--line)}
.section{max-width:1600px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.section h2{font-size:clamp(30px,3vw,46px);line-height:1.65;letter-spacing:.12em}
.section p+p{margin-top:24px}
.section p{font-size:18px;line-height:2.1}
.story{display:grid;grid-template-columns:.78fr 1.22fr;align-items:center;gap:9%;padding-top:72px;padding-bottom:116px}
.story h2{margin-bottom:38px}
.story-tail{color:var(--muted);font-size:16px!important}
.story-art img{aspect-ratio:3/2;width:100%;object-fit:cover}
figcaption{font-size:12px;letter-spacing:.13em;color:var(--muted);margin-top:16px}
.water-chapter{position:relative;width:100%;color:var(--paper);min-height:410px;aspect-ratio:3.1;isolation:isolate;overflow:hidden}
.water-chapter>img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;z-index:-1}
.water-copy{height:100%;min-height:410px;display:flex;justify-content:center;flex-direction:column;padding:60px var(--gutter);max-width:1600px;margin:auto}
.water-copy h2{font-size:clamp(28px,2.7vw,43px);letter-spacing:.17em;line-height:1.8;text-shadow:0 1px 7px #13211e}
.water-copy p{font-size:15px;letter-spacing:.12em;margin-top:26px;text-shadow:0 1px 7px #13211e}
.harmony{display:grid;grid-template-columns:1fr 1fr;column-gap:11%;padding-top:148px;padding-bottom:160px;align-items:start}
.eyebrow{font-size:13px!important;letter-spacing:.16em;margin-bottom:27px;color:var(--muted)}
.harmony h2{margin-bottom:36px}
.harmony-intro>p:not(.eyebrow){font-size:17px}
.harmony-list{padding-top:55px}
.experience{border-top:1px solid var(--line)}
.experience:last-child{border-bottom:1px solid var(--line)}
.experience summary{display:grid;grid-template-columns:42px 1fr 20px;gap:18px;align-items:center;list-style:none;cursor:pointer;padding:25px 0;font-size:16px;line-height:1.65}
.experience summary::-webkit-details-marker{display:none}
.experience-mark{font-size:30px}
.experience[open] summary>img{content:url('../icons/minus.svg')}
.experience-body{padding:0 0 30px 60px}
.experience-body p{font-size:16px;color:var(--muted);line-height:2.1}
.place-section{display:grid;grid-template-columns:1.08fr .92fr;gap:11%;padding-bottom:150px;align-items:center}
.place-image{width:89%;justify-self:start}
.place-image img{width:100%;aspect-ratio:4/5;object-fit:cover}
.place-copy h2{margin-bottom:38px}
.place-copy .line-link{margin-top:34px;max-width:280px}
.line-link{display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);min-height:58px;font-size:16px;letter-spacing:.07em;padding:12px 0}
.line-link img{flex:none;transition:transform .3s ease}
.line-link:hover img{transform:translate(3px,-2px)}
.reservation{border-top:1px solid var(--line);padding-top:110px;padding-bottom:112px;text-align:center;max-width:calc(1600px - 2 * var(--gutter));width:calc(100% - 2 * var(--gutter))}
.reservation h2{font-size:clamp(28px,2.6vw,40px);margin-bottom:24px}
.reservation>p:not(.eyebrow){font-size:15px;color:var(--muted)}
.reservation-links{display:flex;max-width:820px;margin:45px auto 28px;gap:70px;text-align:left}
.reservation-links .line-link{flex:1;font-size:17px;white-space:nowrap}
.quiet-link{font-size:13px;text-decoration:underline;color:var(--muted)}
.footer{background:#eaece6;padding:90px var(--gutter) 26px}
.footer-main,.footer-nav,.footer-bottom{max-width:1408px;margin-left:auto;margin-right:auto}
.footer-main{display:flex;justify-content:space-between;gap:80px;align-items:center}
.footer-brand{width:350px;max-width:45%}
.footer-brand img{width:100%}
.footer-address{width:355px;max-width:50%}
.footer-address h2{font-size:17px;margin-bottom:20px}
.footer-address address{font-size:15px;font-style:normal;line-height:2}
.footer-address .line-link{max-width:180px;font-size:14px;margin-top:12px}
.footer-nav{display:flex;gap:35px;flex-wrap:wrap;margin-top:65px;font-size:13px;letter-spacing:.08em}
.footer-bottom{display:flex;align-items:center;gap:28px;border-top:1px solid #bec4ba;margin-top:34px;padding-top:26px;color:#5c645b;font-size:11px}
.footer-bottom small{font-size:11px}
.footer-bottom p{font-size:11px}
.photo-credit-link{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
.back-top{margin-left:auto;padding:8px}
.mobile-break{display:none}
.menu{position:fixed;inset:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;border:0;margin:0;padding:32px var(--gutter) 38px;background:var(--paper);color:var(--ink);overflow-y:auto}
.menu::backdrop{background:#20252299}
.menu-head{display:flex;justify-content:space-between;align-items:center;font-size:14px}
.menu-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:12%;max-width:1250px;margin:50px auto 35px;align-items:center}
.menu-image{width:100%;height:510px;object-fit:cover}
.menu-content nav{display:flex;flex-direction:column;align-items:flex-start;gap:14px;font-size:clamp(20px,2.2vw,30px)}
.menu-content nav a{min-height:44px;transition:padding-left .25s ease}
.menu-content nav a:hover{padding-left:8px}
.menu-booking{margin-top:32px;max-width:360px}
.menu-logo{width:200px;margin:30px 0 0 auto}
.reveal-ready{transition:opacity .85s ease,transform .85s ease}
.reveal-ready:not(.is-visible){opacity:0;transform:translateY(14px)}
@media(min-width:1600px){.hero{padding-top:160px}.hero-logo{max-width:480px}.water-copy{padding-left:96px}}
@media(max-width:1000px) and (min-width:701px){.hero{column-gap:7%;padding-top:124px;padding-bottom:90px}.hero-logo{margin-bottom:48px}h1{font-size:25px}.story{grid-template-columns:1fr 1fr;gap:5%;padding-top:50px}.section p{font-size:17px}.harmony{gap:6%;padding-top:100px}.harmony-intro>p:not(.eyebrow){font-size:16px}.experience summary{font-size:14px;gap:10px;grid-template-columns:32px 1fr 20px}.experience-body{padding-left:42px}.experience-body p{font-size:15px}.place-section{gap:7%}.reservation{padding-left:0;padding-right:0}.reservation-links{gap:35px}}
@media(max-width:700px){
  html{scroll-padding-top:82px}
  :root{--gutter:26px}
  body{font-size:18px;line-height:2}
  .header{height:72px;padding:14px 18px;justify-content:flex-end}
  .header .place{display:none}
  .header-actions{gap:15px}
  .booking-link{font-size:12px;gap:13px}
  .booking-link::after{width:27px}
  .header.is-scrolled{height:64px}
  .hero{display:flex;flex-direction:column;padding:92px var(--gutter) 75px;max-width:500px}
  .hero-identity{display:contents;transform:none}
  .hero-logo{order:0;max-width:205px;width:58%;margin:0 auto 38px;align-self:center}
  .hero-logo img{width:100%;height:auto;max-height:105px;object-fit:contain}
  .hero-picture{order:1;width:100%;max-width:none}
  .hero-image{aspect-ratio:1/1.48;object-fit:cover;object-position:50% 52%}
  h1{order:2;display:flex;flex-direction:column;gap:0;align-self:center;text-align:center;font-size:24px;line-height:1.85;letter-spacing:.18em;margin-top:35px}
  h1 span{writing-mode:horizontal-tb}
  h1 span+span{padding:0;white-space:nowrap;margin:auto}
  .hero-place{display:block;order:3;margin-top:30px;font-size:11px;color:var(--muted);letter-spacing:.16em}
  .hero-scroll{display:none}
  .section h2{font-size:29px;line-height:1.65;letter-spacing:.1em}
  .section p{font-size:18px;line-height:2.05}
  .story{display:flex;flex-direction:column;align-items:stretch;gap:34px;padding-top:34px;padding-bottom:65px;max-width:500px}
  .story-copy::before{content:"";display:block;width:34px;height:1px;background:var(--line);margin-bottom:35px}
  .story h2{margin-bottom:25px}
  .story-tail{font-size:15px!important}
  .story-art img{aspect-ratio:1.13;object-position:56% 50%}
  figcaption{font-size:11px;line-height:1.8;margin-top:13px}
  .water-chapter{min-height:300px;aspect-ratio:auto}
  .water-chapter>img{object-position:64% center}
  .water-copy{min-height:300px;padding:60px 26px}
  .water-copy h2{max-width:9em;font-size:27px;line-height:1.9;letter-spacing:.13em}
  .water-copy p{font-size:13px;margin-top:25px;max-width:17em}
  .harmony{display:block;padding-top:76px;padding-bottom:80px;max-width:500px}
  .eyebrow{font-size:12px!important;margin-bottom:22px}
  .harmony h2{margin-bottom:30px}
  .harmony-intro>p:not(.eyebrow){font-size:17px}
  .harmony-list{padding-top:40px}
  .experience summary{grid-template-columns:32px 1fr 18px;gap:13px;padding:24px 0;font-size:14px}
  .experience-mark{font-size:28px}
  .experience-body{padding:0 0 27px 0}
  .experience-body p{font-size:16px;line-height:2}
  .place-section{display:flex;flex-direction:column;gap:44px;padding-bottom:76px;max-width:500px}
  .place-image{width:90%;align-self:flex-start}
  .place-image img{aspect-ratio:.8}
  .place-copy{width:100%;padding-left:16px}
  .place-copy h2{margin-bottom:28px}
  .place-copy p{font-size:17px}
  .place-copy .line-link{margin-top:26px}
  .line-link{font-size:15px}
  .reservation{padding:70px 0 76px}
  .reservation h2{font-size:27px;line-height:1.8}
  .reservation>p:not(.eyebrow){font-size:14px}
  .reservation-links{display:flex;flex-direction:column;gap:15px;margin:32px 0 27px}
  .reservation-links .line-link{font-size:16px}
  .quiet-link{font-size:12px}
  .mobile-break{display:initial}
  .desktop-break{display:none}
  .footer{padding-top:60px;padding-bottom:22px}
  .footer-main{display:block}
  .footer-brand{display:block;width:260px;max-width:85%;margin-bottom:45px}
  .footer-address{width:100%;max-width:none}
  .footer-address address{font-size:14px}
  .footer-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px 20px;margin-top:42px;font-size:12px}
  .footer-bottom{flex-wrap:wrap;gap:6px 18px;padding-top:18px;margin-top:30px}
  .footer-bottom p{order:3;width:100%;font-size:10px}
  .back-top{order:2}
  .menu{padding:14px 26px 30px}
  .menu-layout{display:block;margin-top:46px}
  .menu-image{display:none}
  .menu-content nav{font-size:23px;gap:13px}
  .menu-booking{margin-top:28px}
  .menu-logo{width:190px;margin-top:38px}
}
@media(max-width:359px){:root{--gutter:24px}.hero-logo{width:63%}.hero{padding-top:90px}h1{font-size:22px}.section h2{font-size:26px}.harmony-intro>p:not(.eyebrow),.place-copy p{font-size:16px}.experience summary{font-size:13px;gap:10px;grid-template-columns:28px 1fr 18px}}
/* 2026 refinement layer: river-like pacing, clearer hierarchy, stronger closing action */
body{overflow-x:clip;background:var(--paper);letter-spacing:.055em;text-rendering:optimizeLegibility}
.header,.eyebrow,figcaption,.quiet-link,.footer-nav,.footer-bottom,.menu-head{font-family:var(--sans)}
.page-progress{position:fixed;z-index:80;inset:0 0 auto;height:2px;pointer-events:none;background:transparent}
.page-progress span{display:block;width:100%;height:100%;background:var(--forest);transform:scaleX(var(--page-progress));transform-origin:left center;will-change:transform}
.header{height:104px;padding-top:24px;padding-bottom:24px;transition:height .35s ease,background-color .35s ease,border-color .35s ease,box-shadow .35s ease}
.header-brand{position:absolute;left:50%;top:50%;width:126px;opacity:0;visibility:hidden;transform:translate(-50%,-56%);transition:opacity .3s ease,visibility .3s ease,transform .3s ease}
.header-brand img{width:100%;height:auto}
.header.is-scrolled{height:72px;background:rgba(244,244,239,.9);border-bottom-color:rgba(194,200,192,.78);box-shadow:0 8px 28px rgba(24,35,29,.035);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.header.is-scrolled .header-brand{opacity:1;visibility:visible;transform:translate(-50%,-50%)}
.header.is-scrolled .place{color:var(--muted)}
.booking-link{position:relative;font-family:var(--serif)}
.booking-link::after{transition:width .3s ease,background-color .3s ease}
.booking-link:hover::after{width:54px}
.hero{min-height:100svh;max-width:1720px;padding-top:128px;padding-bottom:104px;grid-template-columns:minmax(0,1.06fr) minmax(380px,.94fr);column-gap:8.5%;overflow:clip;isolation:isolate}
.hero::before{content:"";position:absolute;z-index:-1;width:min(46vw,720px);aspect-ratio:1;border:1px solid rgba(32,41,36,.055);border-radius:50%;right:-14%;top:5%}
.hero-picture{max-width:620px;overflow:hidden;background:#17221d}
.hero-image{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 51%;filter:saturate(.82) contrast(1.045);animation:hero-image-enter 1.25s cubic-bezier(.2,.7,.2,1) both}
.hero-identity{transform:translateY(-1.5%);animation:hero-copy-enter .9s .18s cubic-bezier(.2,.7,.2,1) both}
.hero-logo{max-width:475px;margin-bottom:58px}
h1{gap:22px;font-size:clamp(25px,2.15vw,35px);line-height:2.08;letter-spacing:.22em}
.hero-image-caption{position:absolute;left:calc(var(--gutter) - 22px);bottom:130px;font-family:var(--sans);font-size:10px;line-height:1;letter-spacing:.22em;color:var(--muted);writing-mode:vertical-rl}
.hero-scroll{bottom:42px;font-family:var(--sans);font-size:11px;letter-spacing:.14em}
.vertical-rule{height:54px;background:linear-gradient(var(--ink) 0 50%,var(--line) 50% 100%);background-size:100% 200%;animation:scroll-rule 2.4s ease-in-out infinite}
@keyframes hero-image-enter{from{opacity:0;transform:scale(1.045)}to{opacity:1;transform:scale(1)}}
@keyframes hero-copy-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(-1.5%)}}
@keyframes scroll-rule{0%{background-position:0 100%}55%,100%{background-position:0 -100%}}
.section[data-chapter]{position:relative}
.section[data-chapter]::before{content:attr(data-chapter);position:absolute;font-family:var(--sans);font-size:10px;line-height:1;letter-spacing:.18em;color:var(--muted);padding-right:48px}
.section[data-chapter]::before{background:linear-gradient(var(--line),var(--line)) right center/34px 1px no-repeat}
.story{grid-template-columns:.74fr 1.26fr;gap:11.5%;padding-top:166px;padding-bottom:166px}
.story::before{top:88px;left:var(--gutter)}
.story-copy{padding-left:clamp(0px,2vw,28px)}
.story h2{margin-bottom:42px;letter-spacing:.14em}
.story-copy>p:not(.story-tail){max-width:22em}
.story-tail{margin-top:34px!important}
.story-art{position:relative}
.story-art::after{content:"";position:absolute;z-index:-1;inset:26px -26px 36px 26px;border:1px solid rgba(32,41,36,.1)}
.story-art img{aspect-ratio:16/10;filter:saturate(.74) contrast(1.04);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.story-art.reveal-ready:not(.is-visible) img{transform:scale(1.025)}
.water-chapter{height:clamp(480px,44vw,650px);min-height:0;aspect-ratio:auto}
.water-chapter::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(9,24,19,.68) 0%,rgba(9,24,19,.34) 48%,rgba(9,24,19,.08) 100%)}
.water-chapter>img{z-index:-2;filter:saturate(.78) contrast(1.06)}
.water-copy{height:100%;min-height:0;padding-top:90px;padding-bottom:90px}
.water-copy h2{font-size:clamp(31px,3vw,47px);letter-spacing:.19em;text-shadow:0 2px 18px rgba(5,15,11,.42)}
.water-copy p{font-size:14px;letter-spacing:.16em;margin-top:30px;text-shadow:0 2px 14px rgba(5,15,11,.5)}
.water-copy p::after{content:"";display:block;width:72px;height:1px;margin-top:28px;background:rgba(244,244,239,.55)}
.harmony{grid-template-columns:.88fr 1.12fr;column-gap:12%;padding-top:190px;padding-bottom:190px}
.harmony::before{top:92px;left:var(--gutter)}
.harmony-intro{position:sticky;top:132px}
.harmony h2{margin-bottom:42px}
.harmony-intro>p:not(.eyebrow){max-width:32em}
.harmony-list{padding-top:26px}
.experience{transition:border-color .3s ease}
.experience summary{grid-template-columns:52px 1fr 22px;gap:18px;min-height:92px;padding:25px 0;transition:color .25s ease,padding-left .25s ease}
.experience summary:hover{color:var(--forest);padding-left:8px}
.experience summary>img{opacity:.72;transition:opacity .25s ease,transform .25s ease}
.experience summary:hover>img{opacity:1}
.experience[open]{border-top-color:var(--ink)}
.experience[open] summary>img{transform:rotate(180deg)}
.experience-mark{font-size:32px;line-height:1}
.experience-body{padding:0 18px 34px 70px}
.experience-body p{max-width:31em}
.place-section{grid-template-columns:1.02fr .98fr;gap:13%;padding-top:28px;padding-bottom:184px}
.place-section::before{top:8px;left:var(--gutter)}
.place-image{position:relative;width:78%;margin-left:6%;z-index:0}
.place-image::after{content:"";position:absolute;z-index:-1;inset:24px -24px -24px 24px;border:1px solid rgba(32,41,36,.12)}
.place-image img{aspect-ratio:4/5;filter:saturate(.73) contrast(1.025)}
.place-copy{padding-right:clamp(0px,3vw,48px)}
.place-copy h2{margin-bottom:42px}
.place-copy p{max-width:30em}
.place-copy .line-link{margin-top:42px}
.line-link{position:relative;overflow:hidden;transition:color .25s ease}
.line-link::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.line-link:hover::after{transform:scaleX(1);transform-origin:left}
.reservation{isolation:isolate;overflow:hidden;max-width:1408px;width:calc(100% - 2 * var(--gutter));margin-bottom:0;padding:126px clamp(48px,7vw,120px) 122px;border-top:0;background:var(--ink);color:var(--paper)}
.reservation::before{top:52px;left:clamp(48px,7vw,120px);color:rgba(244,244,239,.55);background-image:linear-gradient(rgba(244,244,239,.28),rgba(244,244,239,.28))}
.reservation::after{content:"";position:absolute;z-index:-1;width:520px;aspect-ratio:1;border:1px solid rgba(244,244,239,.07);border-radius:50%;right:-175px;top:-230px;box-shadow:0 0 0 88px rgba(244,244,239,.025)}
.reservation>*{position:relative;z-index:1}
.reservation .eyebrow,.reservation>p:not(.eyebrow){color:#b9c2bb}
.reservation h2{font-size:clamp(31px,3vw,44px);margin-bottom:28px}
.reservation-links{max-width:860px;margin-top:52px}
.reservation .line-link{border-bottom-color:rgba(244,244,239,.3);color:var(--paper)}
.reservation .line-link:hover{color:#fff}
.reservation .line-link img{filter:invert(1);opacity:.9}
.reservation .quiet-link{color:#b9c2bb}
.footer{background:var(--paper-deep);padding-top:104px}
.footer-main{align-items:flex-end}
.footer-brand{width:330px}
.footer-address .line-link{border-bottom-color:#aeb6ad}
.footer-bottom{border-top-color:#b8c0b7}
.menu{padding-top:28px;background:rgba(244,244,239,.98);animation:menu-enter .45s cubic-bezier(.2,.7,.2,1)}
.menu::backdrop{background:rgba(13,22,17,.52);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.menu-layout{grid-template-columns:1.02fr .98fr;gap:11%;max-width:1320px;margin-top:42px}
.menu-image{height:min(62vh,620px);filter:saturate(.72) contrast(1.06)}
.menu-content nav{counter-reset:menu-item;gap:8px}
.menu-content nav a{counter-increment:menu-item;display:grid;grid-template-columns:36px 1fr;gap:18px;align-items:baseline;width:100%;padding:5px 0}
.menu-content nav a::before{content:"0" counter(menu-item);font-family:var(--sans);font-size:9px;letter-spacing:.12em;color:var(--muted)}
.menu-content nav a[aria-current="location"]{color:var(--forest)}
.menu-booking{margin-left:54px}
.menu-logo{width:185px;opacity:.78}
@keyframes menu-enter{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.reveal-ready{transition-duration:1s;transition-timing-function:cubic-bezier(.2,.7,.2,1)}
@media(max-width:1000px) and (min-width:701px){
  .hero{min-height:820px;padding-top:122px;padding-bottom:94px;grid-template-columns:1.03fr .97fr;column-gap:6%}
  .hero-picture{max-width:500px}
  .hero-logo{max-width:350px;margin-bottom:44px}
  .hero-image-caption{display:none}
  .story{grid-template-columns:.9fr 1.1fr;gap:7%;padding-top:140px;padding-bottom:130px}
  .story::before{top:70px}
  .story-art::after{inset:18px -18px 28px 18px}
  .harmony{column-gap:7%;padding-top:150px;padding-bottom:150px}
  .harmony::before{top:72px}
  .experience summary{grid-template-columns:40px 1fr 20px;gap:12px}
  .experience-body{padding-left:52px}
  .place-section{gap:9%;padding-bottom:150px}
  .place-image{width:86%;margin-left:0}
  .reservation{padding-left:54px;padding-right:54px}
}
@media(max-width:880px) and (min-width:701px){
  .harmony{display:block;max-width:840px;padding-top:150px;padding-bottom:150px}
  .harmony-intro{position:static;max-width:590px}
  .harmony-list{width:78%;margin-left:auto;padding-top:72px}
}
@media(max-width:700px){
  :root{--gutter:24px}
  .page-progress{height:2px}
  .header{height:72px;padding:14px 18px}
  .header.is-scrolled{height:64px}
  .header-brand{left:18px;width:clamp(96px,26vw,108px);transform:translate(0,-56%)}
  .header.is-scrolled .header-brand{transform:translate(0,-50%)}
  .header-actions{gap:12px}
  .booking-link{font-size:12px;gap:11px}
  .booking-link:hover::after{width:27px}
  .hero{display:flex;min-height:auto;max-width:520px;padding:94px var(--gutter) 88px}
  .hero::before{width:390px;right:-230px;top:20%}
  .hero-picture{order:2;width:100%;max-width:none}
  .hero-image{aspect-ratio:1/1.34;object-position:50% 52%}
  .hero-identity{display:contents;animation:none;transform:none}
  .hero-logo{order:1;width:58%;max-width:195px;margin:0 auto 38px}
  h1{order:3;display:block;align-self:center;max-width:13em;margin-top:40px;font-size:24px;line-height:1.88;letter-spacing:.19em;text-align:center}
  h1 span{display:inline;writing-mode:horizontal-tb}
  h1 span+span{padding:0;white-space:normal;margin:0}
  .hero-place{display:block;order:0;align-self:center;margin:0 0 24px;font-family:var(--sans);font-size:10px;color:var(--muted);letter-spacing:.18em}
  .hero-image-caption{display:none}
  .hero-scroll{position:static;order:4;display:flex;align-self:center;flex-direction:column;gap:10px;margin-top:42px;font-size:10px;letter-spacing:.14em}
  .hero-scroll .vertical-rule{height:38px}
  .section[data-chapter]::before{left:var(--gutter);padding-right:42px;background-size:28px 1px}
  .section h2{font-size:29px;line-height:1.7}
  .section p{font-size:17px;line-height:2.05}
  .story{display:flex;max-width:520px;flex-direction:column;align-items:stretch;gap:46px;padding-top:116px;padding-bottom:92px}
  .story::before{top:54px}
  .story-copy{padding-left:0}
  .story-copy::before{display:none}
  .story h2{margin-bottom:28px}
  .story-tail{font-size:15px!important;margin-top:27px!important}
  .story-art::after{inset:14px -14px 28px 14px}
  .story-art img{aspect-ratio:1.08;object-position:56% 50%}
  .water-chapter{height:400px;min-height:0}
  .water-chapter::after{background:linear-gradient(90deg,rgba(9,24,19,.68),rgba(9,24,19,.23))}
  .water-chapter>img{object-position:62% center}
  .water-copy{min-height:0;padding:64px var(--gutter)}
  .water-copy h2{max-width:9em;font-size:28px;line-height:1.9;letter-spacing:.14em}
  .water-copy p{font-size:13px;max-width:18em;margin-top:26px}
  .water-copy p::after{width:52px;margin-top:24px}
  .harmony{display:block;max-width:520px;padding-top:128px;padding-bottom:118px}
  .harmony::before{top:56px}
  .harmony-intro{position:static}
  .harmony h2{margin-bottom:32px}
  .harmony-intro>p:not(.eyebrow){font-size:16px}
  .harmony-list{padding-top:50px}
  .experience summary{grid-template-columns:34px 1fr 18px;gap:12px;min-height:84px;padding:22px 0;font-size:14px}
  .experience summary:hover{padding-left:0}
  .experience-mark{font-size:28px}
  .experience-body{padding:0 0 30px}
  .experience-body p{font-size:15px}
  .place-section{display:flex;max-width:520px;flex-direction:column;gap:58px;padding-top:70px;padding-bottom:112px}
  .place-section::before{top:14px}
  .place-image{width:88%;margin-left:0;align-self:flex-start}
  .place-image::after{inset:16px -16px -16px 16px}
  .place-copy{width:100%;padding:0 0 0 14px}
  .place-copy h2{margin-bottom:30px}
  .place-copy p{font-size:16px}
  .place-copy .line-link{margin-top:32px}
  .reservation{width:calc(100% - 32px);padding:92px 24px 86px}
  .reservation::before{top:34px;left:24px}
  .reservation::after{width:330px;right:-170px;top:-160px;box-shadow:0 0 0 56px rgba(244,244,239,.025)}
  .reservation h2{font-size:28px;line-height:1.82;margin-bottom:22px}
  .reservation>p:not(.eyebrow){font-size:14px}
  .reservation-links{flex-direction:column;gap:14px;margin:38px 0 28px}
  .reservation-links .line-link{font-size:15px;white-space:normal}
  .footer{padding-top:72px}
  .footer-brand{width:245px;margin-bottom:48px}
  .menu{padding:14px 24px 30px}
  .menu-layout{display:block;margin-top:48px}
  .menu-content nav{font-size:22px;gap:8px}
  .menu-content nav a{grid-template-columns:30px 1fr;gap:12px;padding:4px 0}
  .menu-booking{margin:30px 0 0 42px}
  .menu-logo{width:170px;margin-top:42px}
}
@media(max-width:359px){
  :root{--gutter:22px}
  .header-brand{width:88px}
  .header-actions{gap:8px}
  .hero{padding-top:90px}
  .hero-logo{width:61%}
  h1{font-size:22px}
  .section h2{font-size:26px}
  .reservation{width:calc(100% - 24px);padding-left:20px;padding-right:20px}
  .menu{padding-left:22px;padding-right:22px}
}
/* Reference-led refinement: corrected brand lockup and quiet editorial closing chapters */
.brand-lockup{position:relative;display:block;width:100%;aspect-ratio:1094/330;overflow:hidden;isolation:isolate}
.brand-lockup>img{display:block;width:100%;height:auto;opacity:0}
.brand-lockup::before,.brand-lockup::after{content:"";position:absolute;inset:0;background:url('../brand/logo-horizontal.png') center/100% 100% no-repeat;pointer-events:none}
.brand-lockup::before{clip-path:inset(0 0 24% 0)}
.brand-lockup::after{clip-path:inset(82% 0 0 0);transform:translateX(13.76%)}
.hero-logo-stacked{display:none}
.harmony{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);column-gap:clamp(72px,8vw,132px);align-items:start;max-width:1600px;padding-top:168px;padding-bottom:184px}
.harmony-intro{position:static;display:block;max-width:440px;padding-top:2px}
.harmony-intro>h2{margin-bottom:34px;font-size:clamp(34px,2.55vw,40px);line-height:1.72}
.harmony-copy>p{max-width:32em;font-size:16px;line-height:2.12;letter-spacing:.045em;color:var(--muted)}
.harmony-copy>p+p{margin-top:29px}
.hero::before,.section[data-chapter]::before,.story-art::after,.water-copy p::after,.place-image::after,.reservation::after{content:none}
.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(48px,5.5vw,84px);row-gap:clamp(68px,6vw,92px);margin:0;padding:54px 0 0}
.experience-panel,.experience-panel:nth-child(even){display:block;min-width:0;min-height:0;padding:0;border:0;background:none;box-shadow:none;transform:none}
.experience-panel::before{content:none}
.experience-term{margin:0 0 14px;font-family:var(--sans);font-size:12px!important;line-height:1.5!important;letter-spacing:.2em;color:var(--muted)}
.experience-content h3{max-width:17em;font-size:clamp(18px,1.35vw,20px);line-height:1.8;letter-spacing:.075em;text-wrap:balance}
.experience-content>p:last-child{max-width:29em;margin-top:15px;font-size:15px;line-height:2.12;letter-spacing:.035em;color:var(--muted);text-wrap:pretty}
.reservation{display:block;isolation:auto;overflow:visible;max-width:none;width:100%;margin:0;padding:128px var(--gutter) 96px;border:0;background:var(--paper-deep);color:var(--ink);text-align:left}
.reservation::before,.reservation::after{content:none}
.reservation-inner{max-width:1408px;margin:0 auto;display:grid;grid-template-columns:minmax(300px,.82fr) minmax(420px,1.18fr);column-gap:clamp(80px,10vw,152px);align-items:start}
.reservation-copy,.reservation-actions{min-width:0}
.reservation .eyebrow{color:var(--muted)}
.reservation-copy h2{margin:0 0 24px;font-size:clamp(30px,2.45vw,38px);line-height:1.7;letter-spacing:.105em}
.reservation-copy>p:not(.eyebrow){max-width:31em;font-size:14px;line-height:2.05;letter-spacing:.055em;color:var(--muted)}
.reservation-actions{padding-top:10px}
.reservation-actions>.reservation-links{display:flex;max-width:560px;flex-direction:column;gap:4px;margin:0;text-align:left}
.reservation .reservation-links .line-link{flex:none;min-height:62px;padding:9px 0;border-bottom:0;color:var(--ink);font-size:15px;white-space:normal}
.reservation .reservation-links .line-link:first-child{min-height:70px;font-size:19px;letter-spacing:.085em}
.reservation .line-link:hover{color:var(--forest)}
.reservation .line-link img{width:21px;height:21px;filter:none;opacity:.72}
.reservation .quiet-link{display:inline-block;margin-top:26px;color:var(--muted);font-size:12px}
.footer{padding-top:62px}
@media(max-width:1100px){
  .harmony{display:block;max-width:900px;padding-top:144px;padding-bottom:160px}
  .harmony-intro{max-width:630px}
  .experience-grid{margin-top:76px;padding-top:0;column-gap:56px;row-gap:72px}
  .reservation-inner{column-gap:70px}
}
@media(max-width:900px){
  .reservation{padding-top:108px;padding-bottom:88px}
  .reservation-inner{display:block;max-width:680px}
  .reservation-actions{max-width:560px;margin-top:44px;padding-top:0}
}
@media(max-width:700px){
  .hero-logo-horizontal{display:none}
  .hero-logo-stacked{display:block;width:100%;height:auto}
  .harmony{max-width:520px;padding-top:112px;padding-bottom:120px}
  .harmony-intro{max-width:none}
  .harmony-intro>h2{margin-bottom:27px;font-size:28px;line-height:1.72}
  .harmony-copy>p{font-size:16px;line-height:2.05}
  .harmony-copy>p+p{margin-top:24px}
  .experience-grid{grid-template-columns:minmax(0,1fr);row-gap:56px;margin-top:62px}
  .experience-term{margin-bottom:13px}
  .experience-content h3{font-size:17px;line-height:1.85;letter-spacing:.07em}
  .experience-content>p:last-child{margin-top:13px;font-size:15px;line-height:2.08}
  .reservation{width:100%;padding:88px var(--gutter) 74px}
  .reservation-inner{max-width:520px}
  .reservation-copy h2{margin-bottom:21px;font-size:27px;line-height:1.78}
  .reservation-copy>p:not(.eyebrow){font-size:14px}
  .reservation-actions{margin-top:38px}
  .reservation-actions>.reservation-links{gap:0}
  .reservation .reservation-links .line-link{min-height:58px;font-size:14px}
  .reservation .reservation-links .line-link:first-child{min-height:64px;font-size:17px}
  .reservation .quiet-link{margin-top:22px;font-size:12px}
  .footer{padding-top:50px}
}
@media(max-width:359px){
  .experience-content h3{font-size:16px}
  .reservation{padding-left:var(--gutter);padding-right:var(--gutter)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready:not(.is-visible){opacity:1;transform:none}}
@media print{.header,.menu,.hero-scroll,.back-top{display:none!important}.hero{padding-top:20px}.reveal-ready{opacity:1!important;transform:none!important}.section{break-inside:avoid}a{color:inherit}body{background:white}}

/* v6 selected refinement — proportions, readability and a quieter hierarchy */
.harmony-copy>p{font-size:17px;line-height:2.18}
.experience-grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(20px,3.1vw,48px);row-gap:clamp(70px,7vw,108px);padding-top:62px}
.experience-panel:nth-child(1){grid-column:1/8}
.experience-panel:nth-child(2){grid-column:8/-1;padding-top:72px}
.experience-panel:nth-child(3){grid-column:2/7}
.experience-panel:nth-child(4){grid-column:7/-2;padding-top:58px}
.experience-term{margin-bottom:18px;font-size:12px!important;letter-spacing:.18em}
.experience-content h3{font-size:clamp(19px,1.45vw,22px);line-height:1.85}
.experience-content>p:last-child{font-size:16px;line-height:2.18;margin-top:17px}
.reservation-copy>p:not(.eyebrow){font-size:15px}

@media(max-width:1100px){
  .experience-grid{grid-template-columns:repeat(12,minmax(0,1fr));row-gap:68px}
  .experience-panel:nth-child(1){grid-column:1/8}
  .experience-panel:nth-child(2){grid-column:8/-1;padding-top:48px}
  .experience-panel:nth-child(3){grid-column:1/7}
  .experience-panel:nth-child(4){grid-column:7/-1;padding-top:38px}
}

@media(max-width:700px){
  .header-brand,.header.is-scrolled .header-brand{width:122px}
  .harmony-copy>p{font-size:17px;line-height:2.08}
  .experience-grid{display:block;margin-top:54px;padding-top:0}
  .experience-panel:nth-child(n){padding-top:0}
  .experience-panel+.experience-panel{margin-top:58px}
  .experience-content h3{font-size:18px;line-height:1.9}
  .experience-content>p:last-child{font-size:16px;line-height:2.1;margin-top:15px}
  .reservation-copy>p:not(.eyebrow){font-size:15px}
}

@media(max-width:359px){
  .header-brand,.header.is-scrolled .header-brand{width:110px}
  .experience-content h3{font-size:17px}
}

/* Portrait-led photo rhythm — keep the water chapter panoramic as a pause */
@media(min-width:701px){
  .hero-picture{max-width:560px}
  .hero-image{aspect-ratio:3/4;object-position:50% 52%}
  .story{grid-template-columns:.92fr 1.08fr;gap:10%}
  .story-art{width:min(78%,520px);justify-self:end}
  .story-art img{aspect-ratio:3/4;object-position:56% 50%}
  .place-image{width:76%;margin-left:7%}
  .place-image img{aspect-ratio:3/4;object-position:center}
}

@media(max-width:1000px) and (min-width:701px){
  .hero-picture{max-width:460px}
  .story-art{width:86%}
  .place-image{width:82%;margin-left:0}
}

@media(max-width:700px){
  .hero-picture{width:94%;align-self:center}
  .hero-image{aspect-ratio:3/4;object-position:50% 52%}
  .story-art{width:84%;align-self:flex-end}
  .story-art img{aspect-ratio:3/4;object-position:56% 50%}
  .place-image{width:84%;margin-left:0}
  .place-image img{aspect-ratio:3/4;object-position:center}
}

/* Selected refinement: history in monochrome, a balanced mobile FV, and a quiet booking close. */
.story-art img{filter:grayscale(1) contrast(1.09) brightness(.94)}
.reservation-copy h2{font-size:clamp(20px,1.7vw,24px);line-height:1.7;letter-spacing:.14em}

@media(max-width:700px){
  h1{max-width:12.5em;font-size:23px;line-height:1.85;letter-spacing:.16em}
  .reservation-copy h2{font-size:20px;line-height:1.7;letter-spacing:.13em}
}

/* 2026.10 renewal story — three eras held in one quiet thread. */
.hero-opening{
  display:flex;
  align-items:center;
  gap:17px;
  margin-top:40px;
  font-family:var(--sans);
  font-size:10px;
  line-height:1.6;
  letter-spacing:.17em;
  color:var(--muted);
}
.hero-opening time{display:flex;align-items:center;gap:17px;font-variant-numeric:tabular-nums;letter-spacing:.2em}
.hero-opening time::after{content:"";display:block;width:28px;height:1px;background:var(--line)}
.story-copy>.eyebrow{margin-bottom:24px;font-size:11px!important}
.history-thread{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  column-gap:clamp(46px,7vw,112px);
  width:100%;
  margin:72px 0 0;
  padding:0;
  list-style:none;
}
.history-thread li::before{content:"";display:block;width:36px;height:1px;margin-bottom:22px;background:var(--line)}
.history-thread time,.history-date{
  display:block;
  margin-bottom:13px;
  font-family:var(--sans);
  font-size:10px;
  line-height:1.5;
  letter-spacing:.18em;
  color:var(--muted);
}
.history-thread p{font-size:16px;line-height:1.95;letter-spacing:.075em}
.reservation-copy>.eyebrow{margin-bottom:20px;font-size:10px!important}
.reservation-copy h2{font-size:clamp(23px,1.95vw,29px);line-height:1.76;letter-spacing:.12em}

@media(max-width:1000px) and (min-width:701px){
  .history-thread{column-gap:36px;margin-top:60px}
  .history-thread p{font-size:15px}
}

@media(max-width:700px){
  .hero-opening{order:2;align-self:center;margin:0 0 28px;font-size:9px;letter-spacing:.14em}
  .hero-opening time{gap:13px}
  .hero-opening time::after{width:21px}
  .hero-picture{order:3}
  h1{order:4}
  .hero-scroll{order:5;margin-top:34px}
  .story-copy>.eyebrow{margin-bottom:19px;font-size:10px!important}
  .history-thread{display:block;margin:6px 0 0;padding-left:2px}
  .history-thread li{display:grid;grid-template-columns:92px minmax(0,1fr);column-gap:21px;align-items:start}
  .history-thread li+li{margin-top:46px}
  .history-thread li::before{grid-column:1/-1;width:30px;margin-bottom:18px}
  .history-thread time,.history-date{margin:2px 0 0;font-size:9px;line-height:1.6}
  .history-thread p{font-size:15px;line-height:1.95}
  .reservation-copy h2{font-size:23px;line-height:1.75;letter-spacing:.11em}
}

@media(max-width:359px){
  .hero-opening{gap:12px;letter-spacing:.1em}
  .hero-opening time{gap:11px}
  .history-thread li{grid-template-columns:82px minmax(0,1fr);column-gap:17px}
}

/* Confirmed Yunohira landscape first; the Shimizu lantern returns as a later pause. */
.hero-image{object-position:50% 52%}
.lantern-pause{display:flex;flex-direction:column;align-items:flex-end;padding-top:0;padding-bottom:170px}
.lantern-pause .media-frame{width:min(68%,920px)}
.lantern-pause img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:36% 50%;filter:saturate(.84) contrast(1.045)}
.lantern-pause figcaption{width:min(68%,920px);text-align:right}
@media(max-width:700px){
  .lantern-pause{max-width:520px;padding-bottom:104px}
  .lantern-pause .media-frame,.lantern-pause figcaption{width:94%}
  .lantern-pause img{aspect-ratio:4/3;object-position:36% 50%}
}

/* Supplied-site photography: history, bath and food stay editorial rather than card-like. */
.story-art img{object-position:50% 48%}
.water-chapter>img{object-position:50% 48%}
.place-image img{object-position:50% 50%}
.experience-media{grid-column:2/-1;width:min(76%,700px);margin:44px 0 0}
.experience-media img{width:100%;aspect-ratio:16/10;object-fit:cover;object-position:50% 50%;filter:saturate(.76) contrast(1.035) brightness(.9)}
.experience-panel:nth-child(2) .experience-media{width:min(62%,560px);margin-left:auto}
.experience-panel:nth-child(2) .experience-media img{aspect-ratio:4/3;filter:saturate(.72) contrast(1.05) brightness(.88)}
@media(max-width:700px){
  .story-art img{object-position:50% 48%}
  .water-chapter>img{object-position:48% 50%}
  .place-image img{object-position:50% 50%}
  html[data-harmony] .experience-media{width:92%;margin:28px 0 0 auto}
  html[data-harmony] .experience-panel:nth-child(2) .experience-media{width:84%;margin-left:0}
  .experience-media img,.experience-panel:nth-child(2) .experience-media img{aspect-ratio:4/3}
}
