/* Brand layer: deliberately separate from Casper's compiled base stylesheet. */
:root { --ae-paper:#fdfaf2; --ae-ink:#252525; --ae-muted:#625f59; --ae-line:#dcd7cc; --ae-orange:#ff851b; --color-darkmode:#252525; }
html.dark-mode { --ae-paper:#252525; --ae-ink:#fbf7ed; --ae-muted:#c3beb4; --ae-line:#4a4843; }
@media (prefers-color-scheme:dark) { html.auto-color { --ae-paper:#252525; --ae-ink:#fbf7ed; --ae-muted:#c3beb4; --ae-line:#4a4843; } }
body, .viewport { background:var(--ae-paper); color:var(--ae-ink); }
#gh-head { position:relative; height:96px; background:var(--ae-paper); color:var(--ae-ink); border-bottom:1px solid var(--ae-line); }
#gh-head .gh-head-inner { grid-template-columns:auto 1fr auto; gap:32px; }
#gh-head .gh-head-brand { grid-column-start:1; }
#gh-head .ae-brand { display:flex; align-items:center; gap:12px; color:var(--ae-ink); opacity:1; }
#gh-head .ae-brand img { width:44px; height:44px; max-height:none; flex-shrink:0; border-radius:10px; }
#gh-head .ae-brand span { max-width:250px; font-size:23px; font-weight:850; letter-spacing:-.8px; line-height:1.08; }
#gh-head .gh-head-menu { margin:0; justify-self:center; }
#gh-head .gh-head-button { background:var(--ae-orange); color:#252525; border:2px solid #252525; border-radius:8px; font-weight:750; }
.ae-hero { padding-top:64px; text-align:center; }
.ae-eyebrow { margin:0 0 20px; font-family:var(--font-mono); font-size:12px; font-weight:600; letter-spacing:1.8px; text-transform:uppercase; color:var(--ae-muted); }
.ae-hero h1 { margin:0; color:var(--ae-ink); font-size:clamp(36px,4.5vw,64px); line-height:1.06; font-weight:850; letter-spacing:-2.5px; }
.ae-intro { max-width:620px; margin:24px auto 0; color:var(--ae-muted); font-size:19px; line-height:1.5; }
.ae-cover { max-width:1200px; margin:28px auto 0; }
.ae-cover img { display:block; width:100%; height:auto; mix-blend-mode:multiply; }
html.dark-mode .ae-cover img { mix-blend-mode:lighten; }
@media (prefers-color-scheme:dark) { html.auto-color .ae-cover img { mix-blend-mode:lighten; } }
.ae-feed-heading { display:flex; align-items:baseline; justify-content:space-between; gap:24px; border-top:2px solid var(--ae-ink); border-bottom:1px solid var(--ae-line); padding:24px 0; margin-top:32px; }
.ae-feed-heading h2 { margin:0; font-size:24px; letter-spacing:-.6px; color:var(--ae-ink); }
.ae-feed-heading span { color:var(--ae-muted); font-family:var(--font-mono); font-size:12px; }
.post-card-title, .article-title, .post-card-content-link { color:var(--ae-ink); }
.post-card-excerpt, .post-card-meta { color:var(--ae-muted); }
.post-card { border-color:var(--ae-line); }
.post-card-tags { color:var(--ae-muted); }
.article-title { font-weight:850; letter-spacing:-1.5px; }
.article-header { padding-top:64px; }
.gh-content { --content-width:720px; }
.gh-content a { text-decoration-color:var(--ae-orange); text-decoration-thickness:2px; text-underline-offset:4px; }
.gh-content :not(pre)>code { color:var(--ae-ink); background:var(--ae-line); }
.gh-content pre { border:1px solid var(--ae-line); border-radius:8px; }
.site-footer { background:var(--ae-paper); color:var(--ae-muted); border-top:1px solid var(--ae-line); padding-top:36px; padding-bottom:36px; }
.site-footer a { color:var(--ae-ink); }
.footer-cta-button { border-radius:8px; }
.footer-cta-button span { color:#252525; background:var(--ae-orange); }
a:focus-visible,button:focus-visible { outline:3px solid var(--ae-orange); outline-offset:5px; }
.ae-skip { position:fixed; top:8px; left:8px; transform:translateY(-160%); z-index:9999; padding:12px 20px; background:var(--ae-ink); color:var(--ae-paper); }
.ae-skip:focus { transform:none; }
.ae-empty { padding:40px 0; color:var(--ae-muted); }
@media (max-width:1100px) and (min-width:768px) { #gh-head .gh-head-inner { gap:20px; } #gh-head .ae-brand span { max-width:175px; font-size:22px; } #gh-head .gh-head-menu { margin:0; } }
@media (max-width:767px) {
 #gh-head { height:80px; }
 #gh-head .gh-head-inner { grid-template-columns:1fr; gap:32px; }
 #gh-head .gh-head-brand { height:80px; }
 #gh-head .ae-brand { gap:10px; }
 #gh-head .ae-brand img { width:38px; height:38px; border-radius:8px; }
 #gh-head .ae-brand span { max-width:175px; font-size:20px; letter-spacing:-.6px; }
 #gh-head .gh-head-menu { justify-self:stretch; }
 .ae-hero { padding-top:40px; }
 .ae-hero h1 { letter-spacing:-1.5px; }
 .ae-intro { font-size:17px; margin-top:20px; }
 .ae-cover { margin-top:28px; }
 .ae-feed-heading { flex-direction:column; gap:8px; margin-top:24px; padding:20px 0; }
 .ae-feed-heading h2 { font-size:22px; }
 .article-header { padding-top:40px; }
 .gh-head-open #gh-head, .gh-head-open #gh-head .gh-head-actions { background:var(--ae-paper); color:var(--ae-ink); }
}
@media (max-width:374px) { #gh-head .ae-brand span { max-width:132px; font-size:17px; } #gh-head .ae-brand img { width:32px; height:32px; } }
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }
/* Override Casper's nowrap brand and white mobile menu strokes. */
#gh-head .ae-brand { min-width:0; white-space:normal; }
#gh-head .ae-brand span { white-space:normal; }
#gh-head .gh-burger::before, #gh-head .gh-burger::after { background:var(--ae-ink); }
.gh-content a { color:var(--ae-ink); }
.ae-cover { mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 8%,#000 92%,transparent); mask-composite:intersect; }
@media (max-width:767px) {
 #gh-head .gh-head-brand { grid-template-columns:minmax(0,1fr) 40px 28px; column-gap:8px; }
 #gh-head .gh-head-brand .gh-search { margin-left:0; }
}
/* Give the full publication name its natural width outside mobile layouts. */
@media (min-width:768px) {
 #gh-head .ae-brand span { max-width:none; white-space:nowrap; overflow-wrap:normal; word-break:normal; }
}
/* Casper measures this full grid track to decide which links need overflow. */
@media (min-width:768px) { #gh-head .gh-head-menu { justify-self:stretch; min-width:0; } }
#gh-head .ae-brand img { border-radius:0; }
@media (max-width:767px) {
 body.gh-head-open.has-cover #gh-head,
 body.gh-head-open.has-cover #gh-head .gh-head-actions,
 body.gh-head-open #gh-head,
 body.gh-head-open #gh-head .gh-head-actions {
  background:var(--ae-paper); color:var(--ae-ink);
 }
 #gh-head .ae-brand span { overflow-wrap:normal; word-break:normal; }
 body.gh-head-open #gh-head .gh-head-button { background:var(--ae-orange); color:#252525; }
 body.gh-head-open #gh-head .gh-head-link,
 body.gh-head-open #gh-head .nav a { color:var(--ae-ink); }
}
/* Prism 1.30.0 — a consistent dark code canvas in both page color schemes. */
.gh-content pre[class*="language-"] { background:#1e1e1e; color:#f5f2e9; overflow-x:auto; }
.gh-content pre code[class*="language-"] { color:#f5f2e9; background:none; text-shadow:none; white-space:pre; font-family:var(--font-mono); }
.gh-content .token.comment, .gh-content .token.prolog { color:#a6aaa4; }
.gh-content .token.punctuation { color:#d4d4d4; }
.gh-content .token.keyword, .gh-content .token.operator { color:#ffb36b; }
.gh-content .token.string, .gh-content .token.char, .gh-content .token.attr-value { color:#b8d99a; }
.gh-content .token.number, .gh-content .token.boolean, .gh-content .token.constant, .gh-content .token.symbol { color:#d9b5ff; }
.gh-content .token.function, .gh-content .token.class-name, .gh-content .token.builtin { color:#8bd5e8; }
.gh-content .token.property, .gh-content .token.variable, .gh-content .token.regex { color:#f2d28a; }
