/* Antenna design system (2026-10-07). Glass surfaces over a quiet signal-wave backdrop, one sans
   family throughout, the original palette. Linked LAST on every page, so it is the one place the look
   is set. Pages written for it (index, work) use only these classes; older pages (services,
   Pollinator) add body.ant-legacy and pick up the type, backdrop and glass from the bottom section. */
:root{
  --ink:#22201C;--paper:#FBF7F0;--oat:#EFE6D7;--navy:#1a2a3f;--navy-2:#22364f;--coral:#f15c5c;--sage:#8FA29A;
  --coral-ink:#b83a3a;            /* coral for small text on paper: AA, still the coral */
  --muted:#55534c;--line:rgba(34,32,28,.12);
  --sans:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',sans-serif;
  --serif:var(--sans);            /* the brand is all sans now; legacy pages read --serif */
  --glass-1:rgba(255,255,255,.72);--glass-2:rgba(255,255,255,.5);--glass-edge:rgba(255,255,255,.9);
  --glass-line:rgba(26,42,63,.10);--glass-shadow:0 24px 50px -30px rgba(26,42,63,.35);
  --dglass-1:rgba(255,255,255,.08);--dglass-2:rgba(255,255,255,.035);--dglass-line:rgba(255,255,255,.14);
  --radius:16px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;
  background:var(--paper);position:relative;isolation:isolate}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(55vmax 40vmax at 0% 0%,rgba(241,92,92,.16),transparent 62%),
  radial-gradient(50vmax 42vmax at 100% 40%,rgba(143,162,154,.24),transparent 62%),
  radial-gradient(45vmax 35vmax at 40% 105%,rgba(26,42,63,.10),transparent 65%),var(--paper)}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.55;background:url(/assets/signal.svg) center/cover no-repeat}
body.ant-page img{max-width:100%;display:block}
body.ant-page a{color:inherit}
.a-wrap{max-width:1140px;margin:0 auto;padding:0 28px}
.a-narrow{max-width:780px}
@media(max-width:600px){.a-wrap{padding:0 18px}}

/* type: one family, weight does the work */
.h1,.h2,.h3{font-family:var(--sans);color:var(--navy);margin:0 0 .4em}
.h1{font-size:clamp(2.5rem,6vw,4.4rem);font-weight:800;line-height:1.02;letter-spacing:-.035em}
.h2{font-size:clamp(1.75rem,3.6vw,2.6rem);font-weight:750;line-height:1.1;letter-spacing:-.025em}
.h3{font-size:1.15rem;font-weight:700;line-height:1.25;letter-spacing:-.01em}
.a-eyebrow{display:block;font-weight:700;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--coral-ink);margin-bottom:1em}
.a-lead{font-size:1.2rem;line-height:1.55;color:var(--ink);max-width:62ch;margin:0 0 1em}
.a-muted{color:var(--muted)}
.a-p{margin:0 0 1em}
.a-small{font-size:.9rem}
.accent{color:var(--coral)}

/* header */
.ant-nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 72%,transparent);
  -webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);border-bottom:1px solid var(--glass-line)}
.ant-nav .a-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:14px;padding-bottom:14px}
.ant-brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--navy)}
.ant-brand .mark{width:40px;height:40px;border-radius:10px;overflow:hidden;flex:0 0 40px;box-shadow:0 6px 16px -8px rgba(241,92,92,.8)}
.ant-brand .mark img{width:100%;height:100%}
.ant-brand .name{font-weight:800;font-size:1.22rem;letter-spacing:-.02em;line-height:1}
.ant-brand .name small{display:block;font-weight:600;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.ant-links{display:flex;align-items:center;gap:6px;font-size:.95rem}
.ant-links > a{color:var(--navy);text-decoration:none;padding:8px 12px;border-radius:10px;font-weight:600}
.ant-links > a:hover,.ant-links > a[aria-current]{background:rgba(26,42,63,.07)}
.ant-links .pill{border:1px solid rgba(184,58,58,.55);color:var(--coral-ink);padding:6px 14px;border-radius:999px}
.ant-links .pill:hover{background:rgba(241,92,92,.1)}
@media(max-width:820px){.ant-links > a.hide-sm{display:none}.ant-brand .name small{display:none}}
@media(max-width:420px){.ant-links{gap:2px}.ant-links > a{padding:7px 8px;font-size:.88rem}.ant-links .pill{display:none}}

/* buttons: one primary per section */
.a-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 24px;border-radius:999px;text-decoration:none;font-weight:700;font-size:1rem;
  border:1px solid transparent;cursor:pointer;font-family:var(--sans);transition:transform .15s,filter .15s,background .15s,border-color .15s}
.a-btn-primary{background:linear-gradient(180deg,#f46d6d,#dc4646);color:#fff;border-color:rgba(184,58,58,.6);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 12px 26px -12px rgba(220,70,70,.9)}
.a-btn-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.a-btn-secondary{background:var(--glass-1);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-color:var(--glass-line);color:var(--navy)}
.a-btn-secondary:hover{border-color:rgba(241,92,92,.6)}
.on-dark .a-btn-secondary{background:var(--dglass-1);border-color:var(--dglass-line);color:#fff}
.btns{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.a-btn:focus-visible,.card-link:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(241,92,92,.45)}

/* sections and surfaces */
.sec{padding:96px 0}
.sec-tight{padding:64px 0}
@media(max-width:700px){.sec{padding:64px 0}}
.sec-head{max-width:64ch;margin-bottom:40px}
.glass{background:linear-gradient(180deg,var(--glass-1),var(--glass-2));-webkit-backdrop-filter:blur(18px) saturate(150%);backdrop-filter:blur(18px) saturate(150%);
  border:1px solid var(--glass-line);border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--glass-edge),var(--glass-shadow)}
.band{background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.18));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  border-top:1px solid var(--glass-line);border-bottom:1px solid var(--glass-line)}
.on-dark{position:relative;overflow:hidden;color:#e9ecef;background:
  radial-gradient(60% 80% at 100% 0%,rgba(241,92,92,.28),transparent 60%),
  radial-gradient(50% 70% at 0% 100%,rgba(143,162,154,.22),transparent 60%),var(--navy)}
.on-dark::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.22;background:url(/assets/signal.svg) center/cover no-repeat;filter:invert(1)}
.on-dark > *{position:relative;z-index:1}
.on-dark .h1,.on-dark .h2,.on-dark .h3{color:#fff}
.on-dark .a-eyebrow{color:#ff8a8a}
.on-dark .a-lead,.on-dark .a-muted{color:#d5dbe0}
.on-dark .glass{background:linear-gradient(180deg,var(--dglass-1),var(--dglass-2));border-color:var(--dglass-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 50px -30px rgba(0,0,0,.6)}

/* hero */
.a-hero{padding:110px 0 96px}
.a-hero .h1{max-width:16ch}
.a-hero .a-lead{font-size:1.28rem;max-width:58ch}
.a-hero .btns{margin-top:30px}
.hero-meta{margin-top:40px;display:flex;flex-wrap:wrap;gap:10px}
.chip{display:inline-flex;align-items:center;gap:7px;font-size:.84rem;font-weight:600;padding:6px 13px;border-radius:999px;
  background:var(--dglass-1);border:1px solid var(--dglass-line);color:#e9ecef}
.chip::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--coral)}
@media(max-width:700px){.a-hero{padding:72px 0 64px}}

/* hero visual: real work, framed in glass */
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:44px;align-items:center}
.hero-art{position:relative;aspect-ratio:5/4}
.hero-shot{position:absolute;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.18);
  box-shadow:0 30px 60px -28px rgba(0,0,0,.75),inset 0 1px 0 rgba(255,255,255,.2);background:#0d1828}
.hero-shot img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}
.hero-shot--back{width:86%;aspect-ratio:16/10;right:0;top:0;opacity:.92}
.hero-shot--front{width:72%;aspect-ratio:16/10;left:0;bottom:4%}
@media(max-width:900px){.hero-grid{grid-template-columns:minmax(0,1fr);gap:36px}.hero-art{max-width:520px;width:100%}}

/* grids */
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:980px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}}

/* cards */
.card{padding:26px 24px}
.card .h3{margin-bottom:8px}
.card p{margin:0;color:var(--muted);font-size:.98rem;line-height:1.58}
.on-dark .card p{color:#cdd4da}
.a-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;margin-bottom:16px;
  background:linear-gradient(180deg,rgba(241,92,92,.16),rgba(241,92,92,.06));border:1px solid rgba(241,92,92,.35);color:var(--coral-ink)}
.on-dark .a-icon{color:#ff8a8a}
.a-icon svg{width:22px;height:22px}
.card ul{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:.95rem}
.card li{margin:3px 0}
.on-dark .card ul{color:#cdd4da}

/* work cards with a real screenshot */
.work{display:flex;flex-direction:column;overflow:hidden;text-decoration:none;color:inherit;transition:transform .2s,border-color .2s}
.work:hover{transform:translateY(-3px);border-color:rgba(241,92,92,.55)}
.work .shot{aspect-ratio:16/10;overflow:hidden;background:var(--navy);border-bottom:1px solid var(--glass-line)}
.work .shot img{width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .5s}
.work:hover .shot img{transform:scale(1.03)}
.work .body{padding:20px 22px 22px;display:flex;flex-direction:column;gap:6px;flex:1}
.work .kind{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--coral-ink)}
.work .h3{margin:0}
.work p{margin:0;color:var(--muted);font-size:.96rem}
.work .go{margin-top:auto;padding-top:10px;font-weight:700;font-size:.92rem;color:var(--navy)}
.work .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.tag{font-size:.76rem;font-weight:600;padding:3px 9px;border-radius:999px;background:rgba(26,42,63,.06);border:1px solid var(--glass-line);color:var(--navy)}
.venture-note{padding:18px 22px;border-left:3px solid var(--coral);margin:0 0 28px;color:var(--ink)}

/* steps */
.a-steps{counter-reset:s}
.a-step{position:relative;padding:24px 22px}
.a-step::before{counter-increment:s;content:counter(s);display:grid;place-items:center;width:32px;height:32px;border-radius:10px;margin-bottom:14px;
  background:linear-gradient(180deg,#f46d6d,#dc4646);color:#fff;font-weight:800;font-size:.95rem}

/* Pollinator callout */
.callout{padding:40px 36px;display:grid;grid-template-columns:minmax(0,1.4fr) auto;gap:28px;align-items:center}
@media(max-width:760px){.callout{grid-template-columns:minmax(0,1fr);padding:28px 22px}}

/* about */
.about{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr);gap:22px;align-items:start}
@media(max-width:760px){.about{grid-template-columns:minmax(0,1fr)}}
.person{padding:24px;display:flex;gap:16px;align-items:center}
.person img{width:84px;height:84px;border-radius:50%;object-fit:cover;border:2px solid #fff;box-shadow:0 8px 20px -10px rgba(26,42,63,.6)}
.person a{color:var(--coral-ink);font-weight:600;text-decoration:none}
.person a:hover{text-decoration:underline}

/* form */
.form{display:grid;gap:16px;max-width:700px;margin-top:30px;padding:28px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:580px){.form .row{grid-template-columns:1fr}.form{padding:20px}}
.form label{display:flex;flex-direction:column;gap:7px;font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#e9ecef}
.form input,.form textarea{background:rgba(255,255,255,.96);border:1px solid transparent;border-radius:10px;padding:13px 14px;font-family:var(--sans);font-size:1rem;color:var(--ink);width:100%;
  font-weight:400;letter-spacing:normal;text-transform:none}
.form input::placeholder,.form textarea::placeholder{color:#8d8a84}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--coral);box-shadow:0 0 0 3px rgba(241,92,92,.35)}
.form textarea{resize:vertical;min-height:96px;line-height:1.5}
.form .helper{font-size:.9rem;color:#c9d0d6;margin:0}
.form .helper a{color:#fff}

/* footer */
.ant-foot{padding:44px 0;background:var(--navy);color:#c9d0d6;font-size:.92rem}
.ant-foot .a-wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:center}
.ant-foot a{color:#fff;text-decoration:none}
.ant-foot a:hover{text-decoration:underline}
.ant-foot nav{display:flex;flex-wrap:wrap;gap:6px 18px}

@media (prefers-reduced-transparency:reduce){
  .glass,.ant-nav,.band,.a-btn-secondary{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}
  .on-dark .glass{background:var(--navy-2)}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* ===== older pages (services, Pollinator): body.ant-legacy ==========================================
   Their own <style> blocks set serif headings and solid cards. This keeps their layout and swaps in
   the sans type, the backdrop and glass cards. Linked after their <style>, so it wins on order. */
body.ant-legacy{background:transparent}
body.ant-legacy h1,body.ant-legacy h2,body.ant-legacy h3,body.ant-legacy h4{font-family:var(--sans);font-weight:750;letter-spacing:-.025em}
body.ant-legacy h1{letter-spacing:-.035em;font-weight:800}
body.ant-legacy h3,body.ant-legacy h4{font-weight:700;letter-spacing:-.01em}
body.ant-legacy .brand .name{font-family:var(--sans);font-weight:800;letter-spacing:-.02em}
body.ant-legacy header.nav{background:color-mix(in srgb,var(--paper) 72%,transparent);-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%)}
body.ant-legacy .eyebrow{color:var(--coral-ink)}
body.ant-legacy .hero .eyebrow,body.ant-legacy .studio .eyebrow,body.ant-legacy .cta-section .eyebrow{color:#ff8a8a}
@media(max-width:760px){body.ant-legacy .dropdown-menu{display:none}}
