/* ADD Moor — "Drink to live." Signature: sea-moss gel blobs, citrus cross-sections, Roosevelt Row mural geometry. */
:root {
  --paper: #f6f1e7; --paper-2: #efe7d8; --card: #fffaf0; --ink: #13202b; --ink-2: #3c4a55; --muted: #6b7680; --line: #ddd3c1;
  --moss: #2f6b4f; --moss-2: #4f8f6c; --ocean: #0048d8; --deep: #0b1e2d; --citrus: #e8920c; --gold: #f4b740; --coral: #d9542b;
  --ok: #2f6b4f; --warn: #a86400; --bad: #b3261e;
  --r: 18px; --r-s: 10px; --shadow: 0 1px 0 rgba(19,32,43,.06), 0 10px 30px -18px rgba(19,32,43,.35);
  --serif: "Fraunces", Georgia, "Times New Roman", serif; --sans: "Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif; --mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
  color-scheme: light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --paper: #0a1621; --paper-2: #0f1e2b; --card: #112433; --ink: #e9f1ec; --ink-2: #c3d2ca; --muted: #8fa3a0; --line: #1f3546;
    --moss: #6fbf93; --moss-2: #8fd3ab; --ocean: #6d9cff; --citrus: #f2a93b; --gold: #f6c45e; --coral: #ef7a52; --shadow: 0 10px 30px -18px rgba(0,0,0,.8); color-scheme: dark; }
}
:root[data-theme="dark"] { --paper: #0a1621; --paper-2: #0f1e2b; --card: #112433; --ink: #e9f1ec; --ink-2: #c3d2ca; --muted: #8fa3a0; --line: #1f3546;
  --moss: #6fbf93; --moss-2: #8fd3ab; --ocean: #6d9cff; --citrus: #f2a93b; --gold: #f6c45e; --coral: #ef7a52; --shadow: 0 10px 30px -18px rgba(0,0,0,.8); color-scheme: dark; }

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.55 var(--sans); overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-underline-offset: 3px; text-decoration-thickness: 1px; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: 2px solid var(--citrus); outline-offset: 2px; border-radius: 6px; }
.wrap { max-width: 1060px; margin: 0 auto; padding: 0 16px; }
.narrow { max-width: 680px; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; letter-spacing: -.01em; line-height: 1.1; margin: 0 0 .4em; font-variation-settings: "SOFT" 100, "opsz" 96; }
h1 { font-size: clamp(2.6rem, 9vw, 5.2rem); }
h2 { font-size: clamp(1.7rem, 5vw, 2.5rem); }
h3 { font-size: 1.25rem; }
.label { font: 500 .72rem/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.muted { color: var(--muted); }
.small { font-size: .88rem; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* preview banner */
.preview { background: var(--deep); color: #e9f1ec; font: 500 .74rem/1.3 var(--mono); letter-spacing: .04em; text-align: center; padding: 7px 16px; }
.preview b { color: var(--gold); font-weight: 500; }
:root[data-theme="dark"] .preview, :root:not([data-theme="light"]) .preview { border-bottom: 1px solid var(--line); }

/* top bar */
.top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; max-width: 1060px; margin: 0 auto; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; }
.brand .mark { width: 34px; height: 34px; }
.brand b { font: 600 1.15rem/1 var(--serif); letter-spacing: .02em; }
.brand small { display: block; font: .64rem/1.2 var(--mono); letter-spacing: .14em; color: var(--muted); text-transform: uppercase; }
.top nav { display: flex; gap: 6px; align-items: center; }
.iconbtn { min-width: 44px; min-height: 44px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); display: inline-grid; place-items: center; cursor: pointer; padding: 0 14px; text-decoration: none; font-size: .92rem; }
.iconbtn .n { background: var(--citrus); color: #1b1203; border-radius: 999px; font: 600 .7rem/1 var(--mono); padding: 3px 6px; margin-left: 6px; }

/* buttons + inputs */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 999px; border: 0; cursor: pointer; text-decoration: none; font-weight: 600; background: var(--ink); color: var(--paper); transition: transform .15s ease; }
.btn:active { transform: scale(.98); }
.btn.citrus { background: var(--citrus); color: #1b1203; }
.btn.moss { background: var(--moss); color: #fff; }
.btn.ghost { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.btn.small { min-height: 40px; padding: 0 16px; font-size: .9rem; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.field { display: grid; gap: 6px; margin: 0 0 14px; }
.field > span { font-size: .86rem; color: var(--ink-2); }
input[type=text], input[type=tel], input[type=email], input[type=number], input[type=date], input[type=datetime-local], input[type=search], select, textarea {
  width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-s); background: var(--card); }
textarea { min-height: 110px; resize: vertical; }
.row { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.grid2 { display: grid; gap: 12px; grid-template-columns: 1fr 1fr; }
@media (max-width: 520px) { .grid2 { grid-template-columns: 1fr; } }
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }

/* chips */
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { min-height: 40px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); cursor: pointer; font-size: .9rem; display: inline-flex; align-items: center; gap: 6px; }
.chip[aria-pressed="true"] { background: var(--moss); border-color: var(--moss); color: #fff; }
.tag { display: inline-block; font: 500 .66rem/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; padding: 5px 8px; border-radius: 999px; border: 1px solid var(--line); color: var(--ink-2); }
.tag.sample { border-color: var(--citrus); color: var(--warn); }
:root[data-theme="dark"] .tag.sample { color: var(--gold); }
.tag.local { border-color: var(--coral); color: var(--coral); }

/* hero — calm pane */
.hero { position: relative; padding: 28px 0 40px; isolation: isolate; }
.hero .gel { position: absolute; z-index: -1; inset: -40px -10vw auto auto; width: min(560px, 90vw); opacity: .9; pointer-events: none; }
.hero p.lead { font-size: 1.12rem; color: var(--ink-2); max-width: 34rem; }
.badge-bo { display: inline-flex; align-items: center; gap: 8px; font: 500 .72rem/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; padding: 8px 12px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); }
.badge-bo i { width: 10px; height: 10px; border-radius: 50%; background: conic-gradient(var(--coral) 0 33%, var(--gold) 0 66%, var(--moss) 0); }

.zonebox { margin-top: 22px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; box-shadow: var(--shadow); max-width: 480px; }
.zonebox form { display: flex; gap: 8px; }
.zonebox input { flex: 1; }
.zoneout { min-height: 1.5em; margin-top: 10px; font-size: .95rem; }
.quiet { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 22px; font-size: .95rem; }
.quiet a { text-decoration: none; border-bottom: 1px solid var(--line); padding: 8px 0; }

/* mural band (Roosevelt Row) */
.mural { height: 26px; background-image: url("/img/mural.svg"); background-size: 104px 26px; background-repeat: repeat-x; opacity: .9; }

/* sections */
section { padding: 34px 0; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 18px; box-shadow: var(--shadow); }
.split { display: grid; gap: 24px; grid-template-columns: 1.1fr .9fr; align-items: center; }
@media (max-width: 760px) { .split { grid-template-columns: 1fr; } }
.photo { border-radius: var(--r); overflow: hidden; position: relative; }
.photo figcaption { position: absolute; right: 10px; bottom: 8px; font: .66rem var(--mono); color: #fff; background: rgba(0,0,0,.45); padding: 3px 7px; border-radius: 999px; }

/* menu */
.menu-list { display: grid; gap: 14px; }
.item { display: grid; grid-template-columns: 96px 1fr; gap: 14px; align-items: start; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 14px; }
.item .thumb { width: 96px; height: 96px; border-radius: 14px; overflow: hidden; background: var(--paper-2); display: grid; place-items: center; }
.item .thumb img { width: 100%; height: 100%; object-fit: cover; }
.item h3 { margin: 0 0 4px; }
.item .tags { display: flex; gap: 6px; flex-wrap: wrap; margin: 6px 0; }
.item .opts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.opt { min-height: 44px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); padding: 6px 12px; cursor: pointer; text-align: left; font-size: .88rem; }
.opt b { display: block; font: 600 .95rem var(--mono); }
.opt:hover { border-color: var(--moss); }
.price { font: 600 1rem var(--mono); }
.cat-h { display: flex; align-items: center; gap: 12px; margin: 26px 0 10px; }
.cat-h svg { width: 28px; height: 28px; flex: none; }

/* sheet (bag, everything) */
.scrim { position: fixed; inset: 0; background: rgba(5,12,18,.5); opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 40; }
.scrim.on { opacity: 1; pointer-events: auto; }
.sheet { position: fixed; z-index: 41; left: 0; right: 0; bottom: 0; max-height: 92dvh; background: var(--paper); border-radius: 22px 22px 0 0; transform: translateY(105%); transition: transform .25s ease; display: flex; flex-direction: column; box-shadow: 0 -10px 40px rgba(0,0,0,.25); }
.sheet.on { transform: none; }
.sheet header { display: flex; justify-content: space-between; align-items: center; padding: 14px 16px; border-bottom: 1px solid var(--line); position: sticky; top: 0; }
.sheet .body { overflow: auto; padding: 16px; overscroll-behavior: contain; }
@media (min-width: 760px) { .sheet { left: auto; top: 0; width: 460px; max-height: none; border-radius: 0; transform: translateX(105%); } }
body.locked { overflow: hidden; }
.everything a { display: block; padding: 14px 0; border-bottom: 1px solid var(--line); text-decoration: none; font-size: 1.05rem; }
.everything a small { display: block; color: var(--muted); font-size: .84rem; }

.bagline { display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.qty { display: inline-flex; align-items: center; gap: 6px; }
.qty button { width: 36px; height: 36px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); cursor: pointer; }
.sum { display: grid; grid-template-columns: 1fr auto; gap: 4px; margin: 12px 0; font-family: var(--mono); font-size: .92rem; }
.sum .total { font-weight: 700; font-size: 1.05rem; border-top: 1px solid var(--line); padding-top: 6px; }
.seg { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; background: var(--paper-2); padding: 4px; border-radius: 999px; margin-bottom: 14px; }
.seg button { min-height: 44px; border-radius: 999px; border: 0; background: transparent; cursor: pointer; font-weight: 600; }
.seg button[aria-pressed="true"] { background: var(--card); box-shadow: var(--shadow); }
.choice { display: grid; gap: 6px; max-height: 260px; overflow: auto; }
.choice label { display: flex; gap: 10px; align-items: center; min-height: 44px; padding: 8px 12px; border: 1px solid var(--line); border-radius: 12px; background: var(--card); cursor: pointer; }
.choice input { accent-color: var(--moss); }
.note { border-left: 3px solid var(--citrus); padding: 8px 12px; background: var(--paper-2); border-radius: 0 10px 10px 0; font-size: .9rem; }
.err { color: var(--bad); font-size: .92rem; min-height: 1.2em; }
.ok { color: var(--ok); }

/* tracker */
.steps { list-style: none; padding: 0; margin: 18px 0; display: grid; gap: 0; }
.steps li { display: grid; grid-template-columns: 30px 1fr; gap: 10px; align-items: center; min-height: 44px; color: var(--muted); position: relative; }
.steps li .dot { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--line); margin-left: 6px; background: var(--paper); }
.steps li.done { color: var(--ink); } .steps li.done .dot { background: var(--moss); border-color: var(--moss); }
.steps li.now { color: var(--ink); font-weight: 600; } .steps li.now .dot { border-color: var(--citrus); background: var(--gold); animation: breathe 2.6s ease-in-out infinite; }
@keyframes breathe { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.25); } }
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
.lamp { display: flex; align-items: center; gap: 12px; color: var(--muted); padding: 24px 0; }
.lamp svg { width: 34px; height: 34px; animation: spin 18s linear infinite; }
@keyframes spin { to { transform: rotate(1turn); } }

/* recipes */
.rgrid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.rcard { display: flex; flex-direction: column; gap: 8px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r); padding: 16px; text-decoration: none; position: relative; }
.rcard h3 { margin: 0; }
.fav { position: absolute; right: 10px; top: 10px; width: 44px; height: 44px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); cursor: pointer; font-size: 1.1rem; }
.fav[aria-pressed="true"] { background: var(--coral); color: #fff; border-color: var(--coral); }
.stars button { width: 44px; height: 44px; border: 0; background: none; cursor: pointer; font-size: 1.4rem; color: var(--line); }
.stars button.on { color: var(--citrus); }
ol.steps-r { padding-left: 1.2em; } ol.steps-r li { margin: 0 0 10px; }

/* footer + reach */
.reach { padding: 44px 0 28px; }
.reach p.serif { font: 400 1.5rem/1.3 var(--serif); margin: 0 0 14px; }
.reach dl { display: grid; grid-template-columns: max-content 1fr; gap: 6px 16px; margin: 0; }
.reach dt { font: .72rem var(--mono); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); padding-top: 3px; }
.reach dd { margin: 0; }
footer { padding: 20px 0 40px; font-size: .82rem; color: var(--muted); }
.disclaimer { font-size: .8rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 14px; margin-top: 14px; }

/* staff screens */
.staff body, body.staff { background: var(--paper-2); }
.board { display: grid; gap: 12px; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ticket { background: var(--card); border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.ticket h3 { font-family: var(--mono); font-size: 1.05rem; margin: 0; }
.ticket ul { padding-left: 1.1em; margin: 8px 0; }
.ticket .acts { display: flex; gap: 8px; flex-wrap: wrap; }
.tabs { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: none; }
.tabs button { flex: none; }
table.t { width: 100%; border-collapse: collapse; font-size: .9rem; }
table.t td, table.t th { border-bottom: 1px solid var(--line); padding: 8px 6px; text-align: left; vertical-align: top; }
.demo-pill { background: var(--gold); color: #1b1203; font: 600 .66rem var(--mono); padding: 3px 7px; border-radius: 999px; letter-spacing: .08em; }
@media print { .preview, .top, .noprint { display: none !important; } body { background: #fff; color: #000; } .card { box-shadow: none; } }
html, body { overflow-x: clip; }
.hero { overflow: visible; }
@media (max-width: 700px) {
  table.t thead { display: none; }
  table.t, table.t tbody, table.t tr, table.t td { display: block; width: 100%; }
  table.t tr { border-bottom: 1px solid var(--line); padding: 10px 0; }
  table.t td { border: 0; padding: 3px 0; }
}
/* hero blob: sits behind the top-right, never under the reading line */
.hero .gel { inset: -70px -38vw auto auto; width: min(520px, 92vw); opacity: .5; }
@media (min-width: 760px) { .hero .gel { inset: -60px -4vw auto auto; width: 520px; opacity: .85; } .hero p.lead { max-width: 30rem; } }
.hero h1, .hero p.lead { position: relative; text-shadow: 0 1px 0 var(--paper), 0 0 18px var(--paper); }
.preview .pv-demo { display: inline; }
@media (max-width: 560px) { .preview { font-size: .64rem; padding: 6px 12px; } .preview .pv-demo { display: none; } }
.line2 { display: flex; justify-content: space-between; gap: 12px; padding: 4px 0; }
.line2 span:last-child { font-family: var(--mono); white-space: nowrap; }
.rhead svg { width: 56px; height: 56px; flex: none; }
.top { position: relative; z-index: 3; }
