
/* ── ground ────────────────────────────────────────────────────────────────
   Dark, but warm rather than blue-black: this is a personal site, and the
   accent is lifted from the orange jacket in the portrait rather than from
   Crunchr's palette. The site should look like him, not like his company. */
:root{
  --bg:#0c0d10; --bg-2:#121317; --panel:rgba(255,255,255,.032);
  --line:rgba(255,255,255,.10); --line-2:rgba(255,255,255,.20);
  --ink:#f2efea; --ink-2:#a7a49e; --ink-3:#807d78; --ink-4:#918c86;
  --orange:#FF6B2C; --sand:#E8C39E; --sky:#7FB2D8;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --sans:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,sans-serif;
  --pad:clamp(20px,5vw,88px);
  --rule:1px solid var(--line);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.6;overflow-x:hidden;
  background-image:radial-gradient(1200px 600px at 78% -8%,rgba(255,107,44,.10),transparent 60%);}
a{color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--orange);color:#0c0d10}

.wrap{max-width:1280px;margin:0 auto;padding-inline:var(--pad)}
.lbl{font-family:var(--mono);font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-4)}
.rule{height:1px;background:var(--line);border:0}

/* ── top bar ─────────────────────────────────────────────────────────────── */
header{position:sticky;top:0;z-index:50;backdrop-filter:blur(12px);
  background:rgba(12,13,16,.72);border-bottom:var(--rule)}
header .wrap{display:flex;align-items:center;justify-content:space-between;
  height:66px;gap:20px}
.brand{font-family:var(--mono);font-size:14px;letter-spacing:.16em;text-transform:uppercase;
  text-decoration:none;color:var(--ink);white-space:nowrap}
.brand b{color:var(--orange);font-weight:500}
nav{display:flex;gap:30px}
nav a{font-size:14.5px;text-decoration:none;color:var(--ink-2);transition:color .2s}
nav a:hover{color:var(--ink)}
@media (max-width:720px){nav{display:none}}

/* ── hero ────────────────────────────────────────────────────────────────── */
.hero{padding:clamp(56px,9vw,120px) 0 clamp(40px,6vw,72px)}
.hero .grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,72px);align-items:center}
@media (max-width:900px){.hero .grid{grid-template-columns:1fr}}
h1{font-size:clamp(42px,7.2vw,86px);font-weight:800;letter-spacing:-.035em;line-height:1.02}
h1 em{font-style:normal;color:var(--orange)}
.hero .said{font-size:clamp(19px,2.1vw,25px);line-height:1.45;color:var(--ink-2);
  margin-top:24px;max-width:46ch}
.hero .said b{color:var(--ink);font-weight:600}
.meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px}
.meta span{font-family:var(--mono);font-size:13px;letter-spacing:.1em;color:var(--ink-3)}
.meta span::before{content:"◆";color:var(--orange);margin-right:10px;font-size:9px;vertical-align:2px}

.shot{position:relative;border-radius:20px;overflow:hidden;border:var(--rule);
  aspect-ratio:4/5;background:var(--bg-2)}
.shot img{width:100%;height:100%;object-fit:cover;object-position:50% 62%;
  filter:saturate(.92) contrast(1.04)}
.shot::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(12,13,16,.30) 0%,transparent 34%,rgba(12,13,16,.55) 100%)}
.shot figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 22px;z-index:2;
  font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}

/* ── numbers ─────────────────────────────────────────────────────────────── */
.figures{border-top:var(--rule);border-bottom:var(--rule);
  display:grid;grid-template-columns:repeat(4,1fr)}
@media (max-width:760px){.figures{grid-template-columns:repeat(2,1fr)}}
.fig{padding:30px 24px;border-left:var(--rule)}
.fig:first-child{border-left:0}
@media (max-width:760px){.fig:nth-child(3){border-left:0}}
.fig .n{font-size:clamp(30px,3.6vw,44px);font-weight:800;letter-spacing:-.03em;line-height:1}
.fig .n span{color:var(--orange)}
.fig .k{margin-top:9px;font-size:14.5px;color:var(--ink-3);line-height:1.35}

/* ── sections ────────────────────────────────────────────────────────────── */
section{padding:clamp(56px,8vw,104px) 0}
.head{display:grid;grid-template-columns:220px 1fr;gap:clamp(20px,4vw,56px);align-items:baseline;
  margin-bottom:clamp(28px,4vw,52px)}
@media (max-width:820px){.head{grid-template-columns:1fr;gap:12px}}
h2{font-size:clamp(28px,3.6vw,42px);font-weight:800;letter-spacing:-.028em;line-height:1.12;max-width:22ch}
.head p{color:var(--ink-2);max-width:52ch;font-size:17.5px}

.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,26px)}
@media (max-width:900px){.cards{grid-template-columns:1fr}}
.card{border:var(--rule);border-radius:18px;background:var(--panel);
  padding:clamp(24px,2.4vw,34px);display:flex;flex-direction:column;
  transition:border-color .25s,transform .25s}
.card:hover{border-color:var(--line-2);transform:translateY(-2px)}
.card .n{font-family:var(--mono);font-size:12.5px;letter-spacing:.2em;color:var(--ink-4)}
.card h3{font-size:23px;font-weight:700;letter-spacing:-.014em;margin:14px 0 12px}
.card p{color:var(--ink-2);font-size:16.5px;line-height:1.55}
.card:nth-child(1) .n{color:var(--orange)}
.card:nth-child(2) .n{color:var(--sand)}
.card:nth-child(3) .n{color:var(--sky)}

/* ── the argument ────────────────────────────────────────────────────────── */
.argue{background:var(--bg-2);border-top:var(--rule);border-bottom:var(--rule)}
.argue .pull{font-size:clamp(26px,3.4vw,42px);font-weight:700;letter-spacing:-.026em;
  line-height:1.2;max-width:15ch;color:var(--ink)}
.argue .pull em{font-style:normal;color:var(--orange)}
.argue-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}
@media (max-width:900px){.argue-grid{grid-template-columns:1fr;gap:26px}}
.argue .body{color:var(--ink-2);font-size:17.5px}
.argue .body p + p{margin-top:16px}
.readon{display:inline-flex;align-items:center;gap:12px;margin-top:30px;
  font-family:var(--mono);font-size:13.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;border-bottom:1px solid var(--orange);padding-bottom:7px;
  transition:gap .2s}
.readon:hover{gap:18px}
.readon span{color:var(--orange)}

/* ── ask me ──────────────────────────────────────────────────────────────── */
.asks{display:grid;grid-template-columns:repeat(2,1fr);gap:0 clamp(24px,4vw,64px)}
@media (max-width:820px){.asks{grid-template-columns:1fr}}
.ask{padding:22px 0;border-top:var(--rule);display:grid;grid-template-columns:26px 1fr;gap:18px}
.ask .y{font-family:var(--mono);font-size:13px;color:var(--orange);padding-top:3px}
.ask h3{font-size:17.5px;font-weight:600;letter-spacing:-.01em}
.ask p{color:var(--ink-3);font-size:15.5px;margin-top:5px;line-height:1.5}

/* ── contact ─────────────────────────────────────────────────────────────── */
.end{padding:clamp(64px,9vw,124px) 0 clamp(48px,6vw,80px);text-align:center}
.end h2{margin:0 auto;max-width:18ch}
.end p{color:var(--ink-2);margin:20px auto 0;max-width:44ch}
.cta{display:inline-block;margin-top:36px;background:var(--orange);color:#0c0d10;
  text-decoration:none;font-weight:700;font-size:17px;letter-spacing:-.01em;
  padding:16px 34px;border-radius:999px;transition:transform .2s,box-shadow .2s;
  box-shadow:0 10px 40px rgba(255,107,44,.22)}
.cta:hover{transform:translateY(-2px);box-shadow:0 14px 50px rgba(255,107,44,.32)}
.elsewhere{display:flex;justify-content:center;gap:26px;flex-wrap:wrap;margin-top:34px}
.elsewhere a{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none;transition:color .2s}
.elsewhere a:hover{color:var(--orange)}

footer{border-top:var(--rule);padding:26px 0}
footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
footer span{font-family:var(--mono);font-size:12px;letter-spacing:.12em;color:var(--ink-4)}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}

/* spacing utilities — these replaced the last inline style attributes,
   which had to go so the CSP could drop unsafe-inline for styles */
.mt18{margin-top:18px}
.mt20{margin-top:20px}
.mt22{margin-top:22px}
.mb26{margin-bottom:26px}
