@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal;font-weight:700;font-display:swap;
  src:url(/brand/fonts/bricolage-700.woff2) format("woff2");
}
@font-face{
  font-family:"Bricolage Grotesque";
  font-style:normal;font-weight:800;font-display:swap;
  src:url(/brand/fonts/bricolage-800.woff2) format("woff2");
}
@font-face{
  font-family:"Figtree";
  font-style:normal;font-weight:450;font-display:swap;
  src:url(/brand/fonts/figtree-450.woff2) format("woff2");
}
@font-face{
  font-family:"Figtree";
  font-style:normal;font-weight:550;font-display:swap;
  src:url(/brand/fonts/figtree-550.woff2) format("woff2");
}
@font-face{
  font-family:"Figtree";
  font-style:normal;font-weight:650;font-display:swap;
  src:url(/brand/fonts/figtree-650.woff2) format("woff2");
}
@font-face{
  font-family:"Figtree";
  font-style:normal;font-weight:700;font-display:swap;
  src:url(/brand/fonts/figtree-700.woff2) format("woff2");
}
*{box-sizing:border-box}
:root{
  --paper:#f3f6f4;
  --ink:#0e161c;
  --muted:#4a5a66;
  --line:#c5cdc6;
  --pass:#176b45;
  --pass-wash:#e8f2ec;
  --caution:#865500;
  --amber:#d4893a;
  --display:"Bricolage Grotesque",ui-rounded,system-ui,sans-serif;
  --body:"Figtree",ui-sans-serif,system-ui,sans-serif;
  --ease:cubic-bezier(.2,0,0,1);
}
body{
  margin:0;
  min-height:100vh;
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(980px 480px at 8% -8%,#dfe8df 0%,transparent 55%),
    radial-gradient(720px 420px at 100% 4%,#e7efe8 0%,transparent 50%),
    linear-gradient(165deg,#f7faf7 0%,var(--paper) 42%,#eef2ef 100%);
  color:var(--ink);
  font:450 17px/1.5 var(--body);
  -webkit-font-smoothing:antialiased;
  font-optical-sizing:auto;
}
.pass-glow{
  position:fixed;inset:0;z-index:-2;width:100%;height:100%;
  pointer-events:none;display:block;
}
html.has-pass-glow body{background:transparent}
html.has-pass-glow .night-wash{opacity:0}
.night-wash{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  transition:opacity .35s var(--ease);
  background:
    linear-gradient(112deg,#f3f6f4 0%,#f3f6f4d4 36%,#f3f6f488 68%,#f3f6f422 100%),
    linear-gradient(180deg,#f3f6f4f0 0%,#f3f6f4a8 48%,#f3f6f4f2 100%),
    url(/brand/chef-wash.jpg?v=k23) right center / cover no-repeat;
}
main{
  position:relative;
  max-width:24.5rem;
  margin:0 auto;
  padding:clamp(3.5rem,12vh,7rem) 1.25rem 3rem;
}
.hero{margin:0 0 2rem}
.brand{
  display:inline-flex;align-items:center;gap:.85rem;
  text-decoration:none;color:var(--ink);
  font-family:var(--display);
  font-weight:800;font-size:clamp(2.65rem,7vw,3.15rem);
  letter-spacing:-.055em;line-height:.92;
}
.brand-mark{
  width:4.35rem;height:4.35rem;flex:none;display:block;object-fit:contain;
  border-radius:14px;background:transparent;
}
.brand-word span{margin-left:.04em}
.scarce{
  margin:1.35rem 0 0;
  font-size:.72rem;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--pass);
}
h1{
  margin:.55rem 0 .65rem;
  font-family:var(--display);
  font-size:clamp(2.35rem,6.2vw,2.85rem);
  line-height:.98;letter-spacing:-.045em;font-weight:800;
  text-wrap:balance;
}
.lede{
  margin:0;max-width:32ch;color:var(--muted);
  font-size:1.05rem;line-height:1.45;font-weight:450;
  text-wrap:pretty;
}
.meal-rail{
  list-style:none;margin:1.75rem 0 0;padding:0;
  display:flex;align-items:flex-end;gap:.85rem;
}
.meal-rail li{flex:none;margin:0;padding:0;background:none;border:0;outline:0}
.meal-rail img{
  width:4.5rem;height:4.5rem;display:block;object-fit:contain;
  background:transparent;
  filter:drop-shadow(0 8px 14px oklch(0 0 0 / .12));
}
.waitlist{margin:0 0 1.1rem;padding:0}
.waitlist label,.pass label{
  display:block;margin:0 0 .45rem;
  font-size:.78rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--muted);
}
.handle-row{
  display:flex;align-items:stretch;
  border-bottom:2px solid var(--ink);border-radius:0;background:transparent;
  overflow:hidden;
}
.handle-row:focus-within{border-color:var(--pass)}
.at{
  display:grid;place-items:center;
  min-width:1.6rem;padding:0 .1rem 0 0;
  color:var(--muted);font-weight:700;font-size:1.15rem;
}
.handle-row input{
  border:0;border-radius:0;box-shadow:none;outline:none;
  padding:.7rem 0 .75rem;background:transparent;
}
input{
  display:block;width:100%;font:inherit;
  padding:.75rem 0;border:0;border-bottom:2px solid var(--ink);
  border-radius:0;background:transparent;color:var(--ink);caret-color:var(--pass);
  font-variant-numeric:tabular-nums;font-weight:550;
}
input::placeholder{color:#8a969f;font-weight:450}
input:focus-visible{
  outline:none;border-color:var(--pass);
}
button,.primary{
  font:inherit;width:100%;min-height:3rem;margin-top:1.05rem;
  padding:.8rem 1rem;border-radius:4px;cursor:pointer;
  font-weight:700;letter-spacing:-.01em;
}
.primary,.waitlist button{
  border:0;background:var(--ink);color:#fff;
}
.primary:hover,.waitlist button:hover{background:#1a2833}
.pass button{
  border:1.5px solid var(--ink);background:transparent;color:var(--ink);
  border-radius:4px;
}
.pass button:hover{background:var(--ink);color:#fff}
button:disabled{opacity:.65;cursor:wait}
button:active:enabled{scale:.985}
#wait-status,#pass-status{
  margin:.75rem 0 0;min-height:1.3em;font-size:.875rem;color:var(--caution);font-weight:550;
}
#wait-status.is-ok{color:var(--pass)}
.quiet{
  margin:1rem 0 0;font-size:.875rem;color:var(--muted);max-width:34ch;line-height:1.45;
}
.quiet a{color:var(--ink);font-weight:700;text-underline-offset:.18em}
.pass{
  margin:1.75rem 0 0;padding:0;border:0;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.pass summary{
  list-style:none;cursor:pointer;
  min-height:2.9rem;display:flex;align-items:center;
  font-size:.875rem;font-weight:650;color:var(--muted);
  padding:.4rem 0;
}
.pass summary::-webkit-details-marker{display:none}
.pass summary::after{
  content:'';margin-inline-start:auto;
  width:.55rem;height:.55rem;
  border-inline-end:1.5px solid currentColor;border-bottom:1.5px solid currentColor;
  transform:rotate(45deg) translate(-1px,-2px);
  transition:transform .15s var(--ease);
}
.pass[open] summary{color:var(--ink)}
.pass[open] summary::after{transform:rotate(225deg) translate(-1px,-1px)}
.pass form{padding:.2rem 0 0}
.visually-hidden{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;
}
::selection{background:color-mix(in srgb,var(--pass) 22%,#fff);color:var(--ink)}
@media(max-width:43rem){
  main{padding:2.85rem 1.15rem 2.6rem}
  .brand{font-size:2.35rem}
  .brand-mark{width:3.65rem;height:3.65rem;border-radius:12px}
  .meal-rail{gap:.65rem}
  .meal-rail img{width:3.65rem;height:3.65rem}
  .night-wash{
    background:
      linear-gradient(180deg,#f3f6f4f6 0%,#f3f6f4e4 48%,#f3f6f4f2 100%),
      url(/brand/chef-wash.jpg?v=k23) center 18% / cover no-repeat;
  }
}
@media(prefers-reduced-motion:no-preference){
  .brand-mark{transition:transform .18s var(--ease)}
  .brand:hover .brand-mark{transform:translateY(-2px)}
  button{transition:background-color .15s var(--ease),border-color .15s var(--ease),color .15s var(--ease),scale .12s var(--ease)}
  main{animation:rise .34s var(--ease)}
  .night-wash{animation:fade .6s var(--ease)}
  .scarce{animation:rise .34s var(--ease) both;animation-delay:40ms}
  h1{animation:rise .34s var(--ease) both;animation-delay:70ms}
  .lede{animation:rise .34s var(--ease) both;animation-delay:100ms}
  .meal-rail li{animation:rise .36s var(--ease) both}
  .meal-rail li:nth-child(1){animation-delay:120ms}
  .meal-rail li:nth-child(2){animation-delay:160ms}
  .meal-rail li:nth-child(3){animation-delay:200ms}
  .meal-rail li:nth-child(4){animation-delay:240ms}
  .meal-rail li:nth-child(5){animation-delay:280ms}
  .meal-rail img{animation:float 5.2s ease-in-out infinite}
  .meal-rail li:nth-child(2) img{animation-delay:.7s}
  .meal-rail li:nth-child(3) img{animation-delay:1.3s}
  .meal-rail li:nth-child(4) img{animation-delay:1.9s}
  .meal-rail li:nth-child(5) img{animation-delay:2.5s}
  .waitlist{animation:rise .36s var(--ease) both;animation-delay:220ms}
}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes float{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}
@media(prefers-reduced-motion:reduce){
  main,.night-wash,.scarce,h1,.lede,.meal-rail li,.meal-rail img,.waitlist{animation:none}
  .brand-mark,button{transition:none}
}
@media(forced-colors:active){
  button{border:1px solid CanvasText}
  .handle-row,input{border-bottom:2px solid CanvasText}
}
