@charset "UTF-8";
/* Shared palette and typography. No external assets or build step required. */
:root { --paper:#f7f3eb; --ink:#302923; --muted:#71665d; --line:#d9d0c4; --accent:#9b5e48; --serif:Georgia,"Times New Roman","Yu Mincho",serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:30px; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif; font-size:16px; line-height:2; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:2px solid var(--accent); outline-offset:6px; }
::selection { background:#dec5b6; color:var(--ink); }
p { margin:0 0 24px; }
h1,h2,h3 { margin:0; font-weight:400; }
h1,h2 { font-family:var(--serif); letter-spacing:-.045em; line-height:1.12; text-wrap:balance; }
h1 { font-size:clamp(60px,6.5vw,96px); }
h2 { font-size:clamp(42px,4.5vw,64px); }
h3 { font-size:20px; line-height:1.7; }
em { font-weight:400; color:var(--accent); }
.skip-link { position:absolute; left:20px; top:-100px; z-index:20; padding:12px; background:var(--paper); }
.skip-link:focus { top:12px; }
.site-header,main,.site-footer { width:min(1280px,88%); margin-inline:auto; }
.site-header { min-height:124px; display:flex; justify-content:space-between; align-items:center; gap:30px; border-bottom:1px solid var(--line); }
.brand { display:inline-flex; flex-direction:column; align-items:flex-start; line-height:1; }
.brand>span { font-family:var(--serif); font-size:36px; letter-spacing:-.05em; }
.brand-dot { color:var(--accent); }
.brand small { font-size:10px; letter-spacing:.27em; margin-top:12px; }
.site-nav { display:flex; gap:38px; }
.site-nav a { position:relative; padding:15px 0; font-size:11px; letter-spacing:.15em; }
.site-nav a::after { content:""; position:absolute; bottom:7px; left:0; width:100%; height:1px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.site-nav a:hover::after,.site-nav a[aria-current="page"]::after { transform:scaleX(1); }
.site-nav a[aria-current="page"] { color:var(--accent); }
.nav-toggle { display:none; }
.eyebrow { font-size:10px; letter-spacing:.24em; font-weight:500; color:var(--accent); line-height:1.7; margin:0 0 26px; }
.hero { display:grid; grid-template-columns:1.22fr 1fr; align-items:center; gap:36px; padding:72px 0; }
.hero-copy { position:relative; z-index:1; padding:24px 0; }
.hero h1 { margin-bottom:30px; }
.hero-japanese { font-size:16px; letter-spacing:.06em; margin-bottom:20px; }
.intro { color:var(--muted); font-size:15px; line-height:2.1; }
.button { display:inline-flex; justify-content:space-between; align-items:center; gap:52px; padding:17px 0; min-height:52px; font-size:13px; border-bottom:1px solid var(--accent); transition:color .2s,gap .2s; }
.button:hover { color:var(--accent); gap:64px; }
.button span { color:var(--accent); font-size:21px; }
/* Quiet still-life, drawn entirely in CSS so the site also works offline. */
.coffee-art { position:relative; isolation:isolate; display:grid; place-items:center; height:520px; overflow:hidden; background:linear-gradient(135deg,#bbaa96,#d7c9b6 46%,#b9a993); border-radius:220px 220px 0 0; }
.coffee-art::before { content:""; position:absolute; inset:-50%; z-index:-1; transform:rotate(-32deg); background:linear-gradient(90deg,transparent 20%,#fff9e955 21%,#fff9e955 40%,#70594222 41%,#70594222 45%,#fff9e944 46%,#fff9e944 64%,transparent 65%); filter:blur(3px); }
.coffee-art::after { content:""; position:absolute; width:64%; height:42%; left:-12%; bottom:-8%; transform:rotate(-24deg); background:repeating-linear-gradient(0deg,#f1e8d8,#f1e8d8 2px,#e9decc 3px,#e9decc 4px); box-shadow:6px 4px 30px #30292322; z-index:-1; }
.saucer { width:260px; height:260px; border-radius:50%; display:grid; place-items:center; position:relative; transform:rotate(-26deg); background:radial-gradient(circle,#d5cabc 0 54%,#f4ecde 56%,#e0d5c4 68%,#faf3e5 70%); box-shadow:22px 34px 28px #49362c35,inset -4px -5px 10px #98847144; }
.cup { position:relative; width:174px; height:174px; border:12px solid #f5edde; border-radius:50%; background:radial-gradient(circle at 38% 32%,#76503b,#422d24 68%,#aa8060 70%,#74513a 74%); box-shadow:8px 13px 15px #39281f44,inset 2px 4px 9px #21181180; }
.cup::before { content:""; position:absolute; right:-42px; top:47px; width:33px; height:43px; border:10px solid #f5edde; border-left:0; border-radius:0 20px 20px 0; }
.coffee-art .cup::after { content:""; position:absolute; top:32px; left:43px; width:60px; height:78px; border-radius:70% 20% 70% 20%; transform:rotate(45deg); background:#e8d4b8; box-shadow:inset -9px 3px 0 #ae8766; }
.art-label { position:absolute; bottom:25px; left:0; right:0; text-align:center; font-size:9px; letter-spacing:.22em; color:#49392e; }
.notice { display:flex; align-items:center; gap:28px; padding:24px 0; border-block:1px solid var(--line); font-size:13px; }
.notice strong { font-size:10px; font-weight:500; letter-spacing:.18em; color:var(--accent); }
.notice-link { margin-left:auto; padding:5px 0; }
.notice-link span { margin-left:15px; color:var(--accent); }
.section { padding:112px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-bottom:50px; }
.section-subtitle { font-size:15px; margin:22px 0 36px; letter-spacing:.06em; }
.section-heading .section-subtitle { margin-bottom:0; }
.text-link { display:inline-block; font-size:13px; padding:12px 0; border-bottom:1px solid var(--line); transition:color .2s,border-color .2s; }
.text-link:hover { color:var(--accent); border-color:var(--accent); }
.cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.card h3 { margin:19px 0 12px; }
.card p { color:var(--muted); font-size:15px; margin-bottom:18px; }
.card .price { color:var(--accent); font-family:var(--serif); font-size:23px; }
.food-art { height:260px; position:relative; display:grid; place-items:center; overflow:hidden; background:radial-gradient(ellipse at 35% 20%,#e8dfd0,#cfc1b0); }
.food-art .saucer { transform:scale(.65) rotate(-26deg); }
.food-art.toast { background:linear-gradient(130deg,#e6dfd3,#d4c6b5); }
.toast::before { content:""; width:118px; height:130px; border:12px solid #976b4b; border-radius:38px 38px 9px 9px; background:radial-gradient(ellipse,#debc8a,#c99b66); transform:rotate(-15deg); box-shadow:14px 22px 20px #513d2b33; }
.toast::after { content:""; position:absolute; width:29px; height:25px; background:#eee0b6; transform:rotate(-15deg); box-shadow:2px 4px 5px #77533644; }
.cake { background:linear-gradient(135deg,#e7dcd1,#d0bfb0); }
.cake::before { content:""; width:146px; height:91px; background:linear-gradient(#efdfbc,#d9c59e); border-bottom:12px solid #9a7354; border-top:8px solid #bc956b; transform:skewY(-9deg); box-shadow:18px 25px 20px #5d41302b; }
.sandwich { background:linear-gradient(135deg,#e7dfd2,#ccbeae); }
.sandwich::before { content:""; width:148px; height:120px; clip-path:polygon(0 0,100% 100%,0 100%); background:linear-gradient(0deg,#a47a59 0 8%,#e4cfaa 8% 24%,#796b51 24% 30%,#ac7960 30% 38%,#e4cfaa 38% 90%,#a47a59 90%); transform:rotate(-12deg); filter:drop-shadow(10px 15px 8px #49362c33); }
.story-strip { padding:80px 7%; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center; background:#eee7dc; }
.story-strip>div:last-child { padding-top:36px; }
.story-strip p:not(.eyebrow):not(.section-subtitle) { line-height:2.3; color:var(--muted); }
.visit-strip { padding:110px 0; display:flex; align-items:center; justify-content:space-between; gap:40px; }
.visit-strip p:last-child { margin:22px 0 0; font-size:15px; color:var(--muted); }
.page-heading { padding:85px 0 65px; border-bottom:1px solid var(--line); margin-bottom:75px; }
.page-heading h1 { font-size:clamp(64px,8vw,110px); }
.page-heading .eyebrow { margin-bottom:20px; }
.page-japanese { margin:25px 0 12px; letter-spacing:.1em; }
.page-heading .intro { margin:0; }
.menu-list { display:grid; grid-template-columns:1fr 1fr; column-gap:75px; margin-top:40px; }
.menu-row { display:flex; align-items:baseline; justify-content:space-between; gap:20px; padding:25px 0; border-bottom:1px solid var(--line); }
.menu-row dt { font-size:15px; }
.menu-row dd { margin:0; color:var(--accent); font-family:var(--serif); font-size:23px; white-space:nowrap; }
.note { font-size:13px; color:var(--muted); margin-top:24px; }
.split { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:80px; align-items:center; margin-bottom:45px; }
.split p:not(.eyebrow):not(.section-subtitle):not(.note) { color:var(--muted); line-height:2.3; }
.split .coffee-art { height:590px; }
.values { margin-top:48px; counter-reset:value; }
.values .card { border-top:1px solid var(--line); padding-top:28px; }
.values .card::before { counter-increment:value; content:"0" counter(value); font-family:var(--serif); color:var(--accent); font-size:28px; }
.details { margin:0; }
.details>div { display:grid; grid-template-columns:90px 1fr; gap:15px; padding:21px 0; border-bottom:1px solid var(--line); font-size:15px; }
.details dt { color:var(--muted); }
.details dd { margin:0; }
.map { height:420px; background:#e8e1d5; position:relative; overflow:hidden; border:1px solid var(--line); }
.road { position:absolute; background:var(--paper); }
.road.horizontal { width:100%; height:58px; top:60%; }
.road.vertical { height:100%; width:50px; left:24%; }
.park { position:absolute; right:6%; top:9%; padding:34px 22px; background:#d6cebf; border:1px solid #c3b9a7; border-radius:45%; font-size:13px; }
.station { position:absolute; bottom:8%; left:12%; padding:8px 18px; background:var(--paper); border:1px solid var(--line); font-size:13px; }
.pin { position:absolute; top:43%; left:38%; padding:9px 15px; background:var(--accent); color:var(--paper); font-size:13px; }
.map-caption { position:absolute; right:15px; bottom:10px; font-size:10px; color:var(--muted); }
.site-footer { border-top:1px solid var(--line); margin-top:65px; padding-top:65px; }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:50px; padding-bottom:65px; }
.footer-top .brand>span { font-size:48px; }
.footer-tagline { margin-top:25px; }
.footer-top p:not(.eyebrow):not(.hours) { font-size:13px; color:var(--muted); }
.footer-top .eyebrow { margin-bottom:20px; }
.hours { font-family:var(--serif); font-size:25px; line-height:1.4; margin-bottom:15px; }
.social-pending { display:inline-flex; align-items:center; gap:20px; font-family:var(--serif); font-size:23px; }
.social-pending span { font-family:"Yu Gothic",sans-serif; font-size:11px; color:var(--muted); }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding:25px 0; color:var(--muted); font-size:10px; }
.footer-bottom p { margin:0; }
.footer-bottom a { letter-spacing:.13em; }
@media (min-width:1450px) { .hero { gap:60px; } }
@media (max-width:1000px) {
 .hero { grid-template-columns:1.15fr 1fr; gap:25px; }
 .hero h1 { font-size:64px; }
 .coffee-art { height:440px; }
 .cards { gap:22px; }
 .food-art { height:220px; }
 .split { gap:40px; }
 .story-strip { gap:40px; padding:65px 6%; }
 .footer-top { gap:30px; }
}
@media (max-width:760px) {
 .site-header,main,.site-footer { width:88%; }
 .site-header { min-height:100px; flex-wrap:wrap; padding:23px 0; gap:20px; }
 .brand>span { font-size:31px; }
 .brand small { font-size:9px; margin-top:9px; }
 .site-nav { width:100%; justify-content:space-between; gap:12px; }
 .site-nav a { font-size:10px; letter-spacing:.09em; min-height:44px; }
 .nav-ready .nav-toggle { display:block; background:none; color:var(--ink); border:1px solid var(--line); border-radius:0; padding:12px 14px; min-height:44px; font:inherit; font-size:11px; cursor:pointer; }
 .nav-ready .site-nav { display:none; }
 .nav-ready .site-nav.is-open { display:flex; }
 .hero { grid-template-columns:1fr; padding:48px 0 40px; gap:40px; }
 .hero-copy { padding:0; }
 .hero h1 { font-size:clamp(47px,9.4vw,70px); }
 .hero-japanese { font-size:14px; }
 .intro { font-size:14px; }
 .hero .eyebrow { margin-bottom:25px; }
 .coffee-art { height:400px; border-radius:190px 190px 0 0; }
 .notice { flex-wrap:wrap; gap:10px 20px; padding:22px 0; font-size:12px; }
 .notice strong { font-size:9px; }
 .notice-link { width:100%; margin:0; }
 .section { padding:75px 0; }
 h2 { font-size:43px; }
 .section-heading { align-items:flex-start; flex-direction:column; gap:18px; margin-bottom:34px; }
 .cards,.split,.story-strip,.menu-list { grid-template-columns:1fr; }
 .cards { gap:40px; }
 .food-art { height:280px; }
 .card h3 { font-size:19px; }
 .card p { font-size:15px; }
 .story-strip { padding:45px 25px; gap:5px; }
 .story-strip>div:last-child { padding:0; }
 .section-subtitle { margin:20px 0 28px; font-size:14px; }
 .visit-strip { padding:75px 0 30px; align-items:flex-start; flex-direction:column; gap:22px; }
 .page-heading { padding:55px 0 45px; margin-bottom:50px; }
 .page-heading h1 { font-size:clamp(57px,12vw,85px); }
 .split { gap:45px; }
 .split .coffee-art { height:400px; }
 .map { height:360px; }
 .details>div { grid-template-columns:75px 1fr; gap:12px; font-size:14px; }
 .menu-list { margin-top:20px; }
 .menu-row { padding:20px 0; }
 .menu-row dt { font-size:14px; }
 .footer-top { grid-template-columns:1fr 1fr; gap:38px 20px; padding-bottom:40px; }
 .footer-top>div:first-child { grid-column:1/-1; }
 .hours { font-size:21px; }
 .social-pending { gap:10px; font-size:21px; flex-wrap:wrap; }
 .footer-bottom { flex-wrap:wrap; gap:15px; }
 .footer-bottom p:first-child { width:100%; }
 .site-footer { padding-top:45px; margin-top:60px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }

/* Homepage: photographic opening, introduction, three favorites, then access. */
.home-page main { width:100%; }
.home-page .site-header { border-bottom:0; }
.home-hero { position:relative; isolation:isolate; min-height:660px; display:flex; align-items:center; padding:90px max(6%,calc((100% - 1280px)/2)); overflow:hidden; background:#493b30; color:var(--paper); }
.home-hero-image { position:absolute; z-index:-2; inset:0; width:100%; height:100%; object-fit:cover; object-position:center 56%; }
.home-hero::before { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(27,22,18,.72),rgba(27,22,18,.49) 43%,rgba(27,22,18,.08) 78%); }
.home-hero-content { max-width:760px; }
.home-hero h1 { font-size:clamp(64px,6.8vw,100px); margin-bottom:32px; }
.home-hero em,.home-hero .eyebrow,.home-hero .intro,.home-hero .button span { color:var(--paper); }
.home-hero .eyebrow { margin-bottom:28px; }
.home-hero .intro { font-size:15px; }
.home-hero .button { border-color:#f7f3eb99; margin-top:5px; }
.home-hero .button:hover { color:#e3c0af; }
.hero-caption { position:absolute; bottom:24px; right:6%; font-size:9px; letter-spacing:.19em; }
.home-page .story-strip,.home-page .home-favorites,.home-page .visit-strip { width:min(1280px,88%); margin-inline:auto; }
.home-page .story-strip { padding:112px 0; background:transparent; border-bottom:1px solid var(--line); gap:9%; scroll-margin-top:30px; }
.home-page .story-strip>div:last-child { padding-top:0; }
.home-favorites .card { border:1px solid var(--line); display:flex; flex-direction:column; }
.home-favorites .card h3,.home-favorites .card p { margin-left:25px; margin-right:25px; }
.home-favorites .card h3 { margin-top:25px; }
.home-favorites .card .price { margin-top:auto; padding-top:8px; margin-bottom:24px; }
.home-favorites .food-art { flex-shrink:0; }
.home-page .visit-strip { border-top:1px solid var(--line); padding:80px 0 70px; }
@media (max-width:1000px) { .home-hero h1 { font-size:70px; } }
@media (max-width:760px) {
 .home-hero { min-height:640px; padding:75px 6%; align-items:center; }
 .home-hero-image { object-position:58% center; }
 .home-hero::before { background:linear-gradient(90deg,rgba(27,22,18,.75),rgba(27,22,18,.47)),linear-gradient(0deg,rgba(27,22,18,.25),transparent 50%); }
 .home-hero h1 { font-size:clamp(41px,9.5vw,66px); }
 .home-hero .eyebrow { font-size:9px; letter-spacing:.19em; }
 .home-hero .hero-japanese { font-size:14px; max-width:24em; }
 .home-hero .intro { font-size:14px; }
 .hero-caption { left:6%; right:auto; font-size:8px; }
 .home-page .story-strip { padding:75px 0; gap:14px; }
 .home-page .home-favorites { padding:75px 0; }
 .home-page .visit-strip { padding:65px 0 20px; }
 .home-favorites .card h3,.home-favorites .card p { margin-left:22px; margin-right:22px; }
}

/* Photo cards inspired by the supplied reference; images remain uncropped. */
.home-favorites .section-heading { align-items:flex-end; margin-bottom:64px; }
.home-favorites h2 { font-size:clamp(58px,6.4vw,92px); line-height:1.02; }
.home-favorites .cards { gap:0; }
.home-favorites .card + .card { border-left:0; }
.menu-photo { position:relative; }
.menu-photo img,.story-photo img { width:100%; height:auto; display:block; }
.photo-label { position:absolute; top:18px; left:18px; background:var(--paper); color:var(--ink); padding:5px 10px; font-size:9px; letter-spacing:.18em; line-height:1.8; }
.home-favorites .card h3 { font-family:var(--serif); font-size:20px; margin-top:28px; }
.home-favorites .card h3,.home-favorites .card p { margin-left:28px; margin-right:28px; }
.home-favorites .card p { font-size:14px; }
.home-favorites .card .price { font-size:20px; padding-top:24px; margin-bottom:30px; }
.view-all { font-family:var(--serif); letter-spacing:.14em; font-size:11px; white-space:nowrap; }
.view-all span { margin-left:24px; }
.home-page .story-with-photo { gap:7%; }
@media(max-width:760px) {
 .home-favorites .section-heading { align-items:flex-start; margin-bottom:35px; }
 .home-favorites .view-all { align-self:flex-end; }
 .home-favorites .cards { gap:30px; }
 .home-favorites .card + .card { border-left:1px solid var(--line); }
 .home-page .story-with-photo { gap:40px; }
 .home-favorites .card h3,.home-favorites .card p { margin-left:22px; margin-right:22px; }
}

/* Interior pages share the homepage's photographs and editorial spacing. */
[hidden] { display:none!important; }
.menu-filters { display:flex; gap:12px; flex-wrap:wrap; }
.menu-filters button { min-height:48px; padding:12px 26px; border:1px solid var(--line); color:var(--ink); background:transparent; font:inherit; font-size:14px; cursor:pointer; }
.menu-filters button[aria-pressed="true"] { background:var(--ink); border-color:var(--ink); color:var(--paper); }
.menu-filters button:hover { border-color:var(--accent); }
.filter-status { margin-bottom:35px; }
.menu-category { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:8%; padding:35px 0 85px; margin-bottom:45px; border-bottom:1px solid var(--line); align-items:start; }
.category-intro h2 { font-size:clamp(39px,4vw,56px); }
.category-intro img { display:block; width:100%; height:auto; }
.dish { position:relative; padding:24px 80px 24px 0; border-top:1px solid var(--line); }
.dish h3 { font-family:var(--serif); font-size:21px; }
.dish p { margin:12px 0 0; font-size:14px; color:var(--muted); }
.dish .price { position:absolute; right:0; top:24px; font-family:var(--serif); color:var(--accent); font-size:23px; }
.sample-note { padding:20px 24px; border-left:2px solid var(--accent); background:#eee7dc; font-size:13px; line-height:2; color:var(--muted); margin:30px 0 55px; }
.shop-info { padding:15px 0 40px; }
.shop-facts { display:grid; grid-template-columns:1fr 1fr; gap:0 65px; margin:45px 0; }
.shop-facts>div { padding:25px 0; border-top:1px solid var(--line); }
.shop-facts dt { font-size:13px; color:var(--muted); margin-bottom:12px; }
.shop-facts dd { margin:0; font-size:22px; }
.shop-facts span { display:block; font-size:14px; color:var(--muted); margin-top:8px; }
.access-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:7%; align-items:start; margin-bottom:70px; }
.access-layout h2 { font-size:clamp(40px,4vw,56px); }
.detail-note { display:block; font-size:12px; color:var(--muted); }
.map-panel h3 { font-size:21px; }
.map-panel .note { margin:18px 0; }
.osm-map { width:100%; height:440px; display:block; border:1px solid var(--line); background:#eee7dc; }
.map-credit { font-size:11px; color:var(--muted); margin:10px 0; }
.map-credit a { text-decoration:underline; }
@media(max-width:760px) {
 .menu-filters { gap:8px; }
 .menu-filters button { padding:11px 16px; font-size:13px; flex:1 0 auto; }
 .menu-category,.access-layout,.shop-facts { grid-template-columns:1fr; }
 .menu-category { gap:32px; padding:15px 0 45px; margin-bottom:35px; }
 .dish { padding-right:70px; }
 .dish h3 { font-size:19px; }
 .shop-facts { margin-top:30px; }
 .sample-note { padding:17px; margin-bottom:40px; }
 .access-layout { gap:50px; }
 .osm-map { height:380px; }
}


/* Gentle interactions; base content always remains visible. */
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.card { transition:transform .25s ease, box-shadow .25s ease, background-color .25s ease; }
.button,.text-link,.menu-filters button,.nav-toggle,.back-to-top { transition:color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.button:hover { gap:52px; }
.back-to-top { position:fixed; right:max(20px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); z-index:15; display:flex; flex-direction:column; align-items:center; justify-content:center; width:54px; height:60px; background:var(--paper); color:var(--ink); border:1px solid var(--line); box-shadow:0 4px 20px #30292312; line-height:1.2; }
.back-to-top>span:first-child { font-size:24px; }
.top-label { font-size:9px; letter-spacing:.15em; margin-top:4px; }
.footer-bottom { padding-right:65px; }
.hamburger { display:flex; flex-direction:column; gap:5px; width:23px; }
.hamburger span { display:block; width:23px; height:1px; background:currentColor; transition:transform .25s ease,opacity .2s 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(hover:hover) and (pointer:fine) {
 .card:hover { transform:translateY(-5px); box-shadow:0 12px 28px #30292312; }
 .button:hover,.text-link:hover { color:var(--accent); background-color:#9b5e4809; }
 .menu-filters button:hover,.back-to-top:hover { color:var(--paper); background-color:var(--accent); border-color:var(--accent); }
 .nav-toggle:hover { background-color:#eee7dc; }
}
@media(max-width:760px) {
 .nav-ready .nav-toggle { min-width:48px; height:48px; padding:12px; }
 .back-to-top { right:16px; bottom:max(16px,env(safe-area-inset-bottom)); width:48px; height:54px; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { transition:none!important; }
 .card:hover { transform:none; }
}
