:root{--paper:#f6f0e4;--ink:#273a31;--muted:#807d6d;--accent:#8b562e}*{box-sizing:border-box}body{margin:0;background:#202b28;color:var(--ink);font-family:Arial,Helvetica,sans-serif}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible{outline:2px solid #b27a42;outline-offset:4px}[hidden]{display:none!important}#menu{width:100%;height:100dvh;padding:clamp(10px,2.4vh,26px) clamp(12px,2.5vw,40px);position:relative;background:radial-gradient(ellipse at center,#475348,#202b28 75%)}.book-frame{position:relative;width:100%;height:100%;max-width:1600px;margin:auto;box-shadow:0 16px 24px #0005;border-radius:4px}.book{position:relative;width:100%;height:100%;max-width:1600px;margin:auto;border-radius:4px}.page,.face{background-color:var(--paper);background-image:url("assets/paper.svg");padding:clamp(18px,4vh,44px) clamp(23px,4vw,64px);overflow:hidden}.page{position:absolute;top:0;width:50%;height:100%;display:flex;flex-direction:column}.left{left:0;border-radius:4px 0 0 4px;background-image:linear-gradient(90deg,transparent 90%,#5a472d18),url("assets/paper.svg")}.right{right:0;border-radius:0 4px 4px 0;background-image:linear-gradient(90deg,#5a472d20,transparent 12%),url("assets/paper.svg")}.spine{position:absolute;top:0;bottom:0;left:50%;width:32px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,#77644818 35%,#2c241f33 49%,#fffc 51%,#796c4922 65%,transparent);pointer-events:none;z-index:4}.eyebrow{font-size:clamp(8px,.85vw,11px);letter-spacing:.27em;font-weight:600}.page-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:1.8vh;border-bottom:1px solid #8a80653b}.edition{font-family:Georgia,serif;font-style:italic;font-size:clamp(9px,1vw,13px);color:var(--muted)}h1,h2,h3,p{margin:0}h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(28px,4.4vw,65px);letter-spacing:-.05em;line-height:1.05;margin:2.5vh 0 .7vh}.subtitle{font:italic clamp(10px,1.12vw,16px) Georgia,serif;color:var(--muted);margin-bottom:1vh}.items{display:grid;grid-template-rows:1fr 1fr;min-height:0;flex:1}.dish{display:grid;grid-template-columns:42% 1fr;gap:clamp(12px,2vw,28px);align-items:center;min-height:0;padding:1.4vh 0}.dish+.dish{border-top:1px solid #8a806526}.dish img{width:100%;height:100%;max-height:24vh;object-fit:cover;border-radius:50% 50% 44% 44%;mix-blend-mode:multiply}.dish h3{font:400 clamp(14px,1.8vw,25px)/1.15 Georgia,serif;letter-spacing:-.025em}.description{font-size:clamp(9px,1.02vw,14px);line-height:1.5;color:var(--muted);margin:1vh 0}.dish-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px}.price{font:italic clamp(13px,1.5vw,20px) Georgia,serif}.quantity{display:flex;align-items:center;gap:9px;font-size:12px}.quantity button{border:1px solid #98968066;background:transparent;border-radius:50%;width:26px;height:26px;padding:0;font-size:17px}.quantity button:hover{background:var(--ink);color:var(--paper)}.quantity button:disabled{opacity:.25;cursor:default}.folio{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.15em;color:var(--muted);padding-top:1vh}.corner{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));z-index:8;width:36px;height:36px;border:1px solid #ffffff40;border-radius:50%;background:#202b28;color:#f6f0e4;font:28px/1 Georgia,serif;box-shadow:0 2px 9px #0002}.previous{left:12px}.next{right:12px}.corner:disabled{opacity:.25;cursor:default}.confirm{position:fixed;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);border:1px solid #b8b297;background:var(--ink);color:var(--paper);padding:9px 16px;border-radius:30px;font-size:12px;z-index:9;box-shadow:0 3px 12px #0003}.confirm span{margin-left:7px}#receipt{min-height:100dvh;padding:32px 15px;background:radial-gradient(ellipse at top,#475348,#202b28)}.receipt-paper{max-width:540px;background:var(--paper);margin:auto;padding:clamp(25px,5vw,48px);box-shadow:0 15px 40px #0004;text-align:center}.receipt-paper h1{font:400 36px/1.15 Georgia,serif;margin:20px 0 12px;letter-spacing:-.04em}.muted{font-size:12px;color:var(--muted);line-height:1.6}#order-lines{margin-top:24px}.order-line,.total{display:flex;text-align:left;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #aaa6;font-size:14px}.order-line span:last-child{white-space:nowrap}.total{border:0;font-size:18px;margin:8px 0 20px}#qr{max-width:260px;margin:0 auto 15px;background:#fff;padding:12px}#qr svg{width:100%;height:auto;display:block}.text-button{border:0;border-bottom:1px solid #8f927e;background:none;padding:8px 0;margin-top:20px;font-size:12px}#receipt-status{font-size:12px;color:var(--accent);margin-top:14px}#rotate{position:fixed;inset:0;z-index:30;background:#202b28;color:var(--paper);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:28px}.rotate-icon{font-size:70px;color:#c8b788;margin-bottom:25px}#rotate h1{font:42px/1.1 Georgia,serif;letter-spacing:-.04em}#rotate p{font-size:14px;line-height:1.7;color:#c2c3b2;margin-top:24px}#landscape{border:1px solid #c2c3b255;border-radius:30px;color:var(--paper);background:transparent;padding:12px 22px;margin-top:24px}#notice{position:fixed;left:50%;top:20px;transform:translateX(-50%);background:var(--ink);color:var(--paper);padding:10px 20px;border-radius:20px;z-index:40;font-size:13px;display:none}#notice.visible{display:block}@media(max-height:500px){#menu{padding:8px 12px}.page,.face{padding:13px 30px}.page-top{padding-bottom:6px}h2{font-size:32px;margin-top:9px}.subtitle{font-size:10px}.dish{padding:6px 0;gap:12px}.dish img{max-height:26vh}.dish h3{font-size:16px}.description{font-size:10px;margin:5px 0;line-height:1.35}.folio{font-size:7px;padding-top:2px}.quantity{gap:6px}.quantity button{width:22px;height:22px;font-size:15px}.corner{width:28px;height:28px;bottom:8px;font-size:23px}.confirm{bottom:8px;padding:6px 12px}.eyebrow{font-size:8px}.edition{font-size:9px}}@media print{body{background:white}#menu,#rotate,#edit,#qr-caption{display:none!important}#receipt{display:block!important;padding:0;background:white}.receipt-paper{box-shadow:none}}

/* Flexible paper is clipped and shaded by the local page-turn engine. */
.book{touch-action:pan-y;overflow:visible}
.page{width:100%;height:100%;padding:0;overflow:hidden;display:block;border:1px solid #d3cbb94d}
.page-content{width:100%;height:100%;display:flex;flex-direction:column;padding:clamp(18px,4vh,44px) clamp(23px,4vw,64px)}
.page-content .items{min-height:0}
.spine{z-index:2;width:26px}
.stf__parent{min-width:0!important;min-height:0!important}
.stf__wrapper{padding-bottom:0!important}
@media(max-height:500px){.page-content{padding:13px 30px}}

/* Phone book: paper reaches every available edge; content avoids notches. */
html[data-device="phone"] #menu{height:var(--screen-height,100dvh);padding:0;overflow:hidden;overscroll-behavior:none}
html[data-device="phone"] .book-frame,html[data-device="phone"] .book{max-width:none;border-radius:0}
html[data-device="phone"] .page{border-radius:0}
html[data-device="phone"] .page-content{padding:12px 28px 34px}
html[data-device="phone"] .left .page-content{padding-left:max(30px,env(safe-area-inset-left))}
html[data-device="phone"] .right .page-content{padding-right:max(30px,env(safe-area-inset-right))}
html[data-device="phone"] .corner{bottom:max(7px,env(safe-area-inset-bottom));width:30px;height:30px}
html[data-device="phone"] .previous{left:max(7px,env(safe-area-inset-left))}
html[data-device="phone"] .next{right:max(7px,env(safe-area-inset-right))}
html[data-device="phone"] .confirm{bottom:max(7px,env(safe-area-inset-bottom))}
html[data-device="phone"] #rotate{height:var(--screen-height,100dvh);padding:20px max(24px,env(safe-area-inset-right)) 20px max(24px,env(safe-area-inset-left))}
@media(max-height:500px){html[data-device="phone"] #rotate{gap:10px}.rotate-icon{margin-bottom:0;font-size:42px}html[data-device="phone"] #rotate h1{font-size:30px}html[data-device="phone"] #rotate p,html[data-device="phone"] #landscape{margin-top:4px}}
