/* Layout: one phone-width column that behaves like an app (top bar, scrolling stage, tab bar);
   a "founder view" column sits beside it on wide screens. Always dark: a warm, cast-iron black with one
   food color doing the inviting. Three flavors (color + display face) are switchable so they can be compared. */
:root{
  color-scheme:dark;
  --bg:#0B0907; --surface:#15110D; --raise:#1F1914; --ink:#F7ECDC; --muted:#B5A693;
  --line:#372E26; --chip:#2B231C; --accent:#FFC233; --accent-ink:#2B1B00; --accent-text:#FFC233;
  --foil:#FF6F4E; --good:#93CE6E; --scrim:rgba(0,0,0,.68);
  --display:"Fraunces","Iowan Old Style",Georgia,serif; --d-w:800; --d-w2:700; --d-track:-.03em; --d-lead:.95; --d-scale:1;
  --d-var:"SOFT" 100,"WONK" 1;
  --body:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"DM Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
:root[data-flavor="chili"]{
  --bg:#0C0706; --surface:#170E0B; --raise:#231612; --ink:#FCEBD6; --muted:#BFA696;
  --line:#3D2922; --chip:#30201A; --accent:#FF6A3D; --accent-ink:#2A0B00; --accent-text:#FF8E68;
  --foil:#FFD25A; --good:#9FD37C;
  --display:"Caprasimo","Cooper Black","Rockwell Extra Bold",Georgia,serif; --d-w:400; --d-w2:400; --d-track:-.01em; --d-lead:1; --d-scale:.9;
  --d-var:normal;
}
:root[data-flavor="basil"]{
  --bg:#080A06; --surface:#10140D; --raise:#1A1F14; --ink:#F3F1DE; --muted:#AAB097;
  --line:#2E3525; --chip:#242A1A; --accent:#C4E65A; --accent-ink:#1A2300; --accent-text:#C4E65A;
  --foil:#FF7759; --good:#7FD8A2;
  --display:"Bagel Fat One","Arial Rounded MT Bold","Cooper Black",system-ui,sans-serif; --d-w:400; --d-w2:400; --d-track:0; --d-lead:1.02; --d-scale:.9;
  --d-var:normal;
}

*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2.5px solid var(--accent-text);outline-offset:2px}

.shell{height:100%;display:flex;justify-content:center;gap:20px}
.app{position:relative;width:100%;max-width:460px;height:100%;display:flex;flex-direction:column;background:radial-gradient(120% 46% at 50% -8%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 70%),var(--surface);overflow:hidden}
@media (min-width:500px){
  .shell{padding-inline:16px;padding-block:16px}
  .app{border:1px solid var(--line);border-radius:24px}
}
.top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:16px 20px 0}
.mark{font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w2);font-size:1.02rem;letter-spacing:-.01em}
.clock{font-family:var(--mono);font-size:.72rem;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.stage{flex:1;min-height:0;overflow-y:auto;padding:18px 20px 26px;display:flex;flex-direction:column;gap:18px}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:var(--surface)}
.flavors{display:flex;align-items:center;gap:8px}
.sw{width:22px;height:22px;border-radius:50%;background:var(--c);border:3px solid var(--surface);outline:1.5px solid var(--line);padding:0}
.sw[aria-pressed="true"]{outline:2px solid var(--ink)}
.look{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border:1.5px solid var(--line);background:var(--raise);border-radius:15px;padding:11px 14px}
.look[aria-pressed="true"]{border-color:var(--ink)}
.look b{font-weight:400;font-size:1.35rem;line-height:1.1;flex:1;min-width:0}
.look i{flex:none;width:26px;height:26px;border-radius:50%;background:var(--c)}
.look span{font-size:.82rem;color:var(--muted)}
.tabs button{background:none;border:0;padding:14px 6px 15px;font-weight:600;font-size:.9rem;color:var(--muted);position:relative}
.tabs button[aria-current="page"]{color:var(--ink)}
.tabs button[aria-current="page"]::before{content:"";position:absolute;top:-1px;left:28%;right:28%;height:3px;background:var(--accent);border-radius:0 0 3px 3px}

h1,h2,h3,p{margin:0}
h1{font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w);font-size:calc(clamp(2.5rem,12vw,3.3rem)*var(--d-scale));line-height:var(--d-lead);letter-spacing:var(--d-track);text-wrap:balance}
h2{font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w2);font-size:calc(1.7rem*var(--d-scale));line-height:1.08;letter-spacing:calc(var(--d-track)*.6);text-wrap:balance}
h3{font-size:1rem;font-weight:650}
.lede{font-size:1.08rem;color:var(--muted);max-width:34ch}
.label{font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)} .small{font-size:.88rem}
.stack{display:flex;flex-direction:column;gap:10px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.push{margin-top:auto}

textarea,input[type=text],input[type=number]{width:100%;background:var(--raise);border:1.5px solid var(--line);border-radius:14px;padding:13px 14px;font-size:1.05rem}
textarea{resize:none;min-height:76px;display:block}
textarea::placeholder,input::placeholder{color:var(--muted);opacity:.8}

.btn{display:block;width:100%;border:0;border-radius:15px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:1.08rem;padding:16px 20px;text-align:center}
.btn:disabled{background:var(--chip);color:var(--muted);cursor:not-allowed}
.btn.quiet{background:transparent;color:var(--ink);border:1.5px solid var(--line);font-weight:600}
.btn.slim{padding:11px 16px;font-size:.95rem;width:auto}
.link{background:none;border:0;padding:8px 2px;color:var(--muted);text-decoration:underline;text-underline-offset:3px;font-size:.95rem;text-align:left}
.link.center{align-self:center;text-align:center}

.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip{border:1.5px solid var(--line);background:transparent;border-radius:999px;padding:7px 13px;font-weight:500;font-size:.92rem;line-height:1.2}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.chip.unsure{border-style:dashed;color:var(--muted)}
.chip.unk.on{background:var(--chip);border-color:var(--line);color:var(--muted)}
.chip.skip{text-decoration:line-through;color:var(--muted);border-style:dotted}
.chip.static{cursor:default;background:var(--chip);border-color:transparent}

.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.seg button{border:1.5px solid var(--line);background:transparent;border-radius:12px;padding:11px;font-weight:600}
.seg button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.opt{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;border:1.5px solid var(--line);background:var(--raise);border-radius:15px;padding:11px 16px}
.opt b{display:block;font-size:1.05rem;color:var(--ink)}
.opt span{color:var(--muted);font-size:.88rem}
.opt i{font-style:normal;font-family:var(--mono);font-size:.78rem;color:var(--accent-text);white-space:nowrap}
.blurb{font-size:1.06rem;line-height:1.45;color:var(--ink);opacity:.92;max-width:38ch}
.bal{display:flex;flex-wrap:wrap;gap:6px}
.pill{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;border:1.5px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 9px 3px}
.pill.on{border-color:var(--accent);color:var(--accent-text)}
.move{border-left:3px solid var(--accent);padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:4px}
.move .label{color:var(--accent-text)}
.ingr{border-top:1px solid var(--line);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.ingr ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.ingr li{display:flex;gap:10px;font-size:.98rem;line-height:1.35}
.ingr li::before{content:"";flex:none;width:6px;height:6px;margin-top:.5em;border-radius:50%;background:var(--accent)}
.serv{display:flex;align-items:center;justify-content:space-between;gap:10px}
.serv .seg{grid-template-columns:repeat(3,44px);gap:6px}
.serv .seg button{padding:6px 0}
.cta{position:sticky;bottom:-26px;margin:0 -20px -26px;padding:14px 20px 18px;background:linear-gradient(to bottom,transparent,var(--surface) 22%);display:flex;flex-direction:column;gap:8px;z-index:2}
.cta .row2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cta .row2 .btn{font-size:.95rem;padding:12px 10px}
.look2{border-left:4px solid var(--accent);padding:4px 0 4px 12px}
.look2 .label{color:var(--accent-text)}
.chefnote{background:var(--chip);border-radius:12px;padding:11px 13px;font-size:.92rem;display:flex;flex-direction:column;gap:4px}
.mise{display:flex;flex-direction:column;gap:2px}
.mise label{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line);font-size:1.05rem;line-height:1.35;cursor:pointer}
.mise input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--good)}
.mise input:checked+span{text-decoration:line-through;color:var(--muted)}
.crave{display:flex;gap:7px;overflow-x:auto;padding-bottom:4px;margin:0 -20px;padding-inline:20px;scrollbar-width:none}
.crave .chip{flex:none}
.chip.must{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:650}
.around{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.around span{font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text);text-align:right}
.twistline{font-weight:650;color:var(--accent-text);font-size:1rem}
.twistbox{border:1.5px dashed var(--line);border-radius:16px;padding:14px;display:flex;flex-direction:column;gap:10px}
.twistbox .chip.must{padding-right:10px}
.cta .row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.cta .row3 .btn{font-size:.92rem;padding:12px 6px}
.btn.quiet[aria-pressed="true"]{border-color:var(--accent);color:var(--accent-text)}
.ingr li.tw span{color:var(--accent-text)}
.pctl{display:flex;flex-direction:column;gap:8px}
.stepper{display:flex;align-items:center;justify-content:space-between;border:1.5px solid var(--line);border-radius:12px;padding:4px}
.stepper button{width:46px;height:40px;border:0;background:var(--chip);border-radius:9px;font-size:1.35rem;font-weight:700;line-height:1}
.stepper button:disabled{opacity:.35;cursor:not-allowed}
.stepper span{font-size:1.02rem}
.seg4{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.seg4 button{border:1.5px solid var(--line);background:transparent;border-radius:10px;padding:9px 2px;font-weight:600;font-size:.9rem}
.seg4 button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.step.prep{font-size:1.2rem}
.step.small{font-size:1.08rem;line-height:1.4;font-weight:450}
.seg.ver button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 8px}
.seg.ver button span{font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.04em;opacity:.8}
.step.long{font-size:1.22rem;line-height:1.38}
.mise.knife label{font-size:1rem}
.mise.knife b{font-weight:700}
.idea{border-left:3px solid var(--accent);padding:2px 0 2px 12px;display:flex;flex-direction:column;gap:6px}
.idea .label{color:var(--accent-text)}
.idea p{font-size:1.02rem}
.heat{display:flex;flex-direction:column;gap:6px}
.heat input{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent;margin:0;cursor:pointer}
.heat input::-webkit-slider-runnable-track{height:10px;border-radius:6px;background:linear-gradient(90deg,var(--line),var(--accent) 45%,var(--foil))}
.heat input::-moz-range-track{height:10px;border-radius:6px;background:linear-gradient(90deg,var(--line),var(--accent) 45%,var(--foil))}
.heat input::-webkit-slider-thumb{-webkit-appearance:none;width:28px;height:28px;margin-top:-9px;border-radius:50%;background:var(--ink);border:4px solid var(--surface);box-shadow:0 0 0 1.5px var(--ink)}
.heat input::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--ink);border:4px solid var(--surface);box-shadow:0 0 0 1.5px var(--ink)}
.ticks{display:grid;grid-template-columns:repeat(4,1fr);font-size:.8rem;color:var(--muted)}
.ticks span:nth-child(2){text-align:center;transform:translateX(-17%)}
.ticks span:nth-child(3){text-align:center;transform:translateX(17%)}
.ticks span:last-child{text-align:right}
.ticks span.on{color:var(--ink);font-weight:700}
.check{display:flex;gap:10px;align-items:center;font-size:.95rem}
.check input{width:20px;height:20px;accent-color:var(--good)}

/* the one recommendation */
.tag{align-self:flex-start;font-family:var(--mono);font-weight:500;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;background:transparent;color:var(--ink);border:1.5px solid var(--ink);padding:5px 9px 4px;border-radius:999px}
.meal{font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w);color:var(--accent-text);font-size:calc(clamp(2.5rem,12.5vw,3.5rem)*var(--d-scale));line-height:var(--d-lead);letter-spacing:var(--d-track);text-wrap:balance;overflow-wrap:anywhere}
.facts{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--accent);border-bottom:1px solid var(--line)}
.facts div{padding:11px 10px 12px 0;min-width:0}
.facts div+div{padding-left:12px;border-left:1px solid var(--line)}
.facts b{display:block;font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w2);font-size:1.5rem;line-height:1.05;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.facts span{font-family:var(--mono);font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.why{font-size:1.05rem}
.meal.long{font-size:calc(clamp(2.1rem,9.6vw,2.7rem)*var(--d-scale));line-height:calc(var(--d-lead) + .02)}

/* cooking mode */
.cookbar{display:flex;justify-content:space-between;align-items:center;gap:10px}
.cookbar .label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cookbar .link{white-space:nowrap}
.prog{display:flex;gap:4px}
.prog i{flex:1;height:5px;border-radius:3px;background:var(--line)}
.prog i.done{background:var(--accent)}
.step{font-size:1.5rem;line-height:1.28;font-weight:500;letter-spacing:-.01em}
.term{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline dotted var(--accent-text);text-decoration-thickness:2px;text-underline-offset:4px}
.safe{border-left:4px solid var(--good);padding:4px 0 4px 12px}
.safe .label{color:var(--good)}
.timers{display:flex;flex-wrap:wrap;gap:8px}
.timer{font-family:var(--mono);font-size:.85rem;border:1.5px solid var(--line);border-radius:10px;padding:6px 10px;font-variant-numeric:tabular-nums}
.timer.ring{border-color:var(--foil);color:var(--foil);font-weight:500}
.nav2{display:grid;grid-template-columns:auto 1fr;gap:10px}

/* the order you did not place */
.receipt{position:relative;font-family:var(--mono);font-size:.8rem;line-height:1.55;background:var(--raise);border:1px solid var(--line);border-bottom:0;padding:18px 16px 14px;margin-bottom:10px}
.receipt::after{content:"";position:absolute;left:-1px;right:-1px;bottom:-9px;height:9px;
  background:linear-gradient(135deg,var(--raise) 6px,transparent 0) 0 0/12px 9px repeat-x,linear-gradient(225deg,var(--raise) 6px,transparent 0) 0 0/12px 9px repeat-x}
.receipt .hd{text-align:center;letter-spacing:.12em;text-transform:uppercase}
.receipt hr{border:0;border-top:1.5px dashed var(--line);margin:9px 0}
.receipt .ln{display:flex;justify-content:space-between;gap:12px}
.receipt .ln span:last-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.receipt .tot{font-weight:500;font-size:.95rem}
.stamp{position:relative;display:block;width:max-content;margin:12px auto 4px;transform:rotate(-6deg);border:2.5px solid var(--foil);color:var(--foil);font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w);font-size:1.05rem;letter-spacing:.05em;text-transform:uppercase;padding:2px 9px;border-radius:5px;background:color-mix(in srgb,var(--raise) 82%,transparent)}

.big3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.big3 div{border-top:2px solid var(--ink);padding-top:8px;min-width:0}
.big3 b{display:block;font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w2);font-size:1.9rem;line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.big3 span{font-size:.8rem;color:var(--muted)}
.entry{border-top:1px solid var(--line);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.entry h3{font-family:var(--display);font-variation-settings:var(--d-var);font-weight:var(--d-w2);font-size:1.3rem;letter-spacing:calc(var(--d-track)*.5)}
.twist{font-style:italic}
.empty{border:1.5px dashed var(--line);border-radius:16px;padding:20px 16px;color:var(--muted)}
.note{background:var(--chip);border-radius:12px;padding:11px 13px;font-size:.92rem}
.err{color:var(--foil);font-size:.92rem}

.scrim{position:absolute;inset:0;background:var(--scrim);display:flex;align-items:flex-end;z-index:5}
.sheet{width:100%;max-height:82%;overflow-y:auto;background:var(--surface);border-radius:22px 22px 0 0;padding:22px 20px 24px;display:flex;flex-direction:column;gap:10px}

/* founder view */
.founder{display:none}
.fv{display:flex;flex-direction:column;gap:16px;font-size:.86rem}
.fv h2{font-size:1.3rem}
.fv table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:.74rem}
.fv td{padding:3px 0;vertical-align:top;border-top:1px solid var(--line)}
.fv td:last-child{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.fv .cand{font-family:var(--body);font-weight:650;font-size:.9rem;display:flex;justify-content:space-between;gap:8px;margin-top:4px}
.fv ol{margin:0;padding:0;list-style:none;font-family:var(--mono);font-size:.74rem;display:flex;flex-direction:column;gap:3px}
.fv ol li{display:grid;grid-template-columns:62px 1fr;gap:8px;overflow-wrap:anywhere}
.fv ol time{color:var(--muted)}
.fv textarea{font-family:var(--mono);font-size:.7rem;min-height:90px}
@media (min-width:880px){
  .founder{display:block;width:350px;flex:none;height:100%;overflow-y:auto;padding:6px 4px 20px}
  .only-narrow{display:none}
}
@media (prefers-reduced-motion:no-preference){
  .stage.enter>*{animation:rise .22s ease-out both}
  @keyframes rise{from{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:none}}
}

/* web app: the founder view only exists for the founder (?founder=1) */
:root:not([data-founder]) .founder{display:none!important}
html,body{overscroll-behavior:none}
