@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Sans+JP:wght@300;400;500&display=swap');
:root{--ivory:#f4f0e7;--paper:#faf7f0;--brown:#2d2723;--muted:#766e67;--accent:#a35f48;--line:#d9d0c5;--serif:'Cormorant Garamond','Times New Roman',serif;--sans:'Noto Sans JP','Yu Gothic',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--brown);font-family:var(--sans);font-weight:300;line-height:2;letter-spacing:.035em}a{color:inherit;text-decoration:none}a,button{outline-offset:5px}a:focus-visible,button:focus-visible{outline:1px solid var(--accent)}
.site-header{height:106px;padding:0 clamp(28px,6vw,96px);display:flex;align-items:center;justify-content:space-between;background:rgba(250,247,240,.94);position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.logo{display:flex;flex-direction:column;width:max-content;line-height:1}.logo span{font-family:var(--serif);font-size:1.75rem;letter-spacing:.18em;font-weight:500}.logo small{font-size:.48rem;letter-spacing:.28em;margin-top:8px}.global-nav{display:flex;gap:clamp(24px,3vw,52px);font-family:var(--serif);font-size:.95rem;letter-spacing:.18em}.global-nav a{position:relative;padding:10px 0}.global-nav a:after{content:"";position:absolute;height:1px;background:var(--accent);left:0;right:100%;bottom:5px;transition:right .3s}.global-nav a:hover:after,.global-nav a.active:after{right:0}.menu-toggle{display:none;border:0;background:transparent;padding:8px}.menu-toggle span{display:block;width:27px;height:1px;background:var(--brown);margin:6px}
.eyebrow{font-size:.63rem;letter-spacing:.34em;font-weight:500;color:var(--accent);margin:0 0 24px}.hero{min-height:calc(100vh - 106px);display:grid;grid-template-columns:55% 45%;background:var(--ivory);overflow:hidden}.hero-content{padding:clamp(80px,11vw,180px) clamp(28px,8vw,130px);display:flex;flex-direction:column;justify-content:center}.hero h1,.page-hero h1,.section-heading h2,.visit-banner h2{font-family:var(--serif);font-weight:400;letter-spacing:-.025em;line-height:.82}.hero h1{font-size:clamp(5.5rem,10vw,10rem);margin:0}.hero-jp{font-family:var(--serif);font-size:1.25rem!important;letter-spacing:.15em;color:var(--accent)!important;margin:32px 0 22px!important}.hero-content>p:not(.eyebrow):not(.hero-jp){max-width:510px;color:var(--muted);font-size:.87rem;margin:0 0 40px}.button{display:inline-flex;justify-content:space-between;align-items:center;min-width:220px;width:max-content;padding:15px 4px;border-bottom:1px solid;font-family:var(--serif);font-size:1.05rem;letter-spacing:.16em;transition:.25s}.button span,.text-link span{color:var(--accent);font-size:1.2em}.button:hover{color:var(--accent);padding-left:8px}.hero-art{position:relative;background:#352d29;overflow:hidden}.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,transparent 50%,rgba(163,95,72,.22))}.sun{width:min(30vw,440px);height:min(30vw,440px);border-radius:50%;border:1px solid rgba(250,247,240,.35);position:absolute;right:-7vw;top:8vh}.cup{width:260px;height:145px;border-radius:4px 4px 80px 80px;background:#d7cbbc;position:absolute;left:18%;top:48%;box-shadow:0 38px 35px rgba(0,0,0,.25)}.cup:after{content:"";position:absolute;width:72px;height:72px;border:15px solid #d7cbbc;border-left:0;border-radius:0 50% 50% 0;right:-65px;top:20px}.cup:before{content:"";position:absolute;width:200px;height:22px;border-radius:50%;background:#4b342b;left:30px;top:8px}.cup span,.cup span:before{position:absolute;width:1px;height:90px;background:rgba(255,255,255,.25);top:-110px;left:90px;content:"";transform:rotate(8deg)}.cup span:before{left:65px;top:10px;transform:rotate(-15deg)}.leaf{position:absolute;width:210px;height:72px;border:1px solid rgba(250,247,240,.28);border-radius:100% 0}.leaf-one{bottom:70px;left:-35px;transform:rotate(35deg)}.leaf-two{bottom:10px;left:110px;transform:rotate(-15deg)}
.section{padding:clamp(100px,13vw,200px) clamp(28px,8vw,130px)}.intro{display:grid;grid-template-columns:1fr 1fr;gap:12vw;align-items:center}.intro h2,.story h2{font-family:var(--serif);font-size:clamp(3.7rem,7vw,7rem);font-weight:400;letter-spacing:-.02em;line-height:.86;margin:0}.intro>p,.story-copy p:not(.eyebrow){color:var(--muted);max-width:570px;font-size:.92rem}.featured{background:var(--ivory)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:70px}.section-heading h2{font-size:clamp(4rem,7vw,7rem);margin:0}.heading-jp{color:var(--muted);font-size:.82rem;letter-spacing:.15em;margin:20px 0 0}.text-link{font-family:var(--serif);font-size:.9rem;letter-spacing:.12em;border-bottom:1px solid;padding-bottom:5px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.card{background:var(--paper);transition:transform .35s}.card:hover{transform:translateY(-7px)}.card-visual{height:280px;display:grid;place-items:center;overflow:hidden;background:#ded5c8}.mini-cup{width:105px;height:72px;background:#f4eee4;border-radius:3px 3px 45px 45px;position:relative}.mini-cup:before{content:"";position:absolute;width:72px;height:11px;left:16px;top:6px;background:#4b342b;border-radius:50%}.mini-cup:after{content:"";position:absolute;width:34px;height:34px;border:9px solid #f4eee4;border-left:0;right:-32px;top:12px;border-radius:0 50% 50% 0}.cake-slice{width:140px;height:80px;background:#eee3d2;clip-path:polygon(0 28%,100% 0,100% 100%,0 100%);border-bottom:11px solid var(--accent)}.toast-shape{width:120px;height:105px;background:#b98b61;border:8px solid #7b5537;border-radius:42px 42px 10px 10px;transform:rotate(-6deg)}.card-body{padding:34px}.card-body span,.menu-title span,.value-grid article>span{font-size:.65rem;letter-spacing:.25em;color:var(--accent)}.card h3,.menu-item h3,.value-grid h3{font-family:var(--serif);font-weight:500;font-size:1.5rem;margin:9px 0}.card p,.value-grid p{font-size:.78rem;color:var(--muted);line-height:1.9}.card strong{display:block;text-align:right;font-family:var(--serif);font-size:1.15rem;font-weight:500}.visit-banner{padding:clamp(100px,12vw,180px) clamp(28px,8vw,130px);background:#342c28;color:var(--paper);display:flex;justify-content:space-between;align-items:end}.visit-banner .eyebrow{color:#c98169}.visit-banner h2{font-size:clamp(4rem,8vw,8rem);margin:0}.visit-banner>div>p:last-child{color:#bcb1a8;font-size:.8rem;margin-top:35px}.button-light{border-color:#a99b91;color:var(--paper)}
.page-hero{min-height:520px;padding:120px 8vw 100px;background:var(--ivory);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.page-hero h1{font-size:clamp(6rem,13vw,12rem);margin:0}.page-hero p:last-child{font-size:.82rem;color:var(--muted);letter-spacing:.15em;margin-top:38px}.menu-section{max-width:1180px;margin:auto}.menu-group{display:grid;grid-template-columns:1fr 2fr;gap:10vw;padding:75px 0;border-top:1px solid var(--line)}.menu-title h2,.access-info h2{font-family:var(--serif);font-size:2.25rem;font-weight:400;margin:8px 0}.menu-item{display:flex;justify-content:space-between;gap:30px;padding:20px 0;border-bottom:1px solid var(--line)}.menu-item:first-child{padding-top:0}.menu-item:last-child{border:0}.menu-item h3{font-size:1.3rem;margin:0}.menu-item p{font-size:.74rem;color:var(--muted);margin:0}.menu-item strong{font-family:var(--serif);font-size:1.1rem;font-weight:400;white-space:nowrap}.note{font-size:.7rem;color:var(--muted);margin-top:40px}
.story{display:grid;grid-template-columns:1fr 1fr;gap:11vw;align-items:center}.story-art{height:650px;background:#ded5c8;position:relative;overflow:hidden}.window{position:absolute;width:65%;height:65%;left:18%;top:10%;border:1px solid var(--brown);display:grid;grid-template-columns:1fr 1fr}.window span{border:1px solid var(--brown)}.plant{position:absolute;width:130px;height:220px;bottom:0;left:40%;background:var(--accent);clip-path:polygon(46% 100%,48% 50%,5% 25%,44% 39%,27% 0,52% 32%,79% 3%,59% 41%,100% 24%,57% 52%,59% 100%)}.story-copy p:not(.eyebrow){margin-top:28px}.values{padding:clamp(100px,13vw,200px) clamp(28px,8vw,130px);background:var(--ivory)}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.value-grid article{padding:48px 8% 25px;border-right:1px solid var(--line)}.value-grid article:last-child{border:0}.value-grid h3{font-size:1.6rem}
.access-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:10vw}.map{min-height:590px;background:#ded5c8;position:relative;overflow:hidden}.road{position:absolute;background:var(--paper);border:1px solid #c9bdb0}.road-h{height:72px;left:0;right:0;top:55%;transform:rotate(-8deg)}.road-v{width:70px;top:0;bottom:0;left:25%;transform:rotate(10deg)}.station,.park,.pin{position:absolute;font-size:.65rem;font-weight:500;letter-spacing:.1em}.station{left:9%;bottom:14%;background:var(--brown);color:white;padding:7px 12px}.park{right:8%;top:12%;border:1px solid var(--brown);padding:14px 25px}.pin{right:25%;top:42%;font-family:var(--serif);font-size:1.2rem;text-align:center}.pin small{display:block;color:var(--accent);font-size:2rem;line-height:1}.access-info dl{margin-top:45px}.access-info dl div{display:grid;grid-template-columns:120px 1fr;padding:20px 0;border-bottom:1px solid var(--line)}.access-info dt{font-size:.7rem;font-weight:500;letter-spacing:.12em}.access-info dd{margin:0;font-size:.86rem}.access-info dd small{color:var(--muted)}.access-info dd a{border-bottom:1px solid var(--accent)}
footer{padding:80px clamp(28px,6vw,96px) 35px;background:#2e2824;color:#e9e2d9;display:grid;grid-template-columns:1.5fr 1fr .8fr;gap:50px}.footer-brand p{font-size:.75rem;color:#bdb2aa;margin-top:28px}.footer-hours>span,.footer-social>span{display:block;font-family:var(--serif);font-size:.7rem;letter-spacing:.22em;color:#c98169;margin-bottom:18px}.footer-hours p,.footer-social a{display:block;font-family:var(--serif);font-size:.88rem;line-height:2;color:#d4cbc4;margin:0}.footer-social a:hover{color:white}.footer-logo{color:white}.copyright{grid-column:1/-1;margin-top:50px;padding-top:22px;border-top:1px solid #504741;color:#81756e;font-size:.58rem;letter-spacing:.12em}.fade-in{animation:fadeUp 1s ease-out both}@keyframes fadeUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@media(max-width:760px){.site-header{height:82px;padding:0 22px}.logo span{font-size:1.4rem}.menu-toggle{display:block;position:relative;z-index:2}.global-nav{display:none;position:absolute;top:82px;left:0;right:0;background:var(--paper);padding:30px 25px;box-shadow:0 16px 30px rgba(45,39,35,.1);flex-direction:column;gap:7px}.global-nav.open{display:flex}.global-nav a{padding:8px}.hero{grid-template-columns:1fr;min-height:auto}.hero-content{padding:95px 25px}.hero h1{font-size:clamp(4.8rem,24vw,7rem)}.hero-art{height:460px}.sun{width:310px;height:310px}.cup{transform:scale(.75);left:7%;top:40%}.section{padding:100px 25px}.intro,.story,.access-layout{grid-template-columns:1fr;gap:70px}.intro h2,.story h2{font-size:3.8rem}.cards,.value-grid{grid-template-columns:1fr;gap:1px}.section-heading,.visit-banner{align-items:flex-start;flex-direction:column;gap:45px}.section-heading h2,.visit-banner h2{font-size:4.4rem}.card-visual{height:230px}.menu-group{grid-template-columns:1fr;gap:28px;padding:55px 0}.story-art{height:450px}.values{padding:100px 25px}.value-grid article{border-right:0;border-bottom:1px solid var(--line);padding:38px 0}.map{min-height:420px;order:2}.page-hero{min-height:410px;padding:90px 25px}.page-hero h1{font-size:5.4rem}.access-info dl div{grid-template-columns:95px 1fr}footer{grid-template-columns:1fr;gap:38px;padding:65px 25px 30px}.copyright{grid-column:1;margin-top:20px}}
.intro{grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:9vw}.intro-copy>p:last-child{color:var(--muted);max-width:520px;font-size:.88rem;margin-top:42px}.intro-image{margin:0;overflow:hidden;aspect-ratio:3/2;background:#ded5c8}.intro-image img,.card-visual img{display:block;width:100%;height:100%;object-fit:cover}.card-visual{aspect-ratio:1/1;height:auto}
@media(max-width:760px){.intro{grid-template-columns:1fr}.intro-image{width:100%;aspect-ratio:3/2}.card-visual{aspect-ratio:1/1}}
/* Menu catalog */
.menu-catalog{max-width:1280px;margin:auto}.filter-bar{display:flex;justify-content:center;gap:8px;margin-bottom:110px}.filter-button{min-width:132px;padding:12px 20px;border:1px solid var(--line);background:transparent;color:var(--brown);font-family:var(--serif);font-size:.8rem;letter-spacing:.18em;cursor:pointer;transition:.25s}.filter-button:hover,.filter-button.active{background:var(--brown);border-color:var(--brown);color:var(--paper)}.catalog-group{display:grid;grid-template-columns:.8fr 1.7fr;gap:10vw;padding:80px 0;border-top:1px solid var(--line)}.catalog-group[hidden]{display:none}.catalog-group header h2{font-family:var(--serif);font-size:clamp(3rem,5vw,5rem);font-weight:400;line-height:.9;margin:0}.catalog-group header>p:last-child{font-size:.75rem;color:var(--muted);letter-spacing:.15em;margin-top:22px}.catalog-list article{display:flex;justify-content:space-between;gap:35px;padding:24px 0;border-bottom:1px solid var(--line)}.catalog-list article:first-child{padding-top:0}.catalog-list article:last-child{border-bottom:0}.catalog-list h3{font-family:var(--serif);font-size:1.4rem;font-weight:500;margin:0}.catalog-list p{color:var(--muted);font-size:.75rem;margin:3px 0 0}.catalog-list strong{font-family:var(--serif);font-size:1.1rem;font-weight:400;white-space:nowrap}
/* Story and shop details */
.concept{display:grid;grid-template-columns:1.08fr .92fr;gap:10vw;align-items:center}.concept-visual{aspect-ratio:3/4;overflow:hidden}.concept-visual img{width:100%;height:100%;display:block;object-fit:cover}.concept-copy h2,.details-heading h2,.access-info h2{font-family:var(--serif);font-size:clamp(4rem,7vw,7rem);font-weight:400;letter-spacing:-.025em;line-height:.82;margin:0}.concept-copy h3{font-family:var(--serif);font-size:1.4rem;font-weight:400;margin:45px 0 25px}.concept-copy>p:not(.eyebrow){color:var(--muted);font-size:.86rem}.shop-details{padding:clamp(100px,13vw,190px) clamp(28px,8vw,130px);background:var(--ivory);display:grid;grid-template-columns:.7fr 1.3fr;gap:10vw}.details-heading>p:last-child{font-size:.75rem;color:var(--muted);letter-spacing:.14em}.details-grid{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--line)}.details-grid>div{padding:38px 30px;border-bottom:1px solid var(--line)}.details-grid>div:nth-child(odd){border-right:1px solid var(--line)}.details-grid dt{font-family:var(--serif);font-size:.7rem;letter-spacing:.22em;color:var(--accent)}.details-grid dd{margin:18px 0 0}.details-grid strong{display:block;font-family:var(--serif);font-size:2.2rem;font-weight:400;line-height:1}.details-grid span{display:block;color:var(--muted);font-size:.72rem;line-height:1.8;margin-top:14px}.fiction-note{grid-column:1/-1;color:var(--muted);font-size:.65rem;margin:15px 0 0}
/* Access */
.access-page{display:grid;grid-template-columns:.78fr 1.22fr;gap:9vw;align-items:start}.access-info dl{margin-top:60px}.access-info dl div{grid-template-columns:120px 1fr}.osm-map{position:sticky;top:140px}.osm-map iframe{display:block;width:100%;height:650px;border:0;background:#ded5c8;filter:grayscale(1) sepia(.12);}.osm-map>a{display:flex;justify-content:space-between;margin-top:15px;padding:10px 0;border-bottom:1px solid var(--brown);font-family:var(--serif);font-size:.78rem;letter-spacing:.14em}.osm-map>a span{color:var(--accent)}
@media(max-width:760px){.filter-bar{justify-content:flex-start;overflow-x:auto;margin:0 -25px 70px;padding:0 25px 10px}.filter-button{min-width:110px}.catalog-group,.concept,.shop-details,.access-page{grid-template-columns:1fr;gap:65px}.catalog-group{padding:60px 0}.catalog-group header h2{font-size:3.7rem}.concept-visual{aspect-ratio:3/2;order:2}.details-grid{grid-template-columns:1fr}.details-grid>div{padding:32px 0}.details-grid>div:nth-child(odd){border-right:0}.osm-map{position:static}.osm-map iframe{height:440px}.fiction-note{grid-column:1}.access-info dl div{grid-template-columns:95px 1fr}}
/* Progressive motion and interactive feedback */
.fade-in{animation:none}.motion-ready .reveal-on-scroll{opacity:0;transform:translateY(34px);transition:opacity .85s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.motion-ready .reveal-on-scroll.is-visible{opacity:1;transform:none}.card{overflow:hidden}.card-visual img{transition:transform .7s cubic-bezier(.22,1,.36,1),filter .4s}.card:hover .card-visual img{transform:scale(1.045);filter:contrast(1.03)}.filter-button,.text-link,.osm-map>a,.footer-social a{transition:color .25s,background-color .25s,border-color .25s,transform .25s}.text-link:hover,.osm-map>a:hover{color:var(--accent);transform:translateX(4px)}.catalog-list article{transition:padding .25s,background-color .25s}.catalog-list article:hover{padding-left:12px;padding-right:12px;background:rgba(163,95,72,.045)}.details-grid>div{transition:background-color .3s,transform .3s}.details-grid>div:hover{background:rgba(163,95,72,.055);transform:translateY(-3px)}.back-to-top{position:fixed;right:clamp(18px,3vw,42px);bottom:clamp(18px,3vw,38px);z-index:30;width:58px;height:58px;border:1px solid var(--accent);border-radius:50%;background:rgba(250,247,240,.94);color:var(--brown);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px);transition:opacity .3s,visibility .3s,transform .3s,background .25s,color .25s;box-shadow:0 8px 28px rgba(45,39,35,.12);backdrop-filter:blur(8px)}.back-to-top span{font-size:1.05rem;line-height:1}.back-to-top small{font-family:var(--serif);font-size:.52rem;letter-spacing:.15em;margin-top:3px}.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--accent);color:var(--paper)}
@media(max-width:760px){body.menu-open{overflow:hidden}.menu-toggle span{transition:transform .25s,opacity .2s}.menu-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.global-nav.open{min-height:calc(100vh - 82px);justify-content:center;font-size:1.4rem}.back-to-top{width:52px;height:52px}.catalog-list article:hover{padding-left:0;padding-right:0}.details-grid>div:hover{transform:none}}
@media(hover:none){.card:hover{transform:none}.card:hover .card-visual img{transform:none}.button:hover{padding-left:4px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade-in{animation:none}*{transition:none!important}}
