@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500&family=Noto+Sans+JP:wght@300;400;500&display=swap');
:root{--ivory:#f4f0e8;--paper:#faf8f3;--ink:#29231f;--muted:#6e655d;--accent:#a45f49;--line:#d8d0c4;--serif:"Cormorant Garamond","Yu Mincho",serif;--sans:"Noto Sans JP","Yu Gothic",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font:300 15px/2 var(--sans);letter-spacing:.035em}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}
.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(216,208,196,.7);background:rgba(250,248,243,.94);backdrop-filter:blur(16px)}.header-inner{width:min(1240px,calc(100% - 80px));height:96px;margin:auto;display:flex;align-items:center;justify-content:space-between}.logo{display:inline-flex;align-items:center;gap:13px}.logo-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid;border-radius:50%;font:italic 500 1.5rem/1 var(--serif)}.logo-name{font:500 1.03rem/1 var(--serif);letter-spacing:.15em}.global-nav{display:flex;gap:46px;font-size:.67rem;font-weight:500;letter-spacing:.18em}.global-nav a{position:relative;padding:37px 0 31px}.global-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:28px;height:1px;background:var(--accent);transition:right .3s}.global-nav a:hover:after,.global-nav .is-current:after{right:0}.nav-toggle{display:none;padding:8px;border:0;background:transparent}.nav-toggle span{display:block;width:26px;height:1px;margin:6px;background:var(--ink);transition:.25s}
.eyebrow,.footer-label{margin:0 0 20px;color:var(--accent);font-size:.62rem;font-weight:500;line-height:1.4;letter-spacing:.3em}.hero{min-height:calc(100vh - 96px);padding:90px max(40px,calc((100% - 1240px)/2));display:grid;grid-template-columns:1.15fr .85fr;align-items:center;gap:8vw;background:var(--ivory);overflow:hidden}.hero h1,.page-hero h1,.section-heading h2,.story-copy h2,.visit-banner h2{margin:0;font-family:var(--serif);font-weight:500;line-height:.88;letter-spacing:-.035em}.hero h1{max-width:720px;font-size:clamp(4rem,7.5vw,7.8rem)}.hero-jp{margin:30px 0 0;font-family:"Yu Mincho",serif;font-size:1.05rem;letter-spacing:.12em}.hero-copy{max-width:500px;margin:30px 0 42px;color:var(--muted);font-size:.87rem;line-height:2.2}.button{display:inline-flex;align-items:center;justify-content:space-between;min-width:220px;padding:15px 0;border-bottom:1px solid;font-size:.73rem;font-weight:500;letter-spacing:.11em;transition:.2s}.button:hover,.text-link:hover{color:var(--accent);border-color:var(--accent)}.button span,.text-link span{transition:transform .2s}.button:hover span,.text-link:hover span{transform:translateX(5px)}
.hero-art{position:relative;height:min(620px,66vh);background:#cec0af;overflow:hidden}.hero-art:before{content:"";position:absolute;inset:18px;border:1px solid rgba(250,248,243,.55)}.sun{position:absolute;width:230px;height:230px;right:-45px;top:-40px;border-radius:50%;background:rgba(164,95,73,.44)}.cup{position:absolute;z-index:2;width:210px;height:155px;left:48%;top:56%;transform:translate(-50%,-50%);border-radius:4px 4px 88px 88px;background:#e9e2d6;box-shadow:0 55px 50px -36px rgba(41,35,31,.35)}.cup:after{content:"";position:absolute;width:72px;height:78px;right:-55px;top:28px;border:15px solid #e9e2d6;border-left:0;border-radius:0 50% 50% 0}.cup span{position:absolute;left:14px;right:14px;top:10px;height:27px;border-radius:50%;background:#44342b}.steam{position:absolute;z-index:3;top:110px;width:35px;height:130px;border-left:2px solid rgba(250,248,243,.75);border-radius:50%;transform:rotate(10deg)}.steam-one{left:40%}.steam-two{left:55%;top:85px}
.section{width:min(1160px,calc(100% - 80px));margin:auto;padding:150px 0}.section-tight{padding:120px 0}.section-heading{margin-bottom:85px}.section-heading h2{font-size:clamp(3.5rem,6vw,6.5rem)}.heading-jp,.page-title-jp{margin:25px 0 0;font-size:.78rem;letter-spacing:.16em}.intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:13%;align-items:start}.large-copy{margin:0;font-family:"Yu Mincho",serif;font-size:clamp(1.45rem,2.3vw,2.25rem);font-weight:400;line-height:1.9;letter-spacing:.08em}.intro-grid div>p{margin:0;color:var(--muted)}.text-link{display:inline-flex;gap:36px;margin-top:28px;padding-bottom:5px;border-bottom:1px solid;font-size:.72rem;font-weight:500;letter-spacing:.09em}.featured-section{padding-top:80px}.heading-row{display:flex;align-items:end;justify-content:space-between}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.menu-card{border-top:1px solid;transition:transform .3s}.menu-card:hover{transform:translateY(-7px)}.card-visual{height:290px;display:grid;place-items:center;color:var(--paper);background:#76685c;font:500 4rem var(--serif);filter:saturate(.45)}.cake-visual{background:#b29b82}.toast-visual{background:#8b806f}.card-body{padding:28px 4px}.tag{margin:0 0 8px;color:var(--accent);font-size:.58rem;font-weight:500;letter-spacing:.25em}.card-body h3{margin:0;font-family:"Yu Mincho",serif;font-size:1.05rem;font-weight:400;letter-spacing:.06em}.card-body>p:not(.tag):not(.price){min-height:60px;margin:12px 0;color:var(--muted);font-size:.76rem}.price{margin:14px 0 0;font:500 1.15rem var(--serif)}
.visit-banner{max-width:1440px;margin:20px auto 0;padding:110px max(40px,calc((100% - 1160px)/2));display:flex;align-items:end;justify-content:space-between;color:var(--paper);background:var(--ink)}.visit-banner .eyebrow{color:#c98770}.visit-banner h2{font-size:clamp(3.5rem,6vw,6rem)}.visit-banner p:last-child{margin:30px 0 0;color:#c9c0b7;font-size:.8rem}.visit-banner .button{color:var(--paper);border-color:#827970}.visit-banner .button:hover{color:#c98770;border-color:#c98770}
.site-footer{max-width:1240px;margin:auto;padding:100px 40px 35px;display:grid;grid-template-columns:1.6fr 1fr .7fr;gap:60px;color:var(--muted);font-size:.75rem}.footer-logo{margin-bottom:24px;color:var(--ink)}.footer-brand p,.footer-info p{margin:0}.footer-info .footer-label,.footer-social .footer-label{margin-bottom:15px}.footer-social{display:flex;flex-direction:column;align-items:flex-start}.footer-social a{line-height:2.2;border-bottom:1px solid transparent}.footer-social a:hover{color:var(--accent);border-color:var(--accent)}.copyright{grid-column:1/-1;margin:55px 0 0;padding-top:24px;border-top:1px solid var(--line);font-size:.58rem;letter-spacing:.14em}
.page-hero{padding:150px 24px 125px;text-align:center;background:var(--ivory)}.page-hero h1{font-size:clamp(5rem,10vw,9rem)}.page-hero>p:last-child{margin:35px 0 0;color:var(--muted);font-size:.82rem}.page-title-jp{margin-top:22px}.filter-buttons{display:flex;justify-content:center;gap:0;margin-bottom:80px;border-bottom:1px solid var(--line)}.filter-button{padding:15px 25px;border:0;border-bottom:1px solid transparent;background:transparent;color:var(--muted);font-size:.68rem;letter-spacing:.1em;cursor:pointer;transform:translateY(1px)}.filter-button:hover,.filter-button.is-active{color:var(--accent);border-color:var(--accent)}.menu-list{display:grid;grid-template-columns:1fr 1fr;column-gap:9%}.menu-item{display:flex;justify-content:space-between;gap:30px;padding:34px 0;border-bottom:1px solid var(--line)}.menu-item[hidden]{display:none}.menu-item h2{margin:0 0 8px;font-family:"Yu Mincho",serif;font-size:1.1rem;font-weight:400;letter-spacing:.06em}.menu-item div>p:last-child{margin:0;color:var(--muted);font-size:.76rem}.menu-item .price{white-space:nowrap}.menu-note{margin-top:50px;color:var(--muted);text-align:center;font-size:.67rem}
.story-section{display:grid;grid-template-columns:1fr 1fr;gap:12%;align-items:center}.story-visual{height:620px;display:grid;place-items:center;background:#9a897a}.story-visual span{width:180px;height:180px;padding-top:47px;border:1px solid rgba(250,248,243,.55);border-radius:50%;color:var(--paper);text-align:center;font-size:.62rem;letter-spacing:.2em}.story-visual strong{font:500 2.5rem var(--serif)}.story-copy h2{margin-bottom:48px;font-size:clamp(3.2rem,5vw,5.4rem)}.story-copy p:not(.eyebrow){color:var(--muted)}.values-section,.transport-section{background:var(--ivory)}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8%}.values-grid article{padding-top:28px;border-top:1px solid}.values-grid span{color:var(--accent);font:500 1.5rem var(--serif)}.values-grid h3{margin:28px 0 15px;font-family:"Yu Mincho",serif;font-weight:400;letter-spacing:.08em}.values-grid p{color:var(--muted);font-size:.78rem}.quote-section{padding:150px 24px;text-align:center}.quote-section blockquote{margin:0;font-family:"Yu Mincho",serif;font-size:clamp(1.6rem,3vw,2.8rem);font-weight:400;line-height:1.8;letter-spacing:.09em}.quote-section>p:last-child{margin-top:30px;color:var(--muted);font-size:.7rem}
.access-section{display:grid;grid-template-columns:1.1fr .9fr;gap:9%}.map-placeholder{position:relative;min-height:590px;overflow:hidden;border:1px solid var(--line);background:#d7d0c4;filter:saturate(.25)}.road{position:absolute;border:1px solid #c7bfb3;background:var(--paper)}.road-horizontal{left:-10%;top:45%;width:120%;height:70px;transform:rotate(-8deg)}.road-vertical{left:57%;top:-10%;width:60px;height:120%;transform:rotate(5deg)}.station,.park,.map-pin{position:absolute;z-index:2;padding:8px 12px;background:var(--paper);font-size:.68rem}.station{left:10%;bottom:20%}.park{right:6%;top:12%;background:#bbb3a7}.map-pin{left:43%;top:32%;color:var(--accent);background:transparent;text-align:center;font-size:1.2rem}.map-pin b{display:block;padding:9px;color:var(--paper);background:var(--ink);font-size:.58rem;letter-spacing:.1em}.access-details h2,.transport-section h2{font-family:var(--serif);font-size:clamp(2.5rem,4vw,4rem);font-weight:500;line-height:1}.access-details h2{margin:0 0 45px}.access-details dl{margin:0}.access-details dl div{display:grid;grid-template-columns:95px 1fr;padding:20px 0;border-bottom:1px solid var(--line)}.access-details dt{color:var(--muted);font-size:.7rem}.access-details dd{margin:0;font-size:.8rem}.access-details dd a{border-bottom:1px solid}.access-note{margin-top:30px;color:var(--muted);font-size:.65rem}.transport-section h2{margin:0 0 55px}.directions{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:0;padding:0;list-style:none}.directions li{padding:35px;border-top:1px solid;background:var(--paper)}.directions span{color:var(--accent);font:500 1.5rem var(--serif)}.directions p{margin:25px 0 0;font-size:.76rem}
@media(max-width:850px){.header-inner{width:calc(100% - 40px);height:76px}.nav-toggle{display:block;z-index:2;cursor:pointer}.nav-toggle.is-open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.global-nav{display:none;position:absolute;left:0;right:0;top:76px;padding:25px 30px 35px;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line)}.global-nav.is-open{display:flex}.global-nav a{padding:15px 0}.global-nav a:after{bottom:9px}.hero{min-height:auto;padding:65px 24px 90px;grid-template-columns:1fr;gap:65px}.hero-art{height:440px;order:-1}.hero h1{font-size:clamp(3.6rem,15vw,6rem)}.cup{width:175px;height:130px}.cup:after{width:58px;height:62px;right:-43px}.steam{top:50px}.steam-two{top:30px}.section{width:calc(100% - 48px);padding:105px 0}.section-tight{padding:90px 0}.section-heading{margin-bottom:58px}.section-heading h2{font-size:clamp(3.4rem,15vw,5.2rem)}.intro-grid,.story-section,.access-section{grid-template-columns:1fr;gap:60px}.card-grid,.values-grid,.directions{grid-template-columns:1fr}.menu-list{grid-template-columns:1fr}.story-visual{height:440px}.map-placeholder{min-height:410px;order:-1}.visit-banner{margin:0;padding:90px 30px;align-items:flex-start;flex-direction:column;gap:45px}.site-footer{grid-template-columns:1fr 1fr;padding:80px 24px 30px}.footer-brand{grid-column:1/-1}.copyright{grid-column:1/-1}.desktop-link{display:none}}
@media(max-width:520px){body{font-size:14px}.logo-mark{width:34px;height:34px}.logo-name{font-size:.86rem}.hero-art{height:330px}.page-hero{padding:110px 20px 95px}.page-hero h1{font-size:5rem}.filter-buttons{justify-content:flex-start;overflow-x:auto}.filter-button{flex:0 0 auto;padding:12px 17px}.access-details dl div{grid-template-columns:78px 1fr}.site-footer{grid-template-columns:1fr;gap:38px}.footer-brand,.copyright{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* Home page hero and final presentation */
.home-hero{position:relative;min-height:calc(100vh - 96px);display:flex;align-items:center;padding:110px max(40px,calc((100% - 1240px)/2));color:var(--paper);background-image:linear-gradient(90deg,rgba(25,20,17,.76) 0%,rgba(25,20,17,.48) 43%,rgba(25,20,17,.08) 76%),url("images/cafe-hero-optimized.webp");background-size:cover;background-position:center right}
.home-hero .hero-inner{position:relative;z-index:2;width:min(760px,70%)}.home-hero .eyebrow{color:#d9a18e}.home-hero h1{color:var(--paper);text-shadow:0 2px 24px rgba(0,0,0,.18)}.home-hero .hero-jp{color:#f2ede5}.home-hero .hero-copy{color:#d8d0c7}.hero-button{color:var(--paper);border-color:rgba(250,248,243,.65)}.hero-button:hover{color:#d9a18e;border-color:#d9a18e}.hero-scroll{position:absolute;right:max(32px,calc((100% - 1240px)/2));bottom:38px;margin:0;display:flex;align-items:center;gap:14px;font-size:.55rem;letter-spacing:.25em;writing-mode:vertical-rl}.hero-scroll span{display:block;width:1px;height:58px;background:rgba(250,248,243,.65)}
.home-hero+.intro-section{padding-top:175px}.intro-image{margin:0 0 80px;overflow:hidden;background:var(--ivory)}.intro-image img{display:block;width:100%;height:auto}.card-visual{position:relative;height:auto;aspect-ratio:1/1;overflow:hidden;filter:none;background:var(--ivory)}.card-visual:before{display:none}.card-visual:after{content:"";position:absolute;inset:18px;border:1px solid rgba(250,248,243,.42);pointer-events:none}.card-visual img{display:block;width:100%;height:100%;object-fit:cover}.card-visual span{position:relative;z-index:2;font:italic 500 5.2rem/1 var(--serif);opacity:.88}
@media(max-width:850px){.home-hero{min-height:calc(100svh - 76px);padding:90px 24px;background-position:60% center}.home-hero .hero-inner{width:100%}.home-hero h1{font-size:clamp(3.5rem,16vw,5.8rem)}.hero-scroll{display:none}.home-hero+.intro-section{padding-top:110px}}
@media(max-width:520px){.home-hero{background-image:linear-gradient(90deg,rgba(25,20,17,.78),rgba(25,20,17,.3)),url("images/cafe-hero-optimized.webp")}.home-hero .hero-copy br{display:none}.intro-image{margin-bottom:55px}.card-visual:after{inset:10px}}

/* Interior pages */
.page-hero>.page-title-jp+p{margin:35px 0 0;color:var(--muted);font-size:.82rem}.menu-intro{text-align:center;margin-bottom:35px}.menu-intro .eyebrow{margin-bottom:10px}.menu-intro>p:last-child{margin:0;color:var(--muted);font-size:.76rem}.profile-heading{max-width:720px}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);margin:0;border-top:1px solid var(--ink)}.profile-grid>div{display:grid;grid-template-columns:120px 1fr;gap:25px;padding:38px 0;border-bottom:1px solid var(--line)}.profile-grid>div:nth-child(odd){padding-right:50px;border-right:1px solid var(--line)}.profile-grid>div:nth-child(even){padding-left:50px}.profile-grid dt{padding-top:7px;color:var(--accent);font-size:.6rem;font-weight:500;letter-spacing:.22em}.profile-grid dd{margin:0}.profile-grid strong{display:block;font:500 2.8rem/1 var(--serif);letter-spacing:-.025em}.profile-grid span{display:block;margin-top:16px;color:var(--muted);font-size:.75rem;line-height:1.9}.fiction-note{margin:40px 0 0;color:var(--muted);font-size:.65rem}.fiction-badge{display:inline-block!important;margin:28px 0 0!important;padding:7px 14px;border:1px solid var(--line);color:var(--accent)!important;font-size:.58rem!important;font-weight:500;line-height:1.5!important;letter-spacing:.15em}.map-embed{min-width:0}.map-embed iframe{display:block;width:100%;height:590px;border:1px solid var(--line);filter:grayscale(.72) sepia(.12);background:var(--ivory)}.map-embed>a{display:inline-flex;gap:12px;margin-top:12px;padding-bottom:3px;border-bottom:1px solid;font-size:.68rem;letter-spacing:.08em}.map-embed>a:hover{color:var(--accent)}.access-details dd small{color:var(--muted);font-size:.68rem}.transport-section .heading-jp{margin-bottom:55px}.transport-section h2{font-size:clamp(3.5rem,6vw,6rem);letter-spacing:-.035em}.transport-section .directions{margin-top:0}
@media(max-width:850px){.profile-grid{grid-template-columns:1fr}.profile-grid>div:nth-child(odd),.profile-grid>div:nth-child(even){padding:32px 0;border-right:0}.map-embed{order:-1}.map-embed iframe{height:440px}.transport-section .heading-jp{margin-bottom:42px}}
@media(max-width:520px){.profile-grid>div{grid-template-columns:82px 1fr;gap:15px}.profile-grid strong{font-size:2.2rem}.map-embed iframe{height:360px}.fiction-badge{max-width:calc(100% - 20px)}}

/* Progressive motion and interaction */
.motion-enabled .reveal-pending{opacity:0;transform:translateY(30px);transition:opacity .85s cubic-bezier(.2,.65,.3,1),transform .85s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}.motion-enabled .reveal-pending.is-visible{opacity:1;transform:translateY(0)}
.menu-card,.values-grid article,.directions li,.profile-grid>div,.menu-item{transition:transform .35s ease,background-color .35s ease,border-color .35s ease}.menu-card .card-visual img{transition:transform .7s cubic-bezier(.2,.65,.3,1),filter .5s ease}.menu-card:hover{transform:translateY(-9px)}.menu-card:hover .card-visual img{transform:scale(1.035);filter:brightness(.96)}.values-grid article:hover,.directions li:hover{transform:translateY(-5px);border-color:var(--accent)}.profile-grid>div:hover,.menu-item:hover{background:rgba(164,95,73,.035)}.button:focus-visible,.text-link:focus-visible,.filter-button:focus-visible,.nav-toggle:focus-visible,.back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:5px}
.back-to-top{position:fixed;z-index:18;right:28px;bottom:28px;width:58px;height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;border:1px solid rgba(250,248,243,.3);border-radius:50%;color:var(--paper);background:rgba(41,35,31,.92);box-shadow:0 8px 25px rgba(41,35,31,.16);opacity:0;visibility:hidden;transform:translateY(14px);cursor:pointer;transition:opacity .3s,visibility .3s,transform .3s,background-color .25s}.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover{background:var(--accent);transform:translateY(-3px)}.back-to-top span{font:400 1.05rem/1 var(--serif)}.back-to-top small{font-size:.48rem;letter-spacing:.16em}
@media(max-width:850px){body.nav-open{overflow:hidden}.global-nav.is-open{max-height:calc(100vh - 76px);overflow-y:auto}.back-to-top{right:18px;bottom:18px;width:52px;height:52px}}
@media(hover:none){.menu-card:hover,.values-grid article:hover,.directions li:hover,.back-to-top:hover{transform:none}.menu-card:hover .card-visual img{transform:none;filter:none}}
@media(prefers-reduced-motion:reduce){.motion-enabled .reveal-pending{opacity:1;transform:none}.menu-card,.menu-card .card-visual img,.values-grid article,.directions li,.profile-grid>div,.menu-item,.back-to-top{transition:none}}
