/* ======================================================================
   GMN BLOG
   Same tokens as index.html so the blog cannot drift away from the site.
   Change a colour here and on the home page or they stop matching - that
   is a real risk with two stylesheets, and the reason this file is short
   and only holds what the blog actually needs.
   ====================================================================== */
:root{
  --panel:#FFFFFF;
  --panel-2:#F5F5F7;
  --line:#E3E3E6;
  --line-hi:#1D1D1F;
  --ink:#1D1D1F;
  --mute:#6E6E73;
  --mute-2:#86868B;
  --ink-panel:#161618;
  --ink-line:#34343A;
  --ink-text:#F5F5F7;
  --ink-mute:#A1A1A6;
  --blue:#0071E3;      /* 4.6:1 on white */
  --blue-hi:#3B9EFF;   /* for the dark panels; #0071E3 is ~3.4:1 there */
  --r:14px;
  --maxw:1180px;
  --read:680px;        /* measure for body copy */
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --display:'Manrope',var(--font);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#FFF;color:var(--ink);font-family:var(--font);
  line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%}
a{color:var(--blue)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 16px}
.read{max-width:var(--read);margin:0 auto;padding:0 16px}

/* ---- nav ------------------------------------------------------------- */
nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.72);
  backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);
  border-bottom:1px solid var(--line);transition:box-shadow .26s ease,background-color .26s ease}
nav.scrolled{background:rgba(255,255,255,.88);
  box-shadow:0 1px 0 rgba(0,0,0,.05),0 10px 30px -24px rgba(0,0,0,.55)}
.navin{display:flex;align-items:center;gap:22px;height:62px}
.navin img{height:26px;width:auto;filter:brightness(0)}
.navlinks{display:none;gap:26px;margin-left:auto;font-size:14px;font-weight:600;color:var(--mute)}
.navlinks a{text-decoration:none;color:inherit;transition:.15s}
.navlinks a:hover{color:var(--blue)}
@media(min-width:820px){.navlinks{display:flex}}
.btn{display:inline-block;text-decoration:none;border-radius:999px;padding:11px 22px;
  font-weight:600;font-size:14.5px;letter-spacing:-.01em;border:none;cursor:pointer;
  background:var(--line-hi);color:#FFF;margin-left:auto;
  transition:transform .16s cubic-bezier(.22,.7,.3,1),background-color .16s}
@media(min-width:820px){.btn{margin-left:0}}
.btn:hover{background:#000;transform:translateY(-1.5px)}
.btn:active{transform:translateY(0)}

/* ---- index ------------------------------------------------------------ */
.head{padding:70px 0 34px}
.head h1{font-family:var(--display);font-weight:800;letter-spacing:-.033em;
  font-size:clamp(34px,5.4vw,56px);line-height:1.04;margin:0 0 14px}
.head p{color:var(--mute);font-size:17px;margin:0;max-width:56ch}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;
  letter-spacing:.02em;text-transform:uppercase;color:var(--mute-2);margin-bottom:16px}
.eyebrow::before{content:"";width:26px;height:1px;background:var(--blue)}

.grid{display:grid;gap:24px;grid-template-columns:1fr;padding-bottom:84px}
@media(min-width:700px){.grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1000px){.grid{grid-template-columns:repeat(3,1fr)}}

.pc{display:flex;flex-direction:column;text-decoration:none;color:inherit;
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--panel);
  transition:transform .18s cubic-bezier(.22,.7,.3,1),border-color .18s,box-shadow .18s}
.pc:hover{transform:translateY(-3px);border-color:var(--line-hi);
  box-shadow:0 18px 40px -30px rgba(0,0,0,.5)}
.pc .ph{aspect-ratio:16/10;background:var(--ink-panel);overflow:hidden}
.pc .ph img{width:100%;height:100%;object-fit:cover;display:block}
.pc .bd{padding:20px 20px 24px;display:flex;flex-direction:column;flex:1}
.pc .kick{font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;
  color:var(--blue);margin-bottom:9px}
.pc h2{font-family:var(--display);font-weight:700;font-size:19px;line-height:1.28;
  letter-spacing:-.018em;margin:0 0 9px}
.pc p{color:var(--mute);font-size:14.5px;margin:0 0 16px;flex:1}
.pc .meta{font-size:12px;color:var(--mute-2);display:flex;gap:10px;align-items:center}

/* ---- post -------------------------------------------------------------- */
.hero{padding:62px 0 0}
.hero h1{font-family:var(--display);font-weight:800;letter-spacing:-.033em;
  font-size:clamp(31px,4.6vw,47px);line-height:1.08;margin:0 0 18px}
.hero .sub{color:var(--mute);font-size:18.5px;line-height:1.55;margin:0 0 22px}
.hero .meta{font-size:13px;color:var(--mute-2);display:flex;flex-wrap:wrap;gap:10px;
  align-items:center;padding-bottom:30px;border-bottom:1px solid var(--line)}
.lead{width:100%;height:clamp(200px,32vw,400px);object-fit:cover;display:block;
  margin:34px 0 0;background:var(--ink-panel)}

article{padding:34px 0 20px;font-size:17px}
article h2{font-family:var(--display);font-weight:700;font-size:25px;letter-spacing:-.022em;
  line-height:1.2;margin:46px 0 14px}
article h3{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.015em;
  margin:32px 0 10px}
article p{margin:0 0 19px}
article ul,article ol{margin:0 0 19px;padding-left:22px}
article li{margin-bottom:9px}
article strong{font-weight:650}
article a{text-underline-offset:3px}
article blockquote{margin:26px 0;padding:18px 22px;background:var(--panel-2);
  border-left:3px solid var(--blue);border-radius:0 8px 8px 0;font-size:16px}
article blockquote p:last-child{margin:0}
.callout{margin:28px 0;padding:22px 24px;background:var(--ink-panel);color:var(--ink-text);
  border-radius:var(--r);font-size:15.5px;line-height:1.6}
.callout b{color:#FFF;display:block;margin-bottom:7px;font-size:16px}
.callout a{color:var(--blue-hi)}
.tbl{width:100%;border-collapse:collapse;margin:24px 0;font-size:15px}
.tbl th,.tbl td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line)}
.tbl th{font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--mute-2);
  font-weight:700}
.tbl td b{font-weight:650}
.src{font-size:13.5px;color:var(--mute);border-top:1px solid var(--line);
  padding-top:22px;margin-top:44px}
.src b{display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--mute-2);margin-bottom:9px}
.src ul{padding-left:18px;margin:0}

/* ---- cta + footer ------------------------------------------------------ */
.cta{background:var(--ink-panel);color:var(--ink-text);border-radius:var(--r);
  padding:56px 30px;text-align:center;margin:60px auto 0;max-width:var(--read)}
.cta h2{font-family:var(--display);font-weight:800;letter-spacing:-.028em;font-size:30px;
  color:#FFF;margin:0 0 12px;line-height:1.14}
.cta p{color:var(--ink-mute);margin:0 auto 26px;max-width:46ch;font-size:16px}
.cta .btn{background:#FFF;color:var(--line-hi);padding:15px 30px;font-size:16px;margin:0}
.cta .btn:hover{background:#FFF}

footer{background:var(--ink-panel);color:var(--ink-mute);margin-top:84px;
  padding:52px 0 36px;font-size:14px}
footer a{color:var(--ink-mute);text-decoration:none}
footer a:hover{color:#FFF}
.fgrid{display:grid;gap:26px;grid-template-columns:1fr}
@media(min-width:760px){.fgrid{grid-template-columns:1.4fr 1fr 1fr}}
.fgrid b{display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;
  color:#FFF;margin-bottom:12px}
.fgrid img{height:44px;width:auto;filter:brightness(0) invert(1);opacity:.93;margin-bottom:12px}
.fcol a{display:block;margin-bottom:8px}
.fine{border-top:1px solid var(--ink-line);margin-top:34px;padding-top:20px;font-size:12.5px;
  color:#7C7C84}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .pc:hover,.btn:hover,.btn:active{transform:none}
}

/* wordmark stands in for the logo until there is a real SVG lockup. The home
   page keeps its mark as a base64 PNG inside its own HTML, so there is no
   file for these pages to reference. */
.wordmark{font-family:var(--display);font-weight:800;font-size:23px;letter-spacing:-.03em;
  color:var(--ink);text-decoration:none;line-height:1}
.wordmark:hover{color:#000}
