/* Projects section: magazine-style articles on a light reading page. Uses tokens from ../styles.css */
body.read{
  --ink:#ffffff;--ink-2:#f5f6f9;--ink-3:#eceef3;
  --paper:#0b0d14;--mist:#4b5166;--dim:#7a8094;
  --line:rgba(11,13,20,.1);--line-2:rgba(11,13,20,.22);
  background:#fff;color:var(--paper);color-scheme:light
}
.read .nav.is-scrolled{background:rgba(255,255,255,.9)}
.read .pill--line{color:var(--paper)}
.pj{padding:132px 0 96px}

/* index */
.pj-head{max-width:760px;margin-bottom:48px}
.pj-head h1{font-size:clamp(40px,6vw,76px);margin:16px 0 18px}
.pj-head p{color:var(--mist);font-size:var(--s-lede);font-weight:300;line-height:1.6;max-width:46ch}
.pj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:36px 28px}
.pj-card{display:flex;flex-direction:column;gap:10px}
.pj-card figure{margin:0 0 6px;border-radius:14px;overflow:hidden;aspect-ratio:16/9;background:var(--ink-2);border:1px solid var(--line)}
.pj-card img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .8s var(--ease)}
.pj-card:hover img{transform:scale(1.03)}
.pj-card h2{font-size:var(--s-h3);line-height:1.3}
.pj-card p{color:var(--mist);font-weight:300;line-height:1.65}
.kicker{font-size:13px;font-weight:600;color:#3d5bdb;letter-spacing:.02em}

/* article */
.post{max-width:700px;margin-inline:auto}
.post .crumb{font-size:14px;color:var(--dim);margin-bottom:22px}
.post .crumb a:hover{color:var(--paper)}
.post h1{font-size:clamp(36px,5.4vw,60px);line-height:1.1;margin:12px 0 18px}
.post .sub{font-size:clamp(19px,1.6vw,22px);color:var(--mist);font-weight:300;line-height:1.55}
.byline{display:flex;align-items:center;gap:12px;margin:28px 0 0;font-size:14.5px;color:var(--dim)}
.byline img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.byline b{display:block;color:var(--paper);font-weight:600}
.hero-img{max-width:1080px;margin:40px auto 8px}
.hero-img img,.post figure img{width:100%;height:auto;display:block;border-radius:14px;border:1px solid var(--line)}
.post h2{font-size:clamp(24px,2.3vw,30px);line-height:1.3;margin:52px 0 14px}
.post p,.post li{color:#2b3040;font-weight:400;line-height:1.9;font-size:18px}
.post p+p{margin-top:18px}
.post ul{padding-inline-start:22px;margin:16px 0 0;display:grid;gap:12px}
.post strong{color:var(--paper);font-weight:600}
.post a{color:#3d5bdb;text-decoration:underline;text-underline-offset:3px}
.post code{font-family:var(--f-mono);font-size:.85em;background:var(--ink-2);border:1px solid var(--line);border-radius:6px;padding:1px 6px;direction:ltr;unicode-bidi:isolate}
.post figure{margin:34px 0}
.post figure.wide{margin-inline:calc((min(100vw - 32px,1000px) - 100%) / -2)}
.post figcaption{margin-top:10px;font-size:14.5px;color:var(--dim);line-height:1.5}
.post figure.mobile-shot img{max-width:300px;margin-inline:auto;border-radius:22px}
.post figure.mobile-shot figcaption{text-align:center}
.pull{margin:40px 0;padding:6px 22px 6px 0;border-inline-start:4px solid #3d5bdb;font-size:clamp(21px,2vw,25px);line-height:1.55;font-weight:500;color:var(--paper)}
.pj-cta{margin-top:60px;padding:28px;border-radius:18px;background:var(--ink-2);display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.pj-cta div{flex:1 1 280px}
.pj-cta b{display:block;font-size:20px;margin-bottom:4px;color:var(--paper)}
.pj-cta span{color:var(--mist)}
.post .pj-cta a,.pj-cta .pill{text-decoration:none;color:#fff}
.more{margin-top:44px;padding-top:24px;border-top:1px solid var(--line)}
.more h3{font-size:15px;color:var(--dim);font-weight:600;margin-bottom:12px}

.pj-nav .nav__links{display:flex}
.pj-nav .nav__links a[aria-current]{color:var(--paper)}
/* mobile: keep the same 4 links as every other page (no burger here), drop the pill to make room */
@media (max-width:1000px){.pj-nav .nav__links{display:flex;gap:18px;font-size:14px}}
@media (max-width:640px){.pj-nav .pill{display:none!important}.pj-nav .nav__in{gap:16px;height:60px}.pj-nav .nav__logo img{height:26px}.pj-nav .nav__links{gap:14px;font-size:13.5px}.pj-nav .nav__links a{white-space:nowrap}}
@media (max-width:345px){.pj-nav .nav__links a:first-child{display:none}}
/* light page: no dark band on overscroll */
html:has(body.read){background:#fff}
@media (max-width:640px){.post p,.post li{font-size:17px}.pull{padding-inline-end:0}}
@media (max-width:640px){.pj-nav .nav__x{display:none}}
