.coffee-scene{height:510px;overflow:hidden;position:relative;background:repeating-linear-gradient(93deg,#b18b5e22 0px,#b18b5e22 2px,transparent 3px,transparent 75px),linear-gradient(125deg,#b8b392,#d6c9a4 45%,#a09167);border-radius:46% 46% 0 0;isolation:isolate}.sunlight{position:absolute;inset:-50%;background:repeating-linear-gradient(125deg,transparent 0 150px,#fff8d348 150px 230px,transparent 230px 270px);transform:rotate(-10deg)}.napkin{position:absolute;width:270px;height:300px;background:repeating-linear-gradient(0deg,#ffffff18 0 1px,transparent 1px 4px),#e8e1ce;left:25%;top:28%;transform:rotate(-18deg);box-shadow:5px 12px 20px #4c42252b}.saucer{position:absolute;width:240px;height:240px;background:radial-gradient(circle,#d9d7c6 40%,#f3f0df 41%,#e8e5d6 65%,#f5f1df 68%);border-radius:50%;top:31%;left:28%;box-shadow:14px 22px 25px #433f4160;transform:rotate(-20deg)}.cup{position:absolute;width:164px;height:164px;top:34px;left:33px;border-radius:50%;background:#faf4e1;box-shadow:6px 8px 9px #766b5366}.cup:before{content:"";position:absolute;width:53px;height:35px;border:12px solid #f5f0de;right:-39px;top:60px;border-radius:10px 28px 28px 10px;z-index:-1}.coffee{position:absolute;inset:11px;border:4px solid #c8bba1;border-radius:50%;background:radial-gradient(ellipse at 28% 24%,#ffffff50 0,transparent 20%),radial-gradient(ellipse at 55% 60%,#412317 45%,#6a3c22 70%,#c3975c 75%)}.leaf{position:absolute;width:85px;height:220px;background:#566348;border-radius:0 100% 0 100%;transform:rotate(40deg);top:-65px;left:5px;filter:blur(1px);box-shadow:20px 20px 25px #3b432a40}.leaf-two{left:90px;top:-90px;transform:rotate(75deg);background:#687650}.scene-caption{position:absolute;bottom:22px;left:25px;font:9px sans-serif;letter-spacing:.2em;color:#3d4837}
.map{height:430px;position:relative;background:linear-gradient(0deg,transparent 19%,#f9f8f1 19%,#f9f8f1 29%,transparent 29%),linear-gradient(90deg,#e3e7da 44%,#faf9f2 44%,#faf9f2 56%,#e3e7da 56%);border:1px solid #d8ddce;font-size:12px}.map-park{position:absolute;top:35px;left:25px;background:#ccd8bb;border-radius:45%;padding:38px 15px}.map-street{position:absolute;left:48%;top:55px;writing-mode:vertical-rl}.map-cafe{position:absolute;top:155px;left:60%;background:var(--accent);color:white;padding:10px 13px;white-space:nowrap}.map-walk{position:absolute;top:225px;left:59%;font-size:11px}.map-station{position:absolute;bottom:42px;left:28%;background:#f8f6ec;border:1px solid #abb4a1;padding:8px 24px}.map-note{position:absolute;bottom:10px;left:15px;font-size:10px;color:var(--muted)}
/* Palette and typography */
:root{--paper:#f8f5ee;--ink:#322b27;--muted:#74685f;--accent:#a3654e;--line:#dcd4c8;--serif:Georgia,'Times New Roman',serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif;font-size:15px;line-height:2}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a{transition:color .2s,background .2s}a:hover{color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:-.045em}h1{font-size:clamp(64px,7.2vw,112px)}h2{font-size:clamp(42px,4.6vw,66px)}h3{font-size:19px;font-weight:500;letter-spacing:.04em}p{letter-spacing:.03em}.eyebrow{font:10px/1.8 sans-serif;letter-spacing:.23em;color:var(--accent);margin-bottom:28px}.section{max-width:1280px;padding:110px 60px;margin:auto}.section-japanese{font-size:15px;letter-spacing:.08em;margin-top:24px}.skip-link{position:absolute;top:-100px;left:20px;background:var(--paper);z-index:10;padding:12px}.skip-link:focus{top:10px}
/* Shared navigation */
.site-header{max-width:1440px;margin:auto;padding:30px 60px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{display:flex;flex-direction:column;line-height:1}.brand-name{font:38px/.95 var(--serif);letter-spacing:-.045em}.brand-dot,.footer-brand span{color:var(--accent)}.brand-sub{font-size:10px;letter-spacing:.22em;margin-top:13px}nav{display:flex;gap:36px}nav a{font:11px/1.8 sans-serif;letter-spacing:.12em;padding:14px 0;position:relative}nav a[aria-current]:after{content:'';height:1px;background:var(--accent);position:absolute;bottom:5px;left:0;right:0}.nav-toggle{display:none}
/* Home */
.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:40px;padding:62px 60px 90px;position:relative}.hero-copy{padding:15px 0}.hero h1{font-size:clamp(64px,6.7vw,100px);margin-bottom:30px}.hero-japanese{font-size:17px;letter-spacing:.08em;margin-bottom:24px}.hero-copy>p:not(.eyebrow):not(.hero-japanese){font-size:14px;line-height:2.25;color:var(--muted);margin-bottom:36px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;padding:17px 25px;background:var(--ink);color:var(--paper);font-size:13px;min-height:56px}.button:hover{background:var(--accent);color:var(--paper)}.button span{font-size:20px;line-height:1}.hero-number{position:absolute;right:60px;bottom:49px;font:9px/1.5 sans-serif;letter-spacing:.18em;color:var(--muted)}.coffee-scene{height:560px;background:repeating-linear-gradient(93deg,#94714b15 0px,#94714b15 2px,transparent 3px,transparent 75px),linear-gradient(125deg,#a69680,#d9c5a5 45%,#a48a6a);border-radius:48% 48% 2px 2px}.leaf{background:#736857;opacity:.65}.leaf-two{background:#8b7b66}.scene-caption{color:#514538;bottom:25px}.saucer{top:36%;left:calc(50% - 120px)}.napkin{top:31%;left:calc(50% - 130px)}.notice{max-width:1160px;margin:auto;border-block:1px solid var(--line);padding:25px 0;display:flex;align-items:center;gap:36px}.notice .eyebrow{margin:0;font-size:9px}.notice p{font-size:13px}.notice a{margin-left:auto;font-size:12px;padding:10px 0}.divider{padding:0 15px;color:var(--line)}.intro{display:grid;grid-template-columns:.6fr 1.1fr 1.25fr;gap:40px;padding-block:140px}.intro>.eyebrow{padding-top:10px}.intro>div:last-child{padding-top:5px}.intro>div:last-child p{font-size:14px;line-height:2.4;margin-bottom:24px}.text-link{display:inline-flex;border-bottom:1px solid var(--accent);padding:10px 0;font-size:13px;min-height:44px}.favorites{border-top:1px solid var(--line)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:50px}.section-heading .eyebrow{margin-bottom:20px}.favorites-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.item-index{display:block;font:9px/2 sans-serif;letter-spacing:.16em;color:var(--accent);margin:24px 0 13px}.favorites-grid p{font-size:13px;color:var(--muted);margin:10px 0 15px}.favorites-grid article>span:last-child{font:20px var(--serif)}
/* Original CSS illustrations keep all six files self-contained. */
.food-art{height:260px;position:relative;overflow:hidden;background:#eae2d5;isolation:isolate}.art-pudding{background:#e8ddd1}.art-toast{background:#e4ded1}.food-plate{position:absolute;width:180px;height:180px;left:calc(50% - 90px);top:40px;border-radius:50%;background:radial-gradient(circle,#ddd6c9 52%,#f3eee4 54%,#f9f6ef 67%,#d8cfc0 69%);box-shadow:12px 17px 22px #48382922;transform:rotate(-20deg)}.food-object{position:absolute}.art-coffee .food-object{inset:31px;border-radius:50%;border:10px solid #f6efe3;background:radial-gradient(ellipse at 35% 30%,#9e7959,#513020 65%);box-shadow:4px 7px 8px #503c3033}.art-coffee .food-object:after{content:'';width:32px;height:22px;border:8px solid #eee6d8;position:absolute;right:-36px;top:32px;border-radius:8px 18px 18px 8px;z-index:-1}.art-pudding .food-object{width:94px;height:90px;left:44px;top:43px;transform:rotate(20deg);border-radius:40% 40% 24% 24%;background:linear-gradient(#6c3c29 0 16%,#aa7048 18%,#e3bb7a 29%,#edce95 90%);box-shadow:0 10px 0 8px #9a5a3d66,7px 14px 13px #78563433}.art-toast .food-object{width:115px;height:125px;left:33px;top:27px;background:radial-gradient(ellipse,#e9c98c,#cb965c 70%);border:8px solid #a76e43;border-radius:32% 32% 9% 9%;box-shadow:5px 9px 9px #644b3633}.art-toast .food-object:after{content:'';width:30px;height:26px;background:#f1db9f;position:absolute;left:34px;top:38px;transform:rotate(15deg);box-shadow:3px 3px 4px #9d784866}
/* Inner pages */
.page-heading{max-width:1280px;margin:0 auto;padding:85px 60px 80px;border-bottom:1px solid var(--line)}.page-heading h1{margin-bottom:34px}.page-japanese{font-size:18px;margin-bottom:22px;letter-spacing:.08em}.page-heading p:last-child{font-size:14px;color:var(--muted);line-height:2.2}.menu-section{display:grid;grid-template-columns:1fr 1fr;gap:75px}.menu-group h2{font-size:43px;letter-spacing:-.04em}.menu-group .section-japanese{margin:18px 0 25px;color:var(--muted);font-size:13px}dl{margin:0}dl>div{display:flex;justify-content:space-between;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}dt{font-size:16px}dt span{display:block;font-size:13px;line-height:1.9;color:var(--muted);margin-top:10px}dt small{font:9px sans-serif;letter-spacing:.07em;margin-left:10px;white-space:nowrap}dd{margin:0;white-space:nowrap;font-family:var(--serif);font-size:20px}small{font-size:12px;color:var(--muted)}.menu-note{grid-column:1/-1;color:var(--muted);font-size:13px}.story{display:grid;grid-template-columns:1fr 2.4fr;gap:60px;border-bottom:1px solid var(--line)}.story-label{font:56px/1 var(--serif);color:var(--accent)}.story-label span{display:block;font:13px/2 sans-serif;color:var(--muted);margin-top:20px}.story h2{font-size:56px}.story .section-japanese{margin-bottom:35px;font-size:18px}.story p:not(.eyebrow):not(.section-japanese){font-size:14px;line-height:2.5;color:var(--muted)}.story .text-link{margin-top:25px}.access-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.map{height:470px;background:linear-gradient(0deg,transparent 19%,#faf8f1 19%,#faf8f1 29%,transparent 29%),linear-gradient(90deg,#e7e0d4 44%,#faf8f1 44%,#faf8f1 56%,#e7e0d4 56%);border-color:var(--line)}.map-park{background:#d6cbbb;color:#65584b}.map-cafe{background:var(--accent);left:58%;font-size:11px}.map-street{color:var(--muted)}.map-station{border-color:#c0b29e;color:var(--ink);left:24%}.map-note{color:var(--muted)}.shop-info h2{font-family:'Yu Mincho',serif;font-size:30px;letter-spacing:.1em;margin-bottom:28px}.shop-info dl>div{padding:18px 0;justify-content:flex-start}.shop-info dt{min-width:85px;font-size:13px;color:var(--muted)}.shop-info dd{font-family:inherit;font-size:14px;white-space:normal}.visit{display:flex;align-items:center;justify-content:space-between;gap:40px;border-top:1px solid var(--line)}.visit h2{font-size:54px}.visit p:last-child{font-size:14px;color:var(--muted);margin-top:24px}.button-outline{border:1px solid var(--line);background:transparent;color:var(--ink);flex-shrink:0}
/* Shared footer */
.site-footer{background:#eee8de;padding:70px max(60px,calc((100vw - 1160px)/2)) 28px}.footer-top{display:grid;grid-template-columns:1.5fr 1fr .65fr;gap:50px}.footer-brand{font:56px/1 var(--serif);letter-spacing:-.05em}.footer-tagline{font-size:12px;margin-top:22px}.footer-hours .eyebrow,.footer-social .eyebrow{margin-bottom:20px}.footer-hours>p:last-child{font:23px/1.5 var(--serif);letter-spacing:.02em}.footer-hours span{display:block;font:12px/2 sans-serif;letter-spacing:0;margin-top:10px}.footer-social a{display:inline-block;font:20px/2 var(--serif)}.footer-social small{display:block;font-size:10px}.footer-nav{margin-top:50px;gap:30px}.footer-nav a{font-size:10px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #d4c9bc;margin-top:25px;padding-top:24px;font-size:10px;color:var(--muted);letter-spacing:.08em}
@media(min-width:1500px){.hero{gap:70px}}
@media(max-width:1100px){.site-header{padding-inline:35px}.hero{padding-inline:35px;gap:25px}.hero h1{font-size:73px}.coffee-scene{height:510px}.section,.page-heading{padding-inline:40px}.notice{margin-inline:40px}.intro{grid-template-columns:1fr 1.3fr;gap:35px}.intro>.eyebrow{grid-column:1/-1;padding:0;margin-bottom:0}.menu-section{gap:40px}.menu-group h2{font-size:36px}.access-grid{gap:35px}.footer-top{gap:25px}.site-footer{padding-inline:40px}.food-art{height:230px}.food-plate{top:25px}.map-cafe{font-size:10px;padding:10px}.story h2{font-size:48px}}
@media(max-width:760px){.site-header{padding:25px 24px;flex-wrap:wrap}.brand-name{font-size:33px}.brand-sub{font-size:9px}.nav-toggle:not([hidden]){display:block;color:var(--ink);border:1px solid var(--line);background:transparent;padding:13px 12px;min-height:44px;font:11px sans-serif}.nav-toggle span{margin-left:10px}.site-header nav{width:100%;gap:12px;justify-content:space-between;padding-top:12px}.site-header nav a{font-size:10px}.js-enabled .site-header nav:not(.is-open){display:none}.hero{grid-template-columns:1fr;padding:35px 24px 60px;gap:40px}.hero h1{font-size:clamp(60px,12vw,88px)}.hero-copy{padding:0}.hero-japanese{font-size:15px}.hero-copy>p:not(.eyebrow):not(.hero-japanese){font-size:14px}.hero .eyebrow{font-size:9px;margin-bottom:24px}.coffee-scene{height:440px;max-width:480px;width:100%;margin:auto}.hero-number{right:24px;bottom:26px}.notice{margin-inline:24px;display:block;padding:24px 0}.notice .eyebrow{margin-bottom:10px}.notice p{font-size:12px}.notice a{display:inline-block;margin-top:6px}.divider{padding:0 10px}.section{padding:75px 24px}.intro{display:block}.intro>.eyebrow{margin-bottom:25px}.intro>div:last-child{margin-top:35px}.section-heading{align-items:flex-start;gap:20px;flex-direction:column;margin-bottom:35px}h2{font-size:48px}.section-japanese{margin-top:20px}.favorites-grid{grid-template-columns:1fr;gap:40px}.food-art{height:290px}.food-plate{top:55px;transform:rotate(-20deg) scale(1.1)}.favorites-grid p{font-size:14px}.item-index{margin-top:20px}.page-heading{padding:45px 24px 60px}.page-heading h1{font-size:clamp(60px,12vw,84px)}.page-japanese{font-size:16px}.page-heading p:last-child{font-size:14px}.menu-section{grid-template-columns:1fr;gap:65px}.menu-group h2{font-size:42px}.menu-note{font-size:12px}dt{font-size:15px}dt small{display:block;margin:4px 0 0}dt span{font-size:13px}.story{grid-template-columns:1fr;gap:35px}.story-label{display:flex;gap:20px;align-items:center;font-size:40px}.story-label span{margin:0}.story h2{font-size:47px}.story .section-japanese{font-size:16px}.story p br{display:none}.access-grid{grid-template-columns:1fr;gap:55px}.map{height:390px}.map-cafe{top:145px;font-size:11px;left:57%}.map-park{padding:30px 10px}.map-station{left:24%;font-size:11px}.map-walk{top:210px;left:58%}.visit{flex-direction:column;align-items:flex-start;gap:35px}.visit h2{font-size:47px}.site-footer{padding:55px 24px 25px}.footer-top{grid-template-columns:1fr 1fr;gap:40px 20px}.footer-top>div:first-child{grid-column:1/-1}.footer-brand{font-size:52px}.footer-hours>p:last-child{font-size:22px}.footer-hours span{font-size:11px}.footer-social .eyebrow,.footer-hours .eyebrow{font-size:9px}.footer-social a{font-size:19px}.footer-nav{gap:22px;justify-content:space-between}.footer-nav a{font-size:9px}.footer-bottom{flex-direction:column;gap:8px;font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}a{transition:none}}

/* Unlinked social account placeholder. */
.social-placeholder { font: 20px/2 var(--serif); }

/* Refined editorial system — shared by all four static pages. */
:root {
  --paper: #f7f4ec;
  --ink: #302923;
  --muted: #71655b;
  --accent: #995e48;
  --line: #dcd3c6;
}
body { -webkit-font-smoothing: antialiased; }
::selection { background: #e4cbbb; color: var(--ink); }
h1, h2 { text-wrap: balance; }
p { line-height: 2.15; }
.site-header { padding: 38px 64px; max-width: 1440px; }
.brand-name { font-size: 43px; }
.brand-sub { font-size: 10px; margin-top: 14px; }
.site-header nav { gap: 42px; }
nav a { font-size: 10px; letter-spacing: .17em; }
nav a::after { transition: transform .25s ease; }
nav a:hover { color: var(--accent); }
.eyebrow { font-size: 10px; letter-spacing: .25em; margin-bottom: 30px; }
.section { padding: 130px 64px; }
.hero { padding: 70px 64px 110px; gap: 64px; }
.hero h1 { font-size: clamp(64px, 7.1vw, 105px); line-height: 1.02; letter-spacing: -.055em; }
.hero-japanese { margin-top: 36px; margin-bottom: 22px; }
.hero-copy > p:not(.eyebrow):not(.hero-japanese) { line-height: 2.4; }
.coffee-scene { height: 590px; border-radius: 48% 48% 0 0; }
.scene-caption { letter-spacing: .22em; font-size: 9px; }
.hero-number { bottom: 65px; right: 64px; }
.button { padding: 18px 27px; gap: 58px; font-size: 12px; transition: background .2s, color .2s; }
.button span { transition: transform .2s; }
.button:hover span { transform: translate(3px,-3px); }
.notice { padding: 20px 0; }
.notice p { font-size: 12px; }
.intro { grid-template-columns: .55fr 1.1fr 1.25fr; padding-block: 150px; }
.intro h2 { font-size: clamp(52px,5vw,72px); }
.intro > div:last-child p { line-height: 2.5; }
.section-heading { margin-bottom: 60px; }
.favorites-grid { gap: 36px; }
.food-art { height: 300px; background: #e8e0d3; }
.food-plate { top: calc(50% - 90px); }
.art-pudding { background: #ece1d7; }
.art-toast { background: #e5dfd3; }
.favorites-grid h3 { font-size: 17px; }
.item-index { margin-top: 28px; letter-spacing: .2em; }
.page-heading { padding: 100px 64px 100px; position: relative; }
.page-heading h1 { font-size: clamp(72px,8.4vw,120px); max-width: 900px; }
.page-heading .eyebrow { margin-bottom: 34px; }
.page-japanese { margin-top: 38px; font-size: 18px; }
.page-heading p:last-child { line-height: 2.4; }
.page-number { position: absolute; right: 64px; top: 106px; font: 9px/1.8 sans-serif; letter-spacing: .19em; color: var(--muted); }
.menu-section { column-gap: 90px; row-gap: 64px; }
.menu-group h2 { font-size: clamp(34px,3.4vw,47px); }
.menu-group .section-japanese { margin-bottom: 34px; }
.menu-art { height: 260px; margin-bottom: 18px; }
.art-caption { position: absolute; bottom: 16px; left: 20px; font: 8px/1.5 sans-serif; letter-spacing: .2em; color: #66584b; }
.menu-group dl > div { padding: 30px 0; }
.menu-group dt { font-size: 15px; }
.menu-group dd { padding-top: 2px; font-size: 23px; }
.menu-note { border-left: 2px solid var(--accent); padding-left: 22px; font-size: 12px; }
.story { grid-template-columns: .65fr 2fr; gap: 75px; }
.story-label { font-size: 48px; }
.story-label span { font-size: 12px; }
.story h2 { font-size: clamp(42px,5vw,66px); }
.story .section-japanese { margin-top: 30px; margin-bottom: 30px; }
.story p:not(.eyebrow):not(.section-japanese) { line-height: 2.7; }
.story-scene { grid-column: 1/-1; height: 340px; position: relative; overflow: hidden; background: linear-gradient(115deg,#d3c7b5,#eee5d4 60%,#d4c3ac); isolation: isolate; }
.story-scene::before { content: ''; position: absolute; inset: 0; background: repeating-linear-gradient(120deg,transparent 0 110px,#fff8e74d 110px 180px,transparent 180px 220px); }
.story-scene::after { content: ''; position: absolute; inset: 75% 0 0; background: #a28a7066; border-top: 4px solid #b9a38a; z-index: -1; }
.window-frame { position: absolute; width: 34%; height: 95%; left: 10%; top: -20%; border: 12px solid #766452; box-shadow: 15px 16px 24px #65523d30; background: linear-gradient(90deg,transparent 47%,#766452 47% 52%,transparent 52%),linear-gradient(0deg,transparent 46%,#766452 46% 50%,transparent 50%),#faf3df88; }
.vase { width: 70px; height: 110px; position: absolute; left: 69%; bottom: 20%; border-radius: 15% 15% 42% 42%; background: linear-gradient(90deg,#9d735b,#c5a48b 45%,#aa8067); box-shadow: 16px 15px 20px #5b463630; }
.vase::before { content: ''; position: absolute; height: 112px; width: 2px; background: #75614d; bottom: 95%; left: 34px; transform: rotate(12deg); }
.vase::after { content: ''; position: absolute; width: 28px; height: 45px; background: #9a896e; border-radius: 0 100% 0 100%; bottom: 144%; left: 35px; transform: rotate(-12deg); }
.story-scene > span { position: absolute; bottom: 20px; left: 25px; font: 9px/1.6 sans-serif; letter-spacing: .22em; color: #493c30; }
.access-grid { gap: 80px; }
.map { height: 490px; }
.map-park { color: #65584b; }
.visit { padding-block: 100px; }
.visit h2 { font-size: clamp(42px,4.5vw,64px); }
.site-footer { padding-top: 85px; padding-bottom: 30px; background: #ebe4d9; }
.footer-top { grid-template-columns: 1.4fr 1fr .65fr; gap: 50px; }
.footer-brand { font-size: 66px; }
.footer-tagline { margin-top: 25px; line-height: 2.2; }
.footer-social a { font-size: 23px; border-bottom: 1px solid #b9a18d; }
.footer-social a span { font: 15px sans-serif; padding-left: 14px; }
.footer-social small { margin-top: 10px; }
.footer-nav { margin-top: 64px; }
.footer-bottom { margin-top: 32px; }
@media (max-width: 1100px) {
  .site-header { padding-inline: 36px; }
  .hero { padding-inline: 40px; gap: 32px; }
  .hero h1 { font-size: 76px; }
  .coffee-scene { height: 530px; }
  .section, .page-heading { padding-inline: 40px; }
  .intro { grid-template-columns: 1fr 1.2fr; }
  .menu-section { column-gap: 45px; }
  .footer-top { gap: 24px; }
  .access-grid { gap: 36px; }
  .page-number { right: 40px; }
}
@media (max-width: 760px) {
  .site-header { padding: 26px 24px; gap: 22px; }
  .brand-name { font-size: 36px; }
  .site-header nav { gap: 14px; border-top: 1px solid var(--line); padding-top: 14px; }
  .site-header nav a { font-size: 10px; letter-spacing: .08em; }
  .hero { padding: 48px 24px 75px; gap: 48px; }
  .hero h1 { font-size: clamp(56px,12vw,84px); }
  .hero-japanese { margin-top: 28px; font-size: 15px; }
  .coffee-scene { height: 430px; }
  .hero-number { right: 24px; bottom: 36px; }
  .section { padding: 85px 24px; }
  .intro { padding-block: 95px; }
  .intro h2 { font-size: 58px; }
  .section-heading { margin-bottom: 38px; }
  .favorites-grid { gap: 50px; }
  .food-art { height: 290px; }
  .food-plate { top: calc(50% - 90px); }
  .page-heading { padding: 62px 24px 70px; }
  .page-heading h1 { font-size: clamp(58px,12vw,84px); }
  .page-number { display: none; }
  .page-japanese { margin-top: 30px; font-size: 16px; }
  .menu-section { gap: 75px; }
  .menu-group h2 { font-size: clamp(34px,8.5vw,48px); }
  .menu-art { height: 240px; }
  .menu-group dt { font-size: 14px; }
  .menu-group dd { font-size: 22px; }
  .story { gap: 32px; }
  .story h2 { font-size: clamp(39px,9vw,56px); }
  .story-scene { height: 270px; margin-top: 16px; }
  .story .section-japanese { font-size: 16px; }
  .access-grid { gap: 50px; }
  .map { height: 390px; }
  .visit { padding-block: 75px; }
  .visit h2 { font-size: 46px; }
  .footer-top { grid-template-columns: 1fr; gap: 38px; }
  .footer-brand { font-size: 58px; }
  .footer-nav { gap: 12px; margin-top: 48px; }
  .footer-nav a { letter-spacing: .08em; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Home: generated interior photograph and restrained menu cards. */
.page-index .hero-photo {
  max-width: none;
  min-height: 720px;
  min-height: min(850px, 88svh);
  display: flex;
  align-items: center;
  padding: 90px max(64px, calc((100vw - 1160px) / 2));
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #302923;
  color: #fffaf0;
}
.hero-photo .hero-background {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: -2;
}
.hero-photo::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(90deg, rgba(25,19,15,.76) 0%, rgba(25,19,15,.62) 44%, rgba(25,19,15,.13) 80%);
}
.hero-photo .hero-copy { max-width: 740px; padding: 0; }
.hero-photo .eyebrow { color: #fff0dc; font-size: 10px; }
.hero-photo h1 { font-size: clamp(64px,7.3vw,108px); }
.hero-photo .hero-japanese { color: #fffaf0; }
.hero-photo .hero-copy > p:not(.eyebrow):not(.hero-japanese) { color: #fff5e7; }
.hero-photo .button { background: #f7f4ec; color: #302923; }
.hero-photo .button:hover { background: #e6d4c2; }
.hero-photo .hero-number { color: #fff5e7; bottom: 30px; }
.hero-photo :focus-visible { outline-color: #fffaf0; }
.page-index .notice { border-top: none; }
.menu-card { background: #f0eae0; padding: 0 0 28px; border: 1px solid var(--line); }
.menu-card .food-art { border-bottom: 1px solid var(--line); }
.menu-card > :not(.food-art) { margin-left: 24px; margin-right: 24px; }
.menu-card > h3 { font-size: 17px; }
.menu-card > p { min-height: 3.8em; }
.favorites-note { font-size: 11px; color: var(--muted); margin-top: 24px; text-align: right; }
@media (max-width: 1100px) {
  .page-index .hero-photo { padding-inline: 40px; }
  .menu-card > :not(.food-art) { margin-left: 18px; margin-right: 18px; }
}
@media (max-width: 760px) {
  .page-index .hero-photo { min-height: 680px; padding: 70px 24px 85px; }
  .hero-photo .hero-background { object-position: 60% center; }
  .hero-photo::before { background: rgba(25,19,15,.68); }
  .hero-photo h1 { font-size: clamp(52px,11.5vw,84px); }
  .hero-photo .eyebrow { font-size: 9px; letter-spacing: .18em; max-width: 270px; }
  .hero-photo .hero-number { bottom: 28px; right: 24px; font-size: 8px; }
  .hero-photo .hero-japanese { font-size: 14px; }
  .hero-photo .hero-copy > p:not(.eyebrow):not(.hero-japanese) { font-size: 13px; }
  .menu-card > p { min-height: 0; }
  .menu-card > :not(.food-art) { margin-left: 24px; margin-right: 24px; }
}

/* Photographic menu, shop details, and interactive map. */
.menu-filters { display:flex; flex-wrap:wrap; gap:12px; margin-top:44px; }
.menu-filters[hidden], .product-card[hidden] { display:none; }
.menu-filters button { border:1px solid var(--line); padding:14px 25px; min-height:48px; background:transparent; color:var(--ink); font:inherit; font-size:13px; cursor:pointer; }
.menu-filters button:hover { border-color:var(--accent); }
.menu-filters button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); color:#fffaf0; }
.result-count { font-size:12px; color:var(--muted); margin:24px 0; }
.product-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 28px; }
.product-card { background:#f0eae0; border:1px solid var(--line); display:flex; flex-direction:column; min-width:0; }
.product-card img { width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; display:block; }
.product-copy { padding:26px; flex:1; display:flex; flex-direction:column; }
.product-copy .eyebrow { margin-bottom:16px; font-size:9px; }
.product-copy h3 { font-size:17px; }
.product-copy > p:not(.eyebrow):not(.product-price) { font-size:13px; color:var(--muted); margin:12px 0 24px; }
.product-copy .product-price { margin-top:auto; font:26px/1.5 var(--serif); }
.product-price small { margin-left:12px; font:10px sans-serif; }
.menu-catalog .menu-note { margin-top:48px; }
.about-interior { display:block; width:100%; height:auto; aspect-ratio:2.3/1; object-fit:cover; margin-top:60px; }
.concept-block { display:grid; grid-template-columns:1fr 1.2fr; gap:28px 80px; border-bottom:1px solid var(--line); }
.concept-block > .eyebrow { grid-column:1/-1; margin:0; }
.concept-block .section-japanese { margin:0 0 24px; }
.concept-block p + p { margin-top:20px; }
.details-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 64px; margin-top:48px; }
.details-grid > div { display:block; padding:30px 0; min-width:0; }
.details-grid dt { font:10px/2 sans-serif; letter-spacing:.13em; color:var(--accent); margin-bottom:14px; }
.details-grid dd { font:20px/1.8 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; white-space:normal; }
.details-grid small { display:block; font-size:12px; margin-top:8px; }
.fiction-note { font-size:12px; line-height:2; color:var(--muted); margin-top:30px; }
.access-intro { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.access-details { padding-bottom:30px; }
.location-section { padding-top:70px; }
.location-section h2 { font-size:clamp(40px,5vw,64px); }
.osm-map { display:block; width:100%; height:500px; border:1px solid var(--line); margin-top:30px; background:#ebe4d9; }
.map-links { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:14px; font-size:12px; margin-top:12px; }
.map-links > span a { text-decoration:underline; }
@media(max-width:1000px) { .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:760px) {
 .menu-filters { gap:8px; }
 .menu-filters button { padding:12px 16px; }
 .product-grid { grid-template-columns:1fr; gap:30px; }
 .product-copy { padding:24px; }
 .concept-block, .access-intro, .details-grid { grid-template-columns:1fr; gap:28px; }
 .details-grid { gap:0; margin-top:30px; }
 .about-interior { aspect-ratio:4/3; margin-top:40px; }
 .details-grid dd { font-size:18px; }
 .osm-map { height:380px; }
 .access-intro .fiction-note { margin-top:0; }
 .location-section { padding-top:45px; }
}

/* Optional interaction: content is visible without scripting or animation. */
.button, .menu-filters button, .back-to-top {
  transition: background .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.menu-card, .product-card {
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
@media (hover: hover) and (pointer: fine) {
  .button:hover, .menu-filters button:hover { transform: translateY(-2px); box-shadow: 0 6px 18px #30292314; }
  .menu-card:hover, .product-card:hover { transform: translateY(-5px); box-shadow: 0 14px 32px #30292312; border-color: #bca38e; }
  .back-to-top:hover { background: var(--accent); color: var(--paper); transform: translateY(-3px); }
}
.back-to-top {
  position: fixed; right: max(24px, env(safe-area-inset-right));
  bottom: max(24px, env(safe-area-inset-bottom)); z-index: 20;
  width: 54px; height: 62px; display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 3px;
  background: var(--paper); color: var(--ink); border: 1px solid var(--line);
  box-shadow: 0 4px 18px #30292314;
}
.back-to-top > span:first-child { font: 23px/1 sans-serif; }
.back-to-top-label { font: 9px/1.5 sans-serif; letter-spacing: .15em; }
.site-footer { padding-bottom: 100px; }
.site-header:focus { outline: none; }
.hamburger { display: flex; flex-direction: column; gap: 5px; width: 22px; }
.nav-toggle .hamburger, .nav-toggle .hamburger span { margin: 0; }
.hamburger span { display: block; height: 1px; width: 22px; background: currentColor; transition: transform .25s ease, opacity .25s ease; }
.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] .hamburger span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
@media (max-width: 760px) {
  .nav-toggle:not([hidden]) { width: 48px; height: 48px; padding: 12px; display: flex; align-items: center; justify-content: center; cursor: pointer; }
  .back-to-top { right: max(16px, env(safe-area-inset-right)); bottom: max(16px, env(safe-area-inset-bottom)); width: 48px; height: 56px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .button:hover, .menu-filters button:hover, .menu-card:hover, .product-card:hover, .back-to-top:hover { transform: none; }
}
