/*
Theme Name: Duncan Oldham
Theme URI: https://duncanoldham.com/
Author: Duncan Oldham
Author URI: https://duncanoldham.com/
Description: A white and navy executive personal blog theme with a fixed left column (portrait, name, intro, numbered navigation, social links), a featured-article home page, long-read article typography, an About page template and a tidy, widget-free X / Instagram section driven by the Customizer.
Version: 1.0.5
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: duncanoldham
Tags: blog, two-columns, left-sidebar, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/
*,*::before,*::after{box-sizing:border-box}
:root{--noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--fb);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased;position:relative}
body::after{content:"";position:fixed;inset:0;background-image:var(--noise);opacity:var(--grain,.05);pointer-events:none;mix-blend-mode:overlay;z-index:50}
a{color:inherit;text-decoration:none}
h1,h2,h3,.brand{font-family:var(--fh);font-weight:var(--fhw,500);letter-spacing:var(--fhls,-.015em);margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.layout{display:grid;grid-template-columns:minmax(380px,33%) 1fr;min-height:100vh}
.side{position:relative;background:var(--side);border-right:1px solid var(--line)}
.side::before{content:"";position:absolute;top:0;right:-1px;width:1px;height:100%;background:linear-gradient(180deg,transparent,var(--accent) 30%,transparent 75%);opacity:.6}
.side-inner{position:sticky;top:0;height:100vh;padding:44px 56px 40px;display:flex;flex-direction:column}
.proposal-tag{font:600 10px/1.4 var(--fb);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);opacity:.85;margin-bottom:auto;padding-bottom:40px}
.portrait{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);background:var(--portrait);box-shadow:0 0 0 1px var(--line),0 0 0 7px var(--side),0 0 0 8px var(--ring),0 20px 50px rgba(0,0,0,.5)}
.brand{display:flex;flex-direction:column;font-size:var(--brand-size,60px);line-height:.95;margin:36px 0 0;color:var(--ink-hi,var(--ink))}
.lede{color:var(--muted);font-size:16px;margin:22px 0 0;max-width:330px}
.side-nav{display:flex;flex-direction:column;margin-top:40px}
.side-nav a{position:relative;display:flex;align-items:baseline;gap:16px;padding:13px 0;font-size:15px;font-weight:500;color:var(--muted);border-top:1px solid var(--line);transition:color .25s,padding .25s}
.side-nav .num{font-size:11px;letter-spacing:.1em;color:var(--dim);font-variant-numeric:tabular-nums;transition:color .25s}
.side-nav a::after{content:"";position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--accent);transition:width .35s}
.side-nav a:hover,.side-nav a.active{color:var(--ink-hi,var(--ink));padding-left:6px}
.side-nav a:hover .num,.side-nav a.active .num{color:var(--accent)}
.side-nav a:hover::after,.side-nav a.active::after{width:100%}
.side-social{margin-top:auto;padding-top:36px;display:flex;gap:20px;font-size:11px;text-transform:uppercase;letter-spacing:.16em;color:var(--dim)}
.side-social a{transition:color .2s}.side-social a:hover{color:var(--accent)}
.content{padding:40px 80px 24px;max-width:960px;position:relative}
.block{padding:56px 0;position:relative}
.block+.block::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--line-strong),var(--line) 60%,transparent)}
.block-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:30px}
.block h2{font-size:var(--h2,30px);line-height:1.15;color:var(--ink-hi,var(--ink))}
.more,.read{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.more span,.read span{display:inline-block;transition:transform .25s}.more:hover span,.read:hover span{transform:translateX(4px)}
.note{font-size:10.5px;text-transform:uppercase;letter-spacing:.18em;color:var(--dim)}
.meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;letter-spacing:.06em;color:var(--dim);margin:0}
.cat{color:var(--accent);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:11px}
.dot{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.6}
.feature{border-radius:var(--radius,18px);overflow:hidden;background:var(--card);border:1px solid var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 30px 80px rgba(0,0,0,.45);transition:transform .4s,box-shadow .4s,border-color .4s}
.feature:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 40px 90px rgba(0,0,0,.55)}
.media{position:relative;display:block;aspect-ratio:16/8;background:var(--hero-img);background-size:cover;overflow:hidden}
.media::before{content:"";position:absolute;inset:0;background:var(--hero-overlay,none);transition:transform 1.2s ease;}
.media::after{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.12;mix-blend-mode:overlay}
.feature:hover .media::before{transform:scale(1.06)}
.chip{position:absolute;left:20px;top:20px;z-index:2;font-size:10.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:7px 12px;border-radius:999px;color:var(--ink-hi,#fff);background:rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(10px)}
.img-note{position:absolute;right:18px;bottom:14px;z-index:2;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.feature-body{padding:32px 36px 34px}
.feature h3{font-size:var(--fh3,34px);line-height:1.15;margin:14px 0 14px;color:var(--ink-hi,var(--ink))}
.feature h3 a{background:linear-gradient(var(--accent),var(--accent)) 0 100%/0 1px no-repeat;transition:background-size .4s}
.feature:hover h3 a{background-size:100% 1px}
.excerpt{margin:0;color:var(--muted)}
.read{display:inline-block;margin-top:20px}
.list{list-style:none;margin:18px 0 0;padding:0}
.list li+li{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:132px 1fr;gap:26px;align-items:center;padding:24px 0;transition:padding .3s}
.row:hover{padding-left:8px}
.thumb{aspect-ratio:4/3;border-radius:calc(var(--radius,18px)*.6);position:relative;overflow:hidden;border:1px solid var(--line);filter:saturate(.9);transition:filter .3s}
.thumb::after{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.14;mix-blend-mode:overlay}
.row:hover .thumb{filter:saturate(1.15) brightness(1.1)}
.t1{background:var(--t1)}.t2{background:var(--t2)}.t3{background:var(--t3)}
.row h3{font-size:var(--lh3,22px);line-height:1.25;margin:6px 0 6px;color:var(--ink-hi,var(--ink));transition:color .25s}
.row:hover h3{color:var(--accent-hi,var(--accent))}
.row .excerpt{font-size:15px}
.about .eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 14px}
.about h2{font-size:var(--about-h2,40px);max-width:620px}
.about p{color:var(--muted);font-size:17px;max-width:600px;margin:16px 0 20px}
.posts{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.xpost{margin:0;padding:22px 24px;border-radius:calc(var(--radius,18px)*.75);background:var(--card);border:1px solid var(--line);transition:border-color .3s,transform .3s}
.xpost:hover{border-color:var(--line-strong);transform:translateY(-2px)}
.xpost figcaption{display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--dim);margin-bottom:12px}
.xpost blockquote{margin:0;font-size:15.5px;color:var(--ink)}
.net{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;font-size:11px;font-weight:700;color:var(--bg);background:var(--accent)}
.grams{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.gram{aspect-ratio:1;border-radius:calc(var(--radius,18px)*.6);border:1px solid var(--line);position:relative;overflow:hidden;transition:transform .3s,filter .3s}
.gram::after{content:"";position:absolute;inset:0;background-image:var(--noise);opacity:.14;mix-blend-mode:overlay}
.gram:hover{transform:translateY(-2px);filter:brightness(1.12)}
.g1{background:var(--g1)}.g2{background:var(--g2)}.g3{background:var(--g3)}.g4{background:var(--g4)}
.newsletter{padding-bottom:40px}
.sub{color:var(--muted);margin:10px 0 22px}
.news-form{display:flex;gap:10px;max-width:540px;padding:6px;border-radius:calc(var(--radius,18px)*.7);background:var(--card);border:1px solid var(--line)}
.news-form input{flex:1;min-width:0;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink);background:transparent;border:0;outline:none}
.news-form:focus-within{border-color:var(--accent)}
.btn{border:0;cursor:pointer;padding:12px 22px;border-radius:calc(var(--radius,18px)*.5);font:600 13px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:var(--btn-ink,#000);background:var(--btn);box-shadow:var(--btn-glow);transition:filter .2s,transform .2s}
.btn:hover{filter:brightness(1.1);transform:translateY(-1px)}
.foot{display:flex;justify-content:space-between;padding:28px 0;font-size:12px;letter-spacing:.08em;color:var(--dim);border-top:1px solid var(--line)}
@media (max-width:980px){
 .layout{grid-template-columns:1fr}
 .side{border-right:0;border-bottom:1px solid var(--line)}.side::before{top:auto;bottom:-1px;right:0;width:100%;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent)}
 .side-inner{position:static;height:auto;padding:28px 24px 30px}
 .proposal-tag{padding-bottom:26px}
 .portrait{width:84px;height:84px}
 .brand{--brand-size:46px;margin-top:26px}
 .side-nav{flex-direction:row;flex-wrap:wrap;gap:0 22px;margin-top:24px}
 .side-nav a,.side-nav a:last-child{border:0;padding:6px 0}.side-nav a:hover,.side-nav a.active{padding-left:0}
 .side-nav .num{display:none}
 .side-social{margin-top:16px;padding-top:0}
 .content{padding:8px 24px 16px}
}
@media (max-width:640px){
 .block{padding:44px 0}
 .block-head{flex-direction:column;align-items:flex-start;gap:8px}
 .block h2{font-size:27px}.about h2{font-size:30px}.feature h3{font-size:26px}
 .feature-body{padding:22px 22px 26px}
 .media{aspect-ratio:4/3}
 .row{grid-template-columns:88px 1fr;gap:16px;padding:20px 0}.row .excerpt{display:none}.row h3{font-size:18px}
 .posts{grid-template-columns:1fr}.grams{grid-template-columns:repeat(2,1fr)}
 .news-form{flex-direction:column}
 .foot{flex-direction:column;gap:6px}
}
:root{--grain:.025}
body::after{mix-blend-mode:multiply;opacity:var(--grain)}
.feature{box-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06),0 30px 70px rgba(16,24,40,.08)}
.feature:hover{box-shadow:0 1px 2px rgba(16,24,40,.05),0 12px 30px rgba(16,24,40,.08),0 44px 90px rgba(16,24,40,.12)}
.portrait{box-shadow:0 0 0 1px var(--line),0 0 0 7px #fff,0 0 0 8px var(--ring),0 18px 40px rgba(16,24,40,.14);color:#fff}
.side::before{opacity:.5}
.xpost{box-shadow:0 1px 2px rgba(16,24,40,.04),0 6px 18px rgba(16,24,40,.05)}
.xpost:hover{box-shadow:0 2px 4px rgba(16,24,40,.05),0 14px 30px rgba(16,24,40,.08)}
.news-form{box-shadow:0 6px 18px rgba(16,24,40,.05)}
.media::after,.thumb::after,.gram::after{opacity:.06}
.net{color:#fff}
:root{
 --fh:"DM Serif Display",Georgia,serif;--fb:Inter,system-ui,sans-serif;--fhw:400;--fhls:-.01em;
 --bg:#ffffff;--side:linear-gradient(180deg,#f6f8fc 0%,#ffffff 70%);
 --ink:#1d2b45;--ink-hi:#0d1b36;--muted:#56637a;--dim:#8a94a6;
 --line:#e3e8f0;--line-strong:#b8c4d8;
 --accent:#1c3d74;--accent-hi:#2a56a3;--ring:#c9d4e6;
 --card:#ffffff;--portrait:linear-gradient(150deg,#b9c7dd,#6f84a8);
 --radius:16px;--h2:32px;--fh3:38px;--lh3:23px;--about-h2:44px;--brand-size:64px;
 --hero-img:radial-gradient(10% 14% at 70% 50%,#ffffff,transparent 70%),radial-gradient(45% 40% at 70% 52%,rgba(255,244,225,.9),transparent 70%),linear-gradient(180deg,#c9d8ee 0%,#e4ecf7 40%,#f6f2ea 56.5%,#dfe6f0 57%,#5f7aa3 58%,#2b4672 70%,#14284d 100%);
 --hero-overlay:repeating-linear-gradient(180deg,transparent 0 6px,rgba(255,255,255,.06) 6px 7px) 0 58%/100% 42% no-repeat;
 --t1:linear-gradient(180deg,#d4e0f1,#f3efe6 56%,#4d6890 58%,#1a2f57);--t2:radial-gradient(circle at 65% 35%,#ffffff,#b5c6e0 45%,#4b648d);--t3:linear-gradient(135deg,#e8edf5,#9fb1cd 55%,#1f3a66);
 --g1:linear-gradient(180deg,#cfdcef,#f2eee6 55%,#3b5784 57%,#13284c);--g2:radial-gradient(circle at 30% 30%,#fff,#c3d1e6 50%,#7189ae);--g3:linear-gradient(135deg,#1c3d74,#0d1b36);--g4:linear-gradient(160deg,#eef2f8,#b8c6dc);
 --btn:linear-gradient(180deg,#24497f,#16305c);--btn-ink:#fff;--btn-glow:0 8px 22px rgba(28,61,116,.28),inset 0 1px 0 rgba(255,255,255,.2);
}
.brand span+span{color:var(--accent)}
.chip{background:rgba(255,255,255,.75);color:var(--ink-hi);border-color:rgba(255,255,255,.9)}
/* ---------- Article & page templates ---------- */
.content-article{max-width:920px}
.back{display:inline-flex;gap:8px;font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin:24px 0 36px;transition:color .2s}
.back:hover{color:var(--accent)}
.entry-header{max-width:760px}
.entry-header .meta{margin-bottom:22px}
.entry-title{font-size:clamp(38px,4.4vw,58px);line-height:1.06;color:var(--ink-hi);letter-spacing:-.015em}
.standfirst{font-family:var(--fh);font-size:23px;line-height:1.45;color:var(--muted);margin:24px 0 0;max-width:680px}
.byline{display:flex;align-items:center;gap:14px;margin-top:30px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}
.byline .av{width:40px;height:40px;border-radius:50%;background:var(--portrait);box-shadow:0 0 0 3px #fff,0 0 0 4px var(--ring);flex:none}
.byline strong{color:var(--ink-hi);font-weight:600;display:block;font-size:14.5px}
.entry-hero{margin:44px 0 0}
.entry-hero .media{aspect-ratio:16/8.5;border-radius:var(--radius);box-shadow:0 1px 2px rgba(16,24,40,.04),0 20px 50px rgba(16,24,40,.10)}
figcaption.cap,.wp-caption-text,.wp-element-caption{font-size:13px;color:var(--dim);margin-top:12px;line-height:1.5}
.prose{max-width:680px;margin:52px 0 0;font-size:19px;line-height:1.78;color:var(--ink)}
.prose>*{margin-top:0;margin-bottom:0}
.prose>*+*{margin-top:1.15em}
.prose>h2{margin-top:1.8em}.prose>h3{margin-top:1.6em}.prose>h2+*,.prose>h3+*{margin-top:.6em}
.prose h2{font-size:32px;line-height:1.2;color:var(--ink-hi)}
.prose h3{font-size:24px;line-height:1.3;color:var(--ink-hi)}
.prose a{color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;text-decoration-color:var(--line-strong)}
.prose a:hover{text-decoration-color:var(--accent)}
.prose ul,.prose ol{padding-left:1.2em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--accent)}
.prose>blockquote{margin:2em 0}
.prose blockquote{padding:0 0 0 28px;border-left:2px solid var(--accent);font-family:var(--fh);font-size:24px;line-height:1.45;color:var(--ink-hi)}
.prose blockquote p{margin:0}
.prose blockquote cite{display:block;margin-top:12px;font:600 12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-style:normal}
.prose>.pullquote,.prose>.wp-block-pullquote{margin:2.4em -40px}
.pullquote,.prose .wp-block-pullquote{padding:40px 44px;border:0;border-top:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);text-align:left;background:linear-gradient(180deg,#f7f9fc,#fff)}
.pullquote p,.prose .wp-block-pullquote p{font-family:var(--fh);font-size:34px;line-height:1.25;color:var(--accent);margin:0}
.pullquote p::before{content:"\201C";display:block;font-size:72px;line-height:.6;margin-bottom:14px;color:var(--line-strong)}
.pullquote cite{display:block;margin-top:18px;font:600 12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-style:normal}
.prose>figure{margin:2.2em 0}.prose img{max-width:100%;height:auto;border-radius:calc(var(--radius)*.7)}
.prose .media{aspect-ratio:16/9;border-radius:calc(var(--radius)*.7)}
.prose>figure.wide{margin-left:-40px;margin-right:-40px}
.prose hr{border:0;height:1px;background:var(--line);margin:2.5em 0}
.prose code{font-size:.88em;background:#f2f5fa;padding:.15em .4em;border-radius:5px}
.entry-footer{max-width:680px;margin-top:56px;padding-top:28px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tags a{font-size:12.5px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--muted);transition:.2s}
.tags a:hover{border-color:var(--accent);color:var(--accent)}
.share{display:flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);font-weight:600}
.share a{display:grid;place-items:center;min-width:36px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line);color:var(--ink);letter-spacing:.06em;transition:.2s;background:#fff}
.share a:hover{border-color:var(--accent);color:#fff;background:var(--accent)}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:48px 0 0;max-width:760px}
.post-nav a{display:block;padding:22px 24px;border:1px solid var(--line);border-radius:calc(var(--radius)*.75);background:#fff;transition:.3s;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.post-nav a:hover{border-color:var(--line-strong);transform:translateY(-2px);box-shadow:0 14px 30px rgba(16,24,40,.08)}
.post-nav .lbl{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600}
.post-nav .t{display:block;font-family:var(--fh);font-size:20px;line-height:1.3;color:var(--ink-hi);margin-top:8px}
.post-nav .next{text-align:right}
/* About */
.page-header{max-width:760px;margin-top:24px}
.page-header .eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600;margin:0 0 16px}
.about-hero{display:grid;grid-template-columns:300px 1fr;gap:48px;align-items:end;margin-top:44px}
.about-photo{aspect-ratio:4/5;border-radius:var(--radius);background:var(--portrait);display:grid;place-items:center;color:#fff;font-size:11px;letter-spacing:.2em;text-transform:uppercase;box-shadow:0 1px 2px rgba(16,24,40,.04),0 24px 60px rgba(16,24,40,.14);position:relative;overflow:hidden}
.about-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-hero .standfirst{margin:0}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:56px 0 0;max-width:760px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts div{padding:22px 20px 22px 0}.facts div+div{padding-left:20px;border-left:1px solid var(--line)}
.facts dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);font-weight:600}
.facts dd{margin:6px 0 0;font-family:var(--fh);font-size:20px;color:var(--ink-hi)}
.cta-card{max-width:760px;margin-top:56px;padding:36px 40px;border-radius:var(--radius);background:linear-gradient(135deg,#f6f8fc,#fff);border:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;box-shadow:0 1px 2px rgba(16,24,40,.04),0 14px 36px rgba(16,24,40,.06)}
.cta-card h2{font-size:28px}.cta-card p{margin:6px 0 0;color:var(--muted)}
.btn.link{display:inline-block}
@media (max-width:980px){.prose>.pullquote,.prose>.wp-block-pullquote{margin-left:0;margin-right:0}.prose>figure.wide{margin-left:0;margin-right:0}}
@media (max-width:640px){
 .back{margin:8px 0 26px}.entry-title{font-size:34px}.standfirst{font-size:19px}
 .entry-hero{margin-top:32px}.entry-hero .media{aspect-ratio:4/3}
 .prose{font-size:17.5px;margin-top:36px}.prose h2{font-size:26px}
 .pullquote,.prose .wp-block-pullquote{padding:28px 4px}.pullquote p,.prose .wp-block-pullquote p{font-size:26px}
 .post-nav{grid-template-columns:1fr}.post-nav .next{text-align:left}
 .about-hero{grid-template-columns:1fr;gap:28px}.about-photo{max-width:260px}
 .facts{grid-template-columns:1fr}.facts div+div{padding-left:0;border-left:0;border-top:1px solid var(--line)}
 .cta-card{padding:26px 22px}
}
/* ---------- WordPress specifics ---------- */
.skip-link{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--accent);color:#fff;padding:10px 16px;border-radius:8px}
.skip-link:focus{left:8px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.portrait{overflow:hidden;position:relative}
.portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.custom-logo-link{display:block}
.brand span{display:block}
.side-nav ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;counter-reset:navn}
.side-nav li{margin:0}
.side-nav a{border-bottom:0}
.side-nav li:last-child>a{border-bottom:1px solid var(--line)}
.side-nav li>a::before{counter-increment:navn;content:counter(navn,decimal-leading-zero);font-size:11px;letter-spacing:.1em;color:var(--dim);font-variant-numeric:tabular-nums;transition:color .25s;min-width:16px}
.side-nav .sub-menu{display:none}
.side-nav .current-menu-item>a,.side-nav .current_page_item>a,.side-nav .current-menu-ancestor>a,.side-nav .current_page_parent>a{color:var(--ink-hi);padding-left:6px}
.side-nav .current-menu-item>a::after,.side-nav .current_page_item>a::after,.side-nav .current_page_parent>a::after{width:100%}
.side-nav .current-menu-item>a::before,.side-nav .current_page_item>a::before,.side-nav li>a:hover::before{color:var(--accent)}
.side-social ul{list-style:none;margin:0;padding:0;display:flex;gap:20px;flex-wrap:wrap}
.media{background-size:cover;background-position:center}
.media img,.thumb img,.gram img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.media .chip,.media .img-note{z-index:2}
.thumb.has-img::after,.media.has-img::after,.gram.has-img::after{display:none}
.row-noimg{grid-template-columns:1fr}
.profile-links{display:flex;gap:10px;flex-wrap:wrap;margin:-10px 0 22px}
.profile-links a{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);transition:.2s}
.profile-links a:hover{border-color:var(--accent);color:#fff;background:var(--accent)}
.xpost a.post-link{display:block;color:inherit}
.social-widgets .widget{margin:0 0 16px}
.social-widgets .widget-title{font-family:var(--fb);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-weight:600;margin:0 0 10px}
.social-widgets iframe{max-width:100%}
.cta-inline{margin-top:24px}
.pagination,.nav-links{display:flex;gap:8px;flex-wrap:wrap;margin-top:36px}
.page-numbers{display:grid;place-items:center;min-width:40px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:999px;font-size:14px;color:var(--ink);background:#fff;transition:.2s}
.page-numbers.current,.page-numbers:hover{border-color:var(--accent);background:var(--accent);color:#fff}
.archive-desc{color:var(--muted);max-width:640px;margin-top:14px}
.not-found .prose{margin-top:24px}
.search-form{display:flex;gap:10px;max-width:540px;padding:6px;border-radius:calc(var(--radius)*.7);background:#fff;border:1px solid var(--line);box-shadow:0 6px 18px rgba(16,24,40,.05);margin-top:24px}
.search-form label{flex:1;display:flex}
.search-form .search-field{flex:1;min-width:0;padding:12px 14px;font:inherit;font-size:15px;color:var(--ink);background:transparent;border:0;outline:none}
.search-form:focus-within{border-color:var(--accent)}
.single-post .prose>p:first-of-type::first-letter{float:left;font-family:var(--fh);font-size:4.1em;line-height:.82;margin:.08em .1em 0 0;color:var(--accent)}
.prose .wp-block-pullquote blockquote{border:0;padding:0;margin:0;font-size:inherit}
.prose .wp-block-pullquote blockquote::before{content:"\201C";display:block;font-family:var(--fh);font-size:72px;line-height:.6;margin-bottom:14px;color:var(--line-strong)}
.prose .wp-block-pullquote cite{display:block;margin-top:18px;font:600 12px var(--fb);letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-style:normal}
.prose .alignwide{margin-left:-40px;margin-right:-40px;max-width:none}
.prose .alignfull{margin-left:-40px;margin-right:-40px;max-width:none}
.prose .aligncenter{margin-left:auto;margin-right:auto;text-align:center}
.prose .alignleft{float:left;margin:.3em 1.6em 1em 0;max-width:50%}
.prose .alignright{float:right;margin:.3em 0 1em 1.6em;max-width:50%}
.prose .wp-block-image,.prose .wp-block-embed{margin:2.2em 0}
.prose .wp-block-separator{border:0;height:1px;background:var(--line);margin:2.5em 0}
.prose .wp-block-button__link{background:var(--btn);color:#fff;border-radius:calc(var(--radius)*.5);padding:12px 22px;text-decoration:none;font:600 13px var(--fb);letter-spacing:.1em;text-transform:uppercase}
.prose table{width:100%;border-collapse:collapse;font-size:16px}.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left}
.sticky .feature{outline:1px solid var(--line-strong)}
.bypostauthor{}
.gallery-caption{}
/* Comments */
.comments-area{max-width:680px;margin-top:64px;padding-top:40px;border-top:1px solid var(--line)}
.comments-title,.comment-reply-title{font-size:26px;margin-bottom:24px}
.comment-list{list-style:none;margin:0;padding:0}
.comment-list .children{list-style:none;padding-left:28px;border-left:1px solid var(--line);margin-left:6px}
.comment-body{padding:20px 0;border-bottom:1px solid var(--line)}
.comment-author{display:flex;align-items:center;gap:12px;font-weight:600;color:var(--ink-hi)}
.comment-author img{border-radius:50%}
.comment-author .says{display:none}
.comment-metadata{font-size:12.5px;color:var(--dim);margin:4px 0 10px}
.comment-content{font-size:16px}
.reply a{font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.comment-form label{display:block;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);margin-bottom:6px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;padding:12px 14px;font:inherit;font-size:15px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--accent)}
.comment-form p{margin:0 0 16px}
.comment-form .submit{border:0;cursor:pointer;padding:13px 24px;border-radius:calc(var(--radius)*.5);font:600 13px var(--fb);letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--btn);box-shadow:var(--btn-glow)}
.comment-form-cookies-consent{display:flex;gap:8px;align-items:flex-start}.comment-form-cookies-consent label{text-transform:none;letter-spacing:0;font-weight:400}
@media (max-width:980px){
 .side-nav ul{flex-direction:row;flex-wrap:wrap;gap:0 22px}
 .side-nav li>a,.side-nav li:last-child>a{border:0;padding:6px 0}
 .side-nav li>a::before{display:none}
 .side-nav .current-menu-item>a,.side-nav .current_page_item>a{padding-left:0}
 .prose .alignwide,.prose .alignfull{margin-left:0;margin-right:0}
}
@media (max-width:640px){.prose .alignleft,.prose .alignright{float:none;margin:1.5em 0;max-width:100%}}
@media (max-width:640px){.row{grid-template-columns:72px 1fr;gap:14px}.row .meta{font-size:10.5px;letter-spacing:.02em;gap:6px}.row .cat{font-size:10px;letter-spacing:.1em}}
.side-top{margin-bottom:auto;padding-bottom:40px}@media (max-width:980px){.side-top{display:none}}
.byline .av{overflow:hidden}.byline .av img{width:100%;height:100%;display:block;border-radius:50%}
/* ---------- 1.0.3: never crop real featured images ---------- */
.media.has-img,.entry-hero .media.has-img{aspect-ratio:auto;height:auto;background:#f2f5fa}
.media.has-img::before,.media.has-img::after{display:none}
.media.has-img img{position:static;display:block;width:100%;height:auto;max-width:100%;object-fit:contain;transform:none}
.feature .media.has-img{border-bottom:1px solid var(--line)}
.entry-hero .media.has-img{overflow:hidden}
.thumb.has-img{background:#f2f5fa;filter:none}
.thumb.has-img img{object-fit:contain}
.feature .chip{box-shadow:0 2px 8px rgba(16,24,40,.12)}
.meta .badge{display:inline-block;font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1;padding:5px 9px;border-radius:999px;color:#fff;background:var(--accent);margin-right:2px}
