/* Same composition, different service. All atmosphere derives from the root state. */
:root {
 --surface:#f5f4f2;--surface-ink:#222a25;--surface-muted:#59645d;--surface-line:#c3ccc4;
 --room:#e5ece5;--room-ink:#253b30;--room-muted:#526459;--room-line:#adbbb0;
 --archive-top:#dce4e6;--archive-bottom:#edf0eb;--archive-light:#ffffff52;
 --page-accent:#345d43;--paper-ink:#171715;--paper-muted:#676058;
 --archive-shadow:2px 5px 8px #14231b28;--image-light:1.02;--image-saturation:1.02;
 --mood-duration:850ms;--hover-duration:220ms;--paper-duration:430ms;--flip-duration:760ms;--lift-duration:480ms;
 background:var(--surface);color:var(--surface-ink);scroll-padding-top:90px;
}
:root[data-mode=night] {
 --surface:#201a1b;--surface-ink:#f2eeea;--surface-muted:#c8bcb8;--surface-line:#695557;
 --room:#300001;--room-ink:#f5f0eb;--room-muted:#d4beba;--room-line:#6f383d;
 --archive-top:#30181e;--archive-bottom:#181719;--archive-light:#92535b38;
 --page-accent:#e1aea7;--archive-shadow:5px 13px 26px #0009;--image-light:.83;--image-saturation:.82;
 --mood-duration:1250ms;--hover-duration:420ms;--paper-duration:720ms;--flip-duration:1100ms;--lift-duration:750ms;
}
html,body{background:var(--surface);color:var(--surface-ink)}
body,h1,h2,h3,small,.meta,.hero-foot,.category-tabs button,.header-word,.header-right,.book-side,.archive-intro,.globe-drag-label{letter-spacing:0}
body,.hero,.around,.philosophy,.site-footer,.table-section,.menu-page,#header,#navigation,.nav-switch,#sheet,.close-sheet,.artifact-back,.category-tabs,.category-tabs button,.archive,.globe-drag-label{transition:background-color var(--mood-duration) var(--ease),color var(--mood-duration) var(--ease),border-color var(--mood-duration) var(--ease)}
header#header{position:fixed;background:color-mix(in srgb,var(--surface) 95%,transparent);color:var(--surface-ink);border-bottom:1px solid color-mix(in srgb,var(--surface-line) 60%,transparent)}
#header [hidden]{display:none!important}
.night:not(.menu-route) #header,.menu-route #header{color:var(--surface-ink)}
.nav-switch,#navigation,.menu-route .nav-switch,.menu-route #navigation{background:var(--surface);color:var(--surface-ink);border-color:var(--surface-line)}
#navigation a{border-color:var(--surface-line)}
.nav-switch{width:auto;min-height:44px;padding:10px 6px;display:flex;align-items:center;gap:6px;border:0;border-radius:0;font-size:14px;background:transparent}
.nav-switch:hover{text-decoration:underline;text-underline-offset:5px}
.nav-switch span,.nav-switch[aria-expanded=true] span{width:auto;height:auto;background:none;transform:none}
.nav-switch[aria-expanded=true] span:last-child{transform:rotate(180deg)}
#navigation{top:calc(100% + 6px);left:auto;right:24px;font-size:16px}#navigation #language{text-align:left;padding:16px 0;color:var(--surface-muted)}
.header-brand{min-width:0;display:flex;align-items:center;flex-shrink:0}
.header-word{min-width:0;white-space:nowrap;font-size:14px}.header-right{gap:16px}
#rhythm{display:flex;align-items:center;gap:2px;padding:2px;border:1px solid var(--surface-line);border-radius:3px;white-space:nowrap;background:color-mix(in srgb,var(--surface-ink) 4%,transparent)}
#rhythm button{min-height:44px;padding:9px 10px;font-size:14px;border-radius:1px;border:1px solid transparent;color:var(--surface-muted);transition:background-color var(--hover-duration),color var(--hover-duration)}
#rhythm button[aria-pressed=true]{background:var(--surface);border-color:var(--surface-line);color:var(--surface-ink)}
.action-primary,.action-secondary{min-height:50px;padding:15px 20px;display:inline-flex;align-items:center;justify-content:center;text-align:center;font-size:14px;line-height:1.4;border:1px solid var(--page-accent);border-radius:2px;transition:background-color var(--hover-duration),color var(--hover-duration),box-shadow var(--hover-duration)}
.action-primary{background:var(--page-accent);color:var(--surface)}
.action-secondary{background:var(--surface);color:var(--surface-ink);border-color:var(--surface-line)}
.action-primary:hover,.action-secondary:hover{box-shadow:inset 0 0 0 1px currentColor}
.header-menu.action-primary{min-height:44px;padding:12px 18px;white-space:nowrap;font-size:14px}
.hero{background:var(--surface);height:auto;min-height:0;max-height:none;flex-direction:column;padding:84px 0 28px;gap:12px}
.hero-foot{position:static;width:70.4814%;max-width:1120px;align-items:center;gap:24px;border-top:1px solid var(--surface-line);padding-top:20px}
.hero-context{font-size:16px;line-height:1.5;color:var(--surface-muted)}
.hero-actions{display:flex;gap:12px;flex-shrink:0}
.hero-foot .action-primary,.hero-foot .action-secondary{white-space:nowrap}
.hero-image,.night .hero-image{filter:brightness(var(--image-light)) saturate(var(--image-saturation));transition:filter var(--mood-duration) var(--ease)}
.hero-image.hero-photo-board{position:relative;filter:none;isolation:isolate;margin-bottom:0}
.hero-photo-board .hero-collage{position:absolute;inset:0;filter:brightness(var(--image-light));transition:filter var(--mood-duration) var(--ease)}
.hero-photo{position:absolute;margin:0;z-index:2;transform:rotate(var(--photo-angle));padding:5px 5px 0;background:#faf9f6;color:#252723;box-shadow:3px 8px 22px #17251b33;transition:box-shadow var(--mood-duration)}
.hero-photo-main{left:23%;top:20%;width:58%;--photo-angle:-2deg;z-index:3}
.hero-photo-left{left:-1%;top:43%;width:28%;--photo-angle:-7deg;z-index:4}
.hero-photo-right{left:78%;top:19%;width:28%;--photo-angle:6deg;z-index:4}
.hero-photo-pair{position:relative;aspect-ratio:4/3;overflow:hidden;background:#ecebe8}
.hero-photo-board .hero-room-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:0;transition:opacity var(--mood-duration) var(--ease);filter:none}
.hero-photo-board .day-photo{opacity:1}
[data-mode=night] .hero-photo-board .day-photo{opacity:0}
[data-mode=night] .hero-photo-board .night-photo{opacity:1}
[data-mode=night] .hero-photo{box-shadow:4px 16px 32px #0007}
.hero-photo figcaption{padding:7px 3px;font-size:10px;line-height:1.2}
.night .around-field{filter:none}.around,.philosophy,.site-footer{background:var(--surface)}
.sync-lines em,.visit-page .meta,.receipt-number{color:var(--page-accent)}
.table-section,.menu-page{background:var(--room);color:var(--room-ink)}
.category-tabs{border-color:var(--room-line);border-radius:8px}
.category-tabs button{font-size:16px;border-radius:4px;transition-duration:var(--hover-duration)}
.category-tabs button[aria-selected=true]{border-color:var(--room-ink);background:var(--room-ink);color:var(--room)}
.category-tabs button:hover{background:color-mix(in srgb,var(--room-ink) 10%,transparent)}
.category-tabs button[aria-selected=true]:hover{background:var(--room-ink)}
.full-menu-link{border:1px solid currentColor;border-radius:2px;padding:17px 20px;min-height:52px;font-size:14px}
.full-menu-link:hover{background:#00000006}
.preview-row .row-action,.dish-price small{display:block;font-size:14px;color:var(--paper-ink);margin-top:8px;text-decoration:underline;text-underline-offset:4px}
.preview-row:hover,.dish-row:hover{background:#345d4308}
.menu-page-heading .text-button{padding:12px 14px;border:1px solid var(--room-line);border-radius:2px;min-height:44px;font-size:14px}
.order-start-note{color:var(--room-muted);font-size:16px;text-align:center;padding:24px 20px 0}
.order-start-note small{display:block;font-size:14px;line-height:1.6;margin-top:6px}
.paper,.menu-ledger{color:var(--paper-ink)}.paper-heading small,.paper .menu-footnote{color:var(--paper-muted)}
.menu-page-heading small,.group-tabs button{color:var(--room-muted)}.group-tabs button.active{color:var(--room-ink)}
.menu-page-heading h1{letter-spacing:0}
.menu-search{color:var(--room-ink);border-color:var(--room-line)}.menu-search::placeholder{color:var(--room-muted)}
.paper-turn{animation-duration:var(--paper-duration)}.menu-print,.preview-row,.dish-row,.full-menu-link span,.hero-foot a span{transition-duration:var(--hover-duration)}
.fragment{isolation:isolate}.fragment .rhythm-photo{position:absolute;inset:0;opacity:0;transition:opacity var(--mood-duration) var(--ease),transform var(--lift-duration) var(--ease)}
.fragment .rhythm-photo.day-photo{opacity:1}[data-mode=night] .fragment .day-photo{opacity:0}[data-mode=night] .fragment .night-photo{opacity:1}
.fragment img{filter:brightness(var(--image-light)) saturate(var(--image-saturation))}
.around-field.around-memories{width:100%;max-width:1600px;height:auto;min-height:0;max-height:none;aspect-ratio:1/1.05;margin:48px auto 0}
.around-memories .memory{height:auto;margin:0;overflow:visible}
.memory-print{overflow:hidden;transform:rotate(var(--memory-angle,0deg));box-shadow:var(--archive-shadow);transition:box-shadow var(--mood-duration)}
.around-memories .memory img,.around-memories .memory:hover img{width:100%;height:auto;object-fit:contain;clip-path:none;transform:none;transition:filter var(--mood-duration) var(--ease)}
.memory-room-before{left:6%;top:3%;width:34%;--memory-angle:-.8deg}
.memory-planning{left:64%;top:0;width:18%;--memory-angle:1deg}
.memory-counter-work{left:16%;top:33%;width:23%;--memory-angle:.7deg}
.memory-haya-lettering{left:53%;top:39%;width:32%;--memory-angle:-1deg}
.memory-outside{left:8%;top:71%;width:18%;--memory-angle:-.8deg}
.memory-room-after{left:43%;top:65%;width:43%;--memory-angle:.6deg}
.around-closing{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:28px 6% 48px}
.around-closing>span{font-size:12px;line-height:1.8;color:var(--surface-muted)}
.around-closing .around-link{position:static;font-size:14px;line-height:1.5;min-height:44px;padding:12px 0;white-space:nowrap}
.archive.archive-globe{background:var(--archive-top);color:var(--surface-ink)}
.archive.archive-globe:before{display:block;inset:0;opacity:1;background:radial-gradient(ellipse at 50% 37%,var(--archive-light),transparent 66%),linear-gradient(transparent,var(--archive-bottom));transition:opacity var(--mood-duration)}
.archive-globe:after{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 64px,var(--surface-line) 65px,transparent 66px);opacity:.14}
.archive-globe .globe-card{box-shadow:var(--archive-shadow);transition:box-shadow var(--hover-duration),filter var(--hover-duration)}
.archive-globe .globe-card{cursor:pointer}.archive-globe.globe-dragging .globe-card{cursor:grabbing}
.archive-intro>span:last-child{font-size:14px;text-align:right;line-height:1.5;max-width:260px}
[data-mode=night] .globe-card{filter:brightness(.87) saturate(.93)}[data-mode=night] .globe-card:hover,[data-mode=night] .globe-card:focus-visible{filter:brightness(1.04)}
.globe-drag-label{color:var(--surface-muted)}.globe-controls [data-globe-pause]{border-color:var(--surface-line)}
.globe-controls [data-globe-turn]{transition-duration:var(--hover-duration)}
.artifact-stage{transition-duration:var(--lift-duration)}.artifact-rotation{transition-duration:var(--flip-duration)}
.artifact-back{background:var(--surface);color:var(--surface-ink)}.artifact-back .artifact-poem{color:var(--page-accent)}
.archive-shade{transition-duration:var(--lift-duration)}[data-mode=day] .archive-shade{background:#172820b8}
#sheet,.close-sheet{background:var(--surface);color:var(--surface-ink)}#sheet[open]{animation-duration:var(--lift-duration)}
.sheet-intro,.review-note,.cart-line small,.counter-meta,.ticket-id,.ticket-item small{color:var(--surface-muted)}
.allergens,.cart-line,.receipt-status,.option-label,.stepper{border-color:var(--surface-line)}
input,textarea,select{background:var(--surface);color:var(--surface-ink);border-color:var(--surface-line)}
.option-label:has(:checked){border-color:var(--page-accent);background:color-mix(in srgb,var(--page-accent) 10%,transparent)}
.primary{transition-duration:var(--hover-duration);border-color:var(--room-line)}.form-error,.ticket-status{color:var(--page-accent)}
.ticket{background:var(--room);color:var(--room-ink)}
.sheet-art{width:100%;max-height:300px;object-fit:contain;background:#fff;margin:20px 0}
.sheet-price{font-size:22px;margin:0 0 22px}.night-basket-note{font-size:13px;color:var(--room-muted);text-align:center;margin:24px 5% 0}
.cart-dock.empty{background:var(--surface);color:var(--surface-ink);border-color:var(--surface-line)}
.menu-page .cart-dock small{display:block;font-size:12px;margin-top:5px;letter-spacing:0}
#rhythm-wash{position:fixed;inset:0;z-index:180;pointer-events:none;opacity:0;background:radial-gradient(ellipse at var(--wash-x,75%) var(--wash-y,40px),#8b233675 0,#48071256 32%,transparent 76%)}
#rhythm-wash[data-direction=day]{background:radial-gradient(ellipse at var(--wash-x,75%) var(--wash-y,40px),#e0ebd58c 0,#c5dad342 32%,transparent 76%)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
::view-transition-old(root),::view-transition-new(root),::view-transition-group(menu-paper){animation-duration:var(--paper-duration)}
@media(max-width:760px){
 :root{scroll-padding-top:90px}
 header#header{height:70px;min-height:70px;padding:0 16px;gap:12px;display:flex}
 .header-word{display:block;font-size:14px}.nav-switch{font-size:14px}
 .header-right{margin-left:auto;gap:10px;width:auto;justify-content:flex-end}
 #navigation{right:16px;width:calc(100% - 32px);max-height:calc(100dvh - 90px);overflow-y:auto}
 #rhythm button{padding:9px 8px}#rhythm{flex-shrink:0}
 .header-menu.action-primary{padding:12px 14px}
 .hero-foot{flex-direction:column;align-items:stretch;gap:16px;padding-top:20px}
 .hero-context{font-size:16px;text-align:center}
 .hero-actions{display:grid;grid-template-columns:1fr;gap:0}
 .hero-foot .action-primary,.hero-foot .action-secondary{padding:14px 12px;white-space:normal;max-width:none;text-align:center;line-height:1.5;font-size:14px}
 .hero:has(.hero-photo-board){height:auto;min-height:76svh;max-height:none;flex-direction:column;padding:88px 0 28px;gap:10px}
 .hero-image.hero-photo-board{width:100%;aspect-ratio:1.12;max-width:580px;margin-bottom:0;flex-shrink:0}
 .hero-photo-board .hero-collage{height:auto;inset:0 0 auto}
 .hero-photo-main{left:13%;top:26%;width:74%}
 .hero-photo-left{left:1%;top:59%;width:31%;--photo-angle:-7deg}
 .hero-photo-right{left:69%;top:12%;width:29%;--photo-angle:5deg}
 .hero-photo{padding:3px 3px 0}.hero-photo figcaption{font-size:8px;padding:5px 2px}
 .hero:has(.hero-photo-board) .hero-foot{position:static;width:calc(100% - 40px)}
 .menu-page{padding-top:100px}.receipt,.visit-page,.counter{margin-top:110px}
 .menu-page-heading .text-button{font-size:14px;white-space:normal;text-align:right;max-width:145px}
 .menu-ledger .dish-row{grid-template-columns:23px minmax(0,1fr) 74px}
 .around-field.around-memories{aspect-ratio:1/3;margin-top:40px}
 .around-memories .memory{transform:none!important;will-change:auto}
 .memory-room-before{left:5%;top:0;width:64%}
 .memory-planning{left:66%;top:18%;width:29%}
 .memory-counter-work{left:6%;top:22%;width:46%}
 .memory-haya-lettering{left:32%;top:46%;width:62%}
 .memory-outside{left:8%;top:60%;width:35%}
 .memory-room-after{left:22%;top:79%;width:73%}
 .around-closing{margin:20px 20px 40px;gap:16px;align-items:flex-start;flex-wrap:wrap}
 .archive-intro{gap:16px}.archive-intro>span:last-child{max-width:180px}
 .category-tabs{max-width:calc(100% - 32px);gap:4px;padding:5px}.category-tabs button{white-space:normal;font-size:14px;padding:12px 10px}
 #rhythm-wash{background:radial-gradient(ellipse at var(--wash-x,75%) var(--wash-y,40px),#7f243768,transparent 80%)}
 .menu-page .cart-dock{font-size:14px}.sheet-art{max-height:230px}.artifact-back p{font-size:14px}
}
@media(max-width:360px){header#header{padding:0 12px;gap:8px}.header-right{gap:6px}#rhythm button{padding:9px 6px}.nav-switch{padding:10px 4px}.header-menu.action-primary{padding:12px}.hero-foot .action-primary{min-height:48px}}
@media(prefers-reduced-motion:reduce){
 :root{--mood-duration:0ms;--hover-duration:0ms;--paper-duration:0ms;--flip-duration:0ms;--lift-duration:0ms;scroll-behavior:auto}
 [data-mode=night]{--mood-duration:0ms;--hover-duration:0ms;--paper-duration:0ms;--flip-duration:0ms;--lift-duration:0ms}
 #rhythm-wash{display:none}.paper-turn{animation:none}.fragment{transform:none}.fragment img{clip-path:none}
}

/* Persistent service switch, clear of the table-order action and phone safe area. */
:root{--rhythm-clearance:calc(84px + env(safe-area-inset-bottom,0px));scroll-padding-bottom:var(--rhythm-clearance)}
body{padding-bottom:var(--rhythm-clearance)}
#rhythm{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:60;background:var(--surface);color:var(--surface-ink);box-shadow:0 4px 20px #0002;max-width:calc(100% - 32px)}
#rhythm button{min-width:70px;min-height:44px;padding:10px 16px}
.cart-dock{bottom:var(--rhythm-clearance)}
.menu-page{padding-bottom:calc(180px + env(safe-area-inset-bottom,0px))}
.globe-footer{bottom:var(--rhythm-clearance)}
.globe-stage{bottom:calc(var(--rhythm-clearance) + 80px)}
@media(max-width:760px){.globe-stage{bottom:calc(var(--rhythm-clearance) + 112px)}}
