:root{--paper:#f5f0e7;--paper-2:#eee7dc;--ink:#2b211d;--muted:#746a63;--accent:#a35f45;--line:rgba(43,33,29,.18);--serif:"Iowan Old Style","Baskerville","Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:2;letter-spacing:.035em}body.menu-open{overflow:hidden}img{display:block;width:100%;height:auto}a{color:inherit;text-decoration:none}h1,h2,h3,p,figure,blockquote{margin-top:0}.skip-link{position:fixed;left:16px;top:-80px;background:var(--ink);color:#fff;padding:8px 16px;z-index:100}.skip-link:focus{top:16px}.site-header{height:104px;padding:0 clamp(28px,5vw,80px);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:rgba(245,240,231,.94);position:relative;z-index:20}.brand{display:flex;flex-direction:column;line-height:1.1}.brand-main{font-family:var(--serif);font-size:21px;font-style:italic}.brand-sub{font-size:8px;letter-spacing:.24em;margin-top:8px;text-transform:uppercase}.site-nav{display:flex;gap:clamp(25px,3.5vw,58px);align-items:center}.site-nav a{font-size:10px;letter-spacing:.24em;padding:40px 0 35px;position:relative}.site-nav a::after{content:"";height:1px;background:var(--accent);position:absolute;bottom:31px;left:0;width:0;transition:width .35s ease}.site-nav a:hover::after,.site-nav a[aria-current="page"]::after{width:100%}.nav-toggle{display:none}.section{width:min(100% - 10vw,1260px);margin:auto;padding:clamp(110px,14vw,190px) 0}.label{font-size:9px;font-weight:600;letter-spacing:.32em;color:var(--accent);margin-bottom:30px}.label.light{color:#d6a992}.home-hero{height:calc(100svh - 104px);min-height:630px;position:relative;background:#2f2722;color:#fff;overflow:hidden}.home-hero>img{height:100%;object-fit:cover;object-position:center}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(24,17,14,.79),rgba(24,17,14,.34) 55%,rgba(24,17,14,.05))}.hero-copy{position:absolute;left:clamp(28px,9vw,145px);top:50%;transform:translateY(-48%)}.hero-copy h1,.page-hero h1{font-family:var(--serif);font-size:clamp(58px,8.6vw,132px);font-weight:400;line-height:.88;letter-spacing:-.045em;margin-bottom:42px}.hero-copy>p:not(.label){font-size:14px;line-height:2.1;margin-bottom:38px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:48px;min-width:245px;border:1px solid var(--ink);padding:14px 20px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;transition:.3s}.button:hover{background:var(--ink);color:var(--paper)}.button-light{border-color:rgba(255,255,255,.65)}.button-light:hover{background:#fff;color:var(--ink)}.scroll-cue{position:absolute;right:4vw;bottom:0;display:flex;flex-direction:column;align-items:center;gap:18px}.scroll-cue span{font-size:8px;letter-spacing:.3em;writing-mode:vertical-rl}.scroll-cue i{display:block;width:1px;height:65px;background:rgba(255,255,255,.55)}.split{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:start}.section-title h2,.section-head h2,.menu-group h2,.shop-info h2,.notice h2{font-family:var(--serif);font-size:clamp(50px,6.5vw,94px);font-weight:400;line-height:.93;letter-spacing:-.04em}.body-copy{padding-top:65px;max-width:530px}.body-copy .lead{font-size:20px;font-weight:500;line-height:1.9;margin-bottom:30px}.body-copy>p:not(.lead){color:var(--muted);margin-bottom:35px}.text-link{font-size:10px;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--ink);padding-bottom:8px}.text-link span{margin-left:25px}.favorites{border-top:1px solid var(--line);padding-top:120px}.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:80px}.desktop-link{margin-bottom:8px}.feature-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:8vw}.feature-card.lower{margin-top:130px}.feature-card figure{overflow:hidden;margin-bottom:28px;background:#ddd}.feature-card figure img{aspect-ratio:4/3;object-fit:cover;transition:transform .8s ease}.feature-card:hover figure img{transform:scale(1.025)}.card-meta{display:flex;justify-content:space-between;gap:25px;border-top:1px solid var(--line);padding-top:20px}.card-meta .number{font-size:8px;letter-spacing:.22em;color:var(--accent);margin-bottom:10px}.card-meta h3{font-size:16px;margin-bottom:2px}.card-meta p:not(.number){font-size:12px;color:var(--muted)}.card-meta>span{font-family:var(--serif);font-size:18px}.philosophy{background:var(--ink);color:var(--paper);text-align:center}.philosophy .section{padding-top:160px;padding-bottom:160px}.philosophy blockquote{font-family:var(--serif);font-size:clamp(43px,7vw,96px);line-height:1.02;letter-spacing:-.04em;margin:25px 0 50px}.philosophy blockquote em{color:#c58b70;font-weight:400}.philosophy .section>p:last-child{font-size:13px;color:#c4bbb5}.visit .button{margin-top:14px}.page-hero{padding-top:150px;padding-bottom:130px}.page-hero h1{font-size:clamp(65px,9vw,125px);margin-bottom:45px}.page-hero>p:last-child{color:var(--muted)}.menu-photo-band{width:min(100% - 10vw,1260px);height:550px;margin:auto;display:grid;grid-template-columns:1.2fr .8fr;gap:16px;overflow:hidden}.menu-photo-band img{height:100%;object-fit:cover}.menu-list{padding-top:160px}.menu-group{display:grid;grid-template-columns:.7fr 1.3fr;gap:9vw;padding:80px 0;border-top:1px solid var(--line)}.menu-group-title h2{font-size:clamp(45px,5.4vw,78px)}.items article{display:flex;justify-content:space-between;align-items:center;padding:21px 0;border-bottom:1px solid var(--line)}.items h3{font-size:14px;margin:0}.items p{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:13px;line-height:1.3;margin:3px 0 0}.items article>span{font-family:var(--serif);font-size:17px}.items article>span::before{content:"¥";font-size:11px;margin-right:3px}.menu-note{text-align:right;color:var(--muted);font-size:11px}.story-image{width:min(100% - 10vw,1260px);height:min(70vw,760px);margin:auto;overflow:hidden}.story-image img{height:100%;object-fit:cover}.story-copy{padding-top:150px}.values{border-top:1px solid var(--line)}.value-list{display:grid;grid-template-columns:repeat(3,1fr);margin-top:90px}.value-list article{border-left:1px solid var(--line);padding:15px 4vw 30px}.value-list article:last-child{border-right:1px solid var(--line)}.value-list article>span{font-size:9px;color:var(--accent);letter-spacing:.2em}.value-list h3{font-family:var(--serif);font-size:45px;font-weight:400;margin:45px 0 10px}.value-list .jp-title{font-weight:600;margin-bottom:25px}.value-list p:last-child{font-size:12px;color:var(--muted)}.access-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:9vw;padding-top:100px}.map-art{height:620px;background:#ded6c9;position:relative;overflow:hidden}.map-art::before,.map-art::after{content:"";position:absolute;border:1px solid rgba(43,33,29,.1);border-radius:50%;width:500px;height:500px;left:-240px;top:-230px}.map-art::after{left:auto;top:auto;right:-160px;bottom:-230px}.road{position:absolute;background:var(--paper);display:block}.r1{height:42px;width:130%;left:-15%;top:45%;transform:rotate(-9deg)}.r2{width:30px;height:130%;top:-15%;left:35%;transform:rotate(14deg)}.r3{height:18px;width:100%;bottom:19%;left:15%;transform:rotate(22deg)}.station,.pin{position:absolute;z-index:2;font-size:10px;letter-spacing:.15em}.station{left:12%;bottom:12%}.station small{font-size:7px}.pin{left:58%;top:37%;text-align:center}.pin b{display:block;background:var(--accent);width:16px;height:16px;border-radius:50%;margin:0 auto 10px;box-shadow:0 0 0 7px rgba(163,95,69,.16)}.shop-info{padding-top:35px}.shop-info h2{font-size:clamp(46px,5.4vw,76px);margin-bottom:55px}.shop-info dl{margin:0 0 45px}.shop-info dl>div{display:grid;grid-template-columns:100px 1fr;border-top:1px solid var(--line);padding:16px 0}.shop-info dt{font-size:8px;letter-spacing:.22em}.shop-info dd{font-size:13px;margin:0}.shop-info small{color:var(--muted)}.notice{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:9vw}.notice h2{font-size:clamp(50px,6vw,82px)}.notice div p{max-width:560px;color:var(--muted)}.site-footer{background:var(--ink);color:var(--paper);padding:90px 6vw 35px;display:grid;grid-template-columns:1.6fr 1fr .6fr;gap:6vw;position:relative}.footer-brand p{font-family:var(--serif);font-size:clamp(38px,5vw,70px);font-style:italic;line-height:1;margin-bottom:22px}.footer-brand span{font-family:var(--serif);color:#bfb4ac;font-style:italic}.footer-hours>p:last-child{font-size:12px;color:#c7bdb6}.footer-social{display:flex;flex-direction:column;align-items:flex-start}.footer-social a{font-size:11px;border-bottom:1px solid rgba(255,255,255,.35);margin-bottom:12px}.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.15);padding-top:25px;margin:45px 0 0;font-size:7px;letter-spacing:.2em;color:#9d9189}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}.reveal.visible{opacity:1;transform:none}
@media(max-width:760px){body{font-size:14px}.site-header{height:78px;padding:0 20px}.brand-main{font-size:18px}.brand-sub{display:none}.nav-toggle{display:block;width:42px;height:42px;background:none;border:0;padding:10px;position:relative;z-index:2}.nav-toggle span{display:block;width:22px;height:1px;background:var(--ink);margin:7px 0;transition:.3s}.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}.site-nav{position:fixed;inset:0;background:var(--paper);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;opacity:0;visibility:hidden;transition:.35s}.site-nav.open{opacity:1;visibility:visible}.site-nav a{font-family:var(--serif);font-size:34px;letter-spacing:-.02em;padding:5px}.site-nav a::after{bottom:5px}.home-hero{height:calc(100svh - 78px);min-height:560px}.home-hero>img{object-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(24,17,14,.74),rgba(24,17,14,.2))}.hero-copy{left:24px;right:20px}.hero-copy h1{font-size:clamp(52px,16vw,78px)}.hero-copy>p:not(.label){font-size:12px}.scroll-cue{right:16px}.section{width:calc(100% - 48px);padding:100px 0}.split,.menu-group,.access-grid,.notice{grid-template-columns:1fr;gap:50px}.section-title h2,.section-head h2,.menu-group h2,.shop-info h2,.notice h2{font-size:52px}.body-copy{padding-top:0}.section-head{display:block;margin-bottom:55px}.desktop-link{display:none}.feature-grid{grid-template-columns:1fr;gap:70px}.feature-card.lower{margin-top:0}.philosophy .section{padding:110px 0}.philosophy blockquote{font-size:43px}.page-hero{padding-top:100px;padding-bottom:80px}.page-hero h1{font-size:62px}.menu-photo-band{width:calc(100% - 48px);height:460px;grid-template-columns:1fr}.menu-photo-band img:last-child{display:none}.menu-list{padding-top:80px}.menu-group{padding:60px 0}.menu-note{text-align:left}.story-image{width:calc(100% - 48px);height:480px}.story-image img{object-position:65% center}.value-list{grid-template-columns:1fr;margin-top:50px}.value-list article,.value-list article:last-child{border-left:0;border-right:0;border-top:1px solid var(--line);padding:45px 0}.value-list h3{margin-top:25px}.access-grid{padding-top:70px}.map-art{height:430px}.shop-info{padding-top:0}.notice{gap:20px}.site-footer{grid-template-columns:1fr;padding:75px 24px 30px;gap:45px}.copyright{grid-column:auto;margin-top:15px}.label{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}*{transition-duration:.01ms!important}}

/* Keep hero copy fully visible on wide, short browser windows. */
.hero-copy{transform:translateY(-50%);max-width:calc(100% - 130px)}
.hero-copy h1{font-size:clamp(52px,min(8.6vw,13vh),132px);margin-bottom:clamp(22px,4vh,42px)}
.hero-copy>p:not(.label){margin-bottom:clamp(20px,3.5vh,38px)}

@media(max-height:720px) and (min-width:761px){
  .home-hero{min-height:520px}
  .hero-copy .label{margin-bottom:18px}
  .hero-copy h1{font-size:clamp(54px,12vh,86px);margin-bottom:20px}
  .hero-copy>p:not(.label){font-size:12px;line-height:1.8;margin-bottom:18px}
  .hero-copy .button{padding-top:10px;padding-bottom:10px}
}

@media(max-width:760px){
  .hero-copy{max-width:none}
  .hero-copy h1{font-size:clamp(50px,min(16vw,12vh),78px)}
}

/* Content-driven hero: it can grow when the viewport is too short. */
.home-hero{
  height:auto;
  min-height:calc(100svh - 104px);
  display:flex;
  align-items:center;
  padding:clamp(72px,10vh,120px) 0;
}
.home-hero>img{
  position:absolute;
  inset:0;
}
.hero-copy{
  position:relative;
  left:auto;
  top:auto;
  transform:none;
  width:min(82%,1150px);
  max-width:none;
  margin-left:clamp(28px,9vw,145px);
  z-index:1;
}

@media(max-height:720px) and (min-width:761px){
  .home-hero{min-height:calc(100svh - 104px);padding:54px 0 66px}
}

@media(max-width:760px){
  .home-hero{min-height:calc(100svh - 78px);padding:72px 0 90px}
  .hero-copy{left:auto;right:auto;width:calc(100% - 48px);margin-left:24px}
}

/* Three-card favorites layout on the finished homepage. */
.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.feature-card.lower{margin-top:0}
.feature-card figure img{aspect-ratio:4/3}

@media(max-width:980px) and (min-width:761px){
  .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-card:last-child{grid-column:1/-1;width:calc(50% - 12px)}
}

@media(max-width:760px){
  .feature-grid{grid-template-columns:1fr}
  .feature-card:last-child{width:auto}
}

/* Menu catalog */
.menu-catalog{padding-top:140px}.catalog-head{display:flex;justify-content:space-between;align-items:end;gap:60px;margin-bottom:80px}.catalog-head h2,.access-details h2,.route-note h2{font-family:var(--serif);font-size:clamp(52px,6.5vw,92px);font-weight:400;line-height:.92;letter-spacing:-.04em;margin-bottom:0}.menu-filters{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.menu-filters button{border:1px solid var(--line);background:transparent;color:var(--ink);min-width:92px;padding:12px 17px;font:600 9px/1 var(--sans);letter-spacing:.2em;cursor:pointer;transition:.25s}.menu-filters button:hover,.menu-filters button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}.menu-filters button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.product-list{border-top:1px solid var(--line)}.product-item{display:grid;grid-template-columns:70px 1fr auto;gap:35px;align-items:center;border-bottom:1px solid var(--line);padding:30px 0;transition:opacity .25s,transform .25s}.product-item[hidden]{display:none}.product-no,.product-category{font-size:8px;letter-spacing:.22em;color:var(--accent);margin:0}.product-category{margin-bottom:5px}.product-item h3{font-size:17px;margin:0}.product-item div>p:last-child{font-size:12px;color:var(--muted);margin:3px 0 0}.product-item strong{font:400 20px/1 var(--serif)}.fiction-note{margin-top:34px;color:var(--muted);font-size:10px;letter-spacing:.04em}

/* Story and shop facts */
.concept{padding-top:150px}.facts{background:var(--paper-2)}.fact-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.fact-grid article{min-height:260px;padding:34px 28px;border-right:1px solid var(--line)}.fact-grid article:last-child{border-right:0}.fact-grid span,.amenity-list span{display:block;font-size:8px;letter-spacing:.22em;color:var(--accent)}.fact-grid strong{display:block;font:400 clamp(44px,5vw,72px)/1 var(--serif);margin:45px 0 22px}.fact-grid p{font-size:11px;color:var(--muted);line-height:1.8}.amenities{padding-top:130px}.amenity-list{border-top:1px solid var(--line)}.amenity-list>div{display:grid;grid-template-columns:70px 1fr 1fr;gap:35px;align-items:center;padding:26px 0;border-bottom:1px solid var(--line)}.amenity-list h3{font:400 30px/1.2 var(--serif);margin:0}.amenity-list p{font-size:12px;color:var(--muted);margin:0}

/* Access */
.access-map{width:min(100% - 10vw,1260px);height:590px;margin:auto;background:var(--paper-2)}.access-map iframe{display:block;width:100%;height:100%;border:0;filter:sepia(.2) saturate(.55) contrast(.94)}.access-details{display:grid;grid-template-columns:.9fr 1.1fr;gap:10vw;padding-top:140px}.detail-list{border-top:1px solid var(--line)}.detail-list article{display:grid;grid-template-columns:170px 1fr;gap:25px;padding:23px 0;border-bottom:1px solid var(--line)}.detail-list span{font-size:8px;letter-spacing:.2em;color:var(--accent)}.detail-list p{margin:0;font-size:13px}.detail-list a{border-bottom:1px solid var(--ink)}.route-note{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:10vw}.route-note div>p:not(.fiction-note){max-width:580px;color:var(--muted)}.fiction-note.important{border-left:2px solid var(--accent);padding:14px 18px;background:var(--paper-2);font-size:11px;line-height:1.8}

@media(max-width:900px){.fact-grid{grid-template-columns:repeat(2,1fr)}.fact-grid article:nth-child(2){border-right:0}.fact-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}}
@media(max-width:760px){.catalog-head{display:block;margin-bottom:55px}.menu-filters{justify-content:flex-start;margin-top:38px}.menu-filters button{min-width:calc(50% - 4px)}.product-item{grid-template-columns:35px 1fr auto;gap:14px;padding:24px 0}.product-item div>p:last-child{font-size:11px}.menu-photo-band{height:380px}.concept{padding-top:100px}.fact-grid{grid-template-columns:1fr}.fact-grid article,.fact-grid article:nth-child(2){border-right:0;border-bottom:1px solid var(--line);min-height:215px}.fact-grid article:last-child{border-bottom:0}.amenity-list>div{grid-template-columns:35px 1fr;gap:15px}.amenity-list p{grid-column:2}.access-map{width:calc(100% - 48px);height:440px}.access-details,.route-note{grid-template-columns:1fr;gap:55px;padding-top:100px}.detail-list article{grid-template-columns:1fr;gap:7px}.catalog-head h2,.access-details h2,.route-note h2{font-size:52px}}

/* Progressive enhancement: content stays visible when JavaScript is unavailable. */
.reveal{opacity:1;transform:none}
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s cubic-bezier(.22,1,.36,1)}
.js .reveal.visible{opacity:1;transform:none}

/* Interactive feedback */
.button,.feature-card,.fact-grid article,.amenity-list>div,.product-item{transition:transform .35s ease,box-shadow .35s ease,background-color .35s ease,color .35s ease}
.button:hover{transform:translateY(-3px);box-shadow:0 12px 30px rgba(43,33,29,.14)}
.feature-card:hover{transform:translateY(-8px)}
.feature-card:hover .card-meta{border-color:var(--accent)}
.fact-grid article:hover{background:rgba(255,255,255,.35);transform:translateY(-4px)}
.amenity-list>div:hover,.product-item:hover{background:rgba(163,95,69,.055);padding-left:14px;padding-right:14px}
.text-link{transition:color .25s,border-color .25s}
.text-link:hover{color:var(--accent);border-color:var(--accent)}

/* Back to top */
.back-to-top{position:fixed;right:clamp(18px,3vw,42px);bottom:clamp(18px,3vw,42px);z-index:30;width:52px;height:52px;border:1px solid rgba(245,240,231,.38);border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font:400 19px/1 var(--serif);cursor:pointer;box-shadow:0 8px 25px rgba(43,33,29,.18);opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .3s,visibility .3s,transform .3s,background-color .3s}
.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--accent)}.back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:4px}

@media(max-width:760px){
  .nav-toggle span{margin:5px 0}
  .nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(6px) rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6px) rotate(-45deg)}
  .back-to-top{width:46px;height:46px;right:18px;bottom:18px}
  .amenity-list>div:hover,.product-item:hover{padding-left:8px;padding-right:8px}
}

@media(hover:none){.button:hover,.feature-card:hover,.fact-grid article:hover{transform:none}.amenity-list>div:hover,.product-item:hover{padding-left:0;padding-right:0;background:transparent}}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}.back-to-top,.button,.feature-card,.fact-grid article,.amenity-list>div,.product-item{transition:none}}
