:root {
  --paper: #f2eee7;
  --paper-deep: #e8e0d5;
  --cream: #faf7f1;
  --brown: #2a211c;
  --brown-soft: #5f5148;
  --accent: #a45f46;
  --line: rgba(42, 33, 28, 0.2);
  --serif: Georgia, "Times New Roman", "Yu Mincho", "Hiragino Mincho ProN", serif;
  --gothic: "Helvetica Neue", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --side: clamp(24px, 6.25vw, 96px);
  --section-space: clamp(110px, 13vw, 200px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; overflow-x: hidden; color: var(--brown); background: var(--paper); font-family: var(--gothic); font-size: 15px; line-height: 2; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
img { max-width: 100%; display: block; }
::selection { color: var(--cream); background: var(--accent); }
.skip-link { position: fixed; top: 10px; left: 10px; padding: 8px 16px; color: var(--cream); background: var(--brown); z-index: 100; transform: translateY(-150%); }
.skip-link:focus { transform: none; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 5px; }

.site-header { height: 98px; position: sticky; top: 0; z-index: 50; border-bottom: 1px solid var(--line); background: rgba(242, 238, 231, 0.92); backdrop-filter: blur(14px); }
.header-inner { height: 100%; padding: 0 var(--side); display: flex; align-items: center; justify-content: space-between; }
.brand { display: inline-flex; flex-direction: column; align-items: flex-start; line-height: 1; }
.brand-en { font: 500 21px/.9 var(--serif); letter-spacing: .2em; }
.brand-ja { margin-top: 8px; font-size: 9px; letter-spacing: .35em; }
.global-nav { height: 100%; display: flex; align-items: stretch; gap: clamp(28px, 3.8vw, 60px); }
.global-nav a { min-width: 54px; display: flex; flex-direction: column; justify-content: center; position: relative; font: 16px/1 var(--serif); letter-spacing: .04em; }
.global-nav a small { margin-top: 8px; color: var(--brown-soft); font: 8px/1 var(--gothic); letter-spacing: .12em; }
.global-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -1px; height: 2px; background: var(--accent); transition: right .3s ease; }
.global-nav a:hover::after, .global-nav a.is-current::after { right: 0; }
.menu-toggle { display: none; border: 0; padding: 8px 0; background: none; }
.menu-toggle-label { font: 15px var(--serif); letter-spacing: .08em; }
.menu-toggle-lines { width: 24px; height: 12px; margin-left: 12px; display: inline-block; position: relative; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; }
.menu-toggle-lines::before { content:""; width:100%; height:1px; position:absolute; left:0; top:5px; background:currentColor; }

.kicker { margin: 0 0 30px; color: var(--accent); font: 600 10px/1.4 var(--gothic); text-transform: uppercase; letter-spacing: .3em; }
.home-hero { min-height: calc(100svh - 98px); padding: clamp(40px, 6vw, 92px) var(--side) clamp(72px, 8vw, 120px); display: grid; grid-template-columns: minmax(0, .92fr) minmax(430px, .78fr); gap: clamp(50px, 8vw, 130px); align-items: center; position: relative; }
.home-hero-copy { padding-bottom: 4vh; }
.home-hero h1, .subpage-hero h1 { margin: 0; font: 400 clamp(64px, 7vw, 112px)/.94 var(--serif); letter-spacing: -.055em; }
.home-hero h1 em, .subpage-hero h1 em { color: var(--accent); font-weight: 400; }
.hero-japanese { margin: 42px 0 0; font: 500 clamp(18px, 1.5vw, 23px)/1.8 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .1em; }
.hero-description { max-width: 560px; margin: 20px 0 32px; color: var(--brown-soft); font-size: 13px; }
.arrow-link, .light-link { display: inline-flex; align-items: center; gap: 36px; border-bottom: 1px solid currentColor; font: 15px/2 var(--serif); letter-spacing: .05em; }
.arrow-link span, .light-link span { transition: transform .25s ease; }
.arrow-link:hover span, .light-link:hover span { transform: translate(3px, -3px); }
.hero-scene { min-height: min(68vh, 680px); margin: 0; position: relative; overflow: hidden; background: linear-gradient(148deg, #655045 0%, #392d27 56%, #201a17 100%); box-shadow: 0 28px 70px rgba(42,33,28,.17); }
.hero-scene::before { content: ""; position: absolute; inset: 63% -10% -15%; background: linear-gradient(170deg, #4b372e, #211a17); transform: skewY(-4deg); }
.scene-light { position: absolute; width: 68%; height: 120%; right: -18%; top: -24%; background: linear-gradient(105deg, transparent, rgba(255,238,204,.26), transparent 62%); transform: rotate(8deg); filter: blur(4px); }
.scene-cup { width: clamp(170px, 17vw, 240px); height: clamp(120px, 12vw, 170px); position: absolute; left: 22%; top: 42%; border-radius: 10px 10px 48% 48%; background: linear-gradient(115deg, #ece3d5, #b9aa99); box-shadow: 30px 35px 55px rgba(0,0,0,.4); }
.scene-cup::before { content: ""; position: absolute; left: 1%; right: 1%; top: -8%; height: 19%; border-radius: 50%; background: radial-gradient(ellipse, #37231b 0 58%, #d5c8b8 61% 72%, #8f7e6f 74%); }
.scene-cup::after { content: ""; width: 30%; height: 45%; position: absolute; right: -24%; top: 20%; border: clamp(10px, 1vw, 15px) solid #c5b7a7; border-left: 0; border-radius: 0 50% 50% 0; }
.scene-cup span { position: absolute; width: 135%; height: 22%; left: -15%; bottom: -20%; border: 1px solid rgba(231,220,207,.5); border-radius: 50%; }
.scene-ring { width: 78%; aspect-ratio: 1; position: absolute; left: -30%; top: -42%; border: 1px solid rgba(232,214,194,.16); border-radius: 50%; box-shadow: 0 0 0 54px rgba(232,214,194,.025), 0 0 0 108px rgba(232,214,194,.018); }
.hero-scene figcaption { position: absolute; left: 28px; right: 28px; bottom: 18px; display: flex; justify-content: space-between; color: rgba(250,247,241,.68); font: 9px var(--gothic); text-transform: uppercase; letter-spacing: .2em; }
.scroll-note { position: absolute; left: var(--side); bottom: 26px; margin: 0; display: flex; align-items: center; gap: 12px; font: italic 12px var(--serif); }
.scroll-note span { width: 64px; height: 1px; background: var(--brown); }
.opening-note { min-height: 62px; padding: 15px var(--side); display: grid; grid-template-columns: 1fr 1.5fr 1fr; align-items: center; gap: 20px; color: var(--cream); background: var(--brown); font-size: 10px; letter-spacing: .1em; }
.opening-note p { margin: 0; }.opening-note p:nth-child(2) { text-align: center; }.opening-note p:last-child { text-align: right; }.opening-note span { margin-right: 18px; color: #c88167; font-family: var(--serif); font-style: italic; }

.editorial-section { padding: var(--section-space) var(--side); }
.section-label { display: flex; align-items: baseline; gap: 24px; margin-bottom: clamp(65px, 8vw, 118px); border-top: 1px solid var(--line); padding-top: 16px; }
.section-label span { font: 16px var(--serif); }.section-label small { color: var(--brown-soft); font-size: 9px; letter-spacing: .14em; }
.statement { display: grid; grid-template-columns: 1.1fr .9fr; gap: 11vw; align-items: end; }
.statement-en { margin: 0; font: 400 clamp(45px, 5.5vw, 86px)/1.06 var(--serif); letter-spacing: -.045em; }
.statement-ja h2 { margin: 0 0 28px; font: 500 clamp(26px, 2.4vw, 38px)/1.65 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .09em; }
.statement-ja > p { margin: 0 0 28px; color: var(--brown-soft); font-size: 13px; }
.selection-section { background: var(--cream); }
.selection-intro { margin: 0 0 80px 25%; display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; align-items: end; }
.selection-intro h2 { margin: 0; font: 400 clamp(42px, 5vw, 76px)/1.02 var(--serif); letter-spacing: -.04em; }
.selection-intro p { margin: 0; color: var(--brown-soft); font-size: 13px; }
.selection-list { border-top: 1px solid var(--line); }
.selection-item { min-height: 150px; display: grid; grid-template-columns: 50px 150px 1fr auto 36px; align-items: center; gap: clamp(20px, 3vw, 48px); border-bottom: 1px solid var(--line); transition: color .3s, padding .3s; }
.selection-item:hover { color: var(--accent); padding-left: 10px; }
.selection-index { font: 11px var(--gothic); letter-spacing: .1em; }
.selection-art { width: 136px; height: 94px; display: grid; place-items: center; position: relative; overflow: hidden; background: var(--paper-deep); }
.selection-art i { display: block; position: relative; }
.selection-art-coffee i { width: 46px; height: 34px; border: 2px solid var(--brown); border-top: 0; border-radius: 0 0 40% 40%; }.selection-art-coffee i::after { content:""; position:absolute; width:15px; height:18px; right:-13px; top:5px; border:2px solid var(--brown); border-left:0; border-radius:0 50% 50% 0; }
.selection-art-soda { background: #d6c8ba; }.selection-art-soda i { width: 30px; height: 58px; border: 1px solid var(--brown); border-radius: 2px 2px 8px 8px; background: linear-gradient(transparent 25%, rgba(164,95,70,.45) 25%); }.selection-art-soda i::before { content:""; width:8px; height:8px; position:absolute; left:6px; top:29px; border:1px solid var(--cream); border-radius:50%; box-shadow: 10px 12px 0 -1px rgba(250,247,241,.5); }
.selection-art-cake { background: #d9c9b6; }.selection-art-cake i { width: 62px; height: 36px; background: var(--accent); clip-path: polygon(0 100%, 8% 15%, 100% 0, 85% 100%); }.selection-art-cake i::after { content:""; position:absolute; inset:7px 2px 8px 7px; background:#e8d5bb; clip-path:inherit; }
.selection-item h3 { margin: 0; font: 400 clamp(22px, 2.5vw, 36px)/1.1 var(--serif); letter-spacing: -.02em; }.selection-item p { margin: 8px 0 0; color: var(--brown-soft); font-size: 11px; }.selection-item strong { font: 400 15px var(--serif); }.item-arrow { font-size: 17px; }
.outline-button, .solid-button { min-width: 200px; min-height: 56px; padding: 12px 24px; display: inline-flex; justify-content: center; align-items: center; border: 1px solid var(--brown); font: 14px var(--serif); letter-spacing: .05em; transition: color .25s, background .25s, transform .25s; }
.outline-button { margin-top: 48px; }.outline-button:hover, .solid-button:hover { color: var(--cream); background: var(--brown); transform: translateY(-2px); }
.visit-section { padding: clamp(95px, 12vw, 180px) var(--side); display: grid; grid-template-columns: 1.35fr .65fr; gap: 10vw; color: var(--cream); background: var(--accent); }
.visit-section .kicker { color: #ead6cc; }.visit-copy h2 { margin: 0; font: 400 clamp(48px, 6vw, 90px)/1 var(--serif); letter-spacing: -.04em; }.visit-copy > p:not(.kicker) { margin: 36px 0 28px; font-size: 13px; }.visit-hours { align-self: end; border-top: 1px solid rgba(250,247,241,.45); }.visit-hours > div { padding: 13px 0; display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid rgba(250,247,241,.25); }.visit-hours span { font: italic 14px var(--serif); }.visit-hours strong { font: 400 clamp(34px, 4vw, 58px) var(--serif); letter-spacing: -.03em; }.visit-hours p { margin: 20px 0 0; color: #f0dcd2; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }

.subpage-hero { min-height: 580px; padding: clamp(100px, 12vw, 180px) var(--side) 100px; display: grid; grid-template-columns: 1.25fr .75fr; gap: 9vw; align-items: end; border-bottom: 1px solid var(--line); }
.subpage-hero h1 { font-size: clamp(64px, 7.8vw, 118px); }
.subpage-intro { padding-bottom: 10px; }.subpage-intro p:first-child { margin: 0 0 22px; font: 500 19px/1.8 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .06em; }.subpage-intro p:last-child { margin: 0; color: var(--brown-soft); font-size: 13px; }
.category-nav { position: sticky; top: 98px; z-index: 20; padding: 0 var(--side); display: flex; gap: 40px; border-bottom: 1px solid var(--line); background: rgba(242,238,231,.95); backdrop-filter: blur(10px); }
.category-nav a { padding: 15px 0 12px; font: 14px var(--serif); }.category-nav a:hover { color: var(--accent); }
.menu-category-section { padding: clamp(100px, 11vw, 160px) var(--side) 0; }
.menu-category-heading { display: grid; grid-template-columns: 50px 1fr auto; align-items: start; padding-bottom: 38px; border-bottom: 1px solid var(--brown); }.menu-category-heading > span { font: 11px var(--gothic); }.menu-category-heading p { margin: 0 0 3px; color: var(--accent); font: italic 17px var(--serif); }.menu-category-heading h2 { margin: 0; font: 500 28px "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .12em; }.menu-category-heading > small { color: var(--brown-soft); font: 10px var(--gothic); text-transform: uppercase; letter-spacing: .16em; }
.menu-grid { margin-left: calc(25% + 12px); display: grid; grid-template-columns: 1fr 1fr; column-gap: clamp(45px, 7vw, 110px); }
.menu-entry { min-height: 154px; padding: 34px 0; display: flex; justify-content: space-between; gap: 24px; border-bottom: 1px solid var(--line); }.menu-entry h3 { margin: 0 0 9px; font: 400 22px/1.25 var(--serif); }.menu-entry p { margin: 0; font-size: 13px; }.menu-entry small { color: var(--brown-soft); font-size: 10px; }.menu-entry strong { font: 400 16px var(--serif); }.menu-entry strong::before { content:"¥"; margin-right:3px; font-size:10px; }.menu-entry mark { margin-left: 6px; padding: 3px 7px; color: var(--accent); border: 1px solid currentColor; background: none; font: 8px var(--gothic); text-transform: uppercase; letter-spacing: .08em; vertical-align: middle; }
.menu-information { margin: clamp(100px, 12vw, 180px) var(--side); padding: 28px 0; display: grid; grid-template-columns: 25% 1fr; border-top: 1px solid var(--brown); border-bottom: 1px solid var(--brown); }.menu-information p { margin: 0; font-size: 11px; }.menu-information p:first-child { font: italic 14px var(--serif); }

.origin-section { padding: var(--section-space) var(--side); display: grid; grid-template-columns: 1fr 1fr; gap: 11vw; align-items: center; }
.origin-art { min-height: 660px; display: grid; place-items: center; position: relative; overflow: hidden; color: var(--cream); background: linear-gradient(140deg, #382b25, #6d493c); }.origin-word { z-index: 2; font: 400 clamp(44px, 5vw, 70px) "Yu Mincho", serif; letter-spacing: .22em; }.origin-art i { width: 80%; height: 48%; position: absolute; border: 1px solid rgba(250,247,241,.28); border-radius: 50%; transform: rotate(-8deg); }.origin-art i:nth-of-type(2) { width: 115%; height: 72%; transform: rotate(7deg); }.origin-art i:nth-of-type(3) { width: 150%; height: 98%; transform: rotate(-3deg); }
.origin-copy h2, .values-heading h2 { margin: 0; font: 400 clamp(46px, 5vw, 76px)/1.03 var(--serif); letter-spacing: -.045em; }.origin-lead { margin: 42px 0 22px !important; font: 500 18px/1.8 "Yu Mincho", serif; letter-spacing: .06em; }.origin-copy > p:not(.kicker):not(.origin-lead) { margin: 0 0 20px; color: var(--brown-soft); font-size: 13px; }
.timeline-section { padding: 20px var(--side) var(--section-space); }.timeline { margin: 0 0 0 25%; padding: 0; list-style: none; border-top: 1px solid var(--brown); }.timeline li { padding: 42px 0; display: grid; grid-template-columns: 130px 1fr; gap: 5vw; border-bottom: 1px solid var(--line); }.timeline time { color: var(--accent); font: italic 24px var(--serif); }.timeline h3 { margin: 0 0 12px; font: 400 30px var(--serif); }.timeline p { max-width: 560px; margin: 0; color: var(--brown-soft); font-size: 13px; }
.values-panel { padding: var(--section-space) var(--side); display: grid; grid-template-columns: 1fr 1fr; gap: 11vw; color: var(--cream); background: var(--brown); }.values-panel .kicker { color: #c98167; }.values-heading { align-self: center; }.values-list article { padding: 30px 0; display: grid; grid-template-columns: 42px 1fr; border-top: 1px solid rgba(250,247,241,.25); }.values-list article:last-child { border-bottom: 1px solid rgba(250,247,241,.25); }.values-list article > span { grid-row: 1 / 3; font: 10px var(--gothic); }.values-list h3 { margin: 0 0 10px; font: 400 25px var(--serif); }.values-list p { margin: 0; color: #cfc3b9; font-size: 12px; }
.owner-quote { padding: var(--section-space) var(--side); text-align: center; }.owner-quote blockquote { margin: 0; font: italic 400 clamp(50px, 7vw, 104px)/.98 var(--serif); letter-spacing: -.05em; }.owner-quote > p { margin: 46px 0 13px; font-family: "Yu Mincho", serif; letter-spacing: .07em; }.owner-quote cite { color: var(--accent); font: italic 13px var(--serif); }

.access-section { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 750px; }
.map-art { min-height: 680px; position: relative; overflow: hidden; background: #ded5c8; }.map-art::after { content:""; position:absolute; inset:0; opacity:.18; background-image: radial-gradient(var(--brown) .6px, transparent .6px); background-size: 8px 8px; pointer-events:none; }.map-water { height: 105px; padding: 16px 10%; position: absolute; left: -8%; right: -8%; top: 44%; color: rgba(250,247,241,.72); background: #9c887c; transform: rotate(-7deg); font: italic 15px var(--serif); letter-spacing: .08em; }.street { position: absolute; display: block; background: var(--paper); }.street-a { width: 120%; height: 18px; left:-10%; top:24%; transform:rotate(5deg); }.street-b { width:18px; height:120%; left:35%; top:-10%; transform:rotate(-9deg); }.street-c { width:16px; height:100%; right:18%; top:0; transform:rotate(12deg); }.street-d { width:100%; height:12px; left:0; bottom:18%; transform:rotate(-3deg); }.map-station, .map-destination { position:absolute; z-index:2; padding:15px 18px; background:var(--cream); box-shadow:0 12px 35px rgba(42,33,28,.12); font:12px/1.25 var(--serif); }.map-station { left:13%; bottom:12%; }.map-station small { font:8px var(--gothic); text-transform:uppercase; letter-spacing:.12em; }.map-destination { right:16%; top:15%; display:flex; flex-direction:column; }.map-destination > i { color:var(--accent); font-size:28px; line-height:.7; }.map-destination strong { margin-top:10px; font:15px var(--serif); letter-spacing:.12em; }.map-destination small { font:9px var(--gothic); }.route-dots { width:38%; height:34%; position:absolute; left:31%; top:39%; border:2px dashed var(--accent); border-left:0; border-bottom:0; transform:rotate(-5deg); }.map-scale { position:absolute; left:20px; bottom:18px; font:italic 12px var(--serif); }
.shop-details { padding: clamp(70px, 8vw, 120px) clamp(40px, 6vw, 90px); background: var(--cream); }.shop-details h2 { margin:0 0 35px; font:500 34px "Yu Mincho",serif; letter-spacing:.12em; }.shop-details dl { margin:0 0 38px; }.shop-details dl div { padding:18px 0; display:grid; grid-template-columns:100px 1fr; border-top:1px solid var(--line); }.shop-details dl div:last-child { border-bottom:1px solid var(--line); }.shop-details dt { color:var(--accent); font:italic 13px var(--serif); }.shop-details dd { margin:0; font-size:12px; }.shop-details dd small { color:var(--brown-soft); }.shop-details dd a { border-bottom:1px solid var(--line); }.solid-button { width:100%; color:var(--cream); background:var(--brown); }.solid-button:hover { background:var(--accent); border-color:var(--accent); }
.arrival-notes { padding:var(--section-space) var(--side); }.arrival-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(35px,6vw,90px); }.arrival-grid article { border-top:1px solid var(--brown); padding-top:24px; }.arrival-grid span { color:var(--accent); font:italic 14px var(--serif); }.arrival-grid h3 { margin:18px 0 14px; font:400 28px var(--serif); }.arrival-grid p { margin:0; color:var(--brown-soft); font-size:12px; }

.site-footer { padding: clamp(80px, 9vw, 130px) var(--side) 28px; color: var(--cream); background: #201915; }
.footer-main { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: clamp(35px, 6vw, 90px); }
.footer-logo { margin: 0; font: 400 clamp(32px, 4vw, 58px)/1 var(--serif); letter-spacing: .16em; }.footer-identity > p:last-child { margin-top: 20px; color: #ad9f95; font-family: "Yu Mincho", serif; letter-spacing: .1em; }
.footer-label { margin: 0 0 20px !important; color: #c98167 !important; font: italic 14px var(--serif); }.footer-column p, .footer-column address, .footer-column a { margin: 0; display: block; color: #c7bbb2; font-size: 10px; font-style: normal; letter-spacing: .05em; }.footer-column a { width: fit-content; margin-top: 11px; border-bottom: 1px solid rgba(250,247,241,.25); }.footer-column a + a { margin-top: 3px; }
.footer-bottom { margin-top: 90px; padding-top: 20px; display: flex; justify-content: space-between; border-top: 1px solid rgba(250,247,241,.14); color: #8f8178; font: 8px var(--gothic); text-transform: uppercase; letter-spacing: .17em; }.footer-bottom p { margin: 0; }

body.motion-ready .motion-item { opacity: 0; transform: translateY(26px); filter: blur(3px); transition: opacity .8s ease var(--motion-delay, 0ms), transform .9s cubic-bezier(.22,.8,.24,1) var(--motion-delay, 0ms), filter .75s ease var(--motion-delay, 0ms); }
body.motion-ready .motion-item.is-visible { opacity: 1; transform: none; filter: blur(0); }

@media (max-width: 900px) {
  :root { --section-space: 105px; }
  .site-header { height: 78px; }.menu-toggle { display: flex; align-items: center; z-index: 2; cursor:pointer; }.menu-toggle.is-open { color: var(--cream); }.menu-toggle.is-open .menu-toggle-label { font-size: 0; }.menu-toggle.is-open .menu-toggle-label::after { content:"Close"; font-size:15px; }.menu-toggle.is-open .menu-toggle-lines { border:0; }.menu-toggle.is-open .menu-toggle-lines::before, .menu-toggle.is-open .menu-toggle-lines::after { content:""; width:24px; height:1px; position:absolute; left:0; top:5px; background:currentColor; transform:rotate(45deg); }.menu-toggle.is-open .menu-toggle-lines::after { transform:rotate(-45deg); }
  .global-nav { position: fixed; inset: 0; padding: 120px var(--side) 50px; display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; color: var(--cream); background: var(--brown); clip-path: inset(0 0 0 100%); visibility: hidden; transition: clip-path .4s cubic-bezier(.76,0,.24,1), visibility .4s; }.global-nav.is-open { clip-path:inset(0); visibility:visible; }.global-nav a { min-height:88px; border-bottom:1px solid rgba(250,247,241,.18); font-size:34px; }.global-nav a small { color:#b9aaa0; }.global-nav a::after { display:none; }.global-nav a.is-current { color:#d28468; } body.nav-open { overflow:hidden; }
  .home-hero { min-height:auto; padding-top:80px; grid-template-columns:1fr; gap:70px; }.home-hero h1 { font-size:clamp(58px,12vw,86px); }.hero-scene { min-height:560px; width:80%; margin-left:auto; }.scroll-note { display:none; }
  .statement { grid-template-columns:1fr; }.statement-ja { max-width:600px; margin-left:20%; }.selection-intro { margin-left:0; }.selection-item { grid-template-columns:40px 110px 1fr auto 25px; }.selection-art { width:100px; }.visit-section { grid-template-columns:1fr; }.visit-hours { max-width:520px; }
  .subpage-hero { min-height:520px; grid-template-columns:1fr; gap:60px; }.subpage-intro { max-width:560px; margin-left:25%; }.category-nav { top:78px; }.menu-grid { margin-left:0; }.origin-section { grid-template-columns:1fr; }.origin-art { min-height:580px; width:82%; }.origin-copy { margin-left:20%; }.values-panel { grid-template-columns:1fr; }.access-section { grid-template-columns:1fr; }.map-art { min-height:600px; }.shop-details { padding-left:var(--side); padding-right:var(--side); }
  .footer-main { grid-template-columns:1.5fr 1fr 1fr; }.footer-identity { grid-column:1/-1; margin-bottom:30px; }
}

@media (max-width: 620px) {
  :root { --side: 22px; --section-space: 82px; }
  body { font-size:14px; }.brand-en { font-size:18px; }.brand-ja { font-size:8px; }
  .home-hero { padding-top:66px; gap:58px; }.home-hero h1, .subpage-hero h1 { font-size:clamp(48px,15vw,70px); }.hero-japanese { margin-top:30px; font-size:17px; }.hero-description { line-height:1.9; }.hero-scene { width:calc(100% + 22px); min-height:430px; margin-left:0; }.scene-cup { left:20%; }.opening-note { grid-template-columns:1fr 1fr; padding-top:18px; padding-bottom:18px; }.opening-note p:nth-child(2) { grid-column:1/-1; grid-row:2; text-align:left; }.opening-note p:last-child { text-align:right; }
  .section-label { margin-bottom:54px; }.statement-en { font-size:clamp(40px,12vw,58px); }.statement-ja { margin:0; }.selection-intro { grid-template-columns:1fr; gap:24px; margin-bottom:55px; }.selection-intro h2 { font-size:44px; }.selection-item { min-height:116px; grid-template-columns:28px 1fr auto 20px; gap:14px; }.selection-art { display:none; }.selection-item h3 { font-size:22px; }.selection-item p { margin-top:4px; }.visit-copy h2 { font-size:48px; }
  .subpage-hero { min-height:auto; padding-top:85px; padding-bottom:70px; gap:45px; }.subpage-intro { margin:0; }.category-nav { gap:28px; overflow-x:auto; }.menu-category-section { padding-top:80px; }.menu-category-heading { grid-template-columns:35px 1fr; }.menu-category-heading > small { grid-column:2; margin-top:10px; }.menu-grid { grid-template-columns:1fr; }.menu-entry { min-height:130px; padding:27px 0; }.menu-information { grid-template-columns:1fr; gap:15px; margin-top:90px; margin-bottom:90px; }
  .origin-section { padding-top:85px; }.origin-art { width:100%; min-height:430px; }.origin-copy { margin:0; }.origin-copy h2, .values-heading h2 { font-size:45px; }.timeline { margin:0; }.timeline li { grid-template-columns:75px 1fr; gap:20px; }.timeline h3 { font-size:24px; }.owner-quote blockquote { font-size:47px; }
  .map-art { min-height:470px; }.shop-details { padding-top:70px; padding-bottom:70px; }.shop-details dl div { grid-template-columns:82px 1fr; }.arrival-grid { grid-template-columns:1fr; gap:42px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:45px 25px; }.footer-identity { grid-column:1/-1; }.footer-main .footer-column:last-child { grid-column:1/-1; }.footer-bottom { margin-top:65px; flex-direction:column; gap:6px; }
}

/* Finished homepage */
body[data-page="home"] .site-header { position: absolute; top: 0; left: 0; right: 0; color: var(--brown); background: rgba(242, 238, 231, .68); }
.home-hero {
  min-height: 100svh;
  padding: clamp(150px, 18vh, 210px) var(--side) clamp(100px, 13vh, 150px);
  display: flex;
  align-items: center;
  position: relative;
  color: var(--brown);
  background-image: linear-gradient(90deg, rgba(242,238,231,.96) 0%, rgba(242,238,231,.81) 31%, rgba(242,238,231,.18) 62%, rgba(42,33,28,.08) 100%), url("images/hero-cafe-interior.jpg");
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.home-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 70%,rgba(42,33,28,.2)); pointer-events:none; }
.home-hero-copy { width: min(760px, 62vw); padding: 0; position: relative; z-index: 2; }
.home-hero h1 { margin: 0; font: 400 clamp(68px, 8vw, 124px)/.88 var(--serif); letter-spacing: -.06em; }
.home-hero h1 em { color: var(--accent); font-weight: 400; }
.home-hero .hero-japanese { margin-top: 42px; }
.home-hero .hero-description { max-width: 530px; }
.hero-link { margin-top: 3px; padding: 11px 18px 9px 0; display: inline-flex; align-items: center; gap: 40px; border-bottom: 1px solid currentColor; font: 16px var(--serif); }
.hero-link span { transition: transform .25s ease; }.hero-link:hover span { transform:translate(3px,-3px); }
.hero-meta { position: absolute; right: var(--side); bottom: 30px; z-index: 2; display: flex; gap: 35px; color: var(--cream); font-size: 9px; text-transform: uppercase; letter-spacing: .18em; }
.home-hero .scroll-note { z-index: 2; color: var(--cream); }
.home-hero .scroll-note span { background: currentColor; }

.home-introduction, .home-recommendations { padding: var(--section-space) var(--side); }
.home-intro-grid { display: grid; grid-template-columns: 1.25fr .75fr; gap: 10vw; align-items: end; }
.home-intro-grid > h2 { margin: 0; font: 400 clamp(52px, 6.5vw, 100px)/.98 var(--serif); letter-spacing: -.055em; }
.home-intro-copy { padding-bottom: 6px; }
.home-intro-copy .intro-lead { margin: 0 0 24px; font: 500 clamp(19px, 1.6vw, 24px)/1.8 "Yu Mincho", serif; letter-spacing: .08em; }
.home-intro-copy > p:not(.intro-lead) { margin: 0 0 28px; color: var(--brown-soft); font-size: 13px; }

.home-recommendations { background: var(--cream); }
.recommendation-heading { margin: 0 0 clamp(55px, 7vw, 95px); display: flex; align-items: end; justify-content: space-between; gap: 50px; }
.recommendation-heading h2 { margin: 0; font: 400 clamp(48px, 5.8vw, 86px)/.98 var(--serif); letter-spacing: -.05em; }
.recommendation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(18px, 2.5vw, 38px); }
.recommendation-card { min-width: 0; border: 1px solid var(--line); background: var(--paper); transition: transform .35s ease, box-shadow .35s ease; }
.recommendation-card:hover { transform: translateY(-7px); box-shadow: 0 24px 55px rgba(42,33,28,.1); }
.card-visual { aspect-ratio: 1.3; position: relative; display: grid; place-items: center; overflow: hidden; background: #d9cfc2; }
.card-visual > span { position: absolute; left: 18px; top: 15px; z-index: 2; padding:5px 9px; color:var(--cream); background:rgba(42,33,28,.72); backdrop-filter:blur(6px); font: italic 13px var(--serif); }
.card-visual::after { content:""; position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(42,33,28,.2),transparent 34%,rgba(42,33,28,.05)); pointer-events:none; }
.card-visual img { width:100%; height:100%; display:block; object-fit:cover; position:absolute; inset:0; transition:transform .55s cubic-bezier(.22,.8,.24,1); }
.card-coffee { background: linear-gradient(145deg,#d7cbbd,#b9a593); }.card-coffee i { width: 104px; height: 72px; border: 3px solid var(--cream); border-top: 0; border-radius: 0 0 45px 45px; }.card-coffee i::before { content:""; position:absolute; left:-3px; right:-3px; top:-9px; height:17px; border:3px solid var(--cream); border-radius:50%; background:#4c2e21; }.card-coffee i::after { content:""; position:absolute; width:31px; height:36px; right:-27px; top:13px; border:3px solid var(--cream); border-left:0; border-radius:0 50% 50% 0; }
.card-soda { background: linear-gradient(145deg,#c8b7a7,#a98979); }.card-soda i { width:58px; height:130px; border:2px solid var(--cream); border-radius:3px 3px 16px 16px; background:linear-gradient(transparent 22%,rgba(164,95,70,.65) 22%); }.card-soda i::before { content:""; width:10px; height:10px; position:absolute; left:10px; top:48px; border:1px solid var(--cream); border-radius:50%; box-shadow:22px 24px 0 -1px rgba(250,247,241,.7),8px 53px 0 -2px rgba(250,247,241,.6); }
.card-cake { background: linear-gradient(145deg,#dac7ae,#bd9f82); }.card-cake i { width:140px; height:75px; background:var(--accent); clip-path:polygon(0 100%,9% 18%,100% 0,84% 100%); }.card-cake i::after { content:""; position:absolute; inset:10px 3px 14px 11px; background:#ead5b9; clip-path:inherit; }
.card-content { min-height: 245px; padding: 30px 28px 26px; display: flex; flex-direction: column; justify-content: space-between; }
.card-category { margin: 0 0 10px !important; color: var(--accent) !important; font: italic 13px var(--serif) !important; }
.card-content h3 { margin: 0 0 14px; font: 400 clamp(23px, 2.1vw, 31px)/1.08 var(--serif); }
.card-content p { margin: 0; color: var(--brown-soft); font-size: 11px; }
.card-content strong { align-self: end; margin-top: 25px; font: 400 23px var(--serif); }.card-content strong small { margin-right: 2px; font-size: 11px; }

.home-access { padding: clamp(100px, 13vw, 190px) var(--side); display: grid; grid-template-columns: 1.2fr .8fr; gap: 11vw; color: var(--cream); background: var(--brown); position: relative; overflow: hidden; }
.home-access::before { content:""; width: 620px; height: 620px; position:absolute; right:-190px; top:-240px; border:1px solid rgba(250,247,241,.09); border-radius:50%; box-shadow:0 0 0 75px rgba(250,247,241,.02),0 0 0 150px rgba(250,247,241,.015); }
.home-access .kicker { color:#d38a70; }.home-access h2 { margin:0; font:400 clamp(50px,6vw,90px)/.98 var(--serif); letter-spacing:-.05em; }.home-access-copy > p:not(.kicker) { margin:35px 0 28px; color:#cfc2b9; font-size:13px; }
.home-access-details { align-self:end; position:relative; z-index:1; }.home-access-details > p { margin:0 0 25px; color:#b9aaa0; font:italic 14px var(--serif); }.home-access-details dl { margin:0; border-top:1px solid rgba(250,247,241,.35); }.home-access-details dl div { padding:14px 0; display:flex; justify-content:space-between; align-items:baseline; border-bottom:1px solid rgba(250,247,241,.2); }.home-access-details dt { font:italic 14px var(--serif); }.home-access-details dd { margin:0; font:400 clamp(34px,4vw,58px) var(--serif); }.home-access-details small { display:block; margin-top:20px; color:#a99a90; font-size:9px; text-transform:uppercase; letter-spacing:.14em; }

@media (max-width: 900px) {
  body[data-page="home"] .site-header { position:absolute; }
  .home-hero { min-height:920px; padding-top:155px; display:flex; background-position:62% center; background-image:linear-gradient(90deg,rgba(242,238,231,.96),rgba(242,238,231,.82) 52%,rgba(42,33,28,.08)),url("images/hero-cafe-interior.jpg"); }
  .home-hero-copy { width:min(680px,86vw); }.home-hero h1 { font-size:clamp(62px,11.5vw,94px); }.hero-meta { left:var(--side); right:auto; }
  .home-intro-grid { grid-template-columns:1fr; gap:55px; }.home-intro-copy { max-width:570px; margin-left:20%; }
  .recommendation-grid { grid-template-columns:repeat(2,1fr); }.recommendation-card:last-child { grid-column:1/-1; width:calc(50% - 10px); }
  .home-access { grid-template-columns:1fr; }.home-access-details { max-width:520px; }
}

@media (max-width: 620px) {
  .home-hero { min-height:810px; padding-top:125px; padding-bottom:105px; background-position:64% center; background-image:linear-gradient(90deg,rgba(242,238,231,.96) 0%,rgba(242,238,231,.9) 52%,rgba(242,238,231,.38) 100%),url("images/hero-cafe-interior.jpg"); }
  .home-hero-copy { width:100%; }.home-hero h1 { font-size:clamp(52px,16vw,70px); }.home-hero .hero-japanese { margin-top:35px; }.home-hero .hero-description { max-width:340px; }.hero-meta { bottom:22px; flex-direction:column; gap:2px; color:var(--brown); }.home-hero .scroll-note { display:none; }
  .home-intro-grid > h2, .recommendation-heading h2 { font-size:46px; }.home-intro-copy { margin:0; }.recommendation-heading { align-items:flex-start; flex-direction:column; gap:30px; }
  .recommendation-grid { grid-template-columns:1fr; gap:22px; }.recommendation-card:last-child { grid-column:auto; width:auto; }.card-visual { aspect-ratio:1.55; }.card-content { min-height:220px; }
  .home-access h2 { font-size:48px; }.home-access::before { right:-430px; }
}

/* Finished inner pages */
[hidden] { display: none !important; }
.refined-page-hero { position: relative; overflow: hidden; background: linear-gradient(135deg, var(--paper) 0 68%, var(--paper-deep) 68%); }
.refined-page-hero::after { content:""; width:420px; height:420px; position:absolute; right:-170px; top:-175px; border:1px solid rgba(164,95,70,.18); border-radius:50%; box-shadow:0 0 0 60px rgba(164,95,70,.025),0 0 0 120px rgba(164,95,70,.018); }
.refined-page-hero > * { position:relative; z-index:1; }

.menu-catalog { padding: var(--section-space) var(--side); }
.menu-filter-bar { margin: 0 0 clamp(65px,8vw,105px); padding-bottom:26px; display:grid; grid-template-columns:190px 1fr auto; align-items:end; gap:35px; border-bottom:1px solid var(--brown); }
.menu-filter-bar > p:first-child { margin:0; color:var(--brown-soft); font:italic 14px var(--serif); }
.menu-filters { display:flex; gap:8px; flex-wrap:wrap; }
.menu-filters button { min-height:48px; padding:8px 18px; border:1px solid var(--line); background:transparent; cursor:pointer; font:15px var(--serif); transition:background .25s,color .25s,border-color .25s; }
.menu-filters button small { margin-left:7px; color:var(--brown-soft); font:8px var(--gothic); letter-spacing:.08em; }
.menu-filters button:hover, .menu-filters button[aria-pressed="true"] { color:var(--cream); border-color:var(--brown); background:var(--brown); }.menu-filters button[aria-pressed="true"] small { color:#cfc2b9; }
.filter-status { min-width:48px; margin:0; color:var(--accent); font:italic 13px var(--serif); text-align:right; }
.menu-product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.menu-product { min-height:340px; padding:32px 30px 27px; display:flex; flex-direction:column; position:relative; background:var(--cream); transition:transform .32s ease,background .32s ease,box-shadow .32s ease; }
.product-top { display:flex; justify-content:space-between; gap:18px; margin-bottom:45px; }.product-top span { color:var(--accent); font:italic 14px var(--serif); }.product-top small { color:var(--brown-soft); font:8px var(--gothic); text-transform:uppercase; letter-spacing:.1em; }
.menu-product h2 { margin:0; font:400 clamp(24px,2.35vw,35px)/1.05 var(--serif); letter-spacing:-.025em; }.menu-product .product-ja { margin:8px 0 17px; color:var(--brown); font:500 12px "Yu Mincho",serif; letter-spacing:.06em; }.menu-product > p:not(.product-ja) { margin:0; color:var(--brown-soft); font-size:11px; }
.menu-product > strong { margin-top:auto; padding-top:25px; align-self:flex-end; font:400 23px var(--serif); }.menu-product > strong small { font-size:11px; }
.menu-product.is-filtered { animation:filterIn .45s ease both; } @keyframes filterIn { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:none; } }
.menu-disclaimer { margin-top:58px; padding:24px 0; display:grid; grid-template-columns:190px 1fr; gap:35px; border-top:1px solid var(--brown); border-bottom:1px solid var(--brown); }.menu-disclaimer p { margin:0; font-size:10px; }.menu-disclaimer p:first-child { font:italic 14px var(--serif); }

.about-concept-section { padding:var(--section-space) var(--side); display:grid; grid-template-columns:1fr 1fr; gap:11vw; align-items:center; }
.concept-art { min-height:660px; display:grid; place-items:center; position:relative; overflow:hidden; color:var(--cream); background:linear-gradient(145deg,#3d2f29,#714c3e); }.concept-art > span { z-index:2; font:500 clamp(48px,5vw,74px) "Yu Mincho",serif; letter-spacing:.25em; }.concept-art i { width:78%; height:48%; position:absolute; border:1px solid rgba(250,247,241,.28); border-radius:50%; transform:rotate(-9deg); }.concept-art i:nth-of-type(2) { width:122%; height:74%; transform:rotate(8deg); }.concept-art small { position:absolute; left:24px; bottom:19px; color:#cbbdb3; font:italic 12px var(--serif); }
.concept-copy h2 { margin:0; font:400 clamp(48px,5.3vw,80px)/1 var(--serif); letter-spacing:-.05em; }.concept-lead { margin:42px 0 24px !important; color:var(--brown) !important; font:500 18px/1.9 "Yu Mincho",serif !important; letter-spacing:.06em; }.concept-copy > p:not(.kicker) { margin:0 0 21px; color:var(--brown-soft); font-size:12px; }
.shop-facts-section { padding:var(--section-space) var(--side); background:var(--cream); }.facts-heading { margin:0 0 80px 25%; display:grid; grid-template-columns:1.2fr .8fr; gap:8vw; align-items:end; }.facts-heading h2 { margin:0; font:400 clamp(46px,5.5vw,82px)/.98 var(--serif); letter-spacing:-.05em; }.facts-heading p { margin:0; color:var(--brown-soft); font-size:12px; }
.facts-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--brown); border-bottom:1px solid var(--brown); }.fact-card { min-height:340px; padding:28px clamp(18px,2.3vw,35px); border-right:1px solid var(--line); transition:transform .32s ease,background .32s ease; }.fact-card:last-child { border-right:0; }.fact-card > span { color:var(--accent); font:italic 14px var(--serif); }.fact-card > strong { margin:35px 0 55px; display:block; font:400 clamp(46px,5vw,72px)/1 var(--serif); letter-spacing:-.04em; }.fact-card h3 { margin:0 0 14px; font:500 15px "Yu Mincho",serif; letter-spacing:.04em; }.fact-card p { margin:0; color:var(--brown-soft); font-size:10px; }
.fictional-inline-note { margin:28px 0 0; color:var(--brown-soft); font-size:9px; }.about-closing { padding:var(--section-space) var(--side); text-align:center; }.about-closing blockquote { margin:0; font:italic 400 clamp(50px,7vw,104px)/.98 var(--serif); letter-spacing:-.05em; }.about-closing > p { margin:44px 0 12px; font-family:"Yu Mincho",serif; letter-spacing:.06em; }.about-closing cite { color:var(--accent); font:italic 13px var(--serif); }

.fictional-notice { margin:50px var(--side) 0; padding:18px 24px; display:grid; grid-template-columns:190px 1fr; gap:35px; color:#5e392c; border:1px solid rgba(164,95,70,.35); background:#eadbd1; }.fictional-notice span { font:italic 14px var(--serif); }.fictional-notice p { margin:0; font-size:10px; }
.access-map-section { padding:clamp(75px,9vw,125px) var(--side) var(--section-space); display:grid; grid-template-columns:1.25fr .75fr; gap:clamp(45px,7vw,100px); align-items:start; }
.osm-map iframe { width:100%; height:650px; display:block; border:1px solid var(--line); background:var(--paper-deep); }.osm-map > p { margin:12px 0 0; display:flex; justify-content:space-between; gap:20px; color:var(--brown-soft); font-size:8px; letter-spacing:.04em; }.osm-map a { border-bottom:1px solid var(--line); }
.access-information { padding-top:8px; }.access-information h2 { margin:0 0 40px; font:500 34px "Yu Mincho",serif; letter-spacing:.12em; }.access-information dl { margin:0; }.access-information dl div { padding:20px 0; display:grid; grid-template-columns:120px 1fr; border-top:1px solid var(--line); }.access-information dl div:last-child { border-bottom:1px solid var(--line); }.access-information dt { color:var(--accent); font:italic 13px var(--serif); }.access-information dd { margin:0; font-size:12px; }.access-information dd small { color:var(--brown-soft); font-size:9px; }.access-information dd a { border-bottom:1px solid var(--line); }
.access-guidance { padding:0 var(--side) var(--section-space); }.guidance-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(35px,6vw,90px); }.guidance-grid article { padding-top:22px; border-top:1px solid var(--brown); transition:transform .32s ease,border-color .32s ease; }.guidance-grid span { color:var(--accent); font:italic 14px var(--serif); }.guidance-grid h3 { margin:17px 0 13px; font:400 27px var(--serif); }.guidance-grid p { margin:0; color:var(--brown-soft); font-size:11px; }

.back-to-top { width:58px; height:58px; padding:0; position:fixed; right:24px; bottom:24px; z-index:45; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; color:var(--cream); border:1px solid rgba(250,247,241,.25); background:rgba(42,33,28,.92); box-shadow:0 12px 32px rgba(42,33,28,.16); backdrop-filter:blur(8px); cursor:pointer; opacity:0; visibility:hidden; transform:translateY(14px); transition:opacity .3s ease,transform .3s ease,visibility .3s ease,background .25s ease,border-color .25s ease; }
.back-to-top span { font:20px/1 var(--serif); }.back-to-top small { font:8px/1 var(--gothic); text-transform:uppercase; letter-spacing:.12em; }.back-to-top.is-visible { opacity:1; visibility:visible; transform:none; }

@media (hover:hover) {
  .recommendation-card:hover .card-visual img { transform:scale(1.045); }
  .menu-product:hover { z-index:1; transform:translateY(-5px); background:#fffaf3; box-shadow:0 20px 42px rgba(42,33,28,.09); }
  .fact-card:hover { transform:translateY(-4px); background:var(--paper); }
  .guidance-grid article:hover { transform:translateY(-4px); border-color:var(--accent); }
  .back-to-top:hover { border-color:var(--accent); background:var(--accent); transform:translateY(-3px); }
}

.back-to-top:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.outline-button:active,.solid-button:active,.menu-filters button:active,.back-to-top:active { transform:scale(.98); }

@media (max-width:900px) {
  .menu-filter-bar { grid-template-columns:1fr; }.menu-filter-bar > p:first-child { display:none; }.filter-status { text-align:left; }.menu-product-grid { grid-template-columns:repeat(2,1fr); }
  .about-concept-section { grid-template-columns:1fr; }.concept-art { width:82%; min-height:580px; }.concept-copy { margin-left:20%; }.facts-heading { margin-left:0; }.facts-grid { grid-template-columns:repeat(2,1fr); }.fact-card:nth-child(2) { border-right:0; }.fact-card:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .access-map-section { grid-template-columns:1fr; }.osm-map iframe { height:560px; }.access-information { max-width:650px; }
}

@media (max-width:620px) {
  .refined-page-hero { background:linear-gradient(155deg,var(--paper) 0 82%,var(--paper-deep) 82%); }.menu-catalog { padding-top:82px; }.menu-filters { display:grid; grid-template-columns:1fr 1fr; }.menu-filters button { width:100%; }.menu-product-grid { grid-template-columns:1fr; }.menu-product { min-height:300px; }.menu-disclaimer { grid-template-columns:1fr; gap:12px; }
  .about-concept-section { padding-top:82px; }.concept-art { width:100%; min-height:430px; }.concept-copy { margin:0; }.concept-copy h2,.facts-heading h2 { font-size:47px; }.facts-heading { grid-template-columns:1fr; gap:25px; margin-bottom:55px; }.facts-grid { grid-template-columns:1fr; }.fact-card { min-height:285px; border-right:0; border-bottom:1px solid var(--line); }.fact-card:last-child { border-bottom:0; }.fact-card > strong { margin:28px 0 38px; }.about-closing blockquote { font-size:47px; }
  .fictional-notice { margin:28px var(--side) 0; grid-template-columns:1fr; gap:8px; }.access-map-section { padding-top:55px; }.osm-map iframe { height:430px; }.osm-map > p { align-items:flex-start; flex-direction:column; }.access-information dl div { grid-template-columns:95px 1fr; }.guidance-grid { grid-template-columns:1fr; gap:38px; }
  .back-to-top { width:52px; height:52px; right:16px; bottom:16px; }
}

/* Responsive refinement */
main, section, header, footer, article, div { min-width:0; }
.footer-column address, .access-information dd, .home-access-details > p { overflow-wrap:anywhere; }

@media (min-width:901px) and (max-width:1180px) {
  :root { --side:clamp(42px,5vw,64px); }
  .global-nav { gap:clamp(22px,3vw,38px); }
  .home-hero-copy { width:min(660px,65vw); }
  .home-hero h1 { font-size:clamp(72px,8vw,96px); }
  .home-intro-grid,.home-access { gap:7vw; }
  .recommendation-grid { gap:20px; }
  .card-content { padding-left:22px; padding-right:22px; }
  .menu-product { padding-left:24px; padding-right:24px; }
  .facts-heading { margin-left:16%; }
}

@media (max-width:900px) {
  .site-header { height:78px; }
  .menu-toggle { min-width:48px; min-height:48px; justify-content:flex-end; }
  .global-nav { min-height:100dvh; max-height:100dvh; padding-top:max(104px,calc(env(safe-area-inset-top) + 86px)); padding-bottom:max(32px,env(safe-area-inset-bottom)); overflow-y:auto; overscroll-behavior:contain; }
  .global-nav a { flex:0 0 auto; }
  .home-hero { min-height:clamp(760px,100svh,920px); }
  .home-intro-copy { margin-left:12%; }
  .recommendation-card:last-child { width:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .recommendation-card:last-child .card-visual { aspect-ratio:auto; min-height:100%; }
  .concept-copy { margin-left:12%; }
  .access-map-section { gap:70px; }
  .footer-main { column-gap:45px; }
}

@media (max-width:620px) {
  html { scroll-padding-top:86px; }
  body { line-height:1.9; }
  .header-inner { padding-left:var(--side); padding-right:var(--side); }
  .global-nav { padding-left:var(--side); padding-right:var(--side); }
  .global-nav a { min-height:76px; font-size:clamp(28px,9vw,34px); }
  .home-hero { min-height:max(700px,100svh); }
  .home-hero-copy { padding-bottom:24px; }
  .home-hero h1 { font-size:clamp(50px,15.5vw,68px); }
  .home-hero .hero-japanese { font-size:clamp(16px,4.8vw,19px); }
  .hero-link,.arrow-link,.light-link { min-height:44px; }
  .home-intro-grid,.home-access { gap:46px; }
  .home-intro-grid > h2,.recommendation-heading h2,.home-access h2 { font-size:clamp(42px,12.5vw,50px); }
  .home-intro-copy { margin-left:0; }
  .recommendation-card:last-child { display:block; }
  .recommendation-card:last-child .card-visual { min-height:0; aspect-ratio:1.55; }
  .recommendation-card:hover,.menu-product:hover,.fact-card:hover,.guidance-grid article:hover { transform:none; }
  .subpage-hero h1 { font-size:clamp(46px,14.5vw,64px); }
  .subpage-intro p:first-child { font-size:17px; }
  .menu-filter-bar { margin-bottom:58px; gap:18px; }
  .menu-filters button { min-height:52px; padding-left:12px; padding-right:12px; }
  .menu-product { padding:27px 24px 24px; }
  .concept-art { min-height:clamp(360px,115vw,430px); }
  .concept-copy h2,.facts-heading h2 { font-size:clamp(42px,12.5vw,47px); }
  .access-map-section { gap:55px; }
  .osm-map iframe { height:clamp(360px,62svh,430px); }
  .access-information { width:100%; }
  .access-information h2 { font-size:30px; }
  .site-footer { padding-top:72px; }
}

@media (max-width:420px) {
  :root { --side:18px; --section-space:72px; }
  .brand-en { font-size:17px; }.brand-ja { margin-top:7px; }
  .menu-toggle-label { font-size:14px; }
  .home-hero { min-height:max(680px,100svh); padding-top:112px; padding-bottom:92px; background-position:67% center; }
  .home-hero h1 { font-size:clamp(47px,15vw,60px); }
  .home-hero .hero-description { max-width:90%; font-size:12px; }
  .hero-meta { max-width:55%; }
  .opening-note { grid-template-columns:1fr; gap:5px; }
  .opening-note p:nth-child(2) { grid-column:auto; grid-row:auto; }
  .opening-note p:nth-child(2),.opening-note p:last-child { text-align:left; }
  .section-label { gap:16px; margin-bottom:48px; }
  .section-label small { letter-spacing:.1em; }
  .home-intro-grid > h2,.recommendation-heading h2,.home-access h2 { font-size:clamp(39px,12vw,46px); }
  .card-content { min-height:205px; padding:25px 20px 22px; }
  .home-access-details dl div { align-items:center; }
  .home-access-details dd { font-size:clamp(30px,11vw,42px); }
  .subpage-hero { padding-top:76px; padding-bottom:58px; gap:34px; }
  .subpage-hero h1 { font-size:clamp(43px,14vw,56px); }
  .menu-filters { grid-template-columns:1fr 1fr; gap:6px; }
  .menu-filters button { font-size:14px; }
  .menu-filters button small { display:block; margin:3px 0 0; }
  .menu-product { min-height:280px; padding-left:20px; padding-right:20px; }
  .product-top { margin-bottom:34px; }
  .concept-lead br { display:none; }
  .fact-card { min-height:260px; padding-left:20px; padding-right:20px; }
  .about-closing blockquote { font-size:clamp(38px,12vw,47px); }
  .fictional-notice { padding:16px 18px; }
  .access-information dl div { grid-template-columns:1fr; gap:6px; }
  .access-information dt { font-size:12px; }
  .osm-map iframe { height:360px; }
  .footer-main { grid-template-columns:1fr; gap:38px; }
  .footer-identity,.footer-main .footer-column:last-child { grid-column:auto; }
  .footer-identity { margin-bottom:8px; }
  .footer-column p,.footer-column address,.footer-column a { font-size:11px; }
  .footer-bottom { margin-top:52px; }
  .back-to-top { right:12px; bottom:12px; }
}

@media (max-width:900px) and (orientation:landscape) and (max-height:560px) {
  .global-nav { padding-top:72px; padding-bottom:18px; display:grid; grid-template-columns:1fr 1fr; align-content:center; column-gap:32px; }
  .global-nav a { min-height:68px; font-size:27px; }
  .home-hero { min-height:660px; padding-top:118px; padding-bottom:72px; }
  .hero-meta { bottom:16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { transition-duration:.01ms !important; animation-duration:.01ms !important; }
  body.motion-ready .motion-item { opacity:1; transform:none; filter:none; }
}
