*{box-sizing:border-box}
body{
  margin:0;
  min-height:100vh;
  position:relative;
  isolation:isolate;
  background:
    radial-gradient(980px 460px at 6% -10%,#e4ebf3 0%,transparent 56%),
    radial-gradient(760px 400px at 100% 0%,#e8efe6 0%,transparent 50%),
    linear-gradient(180deg,#f4f7fa 0%,#f7f9fc 42%,#f3f6f2 100%);
  color:#17222c;
  font:17px/1.55 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
}
.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 cubic-bezier(.2,0,0,1);
  background:
    linear-gradient(105deg,#f4f7fa 0%,#f4f7facc 38%,#f4f7fa66 62%,#f4f7fa1a 100%),
    linear-gradient(180deg,#f4f7faf2 0%,#f4f7fa80 42%,#f4f7fae6 100%),
    url(/brand/chef-wash.jpg?v=k23) right center / cover no-repeat;
}
main{
  position:relative;
  max-width:28rem;
  margin:0 auto;
  padding:clamp(3.5rem,12vh,7rem) 1.5rem 3rem;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:.8rem;
  font-weight:750;
  font-size:2.7rem;
  letter-spacing:-.04em;
  color:#17222c;
  line-height:1;
}
.brand-mark{
  width:4rem;
  height:4rem;
  flex:none;
  display:block;
  object-fit:contain;
  border-radius:9px;
  outline:1px solid oklch(0 0 0 / .1);
  outline-offset:-1px;
  background:#fff;
  box-shadow:0 1px 0 oklch(0 0 0 / .04);
}
.brand-word{display:inline-block}
.eyebrow{
  font-size:.6875rem;
  font-weight:650;
  letter-spacing:.14em;
  margin:2.85rem 0 0;
  color:#536271;
  text-transform:uppercase;
}
h1{
  font-size:clamp(2rem,5vw,2.35rem);
  line-height:1.08;
  letter-spacing:-.045em;
  margin:.55rem 0 .75rem;
  font-weight:650;
  text-wrap:balance;
}
p{color:#536271;margin:0 0 .85rem;max-width:36ch}
.meal-whisper{
  list-style:none;margin:1.15rem 0 0;padding:0;
  display:block;max-width:14rem;
}
.meal-whisper img{
  width:100%;height:auto;max-height:3.25rem;
  object-fit:contain;object-position:left center;display:block;
  border-radius:6px;outline:1px solid #cdd3da;outline-offset:-1px;
  background:#fff;
}
.ticket{
  margin:1.5rem 0 1.15rem;
  padding:1.15rem 1.15rem 1rem;
  background:#fff;
  border:1px solid #cdd3da;
  border-inline-start:3px solid #1f6b4a;
  border-radius:0 8px 8px 0;
  box-shadow:0 1px 0 oklch(0 0 0 / .04);
}
.ticket-rail{
  margin:0 0 .85rem;
  font-size:.6875rem;
  font-weight:650;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#1f6b4a;
}
label{
  display:block;
  font-size:.875rem;
  font-weight:600;
  margin-bottom:.45rem;
  color:#17222c;
}
input{
  display:block;
  width:100%;
  font:inherit;
  padding:.8rem .85rem;
  border:1px solid #8895a2;
  border-radius:5px;
  background:#fff;
  color:#17222c;
  box-shadow:inset 0 1px 0 oklch(0 0 0 / .02);
}
button{
  font:inherit;
  width:100%;
  min-height:2.85rem;
  padding:.8rem;
  border:1px solid #17222c;
  border-radius:5px;
  background:#17222c;
  color:#fff;
  margin-top:1.05rem;
  cursor:pointer;
  font-weight:600;
  letter-spacing:-.01em;
}
button:hover{background:#2d4153}
input:focus-visible{outline:2px solid #1f6b4a;outline-offset:3px;border-color:color-mix(in srgb,#1f6b4a 45%,#8895a2)}
button:focus-visible{outline:2px solid #1f6b4a;outline-offset:3px}
form{margin:0}
.note{font-size:.75rem;line-height:1.5;max-width:42ch}
.lede{display:inline-flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.info-tip{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.35rem;height:1.35rem;padding:0;margin:0;
  border:0;border-radius:999px;background:transparent;color:#536271;
  cursor:help;vertical-align:middle;
}
.info-tip svg{width:.95rem;height:.95rem;display:block}
.info-tip:hover,.info-tip:focus-visible{color:#1f6b4a;background:color-mix(in srgb,#1f6b4a 12%,#fff);outline:none}
.info-tip:focus-visible{outline:2px solid #1f6b4a;outline-offset:2px}
.ticket p[role=status]{margin:.75rem 0 0;font-size:.875rem;color:#684200;min-height:1.35em}
.ticket:has([role=status]:not(:empty)),.ticket.is-bad{
  border-inline-start-color:#8a3b2a;
  background:color-mix(in srgb,#f7efed 55%,#fff);
}
.ticket:has([role=status]:not(:empty)) .ticket-rail,.ticket.is-bad .ticket-rail{color:#8a3b2a}
button:disabled{opacity:.7;cursor:wait}
::selection{background:color-mix(in srgb,#1f6b4a 22%,#fff);color:#17222c}
input{caret-color:#1f6b4a;font-variant-numeric:tabular-nums}
p[role=status]{font-size:.875rem;color:#684200;min-height:1.35em}
@media(max-width:43rem){
  main{padding:3rem 1.15rem 2.5rem}
  .brand{font-size:2.25rem;gap:.7rem}
  .brand-mark{width:3.35rem;height:3.35rem;border-radius:8px}
  .night-wash{
    background:
      linear-gradient(180deg,#f4f7faf5 0%,#f4f7fae0 48%,#f4f7faf0 100%),
      url(/brand/chef-wash.jpg?v=k23) center 18% / cover no-repeat;
  }
}
@media(prefers-reduced-motion:no-preference){
  .brand-mark{transition:outline-color .18s cubic-bezier(.2,0,0,1),transform .18s cubic-bezier(.2,0,0,1)}
  .brand:hover .brand-mark{transform:translateY(-1px);outline-color:oklch(0 0 0 / .16)}
  button{transition:background-color .15s cubic-bezier(.2,0,0,1),scale .12s cubic-bezier(.2,0,0,1)}
  button:active{scale:.96}
  main{animation:login-in .28s cubic-bezier(.2,0,0,1)}
  .night-wash{animation:wash-in .55s cubic-bezier(.2,0,0,1)}
}
@keyframes wash-in{
  from{opacity:0}
  to{opacity:1}
}
@keyframes login-in{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){
  main,.night-wash{animation:none}
  .brand-mark,button{transition:none}
}
@media(forced-colors:active){
  .brand-mark{outline:1px solid CanvasText}
  button{border:1px solid CanvasText}
  .ticket{border:1px solid CanvasText;border-inline-start:3px solid Highlight}
}
