/* Tokens mirror :root in assets/css/site.css. The gate is a different set of
   pages served by the same binary, and a visitor walks straight from the site
   into it — a different palette here reads as having been handed to a third
   party, which is exactly what the gate exists to avoid looking like.
   Duplicated rather than imported: site.css is 1400 lines the gate does not
   need, and these five values change about once. */
:root{
  --ink:#16171A;
  --paper:#F4F3F1;
  --accent:#16171A;
  --line:#DCDAD6;
  --muted:#5C5F64;

  /* Same three families the site loads, same fallbacks. The webfonts come
     from the <link> in layout.html; if they fail to load the gate degrades to
     the same system faces the site does, not to a different pair. Kept in
     step with assets/css/site.css by hand — these five values move about once
     a project, and the gate looking like a different site is the one outcome
     this whole block exists to prevent. */
  --font-display:'Spectral',Georgia,'Times New Roman',serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
}
*{box-sizing:border-box}
body{
  margin:0;
  min-height:100vh;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.6;
}
.gate{
  max-width:560px;
  margin:0 auto;
  padding:clamp(32px,7vw,80px) clamp(20px,5vw,40px) 80px;
}
.gate-back{
  display:inline-block;
  margin-bottom:clamp(24px,5vw,48px);
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  text-decoration:none;
}
.gate-back:hover{color:var(--ink)}
h1{
  margin:0 0 16px;
  font-family:var(--font-display);
  font-size:clamp(32px,7vw,50px);
  line-height:1.05;
  font-weight:300;
}
.gate-lead{margin:0 0 28px;color:var(--muted)}
h2{
  margin:32px 0 12px;
  font-family:var(--font-display);
  font-size:clamp(20px,3vw,26px);
  line-height:1.25;
  font-weight:400;
  color:var(--ink);
}
.gate-error{
  margin:0 0 20px;
  padding:12px 16px;
  border-left:2px solid var(--ink);
  background:#fff;
}
.gate-form{display:flex;flex-direction:column;gap:6px}
.gate-form label{
  margin-top:14px;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.gate-form input[type=text],
.gate-form input[type=email],
.gate-form input[type=tel]{
  padding:13px 14px;
  border:1px solid var(--line);
  border-radius:2px;
  background:#fff;
  font:inherit;
  color:inherit;
}
.gate-form input:focus{outline:2px solid var(--ink);outline-offset:1px}
/* Written as `.gate-form label.gate-consent`, not `.gate-consent`: this is a
   label inside .gate-form, so the field-label rule above (a class plus an
   element, and therefore more specific than a bare class) was winning and
   setting the consent line in 11px uppercase monospace. That is the one
   sentence on the page a person is agreeing to — it has to read like prose.
   The same rule pair, with the same defect, is in the service this was
   ported from. */
.gate-form label.gate-consent{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:22px;
  font-family:var(--font-body);
  font-size:14px;
  line-height:1.5;
  letter-spacing:0;
  text-transform:none;
  color:var(--muted);
}
.gate-form label.gate-consent input{margin-top:3px}
/* Links inside body copy. Without this the privacy page's mailto links render
   in the browser's default blue, which reads as an error on a page with no
   other colour in it. .gate-back sets its own and is excluded. */
.gate a:not(.gate-back){
  color:var(--ink);
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
  text-decoration-color:var(--line);
  transition:text-decoration-color 300ms ease;
}
.gate a:not(.gate-back):hover,
.gate a:not(.gate-back):focus-visible{text-decoration-color:var(--ink)}
.gate-form button{
  margin-top:26px;
  padding:16px 24px;
  border:0;
  border-radius:2px;
  background:var(--accent);
  color:#fff;
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.18em;
  text-transform:uppercase;
  cursor:pointer;
}
.gate-form button:hover{background:#33353A}
.gate-resend{margin-top:18px}
.gate-link{
  padding:0;
  border:0;
  background:none;
  color:var(--muted);
  font-family:var(--font-mono);
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
  text-decoration:underline;
  cursor:pointer;
}
#cal-inline{min-height:70vh;margin-top:8px}
