/* Editorial identity. Content and SEO remain in the existing static generators. */
:root{color-scheme:light dark;--bg:light-dark(#f8f6f0,#171b19);--bg-deep:var(--bg);--bg-alt:light-dark(#efede5,#1c221e);--surface:light-dark(#fffdf8,#212823);--surface-2:var(--surface);--border:light-dark(#b8aa86,#796a45);--border-soft:light-dark(#d8d9ce,#3d483f);--gold:light-dark(#80631f,#d5b76a);--gold-soft:var(--gold);--gold-deep:var(--gold);--text:light-dark(#252e28,#f1f0e7);--text-soft:light-dark(#48564b,#cbd3c9);--text-dim:light-dark(#616b61,#afbcae);--navy:light-dark(#365040,#99b6a0);--danger:light-dark(#97392e,#efaaa1);--action:light-dark(#263d31,#d5b76a);--action-text:light-dark(#fffdf7,#182019);--control-border:light-dark(#797f72,#7f8b7f);--radius:4px;--radius-sm:4px;--shadow-card:none;--shadow-card-hover:none;--section-py:74px}
html[data-theme=light]{color-scheme:light}html[data-theme=dark]{color-scheme:dark}
body{background:var(--bg);color:var(--text-soft);overflow-wrap:break-word}.bg-grid,.bg-glow{display:none}.nav,.nav.is-scrolled{background:var(--surface);border-color:var(--border-soft);backdrop-filter:none}.nav__inner{height:88px;gap:18px}.brand__mark{height:61px;filter:none}.nav__links{gap:20px;margin-right:0}.nav__links a{font-size:.82rem}.appearance{font:500 .78rem var(--font-sans);padding:9px 7px;background:var(--bg);color:var(--text);border:1px solid var(--control-border);border-radius:4px;min-height:42px;max-width:100%}.appearance:focus-visible{outline:2px solid var(--gold);outline-offset:3px}.nav__toggle{border-color:var(--control-border)}
.btn{border-radius:3px;font-weight:500;font-size:.9rem;box-shadow:none;transition:background .15s ease,border-color .15s ease}.btn--gold{background:var(--action);color:var(--action-text);box-shadow:none}.btn--gold:hover{background:var(--action);box-shadow:none;transform:none;filter:brightness(1.08)}.btn--ghost{color:var(--text);border-color:var(--control-border)}.btn--ghost:hover{color:var(--gold);transform:none;background:var(--bg-alt)}
.hero{padding:66px 0 70px;text-align:left}.hero__inner{max-width:var(--container);display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:64px;align-items:center}.hero__title{font-weight:400;font-size:clamp(2.6rem,4.5vw,3.8rem);letter-spacing:-.045em;line-height:1.12;margin-bottom:24px}.hero__title .line{animation:none;transform:none}.hero__title .gold{font-style:italic}.hero__eyebrow{font-size:.9rem;line-height:1.7}.hero__lead{font-size:1rem;line-height:1.8;margin:0 0 25px}.hero__cta{justify-content:flex-start}.editorial-kicker{font-size:.69rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin:0 0 22px}.editorial-brief{background:var(--surface);border:1px solid var(--border-soft);padding:34px;position:relative}.editorial-brief:before{content:'';position:absolute;top:-2px;left:34px;width:52px;height:3px;background:var(--gold)}.editorial-brief h2{font:400 1.85rem/1.25 var(--font-display);color:var(--text);margin:14px 0 28px}.editorial-brief ol{list-style:none;counter-reset:brief;padding:0;margin:0}.editorial-brief li{counter-increment:brief;display:grid;grid-template-columns:24px 1fr;gap:15px;padding:21px 0;border-top:1px solid var(--border-soft)}.editorial-brief li:before{content:'0' counter(brief);font-size:.72rem;color:var(--gold);padding-top:2px}.editorial-brief li:last-child{padding-bottom:0}.editorial-brief strong{color:var(--text);font-size:.95rem;font-weight:500}.editorial-brief p{font-size:.83rem;line-height:1.7;margin:7px 0 0;color:var(--text-dim)}
.section--alt{background:var(--bg-alt)}.section__head{text-align:left;max-width:none;margin:0 0 36px}.section__title{font-weight:400;font-size:clamp(1.9rem,3.2vw,2.7rem)}.section__sub{margin:0;max-width:760px;font-size:1rem}.card,.card:hover{background:var(--surface);border-color:var(--border-soft);box-shadow:none;transform:none}.card::before{display:none}.card:hover{border-color:var(--gold)}.card__title{font-family:var(--font-display);font-weight:500;font-size:1.25rem}.card__icon,.contact-card__icon,.contact-address__icon,.flist__icon,.cv-group__icon{background:var(--bg-alt);border-color:var(--border-soft)}.flagship__panel{background:var(--surface);border-color:var(--border);box-shadow:none;border-radius:4px}.flagship__chip{border:0;background:none;padding:0;color:var(--gold);letter-spacing:.15em}.flagship__title{font-weight:400}.flagship__item{background:var(--bg);border-color:var(--border-soft);border-radius:4px}.flagship__points strong{font-weight:600}
.panel,.principle,.contact-card,.contact-address,.listbox,.cta,.cta__inner,.about__stats,.stat,.cv-facts,.cv-entry,.cv-group,.toc,.post__cta{background:var(--surface);box-shadow:none;border-color:var(--border-soft)}.panel::before,.cta::before,.cta__inner::before{display:none}.contact-card:hover{background:var(--bg-alt);box-shadow:none;transform:none;border-color:var(--gold)}.contact-card__value{overflow-wrap:anywhere}.contact-card__icon{color:var(--gold)}.timeline__num,.timeline__step::before{background:var(--surface);border-color:var(--border)}.timeline__title{font-weight:500}.quote{border-color:var(--border);color:var(--text)}.footer{background:var(--surface);border-color:var(--border-soft)}.footer__powered{border-color:var(--border-soft)}.footer__col .footer__heading{font-weight:500}.footer__logo{filter:none}.footer__col a{text-decoration:none}.footer__col a:hover{text-decoration:underline}.crumbs li+li::before,.cv-job__meta .sep{color:var(--text-dim)}
.prod-hero__title,.post__title{font-weight:400;letter-spacing:-.035em}.prod-hero{padding:42px 0 58px}.post__head{padding-top:36px}.post__body{line-height:1.85}.post__body h2{font-weight:500}.post__body h3{color:var(--text)}.post__body .note,.post__body code{background:var(--bg-alt);border-color:var(--border);color:var(--text-soft)}.post__figure img{border-color:var(--border-soft);border-radius:3px}.toc{border-radius:3px}.post__cta{border-radius:3px}.grid--insights .card{padding:30px;border:0;border-top:1px solid var(--border-soft);background:none;border-radius:0}.grid--insights .card__title{font-weight:400;font-size:1.6rem}.js .reveal{opacity:1;transform:none;transition:none}.hero__title .line,.hero__title .line:nth-child(2){animation:none}.stat__number{color:var(--gold)}
@media(max-width:1120px){.nav__inner{gap:12px}.nav__links{gap:13px}.brand__mark{height:52px}.nav__links a{font-size:.77rem}.nav__inner>.btn{font-size:.77rem;padding:9px 12px}.hero__inner{gap:35px}}
@media(max-width:960px){.nav__inner{height:80px;flex-wrap:wrap;position:relative}.nav__toggle{display:flex;margin-left:auto}.nav__links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;margin:0;padding:8px 0;background:var(--surface);border-bottom:1px solid var(--border-soft);box-shadow:0 12px 24px #0001;backdrop-filter:none}.nav__links.is-open{display:flex}.nav__links a{font-size:.95rem;padding:14px 24px;border-bottom:1px solid var(--border-soft)}.nav__links a:last-child{border-bottom:0}.nav__links a:after{display:none}.hero__inner{gap:26px}.editorial-brief{padding:26px}.editorial-brief h2{font-size:1.6rem}}
@media(max-width:720px){:root{--section-py:48px}.hero{padding:38px 0 46px}.hero__inner{grid-template-columns:1fr;gap:32px}.hero__title{font-size:clamp(2.5rem,8vw,3.4rem);max-width:620px}.hero__lead{font-size:.98rem}.editorial-brief{max-width:none}.section__head{margin-bottom:28px}.section__title{font-size:2rem}.post__title{font-size:2.3rem}.post__body{font-size:1rem}.grid--insights .card{padding:26px 0}.prod-hero{padding:30px 0 40px}.container{padding:0 22px}}
@media(max-width:480px){.nav__inner>.btn{display:none}.nav__inner{gap:10px;padding:0 16px;height:76px}.brand__mark{width:136px;height:auto}.appearance{font-size:.76rem;padding:8px 4px;min-height:42px}.nav__toggle{width:40px;height:42px;margin-left:auto}.hero__cta{gap:10px}.hero__cta .btn{padding:12px 16px;font-size:.83rem}.editorial-brief{padding:24px}.hero__title{font-size:2.6rem}.container{padding-left:20px;padding-right:20px}}
@media print{.appearance,.editorial-brief{display:none}.hero__inner{display:block}}
/* Appearance changes are immediate so foreground/background never transition apart. */
.nav,.nav.is-scrolled,.btn,.contact-card{transition:none}
.prod-hero + .section{padding-top:20px}
.contact-grid{margin-top:24px}
.editorial-brief .editorial-kicker{color:var(--gold);font-size:.69rem;line-height:1.5}
/* Do not animate colours across appearance changes: keep text and surface in sync. */
html[data-theme] *{transition-property:transform,opacity}

/* Picture preserves the existing image box and its intrinsic aspect ratio. */
picture.editorial-picture{display:contents}

/* Accessibility audit: theme-safe labels and visible links/focus. */
.pill,.badge{background:var(--bg-alt);color:var(--text);border-color:var(--border)}
.about-card,.switch-card{background:var(--surface)}
.about-card__badge{background:var(--action);color:var(--action-text);box-shadow:none}
.footer__powered a{text-decoration:underline;text-underline-offset:3px}
.skip-link{background:var(--action);color:var(--action-text);min-height:44px}
.crumbs:has(>a){display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px}
.crumbs:has(>a)>a{display:inline-block}
/* A working navigation remains available when JavaScript is disabled. */
html:not(.js) .nav__toggle,html:not(.js) .appearance{display:none}
@media(max-width:960px){
 html:not(.js) .nav{position:static}
 html:not(.js) .nav__inner{height:auto;min-height:80px;padding-top:12px;padding-bottom:12px}
 html:not(.js) .nav__links{display:flex;position:static;flex-basis:100%;order:3;box-shadow:none;border:0;padding:12px 0 0}
 html:not(.js) .nav__links a{padding:12px 0}
}

.about-card__lead a{color:var(--gold);text-decoration:underline;text-underline-offset:3px}

/* Contact action and availability share a row rhythm; status stays noninteractive. */
.cta__actions{display:flex;justify-content:center;align-items:stretch;gap:16px;flex-wrap:wrap}
.cta__actions>.btn,.cta__actions>.badge{box-sizing:border-box;min-height:56px;margin:0;padding:16px 24px;font-size:.9rem;line-height:1.5;border-radius:3px;justify-content:center}
.cta__actions>.badge{background:transparent}
@media(max-width:600px){.cta__actions{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:1fr}.cta__actions>.btn,.cta__actions>.badge{width:100%}}

.contact-address__map{color:var(--gold);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.contact-address__map:hover{text-decoration-thickness:2px}.contact-address__map:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
