/* ============================================================
   BLOGS — page styles. Existing tokens only.
   ============================================================ */
.blogs-page { --surf: var(--ct-graphite); --surf-2:#191c20; --ink: var(--ct-white);
  --ink-dim: rgba(255,255,255,.66); --edge: var(--line); }
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.scroll-progress{position:fixed;top:62px;left:0;right:0;height:2px;background:var(--ct-red);
  transform:scaleX(0);transform-origin:0 50%;z-index:60;pointer-events:none;will-change:transform}
@media(max-width:900px){.scroll-progress{top:56px}}
.reveal-ready .blogs-page [data-reveal],.reveal-ready .blogs-page [data-reveal-group]>*{
  opacity:0;transform:translateY(20px);transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}
.reveal-ready .blogs-page [data-reveal].revealed,.reveal-ready .blogs-page [data-reveal-group]>*.revealed{opacity:1;transform:none}

/* ---------- featured ---------- */
.feat{position:relative}
.feat-link{position:relative;display:block;min-height:72vh;text-decoration:none;color:inherit;overflow:hidden;isolation:isolate}
.feat-shot{position:absolute;inset:0;z-index:0}
.feat-shot img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);
  transition:transform .8s cubic-bezier(.16,1,.3,1)}
.feat-link:hover .feat-shot img,.feat-link:focus-visible .feat-shot img{transform:scale(1)}
.feat-scrim{position:absolute;inset:0;z-index:1;background:
  linear-gradient(100deg,rgba(0,0,0,.9) 0%,rgba(0,0,0,.72) 38%,rgba(0,0,0,.2) 70%,rgba(0,0,0,.05) 100%),
  linear-gradient(to top,rgba(17,17,17,.96) 0%,rgba(17,17,17,0) 46%)}
.feat-copy{position:relative;z-index:2;max-width:min(820px,92%);padding:0 var(--gutter) 9vh;
  display:flex;flex-direction:column;justify-content:flex-end;min-height:72vh}
.feat-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-size:10px;letter-spacing:.18em;color:var(--ink-dim)}
.chip-cat{background:var(--ct-red);color:#111;padding:5px 10px;font-weight:600;letter-spacing:.14em}
.blogs-page .feat-title{margin:20px 0 0;font-size:clamp(26px,3.9vw,54px);line-height:1.08}
.feat-excerpt{margin-top:20px;max-width:60ch;font-size:16px;line-height:1.7;color:var(--ink-dim)}
.feat-cta{margin-top:32px;align-self:flex-start}
.feat-tag{position:absolute;top:0;right:0;z-index:3;background:var(--ct-black);color:var(--ct-red);
  font-size:9px;letter-spacing:.26em;padding:11px 16px}
.feat-link:focus-visible{outline:2px solid var(--ct-red);outline-offset:-4px}
@media(max-width:900px){.feat-link,.feat-copy{min-height:62vh}.feat-copy{padding-inline:max(4vw,18px)}
  .feat-shot img{filter:brightness(.72)}.feat-cta{align-self:stretch;text-align:center}}

/* ---------- controls ---------- */
.blog-controls{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:26px;align-items:end;margin-bottom:30px}
.blog-search label{display:block;font-size:10px;letter-spacing:.22em;color:var(--ink-dim);margin-bottom:10px}
.blog-search input{width:100%;background:var(--surf-2);border:1px solid var(--edge);color:var(--ink);
  padding:14px 15px;font-family:var(--font-body);font-size:15px}
.blog-search input:focus{outline:none;border-color:var(--ct-red)}
.blog-cats{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--surf-2);border:1px solid var(--edge);color:var(--ink);padding:9px 15px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;cursor:pointer;
  position:relative;isolation:isolate;transition:color .25s,border-color .25s}
.chip::before{content:'';position:absolute;inset:0;background:var(--ct-red);z-index:-1;
  transform:scaleX(0);transform-origin:0 50%;transition:transform .28s cubic-bezier(.16,1,.3,1)}
.chip.active{color:#111;border-color:var(--ct-red)}
.chip.active::before{transform:scaleX(1)}
.chip:focus-visible{outline:2px solid var(--ct-red);outline-offset:2px}
.blog-count{font-size:10px;letter-spacing:.2em;color:var(--ink-dim);margin-bottom:22px}
@media(max-width:820px){.blog-controls{grid-template-columns:1fr;gap:18px}}

/* ---------- grid ---------- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.post{will-change:transform}
.post[hidden]{display:none}
.post-link{display:block;text-decoration:none;color:inherit;background:var(--surf);height:100%;
  padding-bottom:26px;transition:transform .28s cubic-bezier(.16,1,.3,1)}
.post-link:hover,.post-link:focus-visible{transform:translateY(-4px)}
.post-link:focus-visible{outline:2px solid var(--ct-red);outline-offset:3px}
.post-shot{margin:0 0 20px;aspect-ratio:16/10;overflow:hidden;background:var(--surf-2)}
.post-shot img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1);
  transition:transform .5s cubic-bezier(.16,1,.3,1)}
.post-link:hover .post-shot img,.post-link:focus-visible .post-shot img{transform:scale(1.05)}
.post-meta{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:0 22px;font-size:9px;
  letter-spacing:.16em;color:var(--ink-dim)}
.post-title{margin:14px 22px 0;font-family:var(--font-head);font-stretch:112%;font-size:19px;
  line-height:1.28;position:relative;display:inline-block}
.post-title::after{content:'';position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--ct-red);
  transform:scaleX(0);transform-origin:0 50%;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.post-link:hover .post-title::after,.post-link:focus-visible .post-title::after{transform:scaleX(1)}
.post-excerpt{margin:14px 22px 0;font-size:14.5px;line-height:1.62;color:var(--ink-dim)}
.post-author{margin:16px 22px 0;font-size:9px;letter-spacing:.22em;color:var(--ct-red)}
@media(max-width:1000px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.blog-grid{grid-template-columns:1fr}}
.blog-empty{padding:56px 4px;text-align:center}
.blog-empty[hidden]{display:none}
.blog-empty p{font-size:16px;color:var(--ink-dim);margin-bottom:20px}

/* ---------- newsletter ---------- */
.apply{background:var(--surf);padding:9vh var(--gutter)}
.apply-inner{max-width:760px;margin-inline:auto}
.astep-note{font-size:14px;color:var(--ink-dim)}
.news-row{display:grid;grid-template-columns:1fr auto;gap:14px;margin-top:32px;align-items:start}
.afield input{width:100%;background:var(--surf-2);border:1px solid var(--edge);color:var(--ink);
  padding:14px 15px;font-family:var(--font-body);font-size:15px}
.afield input:focus{outline:none;border-color:var(--ct-red)}
.afield.has-error input{border-color:var(--ct-red)}
.afield-error{display:block;margin-top:8px;font-family:var(--font-mono);font-size:10.5px;color:var(--ct-red);min-height:1em}
.afield.shake{animation:ashake .3s}
@keyframes ashake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.news-consent{display:flex;gap:14px;align-items:flex-start;margin-top:16px;cursor:pointer}
.est-check input{position:absolute;opacity:0;width:0;height:0}
.est-check .box{flex:none;width:22px;height:22px;border:1px solid var(--edge);background:var(--surf-2);
  display:grid;place-items:center;margin-top:1px}
.est-check .box::after{content:'';width:10px;height:6px;border-left:2px solid #111;border-bottom:2px solid #111;
  transform:rotate(-45deg) scale(0);transition:transform .2s}
.est-check input:checked+.box{background:var(--ct-red);border-color:var(--ct-red)}
.est-check input:checked+.box::after{transform:rotate(-45deg) scale(1)}
.est-check input:focus-visible+.box{outline:2px solid var(--ct-red);outline-offset:3px}
.est-check-text span{font-size:14px;line-height:1.6;color:var(--ink-dim)}
.ahoney{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.aerror{margin-top:18px;padding:16px 18px;border:1px solid var(--ct-red);color:var(--ct-red);font-size:14px}
.aerror[hidden]{display:none}
.news-success{margin-top:20px;padding:18px 20px;background:var(--surf-2);border-left:2px solid var(--ct-red);
  font-size:16px;color:var(--ink)}
.news-success[hidden]{display:none}
@media(max-width:600px){.news-row{grid-template-columns:1fr}.news-row .cta{text-align:center}}

/* ---------- light theme ---------- */
html[data-theme="light"] .blogs-page{--surf:#fff;--surf-2:#e9e9e4;--ink:#17181b;--ink-dim:rgba(23,24,27,.68)}
html[data-theme="light"] .blogs-page .apply{background:#fff}
html[data-theme="light"] .blogs-page .post-link{background:#fff}
html[data-theme="light"] .blogs-page .feat-tag{background:#17181b}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .blogs-page *,.blogs-page *::before,.blogs-page *::after{
    animation-duration:.001ms!important;transition-duration:.001ms!important}
  .feat-shot img{transform:scale(1)}
  .post-shot img{transform:none!important}
  .reveal-ready .blogs-page [data-reveal],.reveal-ready .blogs-page [data-reveal-group]>*{opacity:1;transform:none}
}
