/* ryanleehuggins.com — Ryan Huggins
   Palette: cool concrete ground, near-black ink, structural blue.
   One ochre, spent only on the submit button. Boldness in one place. */

:root{
  --ground:#EDEEEF;
  --paper:#F8F9F9;
  --ink:#15171A;
  --ink-2:#495159;
  --ink-3:#7B848D;
  --rule:#D6D9DC;
  --rule-2:#E5E8EA;
  --blue:#1F4E79;
  --blue-soft:#E7EDF3;
  --ochre:#A8752C;
  --focus:#1F4E79;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ground:#111417;
    --paper:#171B1F;
    --ink:#E9ECEE;
    --ink-2:#A5ADB5;
    --ink-3:#79828B;
    --rule:#2A3037;
    --rule-2:#20262C;
    --blue:#7FB0DC;
    --blue-soft:#1A242E;
    --ochre:#D6A055;
    --focus:#7FB0DC;
  }
}
:root[data-theme="dark"]{
  --ground:#111417;
  --paper:#171B1F;
  --ink:#E9ECEE;
  --ink-2:#A5ADB5;
  --ink-3:#79828B;
  --rule:#2A3037;
  --rule-2:#20262C;
  --blue:#7FB0DC;
  --blue-soft:#1A242E;
  --ochre:#D6A055;
  --focus:#7FB0DC;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ground);
  color:var(--ink);
  font-family:"Source Serif 4",Georgia,"Times New Roman",serif;
  font-size:17.5px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:1000px;margin:0 auto;padding:0 26px}

h1,h2,h3,.disp{
  font-family:Archivo,"Helvetica Neue",Arial,sans-serif;
  letter-spacing:-.02em;
  text-wrap:balance;
  margin:0;
}
.lab{
  font-family:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
p{margin:0 0 16px;max-width:66ch}
a{color:var(--blue)}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2px solid var(--focus);outline-offset:2px;
}

/* ---------- masthead ---------- */
.top{border-bottom:1px solid var(--rule);padding:22px 0}
.top .wrap{display:flex;justify-content:space-between;align-items:baseline;gap:20px;flex-wrap:wrap}
.name{font-family:Archivo,sans-serif;font-weight:700;font-size:19px;letter-spacing:-.01em}
.where{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--ink-3)}

/* ---------- hero ---------- */
.hero{padding:64px 0 8px}
.hero h1{font-size:clamp(31px,4.6vw,50px);font-weight:700;line-height:1.08;max-width:19ch}
.hero .sub{font-size:19.5px;color:var(--ink-2);max-width:56ch;margin-top:20px}

/* ---------- capture ---------- */
.capture{
  background:var(--paper);
  border:1px solid var(--rule);
  padding:28px 30px 30px;
  margin:38px 0 0;
  max-width:560px;
}
.capture h2{font-size:21px;font-weight:600;margin-bottom:6px}
.capture .why{font-size:15.5px;color:var(--ink-2);margin-bottom:20px;max-width:52ch}
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3)}
.field input{
  font-family:inherit;font-size:16.5px;color:var(--ink);
  background:var(--ground);border:1px solid var(--rule);
  padding:11px 13px;border-radius:0;
}
.field input::placeholder{color:var(--ink-3)}
button[type=submit]{
  font-family:Archivo,sans-serif;font-weight:600;font-size:16.5px;
  background:var(--ochre);color:#15171A;
  border:0;padding:14px 26px;cursor:pointer;width:100%;margin-top:6px;
}
button[type=submit]:hover{filter:brightness(1.07)}
.fineprint{font-size:13.5px;color:var(--ink-3);margin:14px 0 0;max-width:48ch}
.hp{position:absolute;left:-9999px}

/* ---------- sections ---------- */
section{padding:56px 0}
section + section{border-top:1px solid var(--rule)}
h2.head{font-size:13px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:22px}
h3{font-size:23px;font-weight:600;margin-bottom:10px}
.lede{font-size:19px;color:var(--ink-2);max-width:60ch}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px}

/* ---------- question preview ---------- */
ol.q{list-style:none;counter-reset:q;padding:0;margin:0}
ol.q li{counter-increment:q;position:relative;padding:20px 0 20px 60px;border-bottom:1px solid var(--rule-2)}
ol.q li::before{
  content:counter(q,decimal-leading-zero);position:absolute;left:0;top:22px;
  font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--blue);
}
ol.q b{font-family:Archivo,sans-serif;font-weight:600;font-size:18.5px;display:block;margin-bottom:5px;line-height:1.32}
ol.q span{font-size:16px;color:var(--ink-2);display:block;max-width:60ch}
.locked{
  padding:22px 0 0;font-family:Archivo,sans-serif;font-size:16.5px;color:var(--ink-2);
}
.locked a{font-weight:600}

/* ---------- about ---------- */
.about{background:var(--blue-soft);border-left:3px solid var(--blue);padding:24px 28px}
.about p:last-child{margin-bottom:0}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--rule);padding:34px 0 60px;color:var(--ink-3);font-size:13.5px}
footer p{max-width:78ch;margin-bottom:12px}
footer a{color:var(--ink-2)}

/* ---------- thanks / 404 ---------- */
.mid{min-height:58vh;display:flex;flex-direction:column;justify-content:center;padding:60px 0}
.mid h1{font-size:clamp(28px,4vw,42px);font-weight:700;margin-bottom:16px}

@media (max-width:640px){
  .capture{padding:22px 20px 24px}
  ol.q li{padding-left:44px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}
