:root{
--bg:#F6F7F9;--surface:#FFFFFF;--ink:#0A1A2F;--ink-soft:#2F4258;--muted:#68788B;
--line:#DDE2E9;--accent:#0000ff;--accent-soft:#e0e0ff;--radius:2px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Barlow",Georgia,serif;font-size:1.0rem;line-height:1.68;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%}
img{height:auto;display:block}
a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}
h1,h2,h3,h4{font-family:"Barlow Condensed",Georgia,serif;font-weight:700;letter-spacing:0.01em;line-height:1.12;color:var(--ink);margin:0 0 .55em}
h1{font-size:clamp(2.1rem,5vw,3.4rem)}
h2{font-size:clamp(1.45rem,2.9vw,2rem);margin-top:2.4em}
h3{font-size:1.18rem;margin-top:1.9em}
p,ul,ol,table,blockquote,pre{margin:0 0 1.2em}
ul,ol{padding-left:1.25em}
li{margin-bottom:.45em}
strong{font-weight:600}
.wrap{max-width:62rem;margin:0 auto;padding:0 1.5rem}
.muted{color:var(--muted)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:.5rem;top:.5rem;background:var(--surface);padding:.6rem .9rem;z-index:20;border:2px solid var(--accent);border-radius:var(--radius)}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:2px}
main{padding-bottom:4rem}
.mark{flex:none}

/* ---------- masthead ---------- */
header.mast{position:relative;z-index:3}
.mast-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.1rem 0;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:1.16rem;letter-spacing:0.01em;color:var(--ink);text-decoration:none;text-transform:uppercase;}
.brand:hover{text-decoration:none;color:var(--accent)}
.brand .mark{width:30px;height:30px}
nav.top ul{display:flex;flex-wrap:wrap;gap:.35rem;list-style:none;margin:0;padding:0}
nav.top a{display:block;color:var(--ink-soft);text-decoration:none;font-size:.875rem;font-family:"Barlow Condensed",sans-serif;padding:.4rem .7rem;border-radius:var(--radius);transition:background .15s,color .15s}
nav.top a:hover{color:var(--accent);background:var(--accent-soft);text-decoration:none}
nav.top a[aria-current=page]{color:var(--accent);background:var(--accent-soft);font-weight:600}

/* ---------- hero ----------
   Deliberately compact: a hero that fills the viewport pushes every piece of
   real content below the fold, which is what makes a site read as a brochure
   rather than a publication. */
.hero{position:relative;overflow:hidden;padding:clamp(1.8rem,3.4vw,2.9rem) 0 clamp(1.6rem,3vw,2.4rem);margin-bottom:2rem}
.hero-in{position:relative;z-index:2;max-width:46rem}
.hero h1{margin-bottom:.3em;color:#fff;font-size:clamp(1.9rem,4vw,2.9rem)}
.kicker{display:inline-block;font-family:"Barlow Condensed",sans-serif;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--accent);margin-bottom:.7rem}
.hero .lede{font-size:clamp(1rem,1.5vw,1.17rem);line-height:1.5;color:rgba(255,255,255,.78);max-width:42rem;margin:0}
.mark-ghost{position:absolute;right:-5rem;top:50%;transform:translateY(-50%);width:min(22rem,34vw);height:auto;opacity:.13;z-index:1;pointer-events:none}
@media(max-width:760px){.mark-ghost{display:none}}

/* Hero with photography: image sits beside the text rather than behind it, so
   the words stay legible without a scrim. */
.hero-media{display:grid;grid-template-columns:1.15fr .85fr;gap:2.5rem;align-items:center}
.hero-media .hero-in{max-width:none}
.hero-figure{position:relative;z-index:2;margin:0}
.hero-figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--radius);border:1px solid rgba(255,255,255,.12)}
.hero-figure figcaption{font-size:.68rem;line-height:1.4;color:rgba(255,255,255,.45);margin-top:.45rem}
@media(max-width:820px){.hero-media{grid-template-columns:1fr;gap:1.4rem}.hero-figure img{aspect-ratio:16/9}}

/* ---------- structural axes ----------
   These are seeded per DOMAIN, independently of the archetype, so two sites
   sharing a layout family are still built differently. */
.mast-tagline{font-size:.8rem;color:var(--muted);font-style:italic}
.nav-band .mast-in{padding-bottom:.75rem}
.nav-band .navband{background:var(--ink);border-top:1px solid var(--line)}
.nav-band .navband nav.top ul{gap:0;padding:0}
.nav-band .navband nav.top a{color:rgba(255,255,255,.86);border-radius:0;padding:.6rem .95rem;font-size:.8rem;text-transform:uppercase;letter-spacing:.07em}
.nav-band .navband nav.top a:hover,.nav-band .navband nav.top a[aria-current=page]{background:var(--accent);color:#fff}
.nav-centered .mast-in{flex-direction:column;gap:.25rem;text-align:center;padding-bottom:.5rem}
.nav-centered .brand{font-size:clamp(1.5rem,3.6vw,2.3rem)}
.nav-centered nav.top ul{justify-content:center;padding-bottom:.85rem}
.nav-rail .mast-in{align-items:baseline}
.nav-rail nav.top ul{gap:1.1rem}
.nav-rail nav.top a{padding:.2rem 0;border-radius:0;border-bottom:2px solid transparent}
.nav-rail nav.top a:hover,.nav-rail nav.top a[aria-current=page]{background:none;border-bottom-color:var(--accent)}

.hero-panel .hero-box{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:var(--radius);padding:1.8rem 2rem}
.hero-offset{padding-left:0}
.hero-offset .hero-rule{display:block;width:4.5rem;height:5px;background:var(--accent);margin-bottom:1.1rem}
.hero-offset .hero-in{padding-left:0}
.hero-bleed{background:var(--ink);color:#fff;margin-bottom:2.5rem}
.hero-bleed h1{color:#fff}
.hero-bleed .lede{color:rgba(255,255,255,.78)}
.hero-bleed .kicker{color:var(--accent)}
.hero-split .hero-media{grid-template-columns:.9fr 1.1fr}

.index.magazine{display:block}
.index.magazine li{border-bottom:1px solid var(--line);padding:1.3rem 0;background:none;border-radius:0;box-shadow:none!important;transform:none!important}
.index.magazine li:first-child{padding-top:0}
.index.magazine li:first-child h3{font-size:1.6rem}
.index.magazine li:first-child p{font-size:1.02em}

/* Inline article imagery */
figure.inline{margin:2rem 0}
figure.inline img{width:100%;border-radius:var(--radius);border:1px solid var(--line)}
figure.inline figcaption{font-size:.72rem;color:var(--muted);margin-top:.5rem;line-height:1.45}

/* A band of real content immediately under the hero, so something useful is
   visible without scrolling. */
.lead-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface);padding:1.15rem 0;margin-bottom:2.5rem}
.lead-strip-in{display:flex;flex-wrap:wrap;gap:1.6rem 2.4rem;align-items:baseline}
.lead-strip .item{display:flex;align-items:baseline;gap:.55rem;font-size:.9rem}
.lead-strip .item b{font-family:"Barlow Condensed",sans-serif;font-weight:700;font-size:1.05rem;color:var(--accent)}
.lead-strip .item span{color:var(--muted)}

/* ---------- article body ---------- */
article{max-width:44rem}
article>p:first-of-type{font-size:1.06em;color:var(--ink-soft)}
blockquote{border-left:3px solid var(--accent);margin-left:0;padding:.3em 0 .3em 1.3em;color:var(--ink-soft);font-style:italic}
code{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:.88em;background:var(--accent-soft);color:#0000ff;padding:.15em .42em;border-radius:4px;font-weight:500}
pre{background:#15181F;color:#E6EDF3;padding:1.15rem 1.3rem;border-radius:var(--radius);overflow-x:auto;font-size:.87rem;line-height:1.6;border:1px solid transparent}
pre code{background:none;padding:0;color:inherit;font-weight:400}
table{width:100%;border-collapse:collapse;font-size:.94em;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
th,td{text-align:left;padding:.72em .9em;border-bottom:1px solid var(--line)}
tbody tr:last-child td{border-bottom:none}
th{font-family:"Barlow Condensed",sans-serif;font-weight:600;font-size:.76em;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);background:var(--bg)}
tbody tr:hover{background:var(--accent-soft)}
hr{border:none;border-top:1px solid var(--line);margin:2.5rem 0}

/* ---------- index cards ---------- */
.index{list-style:none;padding:0;margin:2rem 0 0;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr))}
.index li{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem 1.5rem;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.index li:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 10px 30px -12px rgba(16,20,26,.18)}
.index h3{margin:0 0 .45rem;font-size:1.08rem}
.index h3 a{color:var(--ink);text-decoration:none}
.index h3 a::after{content:"";position:absolute;inset:0}
.index li:hover h3 a{color:var(--accent)}
.index p{margin:0;color:var(--muted);font-size:.92em;line-height:1.55}

/* ---------- tools ---------- */
.tool{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;margin:2rem 0;box-shadow:0 1px 2px rgba(16,20,26,.04)}
.tool .row{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));margin-bottom:1.1rem}
.tool label{display:block;font-size:.74rem;font-family:"Barlow Condensed",sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:.4rem}
.tool input,.tool select,.tool textarea{width:100%;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:var(--radius);background:var(--bg);color:var(--ink);font:inherit;font-size:1rem;font-family:"Barlow Condensed",sans-serif;font-weight:500;transition:border-color .14s}
.tool input:focus,.tool select:focus,.tool textarea:focus{border-color:var(--accent);outline:none}
.calc-out{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));border-top:1px solid var(--line);margin-top:1.3rem;padding-top:1.3rem}
.calc-out div{min-width:0}
.calc-out span{display:block;font-size:.7rem;font-family:"Barlow Condensed",sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:.3rem}
.calc-out strong{display:block;font-family:"Barlow Condensed",sans-serif;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--ink);word-break:break-word;line-height:1.1}
.calc-out div:first-child strong,.calc-out div:nth-child(4) strong{color:var(--accent)}
.note{font-size:.9rem;color:var(--muted);margin:1.1rem 0 0;line-height:1.6;padding-top:.9rem;border-top:1px dashed var(--line)}

footer{border-top:1px solid var(--line);margin-top:5rem;padding:2.5rem 0 3.5rem;font-size:.86rem;color:var(--muted);background:var(--surface)}
.foot-grid{display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;align-items:flex-start}
.foot-brand{display:flex;align-items:center;gap:.55rem;font-family:"Barlow Condensed",sans-serif;font-weight:600;color:var(--ink);margin-bottom:.6rem}
.foot-brand .mark{width:22px;height:22px}
.disclaim{max-width:46ch;line-height:1.6}
footer a{color:var(--ink-soft)}
footer nav a{display:inline-block;margin-right:1rem;text-decoration:none}
footer nav a:hover{color:var(--accent)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto}}
header.mast{background:var(--ink)}
.mast-in{padding:1.15rem 0 .9rem}
.brand{font-size:clamp(1.5rem,3.4vw,2.1rem);letter-spacing:.01em}
nav.top{background:var(--accent)}
nav.top ul{gap:0;padding:0}
nav.top a{color:rgba(255,255,255,.94);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;font-weight:600;padding:.62rem .95rem;border-radius:0}
nav.top a:hover,nav.top a[aria-current=page]{background:rgba(0,0,0,.22);color:#fff}
.eyebrow-row{display:flex;align-items:center;gap:.55rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;margin-bottom:.4rem}
.eyebrow-row .tag{color:var(--accent)}
.eyebrow-row .sep{color:var(--line)}
.eyebrow-row .meta{color:var(--muted);font-weight:500;letter-spacing:.04em}
.index li{border-top:4px solid var(--accent)}
article h2{border-bottom:2px solid var(--ink);padding-bottom:.28em;margin-top:2.6em}
.side-module{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.side-heading{background:var(--ink);color:#fff;font-family:"Barlow Condensed",sans-serif;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;padding:.6rem .9rem;margin:0}
.num{font-family:"Barlow Condensed",sans-serif;color:var(--accent);font-size:.9rem;font-weight:700}
.brand{color:#fff}
.brand:hover{color:#fff;opacity:.85}
nav.top a{color:rgba(255,255,255,.72)}
nav.top a:hover,nav.top a[aria-current=page]{color:#fff;background:rgba(255,255,255,.12)}
.accent-bar{height:5px;background:var(--accent)}
.hero{background:var(--ink);color:#fff;margin-bottom:0;padding-bottom:clamp(3rem,6vw,4.5rem)}
.hero::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14'><path d='M-2 2 L2 -2 M0 14 L14 0 M12 16 L16 12' stroke='rgba(0%2C0%2C0%2C0.05)' stroke-width='2'/></svg>");opacity:.9;z-index:0}
.hero::before{content:"";position:absolute;right:0;top:0;bottom:0;width:38%;background:var(--accent);opacity:.16;transform:skewX(-11deg);transform-origin:top;z-index:1}
.hero h1{color:#fff;text-transform:uppercase;font-size:clamp(2.3rem,6.5vw,4rem)}
main{padding-top:3rem}
.index li{border-top:4px solid var(--accent)}