/*
Theme Name: enricofusco
Theme URI: https://enricofusco.it
Author: Enrico Fusco
Author URI: https://enricofusco.com
Description: Editorial theme for enricofusco.it: practical tech guides, generated covers, reserved AdSense slots. Pairs with the ef-core plugin.
Version: 1.6.1
Requires at least: 6.4
Requires PHP: 8.0
License: GPL-2.0-or-later
Text Domain: enricofusco
*/

/* Fonts (self-hosted, GDPR friendly) */
@font-face{font-family:"Newsreader";src:url(fonts/newsreader.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Newsreader";src:url(fonts/newsreader-italic.woff2) format("woff2");font-weight:200 800;font-style:italic;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url(fonts/instrument-sans.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --bg:#ffffff; --ink:#111111; --muted:#6b6b6b; --rule:#111111; --hair:#e2e2df; --acc:#1f4fd8; --tint:#eef3ff; --ad:#f3f3f1; --soft:#f6f7f9; --foot:#0b1733; --foot-acc:#7fb2ff;
  --f-display:"Newsreader",Georgia,"Times New Roman",serif;
  --f-body:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --wrap:1200px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0f0f0f; --ink:#f0f0ee; --muted:#9a9a97; --rule:#f0f0ee; --hair:#2a2a28; --acc:#7fb2ff; --tint:#141d33; --ad:#1a1a19; --soft:#161618; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0f0f0f; --ink:#f0f0ee; --muted:#9a9a97; --rule:#f0f0ee; --hair:#2a2a28; --acc:#7fb2ff; --tint:#141d33; --ad:#1a1a19; --soft:#161618; color-scheme:dark}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--f-body)}
img,svg,video,iframe{max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
a:hover .t{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;background:var(--ink);color:var(--bg);padding:8px 12px;z-index:100}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:500;line-height:1.1;text-wrap:balance;margin:0}
.kicker{font:600 12px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.small{font-size:13px;color:var(--muted)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Header: full masthead on home, compact bar elsewhere */
.mast .wrap{padding-block:16px 0}
.mast .row1{display:flex;justify-content:space-between;align-items:center;gap:16px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.logo{display:block;text-align:center;font:500 clamp(40px,7vw,72px)/1 var(--f-display);letter-spacing:-.035em;padding-block:10px 14px}
.logo i,.logo-s i{color:var(--acc)}
.mainnav{border-top:1px solid var(--rule);border-bottom:3px double var(--rule)}
.mainnav ul{list-style:none;margin:0;padding:10px 0;display:flex;justify-content:center;gap:clamp(14px,2.4vw,30px);font-weight:500;font-size:14px;flex-wrap:wrap}
.mainnav ul ul{display:none}
.mainnav .current-menu-item>a,.mainnav .current-cat>a{color:var(--acc)}
.bar{border-bottom:1px solid var(--rule);background:var(--bg);position:sticky;top:0;z-index:20}
.admin-bar .bar{top:32px}
@media (max-width:782px){.admin-bar .bar{top:0}}
.bar .wrap{display:flex;align-items:center;gap:20px;min-height:56px}
.logo-s{font:500 26px/1 var(--f-display);letter-spacing:-.03em;white-space:nowrap}
.bar .mainnav{border:0;flex:1;min-width:0}
.bar .mainnav ul{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;padding:0;scrollbar-width:none}
.bar .mainnav li{white-space:nowrap}
.tools{display:flex;align-items:center;gap:8px;margin-left:auto}
.ibtn{border:1px solid var(--hair);background:var(--bg);color:var(--ink);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;cursor:pointer;padding:0}
.ibtn svg{width:18px;height:18px}
@media (max-width:700px){.mast .row1 .d{display:none}.mast .mainnav ul{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto}.bar .mainnav{display:none}}

/* Search overlay with instant results */
.srch{position:relative}
.srch-panel{position:fixed;inset:0;z-index:50;background:color-mix(in srgb,var(--bg) 96%,transparent);padding-top:max(70px,env(safe-area-inset-top,0px))}
.srch-panel[hidden]{display:none}
.srch-panel form{max-width:720px;margin:0 auto;display:flex;border-bottom:2px solid var(--ink);padding-inline:16px}
.srch-panel input{flex:1;min-width:0;border:0;background:transparent;font:400 clamp(22px,4vw,32px) var(--f-display);color:var(--ink);padding:12px 0;outline:none}
.srch-res{max-width:720px;margin:12px auto 0;padding-inline:16px;list-style:none}
.srch-res li a{display:block;padding:12px 0;border-bottom:1px solid var(--hair);font:500 19px/1.3 var(--f-display)}
.srch-res .empty{color:var(--muted);padding:12px 0}

/* Illustrated covers. Sizes in container units (cqw): every card keeps the same proportions.
   Text stays in the left 50%, illustrations start at 52%. */
.cv{
  --c1:#23272e; --c2:#3c4450; --c3:#56606d; --c4:#7d8794;
  container-type:inline-size;aspect-ratio:1200/630;width:100%;position:relative;overflow:hidden;color:#fff;isolation:isolate;display:block;
  background:radial-gradient(60% 90% at 100% 0%,var(--c4) 0%,transparent 60%),radial-gradient(70% 100% at 85% 100%,var(--c3) 0%,transparent 60%),radial-gradient(80% 120% at 0% 100%,var(--c2) 0%,transparent 65%),var(--c1);
}
.cv::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.18;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.p-instagram{--c1:#3d1d8f;--c2:#a3237a;--c3:#e8573f;--c4:#f6b44b}
.p-mail{--c1:#0a2a66;--c2:#1456c4;--c3:#2f8cf0;--c4:#8fd3ff}
.p-whatsapp{--c1:#06372f;--c2:#0b6b52;--c3:#1fae5b;--c4:#9be7b0}
.p-facebook{--c1:#0a2552;--c2:#1250b8;--c3:#1877f2;--c4:#8db8ff}
.p-youtube{--c1:#3a0a08;--c2:#8f1610;--c3:#e1251b;--c4:#ff8a65}
.p-twitch{--c1:#1d0f40;--c2:#4b23a6;--c3:#9146ff;--c4:#d3b8ff}
.p-tiktok{--c1:#0c0c0e;--c2:#24242a;--c3:#fe2c55;--c4:#25f4ee}
.p-x{--c1:#0c0c0e;--c2:#26262b;--c3:#4a4a52;--c4:#8a8a94}
.p-ai{--c1:#14112f;--c2:#3a2f9e;--c3:#5b4ff0;--c4:#58e0a8}
.p-foto{--c1:#3a1410;--c2:#a03424;--c3:#e0622a;--c4:#f5b041}
.cv .copy{position:absolute;left:6.5cqw;top:6.5cqw;bottom:6.5cqw;width:43cqw;display:flex;flex-direction:column}
.cv .kick{font:600 1.55cqw/1 var(--f-body);letter-spacing:.16em;text-transform:uppercase}
.cv .h{margin-top:auto;font:500 6cqw/.98 var(--f-display);letter-spacing:-.025em;text-wrap:balance}
.cv .h em{font-style:italic;font-weight:400}
.cv .sub{margin-top:2.4cqw;font:500 1.7cqw/1.35 var(--f-body);opacity:.85}
.cv .brand{position:absolute;right:6.5cqw;bottom:4.4cqw;font:500 1.6cqw/1 var(--f-display);opacity:.8}
/* phone */
.cv .phone{position:absolute;right:9cqw;top:7cqw;width:25cqw;aspect-ratio:9/19;border-radius:4cqw;background:#0e0e10;padding:.9cqw;transform:rotate(6deg);box-shadow:0 3cqw 7cqw rgba(10,0,30,.45),inset 0 0 0 .25cqw #2c2c30}
.cv .screen{position:relative;width:100%;height:100%;border-radius:3.2cqw;overflow:hidden;background:linear-gradient(170deg,#ffd7a8 0%,#f39b6d 38%,#7b3fa0 100%)}
.cv .island{position:absolute;top:1.1cqw;left:50%;transform:translateX(-50%);width:7cqw;height:1.9cqw;border-radius:2cqw;background:#0e0e10;z-index:2}
.cv .bars{position:absolute;top:4cqw;left:1.6cqw;right:1.6cqw;display:flex;gap:.6cqw}
.cv .bars span{flex:1;height:.4cqw;border-radius:1cqw;background:rgba(255,255,255,.5)}
.cv .bars span:first-child{background:#fff}
.cv .who{position:absolute;top:5.6cqw;left:1.6cqw;display:flex;gap:1cqw;align-items:center;font:600 1.4cqw var(--f-body)}
.cv .who b{width:3cqw;height:3cqw;border-radius:50%;background:rgba(255,255,255,.5);box-shadow:0 0 0 .3cqw #fff}
.cv .sun{position:absolute;left:50%;top:44%;width:9cqw;height:9cqw;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff6d8,#ffd28a 60%,transparent 62%)}
.cv .hill{position:absolute;left:-10%;right:-10%;bottom:-12%;height:45%;border-radius:50% 50% 0 0;background:#4a2470}
.cv .flash{position:absolute;inset:0;border:.6cqw solid rgba(255,255,255,.95);border-radius:3.2cqw}
.cv .screen.chat{background:#efe7dd;display:flex;flex-direction:column;justify-content:flex-end;gap:1.2cqw;padding:2cqw 1.6cqw}
.cv .bub{align-self:flex-start;max-width:85%;background:#fff;color:#111;border-radius:1.6cqw;padding:1.2cqw 1.6cqw;font:500 1.5cqw/1.3 -apple-system,system-ui,sans-serif;box-shadow:0 .2cqw .4cqw rgba(0,0,0,.08)}
.cv .bub.me{align-self:flex-end;background:#d9fdd3}
/* window: mail, settings, search */
.cv .win{position:absolute;right:7cqw;top:9cqw;width:33cqw;background:#fff;color:#111;border-radius:2.2cqw;overflow:hidden;transform:rotate(-4deg);box-shadow:0 3cqw 7cqw rgba(0,10,40,.45);font:500 1.35cqw/1.3 -apple-system,system-ui,sans-serif}
.cv .win .bar{display:flex;gap:.7cqw;align-items:center;padding:1.4cqw 1.8cqw;background:#f2f4f8;border-bottom:.15cqw solid #e3e7ee}
.cv .win .bar i{width:1cqw;height:1cqw;border-radius:50%;background:#d6dbe3}
.cv .win .bar b{margin-left:1.2cqw;font-weight:700;font-size:1.45cqw}
.cv .win .row{display:grid;grid-template-columns:3.2cqw 1fr auto;gap:1.2cqw;align-items:center;padding:1.5cqw 1.8cqw;border-bottom:.15cqw solid #eef1f5}
.cv .win .av{width:3.2cqw;height:3.2cqw;border-radius:50%;background:#cfd8e6}
.cv .win .a0{background:#ffd28a}.cv .win .a1{background:#b9e4c9}.cv .win .a2{background:#d7c8f5}
.cv .win .row b,.cv .win .set b{display:block;font-weight:700}
.cv .win .row span span,.cv .win .row time,.cv .win .set span{color:#7a8190}
.cv .win .row time{font-size:1.2cqw}
.cv .win .row.new b::before{content:"";display:inline-block;width:.9cqw;height:.9cqw;border-radius:50%;background:#1e7be0;margin-right:.7cqw;vertical-align:middle}
.cv .win .set{display:flex;justify-content:space-between;gap:1.5cqw;padding:1.7cqw 1.8cqw;border-bottom:.15cqw solid #eef1f5}
.cv .win .set.hi{box-shadow:inset 0 0 0 .45cqw #ff3b30;border-radius:1cqw}
.cv .win.srch{padding:2.2cqw;display:grid;gap:1.6cqw}
.cv .win .q{display:flex;gap:1.4cqw;align-items:center;border:.35cqw solid #dadce0;border-radius:2cqw;padding:1.6cqw 2cqw;line-height:1.25}
.cv .win .q svg{width:2.6cqw;height:2.6cqw;flex:none;color:#4285f4}
.cv .win .ln{height:1.4cqw;border-radius:1cqw;background:#e8eaed;width:88%}
.cv .win .ln.b{width:64%;background:#c8d7f5}.cv .win .ln.c{width:76%}
/* toast and chip */
.cv .toast{position:absolute;right:21cqw;top:56%;width:25cqw;background:rgba(255,255,255,.96);color:#111;border-radius:2.2cqw;padding:1.8cqw 2cqw;display:grid;grid-template-columns:auto 1fr;gap:1.4cqw;align-items:center;box-shadow:0 2.4cqw 5cqw rgba(20,0,40,.35);font:500 1.5cqw/1.3 -apple-system,system-ui,sans-serif}
.cv .toast .ic{width:4cqw;height:4cqw;border-radius:1.1cqw;background:#111;display:grid;place-items:center}
.cv .toast .ic svg{width:2.4cqw;height:2.4cqw;color:#fff}
.cv .toast b{display:block;font-weight:700}
.cv .toast span span{color:#6b6b70}
.cv .chip{position:absolute;right:21cqw;top:calc(56% + 11cqw);display:inline-flex;gap:.9cqw;align-items:center;background:#0f2a1c;color:#c9f7da;border-radius:99px;padding:1cqw 1.8cqw;font:600 1.4cqw/1 var(--f-body);box-shadow:0 1.4cqw 3cqw rgba(0,0,0,.25)}
.cv .chip i{width:1.2cqw;height:1.2cqw;border-radius:50%;background:#2fd47a}
.i-mail .toast,.i-list .toast,.i-search .toast{right:24cqw;top:52%;width:23cqw}
.i-mail .chip,.i-list .chip,.i-search .chip{right:24cqw;top:calc(52% + 11.5cqw)}
.p-mail .toast .ic{background:#1456c4}
.p-report{--c1:#121419;--c2:#262b35;--c3:#6b5310;--c4:#f2c12e}
/* data card */
.cv .stat{position:absolute;right:7cqw;top:8cqw;width:34cqw;background:#fff;color:#111;border-radius:2.2cqw;overflow:hidden;transform:rotate(-3deg);box-shadow:0 3cqw 7cqw rgba(0,0,0,.5);font:500 1.35cqw/1.3 -apple-system,system-ui,sans-serif}
.cv .stat .bar{display:flex;justify-content:space-between;padding:1.4cqw 1.8cqw;background:#f4f4f1;border-bottom:.15cqw solid #e8e8e3;font-weight:700;font-size:1.4cqw}
.cv .stat .bar span{color:#8a8a84;font-weight:500}
.cv .stat .top{display:grid;grid-template-columns:11cqw 1fr;gap:2cqw;align-items:center;padding:2cqw 1.8cqw 1.2cqw}
.cv .donut{width:11cqw;height:11cqw;border-radius:50%;background:conic-gradient(#f2c12e 0 var(--p),#e9e9e4 var(--p) 100%);display:grid;place-items:center}
.cv .donut b{width:7.4cqw;height:7.4cqw;border-radius:50%;background:#fff;display:grid;place-items:center;font:500 3cqw/1 var(--f-display);letter-spacing:-.02em}
.cv .stat .top p{margin:0;font-size:1.45cqw;color:#55554f}
.cv .stat .top p strong{display:block;color:#111;font-size:1.6cqw}
.cv .stat .rows{display:grid;gap:1cqw;padding:0 1.8cqw 2cqw}
.cv .stat .rw{display:grid;grid-template-columns:13cqw 1fr 3.6cqw;gap:1cqw;align-items:center;font-size:1.2cqw;color:#55554f}
.cv .stat .rw i{height:1cqw;border-radius:1cqw;background:#e9e9e4;position:relative;overflow:hidden}
.cv .stat .rw i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:#f2c12e}
.cv .stat .rw.ok i::after{background:#3fae6b}
.cv .stat .rw em{font-style:normal;text-align:right;font-weight:700;color:#111}
.i-stat .toast{right:25cqw;top:58%;width:23cqw}
.i-stat .chip{right:25cqw;top:calc(58% + 11cqw)}
.p-report .toast .ic{background:#f2c12e}.p-report .toast .ic svg{color:#111}
.p-report .chip{background:#2a2410;color:#ffe9a6}.p-report .chip i{background:#f2c12e}
/* small cards: colour, title, illustration only */
@container (max-width:360px){
  .cv .sub,.cv .toast,.cv .chip,.cv .brand{display:none}
  .cv .copy{width:58cqw;left:7cqw;top:7cqw;bottom:7cqw}
  .cv .kick{font-size:3.4cqw}
  .cv .h{font-size:9cqw;line-height:1.05;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .cv .phone{right:6cqw;top:12cqw;width:28cqw}
  .cv .win{right:-6cqw;top:16cqw;width:40cqw}
  .cv .stat{right:-4cqw;top:15cqw;width:42cqw}
  .cv .stat .rows{display:none}
}
.cv.img{background:var(--soft)}
.cv.img img{width:100%;height:100%;object-fit:cover;display:block}

/* Ad slots: reserved space avoids layout shift */
.ef-ad{background:var(--ad);position:relative;padding-top:20px;text-align:center;overflow:hidden}
.ef-ad::before{content:"Pubblicità";position:absolute;top:4px;left:0;right:0;font:600 10px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ef-ad.lb{min-height:120px}.ef-ad.rect{min-height:300px}.ef-ad.tall{min-height:620px}.ef-ad.feed{min-height:170px}
.ef-ad ins{display:block}

main{display:block}
section{padding-block:28px}
.sh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-top:1px solid var(--rule);padding-top:10px;margin-bottom:18px}
.sh h2{font:600 15px var(--f-body);letter-spacing:.12em;text-transform:uppercase}
.sh a{font-size:13px;color:var(--muted)}

/* Home lead */
.lead{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:36px;padding-top:28px}
.lead .main .cv{margin-bottom:18px}
.lead h2{font-size:clamp(32px,5vw,58px);line-height:1.02;letter-spacing:-.025em;margin:10px 0 12px}
.dek{font:400 20px/1.45 var(--f-display);color:var(--muted);max-width:48ch;margin:0}
.by{font-size:13px;margin-top:12px}
.side{border-left:1px solid var(--rule);padding-left:28px;display:grid;align-content:start}
.side>a{display:grid;gap:4px;padding-block:14px;border-bottom:1px solid var(--hair)}
.side>a:first-child{padding-top:0}
.side h3{font-size:22px;line-height:1.15}
.side .ef-ad{margin-top:18px}
@media(max-width:820px){.lead{grid-template-columns:minmax(0,1fr)}.side{border-left:0;padding-left:0;border-top:1px solid var(--rule);padding-top:16px}}

.ask{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:12px 28px;align-items:center;background:var(--soft);padding:24px clamp(16px,3vw,32px)}
.ask h2{font-size:clamp(24px,3.4vw,36px)}
.ask h2 em{font-style:italic;color:var(--acc)}
.ask form{display:flex;border-bottom:2px solid var(--ink)}
.ask input{flex:1;min-width:0;border:0;background:transparent;font:400 20px var(--f-display);color:var(--ink);padding:10px 0;outline:none}
.ask button{border:0;background:transparent;font:600 13px var(--f-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);cursor:pointer}
@media(max-width:820px){.ask{grid-template-columns:minmax(0,1fr)}}

.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px}
.g4>a{display:grid;gap:8px;align-content:start}
.g4 h3{font-size:19px;line-height:1.2}
@media(max-width:900px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.g4{grid-template-columns:minmax(0,1fr)}}
.two{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:40px;align-items:start}
@media(max-width:960px){.two{grid-template-columns:minmax(0,1fr)}.desk{display:none}}
.stack>a{display:grid;grid-template-columns:200px minmax(0,1fr);gap:20px;padding-block:18px;border-bottom:1px solid var(--hair)}
.stack>a:first-child{padding-top:0}
.stack h3{font-size:24px;line-height:1.15;margin:4px 0 6px}
.stack p{margin:0;color:var(--muted);font:400 17px/1.5 var(--f-display)}
.stack .ef-ad{margin-block:18px}
@media(max-width:560px){.stack>a{grid-template-columns:110px minmax(0,1fr);gap:14px}.stack h3{font-size:19px}.stack p{display:none}}
.sticky{position:sticky;top:76px;display:grid;gap:22px}
.news ol{list-style:none;margin:0;padding:0;counter-reset:n}
.news li{counter-increment:n;display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;padding-block:12px;border-bottom:1px solid var(--hair)}
.news li::before{content:counter(n);font:400 30px/1 var(--f-display);color:var(--acc)}
.news a{font:500 17px/1.25 var(--f-display)}
.news time{display:block;font-size:12px;color:var(--muted);margin-top:4px}

/* Archive pages */
.cathead{padding-block:30px 8px;display:grid;gap:10px}
.crumb{font-size:13px;color:var(--muted)}
.crumb a{text-decoration:underline;text-decoration-color:var(--hair);text-underline-offset:3px}
.cathead h1{font-size:clamp(40px,7vw,84px);letter-spacing:-.035em;line-height:.95}
.cathead .desc{font:400 19px/1.45 var(--f-display);color:var(--muted);max-width:56ch}
.cathead .desc p{margin:0}
.subs{display:flex;gap:4px 22px;flex-wrap:wrap;font-weight:500;font-size:14px;border-top:1px solid var(--rule);border-bottom:1px solid var(--hair);padding-block:10px;margin-top:12px}
.subs .on{color:var(--acc)}
.pager{margin-top:22px}
.pager .nav-links{display:flex;gap:18px;flex-wrap:wrap;font:500 15px var(--f-body)}
.pager .current{color:var(--acc);border-bottom:2px solid var(--acc)}

/* Single guide */
.ghead{max-width:820px;padding-block:30px 10px;display:grid;gap:12px}
.ghead h1{font-size:clamp(34px,5.4vw,60px);letter-spacing:-.03em;line-height:1.02}
.ghead .dek{font-size:21px}
.meta{display:flex;gap:6px 18px;flex-wrap:wrap;font-size:14px;color:var(--muted);border-top:1px solid var(--rule);padding-top:10px}
.meta b{color:var(--ink);font-weight:600}
.gcover{margin-block:8px 26px}
article{min-width:0}
.prose{max-width:68ch;font:400 18px/1.7 var(--f-body)}
@media(min-width:700px){.prose{font-size:19px}}
.prose strong,.prose b{font-weight:600}
.prose>*{margin-block:0 18px}
.prose h2{font-size:32px;letter-spacing:-.02em;margin:40px 0 16px;padding-top:12px;border-top:1px solid var(--rule)}
.prose h3{font-size:24px;margin:28px 0 10px}
.prose a{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.prose img{height:auto}
.prose figure{margin-inline:0}
.prose figcaption{font:500 13px var(--f-body);color:var(--muted);margin-top:8px}
.prose blockquote{border-left:3px solid var(--acc);margin-inline:0;padding-left:18px;font-style:italic}
.prose ul,.prose ol{padding-left:24px}
.prose li{margin-bottom:6px}
.prose table{border-collapse:collapse;font:15px/1.4 var(--f-body);display:block;overflow-x:auto}
.prose th,.prose td{border-bottom:1px solid var(--hair);padding:8px 10px;text-align:left}
.prose code{font:0.85em var(--f-mono);background:var(--soft);padding:1px 5px}
.prose .ef-ad{margin-block:30px}
.prose ol.steps{list-style:none;padding:0;counter-reset:s;display:grid;gap:22px}
/* Number in the left gutter, content flows freely (works with any markup inside the item) */
.prose ol.steps>li{counter-increment:s;position:relative;padding-left:64px;min-height:48px;margin:0}
.prose ol.steps>li::before{content:counter(s);position:absolute;left:0;top:2px;width:52px;font:400 48px/.9 var(--f-display);color:var(--acc)}
.prose ol.steps>li>strong:first-child{display:block;font:600 18px/1.35 var(--f-body);margin-bottom:4px}
.prose ol.steps>li>strong:first-child+br{display:none}
@media(max-width:480px){.prose ol.steps>li{padding-left:48px}.prose ol.steps>li::before{font-size:38px;width:40px}}
.quick{border-left:3px solid var(--acc);padding:4px 0 4px 18px}
.quick .kicker{display:block;margin-bottom:6px}
.quick p{margin:0;font-size:20px;line-height:1.5}
.tested{font:500 13px var(--f-body);color:var(--muted);display:flex;gap:8px;align-items:center}
.tested::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--acc);flex:none}
.oldnote{background:var(--soft);padding:12px 16px;font:400 15px/1.5 var(--f-body)}
.feedback{border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);padding:14px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font:500 15px var(--f-body)}
.feedback button{border:1px solid var(--ink);background:transparent;color:var(--ink);font:600 14px var(--f-body);padding:6px 16px;cursor:pointer}
.feedback button:hover{background:var(--ink);color:var(--bg)}
.pro{margin-top:36px;border-top:3px double var(--rule);padding-top:18px;display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;font-family:var(--f-body)}
.pro h3{font-size:24px}
.pro p{margin:4px 0 0;font-size:15px;color:var(--muted)}
.pro a{border:1px solid var(--ink);padding:10px 18px;font-weight:600;font-size:14px;white-space:nowrap}
.pro a:hover{background:var(--ink);color:var(--bg)}
.toc-side{font-size:14px}
.toc-side ol{margin:8px 0 0;padding-left:18px;display:grid;gap:6px}
.related{margin-top:36px}

/* Author box */
.authorbox{margin-top:36px;background:var(--tint);border-radius:14px;padding:22px;display:grid;grid-template-columns:72px minmax(0,1fr);gap:18px;align-items:start;font-family:var(--f-body)}
.authorbox img{border-radius:50%;width:72px;height:72px}
.authorbox .r{font-size:12px;color:var(--acc);font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.authorbox .n{font:500 24px/1.1 var(--f-display);margin-top:2px}
.authorbox p{margin:8px 0 12px;font-size:16px;line-height:1.55;color:var(--muted)}
.authorbox .links{display:flex;gap:8px;flex-wrap:wrap}
.authorbox .links a{font-size:14px;font-weight:600;border:1px solid color-mix(in srgb,var(--acc) 40%,transparent);color:var(--acc);padding:5px 12px;border-radius:99px}
.authorbox .links a:hover{background:var(--acc);color:var(--bg)}
@media(max-width:480px){.authorbox{grid-template-columns:56px minmax(0,1fr);padding:18px}.authorbox img{width:56px;height:56px}}

/* Footer: dark band in both themes */
.foot{margin-top:56px;background:var(--foot);color:#fff}
.foot .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:28px;padding-block:40px 28px}
@media(max-width:760px){.foot .cols{grid-template-columns:minmax(0,1fr);gap:22px}}
.foot .fl{font:500 36px/1 var(--f-display);letter-spacing:-.03em}
.foot .fl i{color:var(--foot-acc)}
.foot p{opacity:.75;font-size:15px;margin:10px 0 0;max-width:36ch}
.foot h2{font:600 12px var(--f-body);letter-spacing:.14em;text-transform:uppercase;opacity:.6;margin:0 0 10px}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:15px}
.foot a:hover{color:var(--foot-acc)}
.foot .cta{display:inline-block;margin-top:16px;background:var(--foot-acc);color:var(--foot);font-weight:700;font-size:14px;padding:10px 16px;border-radius:8px}
.foot .cta:hover{color:var(--foot);filter:brightness(1.08)}
.foot .bottom{border-top:1px solid rgba(255,255,255,.15);padding-block:14px;font-size:13px;opacity:.65;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.e404{padding-block:60px;display:grid;gap:16px;max-width:640px}
.e404 h1{font-size:clamp(40px,6vw,64px)}


/* Homepage, news first */
.cv{border-radius:14px}
.live{display:inline-flex;gap:6px;align-items:center;font:700 11px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:#fff;background:#d7263d;padding:4px 8px;margin-bottom:10px;border-radius:4px}
.live i{width:7px;height:7px;border-radius:50%;background:#fff}
.nmeta{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.nmeta time{font:600 12px var(--f-body);color:var(--acc);white-space:nowrap}
.lead .main .nmeta{margin-top:4px}
.ln-it{display:grid;gap:4px;padding-block:12px;border-bottom:1px solid var(--hair)}
.ln-it h3{font-size:19px;line-height:1.25}
.side .sh{margin-bottom:0}
.lead .side .sh h2{font:600 15px var(--f-body);letter-spacing:.12em;text-transform:uppercase;margin:0}
.cd{display:grid;gap:8px;align-content:start}
.cd h3{font-size:19px;line-height:1.2}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.col{background:var(--bg);border:1px solid var(--hair);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.colh{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;color:#fff;background:linear-gradient(135deg,var(--c1),var(--c3));font:700 13px var(--f-body);letter-spacing:.12em;text-transform:uppercase}
.colh b{font:600 12px var(--f-body);letter-spacing:0;background:rgba(255,255,255,.2);padding:2px 9px;border-radius:99px}
.colfirst{display:grid;gap:6px;padding:14px 16px;border-bottom:1px solid var(--hair)}
.colfirst .cv{border-radius:10px}
.colfirst h3{font-size:19px;line-height:1.2}
.colit{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px;padding:11px 16px;border-bottom:1px solid var(--hair);align-items:baseline}
.colit h3{font-size:16px;line-height:1.3}
.col time{font:600 12px var(--f-body);color:var(--acc)}
.col a:hover h3{color:var(--acc);text-decoration:none}
.col .more{margin:auto 16px 14px;padding-top:12px;font-size:14px;font-weight:600;color:var(--acc)}
.guides{background:var(--soft);margin-inline:calc(-1*max(16px,env(safe-area-inset-left,0px)));padding-inline:max(16px,env(safe-area-inset-left,0px));padding-block:30px;margin-top:28px;scroll-margin-top:70px}
.guides .ask{background:var(--bg);border-radius:16px}
.pop{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;grid-column:1/-1}
.pop a{font-size:14px;border:1px solid var(--hair);background:var(--bg);padding:5px 12px;border-radius:99px}
.pop a:hover{border-color:var(--acc);color:var(--acc)}

/* Desktop-only blocks: must win over .sticky and .ef-ad display rules */
@media(max-width:960px){.desk{display:none!important}}
