:root{--ink:#17201d;--muted:#778078;--paper:#f5f3ed;--line:#dedfd5;--brand:#1c4b3b;--accent:#bc925d;--radius:18px;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button,.button{border:0;border-radius:10px;padding:12px 18px;background:var(--brand);color:white;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover,.button:hover{filter:brightness(1.08)}button:disabled{opacity:.5;cursor:wait}.secondary{background:#e8ece6;color:var(--ink)}.danger{background:#f8e6e2;color:#95392b}.small{padding:8px 12px;font-size:12px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px;background:#fff;color:var(--ink)}input:focus,textarea:focus,select:focus{outline:2px solid #9bad96;outline-offset:1px}input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}input[type=color]{height:46px;padding:5px}label{display:grid;gap:8px;font-size:13px;font-weight:600}label.check{display:flex;align-items:center;gap:10px}textarea{min-height:88px;resize:vertical}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.wide{grid-column:1/-1}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted);font-size:14px;line-height:1.6}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.6px;font-size:38px}h2{font-size:24px;letter-spacing:-.6px}h3{font-size:18px}.eyebrow{text-transform:uppercase;letter-spacing:2.3px;font-size:11px;font-weight:700;color:var(--muted)}.message{padding:14px 18px;background:#e0eee3;border:1px solid #bdd2c1;border-radius:10px;margin:16px 0;font-size:14px;line-height:1.5}.message.error{background:#fae9e3;border-color:#e9beb3;color:#873728}[hidden]{display:none!important}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}.empty{padding:48px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:14px}.badge{padding:5px 9px;background:#e9eee8;border-radius:30px;font-size:11px;white-space:nowrap}.badge.off{background:#f1e6dd;color:#805a34}.brand{font-family:Georgia,serif;font-size:26px;letter-spacing:-1px}.brand b{font-family:Arial,sans-serif;font-size:9px;letter-spacing:2px;display:block;margin-top:6px;color:#a2b9aa}.shell{display:grid;grid-template-columns:235px minmax(0,1fr);min-height:100vh}.sidebar{background:#173d30;color:#edf2eb;padding:32px 22px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:32px}.sidebar .muted{color:#acc2b3}.sidebar select{background:#254d3d;color:#fff;border-color:#40614d}.sidebar nav{display:grid;gap:7px}.sidebar nav button{justify-content:flex-start;background:transparent;color:#c4d3c8;font-weight:400}.sidebar nav button.active{background:#345a47;color:#fff}.sidebar .foot{margin-top:auto}.main{padding:36px 5%;max-width:1500px;width:100%}.topbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px}.topbar .eyebrow{margin-bottom:8px}.topbar h1{margin:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.stat{background:white;padding:24px;border:1px solid var(--line);border-radius:14px}.stat strong{display:block;font-family:Georgia,serif;font-size:36px;margin-top:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:28px 0 18px}.section-head h2{margin:0}.list{display:grid;gap:10px}.item{background:#fff;border:1px solid var(--line);border-radius:13px;display:flex;gap:16px;align-items:center;padding:14px 18px}.item .info{flex:1;min-width:0}.item h3{font-size:15px;margin:0 0 6px}.item p{margin:0}.thumb{width:58px;height:58px;object-fit:cover;border-radius:10px;background:#eef0e9}.item .actions{display:flex;gap:6px;flex-wrap:wrap}.auth{max-width:440px;margin:8vh auto;padding:30px}.auth .brand{margin-bottom:36px}.auth form{display:grid;gap:18px}.auth h1{font-size:30px}.auth .row{margin-top:18px}.user-email{font-size:12px;overflow-wrap:anywhere}.tabs{display:flex;gap:8px;flex-wrap:wrap}.toolbar{display:grid;grid-template-columns:1fr 220px;gap:14px;margin-bottom:18px}dialog{border:1px solid var(--line);border-radius:20px;padding:28px;max-width:640px;width:calc(100% - 30px);max-height:90vh;box-shadow:0 20px 100px #0003}dialog::backdrop{background:#102b2080;backdrop-filter:blur(4px)}dialog form{display:grid;gap:20px}dialog h2{margin-bottom:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px}.qr-box{background:white;padding:24px;display:inline-block;border-radius:16px}.qr-box img{max-width:100%}.mono{font-family:monospace;overflow-wrap:anywhere;font-size:13px}.menu-page{background:#f6f1e9;--brand:#34251d;min-height:100vh}.menu-top{max-width:1100px;margin:auto;padding:22px 28px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #dacfc1}.menu-top .brand{font-size:21px}.menu-hero{max-width:1100px;margin:auto;padding:65px 28px 36px;display:flex;align-items:center;gap:24px}.menu-hero .logo{width:88px;height:88px;object-fit:contain;border-radius:50%}.menu-hero h1{font-family:Georgia,serif;font-weight:400;font-size:64px;letter-spacing:-2.8px;margin:12px 0 18px}.menu-hero p{max-width:560px;line-height:1.7;color:#786b5e}.menu-content{max-width:1100px;margin:auto;padding:0 28px 48px}.menu-controls{position:sticky;top:0;background:#f6f1e9f5;backdrop-filter:blur(10px);z-index:5;padding:16px 0;border-bottom:1px solid #dacfc1}.menu-controls input{background:#fff8;border-color:#ded4c7;max-width:380px;border-radius:30px}.chips{display:flex;gap:8px;overflow-x:auto;padding:16px 0 2px;scrollbar-width:thin}.chips button{white-space:nowrap;background:transparent;color:#756554;border:1px solid #d9cbbb;border-radius:30px;font-size:13px}.chips button.active{background:var(--brand);color:white;border-color:var(--brand)}.menu-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.dish{background:#fffaf4;border:1px solid #e5dbcf;border-radius:16px;padding:22px;display:flex;gap:20px;align-items:center}.dish .info{flex:1;min-width:0}.dish h3{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:0 0 9px}.dish p{font-size:13px;color:#897a6d;line-height:1.6;margin-bottom:14px}.dish .price{color:var(--brand);font-size:16px;font-weight:700}.dish img{width:110px;height:125px;object-fit:cover;border-radius:12px}.dish.unavailable{opacity:.65}.menu-section h2{font-family:Georgia,serif;font-weight:400;font-size:32px;margin:32px 0 20px}.menu-footer{border-top:1px solid #ded4c7;margin-top:40px;padding-top:24px;display:flex;justify-content:space-between;gap:18px;color:#887566;font-size:12px}.preview-banner{background:#d6aa61;text-align:center;padding:10px;font-size:13px}.loading{padding:80px 24px;text-align:center;color:#887566}.intro{max-width:780px;margin:12vh auto;padding:30px}.intro h1{font-family:Georgia,serif;font-size:60px}.intro .row{margin-top:32px}@media(max-width:850px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;padding:20px;gap:18px}.sidebar nav{display:flex;overflow:auto}.sidebar nav button{white-space:nowrap}.sidebar .foot{display:flex;align-items:center;justify-content:space-between}.sidebar .brand b{display:none}.main{padding:26px 20px}.stats{gap:10px}.stat{padding:18px}.topbar h1{font-size:28px}.menu-hero h1{font-size:46px}.menu-grid{grid-template-columns:1fr}}@media(max-width:520px){.grid{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr}.item{flex-wrap:wrap}.item .actions{width:100%}.stats{grid-template-columns:1fr 1fr 1fr}.stat{padding:14px 10px;font-size:12px}.stat strong{font-size:26px}.card{padding:20px}.topbar{align-items:flex-start;flex-direction:column}.menu-hero{padding:38px 20px 22px;display:block}.menu-hero h1{font-size:44px}.menu-top,.menu-content{padding-left:20px;padding-right:20px}.dish{padding:18px;gap:14px}.dish img{width:85px;height:100px}.dish h3{font-size:21px}.menu-footer{flex-direction:column}.auth{margin:30px auto}.intro h1{font-size:45px}}/* Keep intrinsic widths from widening the mobile control panel. */
.shell>*{min-width:0}.sidebar nav{min-width:0;max-width:100%}.stat{min-width:0}.stat strong{overflow-wrap:anywhere}.item h3{overflow-wrap:anywhere}
@media(max-width:850px){.shell{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar{max-width:100%}}
@media(max-width:520px){.stat:last-child strong{font-family:Arial,Helvetica,sans-serif;font-size:16px!important;white-space:nowrap}}

[hidden]{display:none!important}
.welcome-screen{min-height:100svh;background:#607029;color:#f3efe2;padding:40px 24px;font-family:Georgia,serif}
.welcome-inner{max-width:680px;margin:auto}.welcome-logo{display:block;width:180px;height:180px;max-width:100%;object-fit:contain;border-radius:50%;overflow:hidden;margin:0 auto 18px}.welcome-inner h1{text-align:center;color:inherit;font-weight:400;font-size:clamp(30px,6vw,46px);margin:12px 0}.welcome-river{display:block;width:100%;height:30px;margin:24px 0}.welcome-river path{fill:none;stroke:#e8d28f;stroke-width:1.5}.welcome-copy{white-space:pre-wrap;overflow-wrap:anywhere;font-size:20px;line-height:1.75}.welcome-sign{font-size:26px;font-style:italic;text-align:right}.welcome-inner button{display:block;margin:32px auto 0;background:#f3efe2;color:#263018;border:0;border-radius:40px;padding:16px 35px;font-family:system-ui,sans-serif}.pairing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.pairing-card{padding:26px;border:1px solid #ded5c8;border-radius:18px;background:#fffdf9;overflow-wrap:anywhere}.pairing-card h3{font-family:Georgia,serif;font-size:24px;line-height:1.5}.pairing-card h3 span{color:var(--brand);padding:0 8px}.pairing-card p{white-space:pre-wrap;line-height:1.7;color:#686157}

.product-photo{padding:0;border:0;background:transparent;flex-shrink:0;border-radius:12px;overflow:hidden;cursor:zoom-in;line-height:0}.product-photo:hover{background:transparent;filter:brightness(.94)}.product-photo img{display:block}.product-photo:focus-visible{outline:3px solid var(--brand);outline-offset:4px}.pairing-photos{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pairing-product{min-width:0}.pairing-product .product-photo{width:100%}.pairing-product img{width:100%;aspect-ratio:1;object-fit:cover}.pairing-product>span{display:block;font-size:13px;line-height:1.4;margin-top:8px}.pairing-card h3{margin-top:18px}.photo-viewer{border:0;border-radius:18px;background:#171916;color:#fff;padding:54px 16px 16px;width: min(94vw,960px);max-width:94vw;max-height:94dvh;margin:auto;overflow:auto}.photo-viewer::backdrop{background:rgba(0,0,0,.85)}.photo-viewer .photo-full{display:block;width:100%;height:auto;max-height:72dvh;object-fit:contain;border-radius:8px}.photo-close{position:absolute;top:8px;right:10px;min-width:44px;min-height:44px;padding:0;background:#fff;color:#171916;font-size:30px;border-radius:50%;line-height:1}.photo-close:hover{background:#e8e8e8}#photo-caption{text-align:center;line-height:1.5;margin:14px 0 0}.photo-error{text-align:center}

/* Compact pairing cards, with consistent thumbnail sizes. */
.menu-controls{background:#f6f1e9;backdrop-filter:none}
.pairing-heading{margin:30px 0 22px}.pairing-heading .eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 9px;color:#8b745b}.menu-section .pairing-heading h2{font-size:28px;line-height:1.2;margin:0}
.pairing-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px}
.pairing-card{padding:24px;border:1px solid #e6ded2;border-radius:20px;background:#fffdf9;box-shadow:0 3px 14px #493b2510;min-width:0;max-width:540px}
.pairing-product{display:flex;align-items:center;gap:16px;min-height:76px}
.pairing-product .product-photo,.pairing-placeholder{width:76px;height:76px;flex:0 0 76px;border-radius:14px;background:#f2ede5}
.pairing-product .product-photo img{width:76px;height:76px;aspect-ratio:auto;object-fit:cover}
.pairing-placeholder{display:grid;place-items:center;color:#b5a891;font-size:26px}
.pairing-product-copy{min-width:0}.pairing-card .pairing-product-copy h3{font-family:inherit;font-size:16px;line-height:1.45;font-weight:600;margin:0;color:#25352e;overflow-wrap:anywhere}
.pairing-category{display:block;color:#8a7d6a;font-size:10px;letter-spacing:.6px;line-height:1.5;margin-top:5px}
.pairing-join{height:28px;margin:5px 0;display:flex;align-items:center;gap:12px;padding-left:25px;color:#9a815f}.pairing-join:after{content:'';height:1px;flex:1;background:#ece5da}.pairing-join span{display:grid;place-items:center;width:26px;height:26px;border:1px solid #e4d9c8;border-radius:50%;font-size:17px}
.pairing-card .pairing-note{border-top:1px solid #ede6dc;padding-top:16px;margin:20px 0 0;font-size:13px;line-height:1.7;color:#756b5b}
@media(max-width:700px){.pairing-grid{grid-template-columns:1fr;gap:16px}.pairing-card{padding:20px;max-width:none}.pairing-product{gap:14px;min-height:64px}.pairing-product .product-photo,.pairing-placeholder{width:64px;height:64px;flex-basis:64px;border-radius:12px}.pairing-product .product-photo img{width:64px;height:64px}.pairing-card .pairing-product-copy h3{font-size:15px}.pairing-join{padding-left:19px}.menu-section .pairing-heading h2{font-size:25px}}

.pairing-price{display:flex;justify-content:space-between;align-items:baseline;gap:16px;border-top:1px solid #ede6dc;margin-top:18px;padding-top:16px}.pairing-price>span{font-size:12px;color:#756b5b}.pairing-price>strong{font-size:21px;color:var(--brand);font-weight:600;font-variant-numeric:tabular-nums}.pairing-note+.pairing-price{border-top:0;padding-top:0}

/* Borderless vector emblem and live brand lettering. */
@font-face{font-family:AsperaDisplay;src:url("fonts/cormorant-garamond.ttf") format("truetype");font-style:normal;font-weight:300 700;font-display:swap}
.aspera-emblem{display:block;width:160px;max-width:45vw;height:auto;margin:0 auto 4px;border:0;border-radius:0}
.welcome-screen[data-firm="aspera"] .aspera-wordmark{font-family:AsperaDisplay,Georgia,serif;font-size:clamp(64px,16vw,104px);font-weight:300;line-height:1;letter-spacing:-.055em;text-align:center;margin:0 0 24px;padding-right:.055em}
