:root{
  /* Surfaces & brand greens (CFP / quiz palette) */
  --ground:#0B3B27;      /* deep green: header, footer, dark bands */
  --forest:#0c5c12;      /* brand green: primary buttons */
  --primary:#168a1f;     /* light green: links, eyebrows, accents on light */
  --leaf:#168a1f;
  --tint:#EAF4EC;        /* green tint: soft backgrounds */
  /* Accent on dark surfaces (mint replaces gold) */
  --gold:#6EE7A0;
  --gold-soft:#8FF0B8;
  --paper:#F8F7F2;
  --white:#FFFFFF;
  --ink:#12160f;
  --muted:#5b625d;
  --line:#E7E4DB;
  --line-dark:rgba(255, 255, 255, .16);
  --maxw:1180px;
  --pad:clamp(20px, 5vw, 56px);
  --radius:12px;
  --sans:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  --display:'Manrope', 'Inter', sans-serif;
}
:root:not([data-theme="light"]){}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-weight:400;font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
h1, h2, h3, h4{margin:0;font-family:var(--display);font-weight:800;letter-spacing:-.025em;line-height:1.08}
p{margin:0 0 1em}
.wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.skip{position:absolute;left:-9999px;top:0;background:var(--gold);color:var(--ground);padding:10px 16px;z-index:200;font-weight:700}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:6px}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:100;background:var(--ground);border-bottom:1px solid rgba(255, 255, 255, .08)}
.head-in{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);height:74px;display:flex;align-items:center;gap:32px}
.logo{flex:none;display:block;line-height:0}
.logo img{height:30px;width:auto}
.nav{display:flex;gap:26px;margin-left:auto;align-items:center}
.nav a{color:rgba(255, 255, 255, .86);text-decoration:none;font-size:15px;font-weight:500;padding:6px 0;border-bottom:2px solid transparent}
.nav a:hover{color:#fff;border-bottom-color:var(--gold)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-weight:700;font-size:15.5px;
  padding:14px 26px;border-radius:var(--radius);text-decoration:none;border:1.5px solid transparent;cursor:pointer;transition:background .18s, color .18s, border-color .18s}
.btn-gold{background:var(--gold);color:var(--ground)}
.btn-gold:hover{background:var(--gold-soft)}
.btn-ghost{border-color:rgba(255, 255, 255, .4);color:#fff}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn-dark{background:var(--ground);color:#fff}
.btn-dark:hover{background:var(--forest)}
.btn-outline{border-color:var(--ink);color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.nav-toggle{display:none;margin-left:auto;background:none;border:1px solid rgba(255, 255, 255, .35);color:#fff;border-radius:10px;padding:9px 12px;font:inherit;font-size:14px;font-weight:600}
@media (max-width:980px){
  .nav{position:fixed;inset:74px 0 auto 0;background:var(--ground);flex-direction:column;align-items:stretch;gap:0;padding:8px var(--pad) 24px;display:none;border-bottom:1px solid rgba(255, 255, 255, .12)}
  .nav.open{display:flex}
  .nav a{padding:14px 0;border-bottom:1px solid rgba(255, 255, 255, .08)}
  .nav .btn{margin-top:14px}
  .nav-toggle{display:block}
}

/* ---------- pillar rail (desktop) ---------- */
.rail{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:60;display:none;flex-direction:column;gap:2px}
@media (min-width:1360px){.rail{display:flex}}
.rail a{display:flex;align-items:center;gap:10px;text-decoration:none;padding:7px 0;color:var(--muted);font-size:11.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
.rail i{display:block;width:3px;height:26px;background:var(--line);transition:background .25s, height .25s}
.rail a[data-key="community"].on i{background:var(--gold)}
.rail a[data-key="learning"].on i{background:var(--leaf)}
.rail a[data-key="org"].on i{background:var(--primary)}
.rail a.on{color:var(--ink)}
.rail a.on i{height:40px}

/* ---------- shared section bits ---------- */
section{padding:clamp(72px, 9vw, 132px) 0}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--primary);margin:0 0 18px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold);flex:none}
.on-dark .eyebrow{color:var(--gold-soft)}
.h2{font-size:clamp(30px, 4.3vw, 50px);max-width:17ch}
.lede{font-size:clamp(17px, 1.5vw, 19.5px);color:var(--muted);max-width:60ch;line-height:1.6}
.on-dark{background:var(--ground);color:#fff}
.on-dark .lede{color:rgba(255, 255, 255, .76)}
.strong-line{font-weight:700;color:var(--ink)}
.on-dark .strong-line{color:#fff}
.sec-head{display:grid;grid-template-columns:1fr;gap:20px;margin-bottom:clamp(40px, 5vw, 64px)}
@media (min-width:900px){.sec-head.split{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:56px;align-items:end}}
.arrowlink{display:inline-flex;align-items:center;gap:8px;font-weight:700;text-decoration:none;color:var(--primary);border-bottom:2px solid transparent;padding-bottom:2px}
.arrowlink:hover{border-bottom-color:var(--gold)}
.on-dark .arrowlink{color:var(--gold)}

/* media slot */
/* ---------- image placeholders: figure.ph holds a real <img>; if the file is missing the tinted box stays ---------- */
.ph{margin:0;width:100%;background:var(--tint);border-radius:14px;overflow:hidden;position:relative}
.ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.on-dark .ph{background:rgba(255,255,255,.06)}
.logo-row{display:flex;flex-wrap:wrap;align-items:center;gap:18px 32px;padding:18px 0;min-height:64px}
.logo-row img{max-height:44px;max-width:150px;width:auto;object-fit:contain;opacity:.9}
.placeholder-text{border:1px dashed rgba(18,22,15,.25);background:var(--tint);border-radius:12px;padding:16px 18px;font-size:14px;color:var(--muted);line-height:1.5}
.placeholder-text b{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:6px}
.on-dark .placeholder-text{border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.05);color:rgba(255,255,255,.7)}

/* ---------- hero ---------- */
.hero{background:var(--ground);color:#fff;padding:clamp(64px, 8vw, 104px) 0 clamp(64px, 8vw, 110px);position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;right:-12%;top:-30%;width:58vw;height:150%;
  background:radial-gradient(closest-side, rgba(31, 159, 59, .20), transparent 72%);pointer-events:none}
.hero-grid{display:grid;gap:clamp(40px, 5vw, 64px);position:relative;z-index:2}
@media (min-width:980px){.hero-grid{grid-template-columns:1.12fr .88fr;align-items:center}}
.hero h1{font-size:clamp(40px, 6.4vw, 76px);max-width:14ch}
.hero .sub{margin:26px 0 0;font-size:clamp(17px, 1.7vw, 21px);color:rgba(255, 255, 255, .8);max-width:46ch}
.hero .sub b{color:#fff;font-weight:700}
.rule{width:74px;height:3px;background:var(--gold);margin:0 0 30px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.hero-media{display:grid;gap:14px}
.hero-media .ph{aspect-ratio:4/5}
.proof{display:flex;gap:10px;align-items:center;background:rgba(255, 255, 255, .06);border-left:3px solid var(--gold);padding:14px 16px;font-size:14px;color:rgba(255, 255, 255, .85)}

/* ---------- pillars ---------- */
.pillars{display:grid;gap:22px}
@media (min-width:860px){.pillars{grid-template-columns:repeat(3, 1fr)}}
.pillar{background:var(--white);border:1px solid var(--line);border-top:4px solid var(--key, var(--primary));padding:32px 28px 28px;display:flex;flex-direction:column}
.pillar h3{font-size:24px;margin-bottom:14px}
.pillar p{color:var(--muted);font-size:16px}
.pillar .arrowlink{margin-top:auto;padding-top:14px}
.pillar[data-key="community"]{--key:var(--gold)}
.pillar[data-key="learning"]{--key:var(--leaf)}
.pillar[data-key="org"]{--key:var(--forest)}

/* ---------- loop ---------- */
.loop{margin:8px 0 34px}
.loop-steps{display:grid;gap:16px;counter-reset:none}
@media (min-width:820px){.loop-steps{grid-template-columns:repeat(4, 1fr);gap:0}}
.step{position:relative;padding:22px 20px;border:1px solid var(--line-dark);background:rgba(255, 255, 255, .04)}
@media (min-width:820px){.step+.step{border-left:none}}
.step span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-soft);margin-bottom:8px}
.step strong{font-size:18px;font-weight:700;line-height:1.25;display:block}
.loop-return{display:flex;align-items:center;gap:12px;font-size:13.5px;color:rgba(255, 255, 255, .62);margin-top:14px}
.loop-return i{flex:1;height:1px;background:rgba(255, 255, 255, .22);display:block}

/* ---------- pathways ---------- */
.paths{display:grid;gap:0;border-top:1px solid var(--line)}
@media (min-width:900px){.paths{grid-template-columns:repeat(4, 1fr);border-left:1px solid var(--line)}}
.path{padding:30px 26px;border-bottom:1px solid var(--line)}
@media (min-width:900px){.path{border-right:1px solid var(--line);border-bottom:none}}
.path em{font-style:normal;display:block;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin-bottom:12px}
.path h4{font-size:19px;margin-bottom:10px}
.path p{color:var(--muted);font-size:15.5px;margin:0}

/* ---------- learning ---------- */
.learn{display:grid;gap:22px}
@media (min-width:900px){.learn{grid-template-columns:1.5fr 1fr}}
.card{border:1px solid var(--line);background:var(--white);padding:34px 30px;display:flex;flex-direction:column}
.card h3{font-size:clamp(24px, 2.6vw, 30px);margin-bottom:12px}
.card .kicker{font-weight:700;color:var(--ink);margin-bottom:6px}
.card p{color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 26px;padding:0;list-style:none}
.chips li{font-size:13px;font-weight:600;padding:7px 12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);background:var(--paper)}
.chips li:first-child{background:var(--ground);color:#fff;border-color:var(--ground)}
.card-cyber{background:var(--ground);color:#fff;border-color:var(--ground)}
.card-cyber p{color:rgba(255, 255, 255, .76)}
.card-cyber .kicker{color:#fff}
.card-cyber .chips li{background:rgba(255, 255, 255, .07);border-color:rgba(255, 255, 255, .2);color:#fff}
.card-cyber .chips li:first-child{background:var(--gold);color:var(--ground);border-color:var(--gold)}
.card .btn, .card .arrowlink{margin-top:auto;align-self:flex-start}
.card .ph{margin:22px 0 0;aspect-ratio:16/9}

/* ---------- community / global ---------- */
.two{display:grid;gap:clamp(34px, 5vw, 60px)}
@media (min-width:900px){.two{grid-template-columns:1fr 1fr;align-items:center}}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:26px 0 0}
.tags li{font-size:14px;padding:8px 14px;border-radius:999px;background:rgba(255, 210, 74, .22);border:1px solid rgba(19, 28, 22, .1)}

/* ---------- insights ---------- */
.posts{display:grid;gap:22px}
@media (min-width:760px){.posts{grid-template-columns:repeat(3, 1fr)}}
.post{border:1px solid var(--line);background:var(--white);display:flex;flex-direction:column}
.post .ph{aspect-ratio:3/2;border-radius:0}
.post-body{padding:22px}
.post .cat{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);display:block;margin-bottom:10px}
.post h4{font-size:19px;margin-bottom:10px;line-height:1.25}
.post p{font-size:15px;color:var(--muted);margin-bottom:14px}
.post .meta{font-size:13px;color:var(--muted);margin-top:auto}

/* ---------- impact ---------- */
.metrics{display:grid;gap:0;border-top:1px solid var(--line-dark)}
@media (min-width:640px){.metrics{grid-template-columns:repeat(2, 1fr)}}
@media (min-width:980px){.metrics{grid-template-columns:repeat(4, 1fr)}}
.metric{padding:28px 22px;border-bottom:1px solid var(--line-dark)}
@media (min-width:980px){.metric{border-bottom:none;border-right:1px solid var(--line-dark)}.metric:last-child{border-right:none}}
.metric b{display:block;font-size:clamp(34px, 4.5vw, 50px);font-weight:800;letter-spacing:-.04em;color:var(--gold);line-height:1}
.metric span{display:block;margin-top:10px;font-size:15px;color:rgba(255, 255, 255, .75)}
.note{margin-top:26px;font-size:13.5px;color:rgba(255, 255, 255, .55)}

/* ---------- final cta ---------- */
.routes{display:grid;gap:18px;margin-top:44px}
@media (min-width:820px){.routes{grid-template-columns:repeat(3, 1fr)}}
.route{border:1px solid var(--line);background:var(--white);padding:28px 24px}
.route p{font-size:17px;font-weight:600;margin-bottom:18px}

/* ---------- footer ---------- */
/* ---------- footer (matches the personality quiz / CFP footer) ---------- */
footer{background:var(--ink);color:rgba(255,255,255,.68);padding:56px 0 28px;font-size:15px;text-align:left}
.foot-grid{display:grid;gap:28px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:20px}
.foot-logo{display:inline-block;margin-bottom:14px}
.foot-logo img{height:28px;width:auto}
.foot-tag{font-family:var(--display);font-weight:800;font-size:17px;color:#fff;margin:0 0 6px}
.foot-grid p{margin:0 0 6px;line-height:1.6;max-width:36ch}
footer h4{margin:0 0 12px;font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:#fff}
footer .foot-grid a{display:block;padding:5px 0;color:rgba(255,255,255,.68);text-decoration:none}
footer .foot-grid a:hover{color:var(--gold)}
.socials{display:flex;gap:12px;margin-top:16px}
footer .socials a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);display:grid;place-items:center;padding:0;transition:all .2s}
footer .socials a:hover{background:var(--forest);border-color:var(--forest)}
.socials svg{width:17px;height:17px;fill:#fff}
footer .foot-wa{display:inline-flex;align-items:center;gap:9px;background:rgba(37,211,102,.12);border:1px solid rgba(37,211,102,.35);border-radius:12px;padding:11px 16px;font-weight:700;font-size:14px;color:#5CE68A;margin-top:6px}
footer .foot-wa:hover{background:rgba(37,211,102,.22);color:#5CE68A}
.foot-wa svg{width:17px;height:17px;fill:#5CE68A}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px 20px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.4)}
.foot-legal{display:flex;gap:16px}
.foot-bottom a{color:rgba(255,255,255,.55);text-decoration:none}
.foot-bottom a:hover{color:var(--gold)}
@media (min-width:640px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid > div:first-child{grid-column:1/-1}}
@media (min-width:1000px){.foot-grid{grid-template-columns:1.5fr 1fr 1fr 1fr 1.1fr;gap:32px}.foot-grid > div:first-child{grid-column:auto}}

/* one orchestrated entrance */
@media (prefers-reduced-motion:no-preference){
  .hero h1, .hero .rule, .hero .sub, .hero-ctas, .hero-media{animation:rise .7s cubic-bezier(.2, .7, .3, 1) both}
  .hero .rule{animation-delay:.04s}.hero h1{animation-delay:.08s}.hero .sub{animation-delay:.18s}
  .hero-ctas{animation-delay:.26s}.hero-media{animation-delay:.34s}
  @keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
}

/* ===== Organizations page, precise, premium, restrained ===== */
.org-hero{background:var(--white);border-bottom:1px solid var(--line);padding:clamp(60px, 7vw, 104px) 0 clamp(56px, 7vw, 92px)}
.org-hero .wrap{display:grid;gap:clamp(34px, 4vw, 60px)}
@media (min-width:980px){.org-hero .wrap{grid-template-columns:1.25fr .75fr;align-items:start}}
.org-hero h1{font-size:clamp(36px, 5.4vw, 64px);max-width:15ch}
.org-hero .spine{border-left:2px solid var(--forest);padding-left:clamp(20px, 3vw, 34px)}
.org-hero p{max-width:52ch}
.org-hero .lede{margin-top:24px}
.org-hero .btn{margin-top:32px}
.facts{display:grid;gap:0;border-top:1px solid var(--line)}
.fact{padding:18px 0;border-bottom:1px solid var(--line);display:flex;gap:16px;align-items:baseline}
.fact em{font-style:normal;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);flex:none;width:76px}
.fact span{font-size:15.5px;color:var(--muted)}

.problem{background:var(--paper)}
.problem .grid{display:grid;gap:clamp(32px, 4vw, 56px)}
@media (min-width:900px){.problem .grid{grid-template-columns:.9fr 1.1fr;align-items:start}}
.pressures{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.pressures li{padding:13px 0;border-bottom:1px solid var(--line);font-size:16px;color:var(--muted)}
.needs{display:grid;gap:0;margin:26px 0 0;border-left:2px solid var(--gold);padding-left:22px}
.needs p{margin:0 0 10px;font-size:18px;font-weight:600;color:var(--ink)}
.needs p:last-of-type{margin-bottom:0}

.pathways{border-top:1px solid var(--line)}
.pw{display:grid;gap:14px;padding:clamp(28px, 3.4vw, 44px) 0;border-bottom:1px solid var(--line);align-items:baseline}
@media (min-width:900px){.pw{grid-template-columns:150px minmax(0, 1fr) auto;gap:clamp(24px, 4vw, 56px)}}
.pw em{font-style:normal;font-size:clamp(20px, 2.2vw, 26px);font-weight:800;letter-spacing:-.02em;color:var(--forest)}
.pw h3{font-size:clamp(19px, 2vw, 23px);margin-bottom:10px}
.pw p{margin:0;color:var(--muted);max-width:56ch;font-size:16px}
.pw .arrowlink{white-space:nowrap;font-size:15px}
@media (min-width:900px){.pw:hover em{color:var(--primary)}}

.how{background:var(--ground);color:#fff}
.steps4{display:grid;gap:0;border-top:1px solid var(--line-dark)}
@media (min-width:760px){.steps4{grid-template-columns:repeat(2, 1fr)}}
@media (min-width:1040px){.steps4{grid-template-columns:repeat(4, 1fr)}}
.s4{padding:30px 26px 34px;border-bottom:1px solid var(--line-dark)}
@media (min-width:1040px){.s4{border-bottom:none;border-right:1px solid var(--line-dark)}.s4:last-child{border-right:none}}
@media (min-width:760px) and (max-width:1039px){.s4:nth-child(odd){border-right:1px solid var(--line-dark)}}
.s4 b{display:block;font-size:13px;font-weight:800;letter-spacing:.1em;color:var(--gold);margin-bottom:14px}
.s4 h4{font-size:20px;margin-bottom:10px}
.s4 p{margin:0;font-size:15.5px;color:rgba(255, 255, 255, .72)}

.why .grid{display:grid;gap:clamp(30px, 4vw, 56px)}
@media (min-width:900px){.why .grid{grid-template-columns:1fr 1fr;align-items:center}}
.compound{border:1px solid var(--line);background:var(--white);padding:28px 26px}
.compound ol{list-style:none;margin:0;padding:0;display:grid;gap:0}
.compound li{padding:15px 0;border-bottom:1px dashed var(--line);font-size:16.5px;display:flex;gap:14px;align-items:baseline}
.compound li:last-child{border-bottom:none}
.compound li i{font-style:normal;color:var(--primary);font-weight:800;flex:none}

.proof-grid{display:grid;gap:20px}
@media (min-width:860px){.proof-grid{grid-template-columns:1.4fr 1fr}}
.case{border:1px solid var(--line);background:var(--white);padding:0;overflow:hidden}
.case-head{padding:24px 26px;border-bottom:1px solid var(--line)}
.case-head h3{font-size:20px}
.case-rows{display:grid}
.case-row{padding:20px 26px;border-bottom:1px dashed var(--line)}
.case-row:last-child{border-bottom:none}
.case-row b{display:block;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);margin-bottom:7px}
.case-row span{color:var(--muted);font-size:15.5px}
.stack{display:grid;gap:20px}
.stack .ph{min-height:104px}

.final{background:var(--paper);border-top:1px solid var(--line)}
.final .wrap{display:grid;gap:28px}
@media (min-width:900px){.final .wrap{grid-template-columns:1.2fr .8fr;align-items:end}}

/* ===== multi-page router ===== */
.nav a.current{color:#fff;border-bottom-color:var(--gold)}

/* breadcrumb */
.crumbs{font-size:13.5px;color:var(--muted);margin-bottom:18px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.crumbs a{color:var(--primary);text-decoration:none;font-weight:600}
.crumbs a:hover{text-decoration:underline}
.crumbs span{opacity:.5}
.on-dark .crumbs{color:rgba(255, 255, 255, .6)}
.on-dark .crumbs a{color:var(--gold)}

/* generic light hero */
.phero{background:var(--white);border-bottom:1px solid var(--line);padding:clamp(56px, 7vw, 96px) 0 clamp(50px, 6vw, 80px)}
.phero h1{font-size:clamp(34px, 5.2vw, 60px);max-width:16ch}
.phero .lede{margin-top:22px}
.phero .btn{margin-top:30px}
.phero-grid{display:grid;gap:clamp(30px, 4vw, 56px)}
@media (min-width:980px){.phero-grid{grid-template-columns:1.2fr .8fr;align-items:start}}
.phero-dark{background:var(--ground);color:#fff;border-bottom:none}
.phero-dark h1{color:#fff}
.phero-dark .lede{color:rgba(255, 255, 255, .78)}
.productline{display:inline-block;margin-top:24px;font-size:clamp(17px, 1.8vw, 21px);font-weight:700;color:var(--gold);letter-spacing:-.01em}

/* definition grid (capability / service lists) */
.defs{display:grid;gap:0;border-top:1px solid var(--line)}
@media (min-width:720px){.defs{grid-template-columns:repeat(2, 1fr)}}
@media (min-width:1080px){.defs.four{grid-template-columns:repeat(4, 1fr)}}
.def{padding:24px 0;border-bottom:1px solid var(--line)}
@media (min-width:720px){
  .defs:not(.four) .def{padding:24px 28px 24px 0}
  .defs:not(.four) .def:nth-child(even){padding-right:0;padding-left:28px;border-left:1px solid var(--line)}
  .defs.four .def{padding:24px 24px 24px 0}
}
@media (min-width:720px) and (max-width:1079px){
  .defs.four .def:nth-child(even){padding-right:0;padding-left:24px;border-left:1px solid var(--line)}
}
@media (min-width:1080px){
  .defs.four .def:not(:nth-child(4n+1)){padding-left:24px;border-left:1px solid var(--line)}
  .defs.four .def:nth-child(4n){padding-right:0}
}
.def h4{font-size:17.5px;margin-bottom:8px}
.def p{margin:0;color:var(--muted);font-size:15.5px}
.on-dark .defs, .on-dark .def{border-color:var(--line-dark)}
.on-dark .def p{color:rgba(255, 255, 255, .72)}

/* process ribbon (non-numbered stages) */
.ribbon{display:grid;gap:0;border-top:2px solid var(--forest)}
@media (min-width:860px){.ribbon{grid-auto-flow:column;grid-auto-columns:1fr}}
.rib{padding:22px 22px 26px 0;border-bottom:1px solid var(--line)}
@media (min-width:860px){.rib{border-bottom:none;border-right:1px solid var(--line);padding:22px 22px 26px}.rib:first-child{padding-left:0}.rib:last-child{border-right:none}}
.rib b{display:block;font-size:16px;font-weight:800;margin-bottom:8px;color:var(--forest)}
.rib p{margin:0;font-size:15px;color:var(--muted);line-height:1.5}
.on-dark .ribbon{border-top-color:var(--gold)}
.on-dark .rib{border-color:var(--line-dark)}
.on-dark .rib b{color:var(--gold)}
.on-dark .rib p{color:rgba(255, 255, 255, .72)}

/* outcome / checklist */
.outcomes{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.outcomes li{padding:16px 0 16px 34px;border-bottom:1px solid var(--line);position:relative;font-size:16.5px}
.outcomes li::before{content:"";position:absolute;left:0;top:24px;width:16px;height:2px;background:var(--gold)}

/* tag cloud / topics */
.topics{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0}
.topics li{font-size:15px;font-weight:600;padding:10px 16px;border:1px solid var(--line);background:var(--white);border-radius:10px}
.on-dark .topics li{background:rgba(255, 255, 255, .06);border-color:var(--line-dark);color:#fff}

/* big statement stack (community / about) */
.statements{display:flex;flex-wrap:wrap;gap:10px 20px;margin:0 0 28px;padding:0;list-style:none}
.statements li{font-size:clamp(22px, 3.2vw, 38px);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.statements li:nth-child(3n+2){color:var(--primary)}
.statements li:nth-child(4n+3){color:var(--muted)}
.on-dark .statements li:nth-child(3n+2){color:var(--gold)}
.on-dark .statements li:nth-child(4n+3){color:rgba(255, 255, 255, .55)}

/* four-up quiet cards */
.quad{display:grid;gap:20px}
@media (min-width:640px){.quad{grid-template-columns:repeat(2, 1fr)}}
@media (min-width:1040px){.quad{grid-template-columns:repeat(4, 1fr)}}
.qcard{border:1px solid var(--line);background:var(--white);padding:26px 22px}
.qcard h4{font-size:19px;margin-bottom:10px}
.qcard p{margin:0;font-size:15.5px;color:var(--muted)}

/* three product choices (learning) */
.choices{display:grid;gap:20px}
@media (min-width:980px){.choices{grid-template-columns:1.3fr 1fr 1fr}}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px;padding:0;list-style:none}
.filters button{font:inherit;font-size:14.5px;font-weight:600;padding:9px 16px;border:1px solid var(--line);
  background:var(--white);border-radius:999px;cursor:pointer;color:var(--ink)}
.filters button[aria-pressed="true"]{background:var(--ground);border-color:var(--ground);color:#fff}
.filters button:hover{border-color:var(--forest)}

/* featured insight */
.featured{display:grid;gap:0;border:1px solid var(--line);background:var(--white);margin-bottom:34px}
@media (min-width:900px){.featured{grid-template-columns:1.1fr .9fr}}
.featured .ph{min-height:260px;border-radius:0;height:100%}

.featured-body{padding:clamp(26px, 3vw, 40px);display:flex;flex-direction:column;justify-content:center}
.featured-body h3{font-size:clamp(22px, 2.6vw, 31px);margin:12px 0 14px}

/* events */
.evt{display:grid;gap:18px;border:1px solid var(--line);background:var(--white);padding:26px;margin-bottom:16px}
@media (min-width:860px){.evt{grid-template-columns:170px minmax(0, 1fr) auto;align-items:center;gap:32px}}
.evt .when{border-left:3px solid var(--gold);padding-left:16px}
.evt .when b{display:block;font-size:19px;font-weight:800;letter-spacing:-.02em}
.evt .when span{display:block;font-size:14px;color:var(--muted);margin-top:4px}
.evt h4{font-size:19px;margin-bottom:8px}
.evt p{margin:0;font-size:15.5px;color:var(--muted)}
.evt .type{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:var(--primary);margin-bottom:8px}
.evt.past{background:var(--paper);opacity:.92}
.evt.past .when{border-left-color:var(--line)}

/* newsletter / forms */
.signup{border:1px solid var(--line);background:var(--white);padding:clamp(26px, 3vw, 40px)}
.on-dark .signup{background:rgba(255, 255, 255, .05);border-color:var(--line-dark)}
.field{display:grid;gap:7px;margin-bottom:16px}
.field label{font-size:13.5px;font-weight:700;letter-spacing:.01em}
.field .opt{font-weight:500;color:var(--muted)}
.field input, .field select, .field textarea{font:inherit;font-size:16px;padding:12px 14px;border:1px solid var(--line);
  background:var(--paper);border-radius:10px;color:var(--ink);width:100%}
.on-dark .field label{color:#fff}
.on-dark .field input, .on-dark .field select, .on-dark .field textarea{background:rgba(255, 255, 255, .08);
  border-color:var(--line-dark);color:#fff}
.field textarea{min-height:110px;resize:vertical}
.field input:focus, .field select:focus, .field textarea:focus{outline:3px solid var(--gold);outline-offset:1px;border-color:var(--forest)}
.field-row{display:grid;gap:16px}
@media (min-width:640px){.field-row{grid-template-columns:1fr 1fr}}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--muted);margin:6px 0 20px}
.consent input{width:18px;height:18px;flex:none;margin-top:2px}
.on-dark .consent{color:rgba(255, 255, 255, .7)}

/* intent selector */
.intents{display:grid;gap:14px;margin-bottom:34px}
@media (min-width:860px){.intents{grid-template-columns:repeat(4, 1fr)}}
.intent{font:inherit;text-align:left;cursor:pointer;background:var(--white);border:1px solid var(--line);
  border-top:4px solid var(--line);padding:22px 20px;display:flex;flex-direction:column;gap:8px;color:var(--ink)}
.intent b{font-size:17px;font-weight:800;letter-spacing:-.02em;line-height:1.2}
.intent span{font-size:14.5px;color:var(--muted)}
.intent[aria-selected="true"]{border-top-color:var(--gold);background:var(--ground);color:#fff}
.intent[aria-selected="true"] span{color:rgba(255, 255, 255, .75)}
.intent:hover{border-color:var(--forest)}
.panel{display:none}
.panel.active{display:block}
.panel-head{margin-bottom:24px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.panel-head h3{font-size:22px;margin-bottom:8px}
.panel-head p{margin:0;color:var(--muted);font-size:15.5px}
.success{display:none;border-left:3px solid var(--primary);background:rgba(0, 135, 81, .07);padding:18px 20px;margin-top:20px;font-size:15.5px}
.success.on{display:block}
.sla{font-size:13.5px;color:var(--muted);margin-top:14px}

/* principles */
.principles{display:grid;gap:0;border-top:1px solid var(--line)}
@media (min-width:900px){.principles{grid-template-columns:repeat(2, 1fr)}}
.principle{padding:28px 0;border-bottom:1px solid var(--line)}
@media (min-width:900px){.principle{padding:28px 34px 28px 0}.principle:nth-child(even){padding-right:0;padding-left:34px;border-left:1px solid var(--line)}}
.principle h4{font-size:clamp(19px, 2.1vw, 24px);margin-bottom:10px}
.principle p{margin:0;color:var(--muted)}

/* mission / vision plaques */
.plaques{display:grid;gap:20px}
@media (min-width:860px){.plaques{grid-template-columns:1fr 1fr}}
.plaque{border:1px solid var(--line-dark);padding:32px 28px;background:rgba(255, 255, 255, .04)}
.plaque h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;font-weight:700}
.plaque p{margin:0;font-size:clamp(18px, 2.1vw, 23px);font-weight:700;letter-spacing:-.02em;line-height:1.3}

/* responsibility matrix */
.matrix{width:100%;border-collapse:collapse;font-size:15.5px}
.matrix th, .matrix td{text-align:left;padding:14px 16px;border-bottom:1px solid var(--line)}
.matrix th{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);font-weight:700}
.matrix td:not(:first-child){text-align:center;width:130px;color:var(--muted)}
.matrix .yes{color:var(--forest);font-weight:800}
.scroller{overflow-x:auto}


@media (min-width:1360px){body[data-page="home"] .rail{display:flex}}

/* ==========================================================================
   HACKTALES v2 — security-domain layer
   Loaded after the base system. Adds the technical register the base lacks:
   a monospace accent face, tabular figures, precision rules, and the
   components that only a security company needs.
   ========================================================================== */

:root{
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --amber:#E8A100;      /* advisory / medium severity */
  --alert:#C2410C;      /* high severity — used sparingly, never decoratively */
  --scan:rgba(31,159,59,.14);
  --tap:44px;           /* minimum touch target */
}

/* --------------------------------------------------------------------------
   1. Technical typography
   Monospace carries the labels, identifiers and figures. It signals
   engineering precision without a single padlock or line of Matrix rain.
   -------------------------------------------------------------------------- */
.eyebrow,
.rail a,
.metric b,
.matrix th,
.path em,
.s4 b,
.post .cat,
.evt .type,
.plaque h4,
.crumbs,
.field label,
.case-row b,
.chips li,
.filters button,
.fact em{
  font-family:var(--mono);
  font-feature-settings:"tnum" 1,"zero" 1;
}
.eyebrow{letter-spacing:.1em;font-weight:600;font-size:11.5px}
.metric b{letter-spacing:-.02em;font-weight:600}
.fact em,.path em,.s4 b{font-weight:600}
.chips li,.filters button{font-size:12.5px;letter-spacing:.01em;text-transform:uppercase}
.matrix td:not(:first-child){font-family:var(--mono);font-feature-settings:"tnum" 1}

/* numerals anywhere in running text line up */
.metrics,.matrix,.evt .when b{font-variant-numeric:tabular-nums}

/* the gold tick before an eyebrow becomes a terminal-style marker */
.eyebrow::before{width:10px;height:10px;background:none;
  border-left:2px solid var(--gold);border-bottom:2px solid var(--gold);
  transform:translateY(-2px) rotate(-45deg);margin-right:4px}

/* --------------------------------------------------------------------------
   2. Hero — a scanline field instead of a soft radial bloom
   Regular, measured, engineered. Sits at low opacity so it reads as texture.
   -------------------------------------------------------------------------- */
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--scan) 1px,transparent 1px);
  background-size:100% 7px;
  opacity:.5;
  mask-image:linear-gradient(to bottom right,#000,transparent 72%);
  -webkit-mask-image:linear-gradient(to bottom right,#000,transparent 72%);
}
.hero-grid{position:relative;z-index:2}

/* --------------------------------------------------------------------------
   3. Trust strip — standards, certifications, coverage
   Sits directly under the hero. On an enterprise security site this is the
   single highest-value strip on the page, and it must never carry a claim
   that has not been verified.
   -------------------------------------------------------------------------- */
.trust{background:var(--white);border-bottom:1px solid var(--line);padding:0}
.on-dark .trust,.trust.dark{background:rgba(255,255,255,.04);border-color:var(--line-dark)}
.trust-in{display:grid;gap:0;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
@media (min-width:600px){.trust-in{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.trust-in{grid-template-columns:repeat(4,1fr)}}
.trust-item{padding:20px 0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:flex-start}
@media (min-width:1040px){
  .trust-item{border-bottom:none;border-right:1px solid var(--line);padding:22px 24px}
  .trust-item:first-child{padding-left:0}
  .trust-item:last-child{border-right:none;padding-right:0}
}
.trust-item svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--primary)}
.trust-item b{display:block;font-size:14.5px;font-weight:700;letter-spacing:-.01em;margin-bottom:3px}
.trust-item span{display:block;font-family:var(--mono);font-size:12px;color:var(--muted);line-height:1.45}
.on-dark .trust-item b{color:#fff}
.on-dark .trust-item span{color:rgba(255,255,255,.66)}
.on-dark .trust-item{border-color:var(--line-dark)}
.on-dark .trust-item svg{color:var(--gold)}

/* --------------------------------------------------------------------------
   4. Coverage grid — which security domains we actually operate in
   A capability map, not a feature list. Blank cells are honest.
   -------------------------------------------------------------------------- */
.coverage{border:1px solid var(--line);background:var(--white);overflow:hidden}
.coverage-row{display:grid;gap:0;border-bottom:1px solid var(--line)}
.coverage-row:last-child{border-bottom:none}
@media (min-width:860px){.coverage-row{grid-template-columns:200px repeat(4,1fr)}}
.coverage-head{background:var(--paper);font-family:var(--mono);font-size:11px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--primary);font-weight:600}
.coverage-cell{padding:14px 16px;border-right:1px solid var(--line);display:flex;align-items:center;gap:8px;min-width:0}
.coverage-cell:last-child{border-right:none}
.coverage-cell.label{font-weight:700;font-size:15px;letter-spacing:-.01em;background:var(--paper)}
.coverage-cell .dot{width:7px;height:7px;border-radius:50%;background:var(--primary);flex:none}
.coverage-cell .dot.none{background:var(--line);}
.coverage-cell span{font-size:13.5px;color:var(--muted);font-family:var(--mono)}
@media (max-width:859px){
  .coverage-row{grid-template-columns:1fr 1fr}
  .coverage-row.coverage-head{display:none}
  .coverage-cell{border-bottom:1px solid var(--line)}
  .coverage-cell.label{grid-column:1 / -1;background:var(--paper)}
  .coverage-cell::before{content:attr(data-col)"";font-family:var(--mono);font-size:10.5px;
    letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-right:auto}
}

/* --------------------------------------------------------------------------
   5. Severity chips — prioritization language, used only where real
   -------------------------------------------------------------------------- */
.sev{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;
  font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:10px;
  border:1px solid currentColor}
.sev i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.sev.critical{color:var(--alert)}
.sev.high{color:var(--amber)}
.sev.standard{color:var(--primary)}

/* --------------------------------------------------------------------------
   6. Operations panel — managed security
   Reads like a service definition, not a fake live dashboard. No invented
   uptime figures, no ticking counters.
   -------------------------------------------------------------------------- */
.ops{border:1px solid var(--line-dark);background:rgba(255,255,255,.04)}
.ops-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:16px 20px;
  border-bottom:1px solid var(--line-dark);font-family:var(--mono);font-size:12px;
  letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.ops-head .live{display:inline-flex;align-items:center;gap:7px;color:var(--gold)}
.ops-head .live i{width:7px;height:7px;border-radius:50%;background:var(--gold);flex:none}
.ops-head .spacer{margin-left:auto}
.ops-body{display:grid;gap:0}
@media (min-width:720px){.ops-body{grid-template-columns:repeat(3,1fr)}}
.ops-cell{padding:20px;border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.ops-cell:last-child{border-right:none}
@media (max-width:719px){.ops-cell{border-right:none}}
.ops-cell b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);margin-bottom:9px}
.ops-cell p{margin:0;font-size:15px;color:rgba(255,255,255,.78);line-height:1.5}

/* --------------------------------------------------------------------------
   7. Attack-surface sequence — workforce security
   The everyday moments where a decision actually gets made.
   -------------------------------------------------------------------------- */
.moments{display:flex;flex-wrap:wrap;gap:0;list-style:none;padding:0;margin:0;
  border-top:1px solid var(--line)}
.moments li{flex:1 1 150px;min-width:0;padding:18px 18px 20px 0;border-bottom:1px solid var(--line)}
.moments li b{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--primary);margin-bottom:7px}
.moments li span{font-size:15px;color:var(--muted);overflow-wrap:break-word}

/* --------------------------------------------------------------------------
   8. Precision details
   -------------------------------------------------------------------------- */
.btn{border-radius:10px;min-height:var(--tap)}
.btn-gold{box-shadow:inset 0 -2px 0 rgba(0,0,0,.14)}
.pillar{position:relative}
.pillar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line)}
.h2{text-wrap:balance}
.lede{text-wrap:pretty}

/* keep long strings from breaking narrow layouts */
h1,h2,h3,h4,p,li,td,th,a,span,b,label{overflow-wrap:break-word}
.matrix td:first-child,.coverage-cell.label{hyphens:auto}

/* ==========================================================================
   HACKTALES v2 — responsive + foldable layer
   Ordered small to large. Foldable rules come last so they win where a
   device reports both a width and a viewport segmentation.
   ========================================================================== */

/* --------------------------------------------------------------------------
   0. Safe areas and overflow safety
   viewport-fit=cover is set in the page head, so insets must be honoured or
   content slides under notches, cutouts and gesture bars.
   -------------------------------------------------------------------------- */
html{-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
.wrap,.head-in,.trust-in{
  padding-left:max(var(--pad),env(safe-area-inset-left));
  padding-right:max(var(--pad),env(safe-area-inset-right));
}
footer{padding-bottom:max(32px,env(safe-area-inset-bottom))}

/* anything that can exceed its column scrolls inside itself, never the page */
.scroller,.coverage,.chips,.topics,.tags,.filters{max-width:100%}
.scroller{-webkit-overflow-scrolling:touch}
img,svg,video,table{max-width:100%}

/* --------------------------------------------------------------------------
   1. Cover screens and very narrow phones — 280px to 359px
   Galaxy Fold closed is 280px. Nothing may overflow, and type must stop
   scaling down into illegibility.
   -------------------------------------------------------------------------- */
@media (max-width:359px){
  :root{--pad:16px}
  body{font-size:16px}
  .head-in{height:62px;gap:12px}
  .logo img{height:24px}
  .nav{inset:62px 0 auto 0}
  .nav-toggle{padding:10px;font-size:13px}

  .hero{padding-top:44px;padding-bottom:48px}
  .hero h1{font-size:30px;line-height:1.12;max-width:none}
  .hero .sub{font-size:16.5px;margin-top:20px}
  .hero-ctas{gap:10px;margin-top:28px}
  .hero-ctas .btn{width:100%}

  section{padding-top:52px;padding-bottom:52px}
  .h2{font-size:25px}
  .lede{font-size:16px}
  .statements li{font-size:21px}

  .btn{width:100%;padding:13px 16px;font-size:15px}
  .routes .btn,.final .btn,.card .btn{width:100%}

  .pillar,.card,.qcard,.route,.compound,.signup,.evt{padding:22px 18px}
  .pw{padding:22px 0}
  .metric b{font-size:32px}

  /* tables cannot reflow this narrow — scroll them */
  .scroller{overflow-x:auto;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  .matrix{min-width:460px}

  /* two-up grids collapse fully */
  .field-row,.two,.quad,.posts,.choices,.learn,.plaques,.proof-grid{grid-template-columns:1fr}
  .chips li,.topics li{font-size:11.5px;padding:6px 9px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:10px}
  .foot-bottom .sp{margin-left:0}
}

/* --------------------------------------------------------------------------
   2. Standard phones — 360px to 599px
   -------------------------------------------------------------------------- */
@media (min-width:360px) and (max-width:599px){
  :root{--pad:20px}
  .hero h1{font-size:clamp(34px,9vw,42px)}
  .hero-ctas .btn{flex:1 1 100%}
  .btn{width:100%}
  .head-in{height:66px}
  .scroller{overflow-x:auto;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad)}
  .matrix{min-width:520px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:10px}
  .foot-bottom .sp{margin-left:0}
}

/* touch targets across every small screen */
@media (max-width:899px){
  .nav a,.foot-grid a,.arrowlink,.filters button,.intent{min-height:var(--tap);display:flex;align-items:center}
  .arrowlink{display:inline-flex}
  .consent input{width:22px;height:22px}
  .field input,.field select,.field textarea{font-size:16px} /* stops iOS zoom on focus */
}

/* --------------------------------------------------------------------------
   3. Short landscape — phones turned sideways, and foldable tabletop mode
   Vertical space is the scarce resource, not width.
   -------------------------------------------------------------------------- */
@media (max-height:520px) and (orientation:landscape){
  .hero{padding-top:36px;padding-bottom:40px}
  .hero h1{font-size:clamp(28px,5vw,40px)}
  .hero-media{display:none}          /* the image slot is the first thing to go */
  section{padding-top:48px;padding-bottom:48px}
  .site-head{position:static}         /* a sticky bar eats too much of a short screen */
  .nav{max-height:calc(100vh - 66px);overflow-y:auto}
}

/* --------------------------------------------------------------------------
   4. Unfolded inner screens and small tablets — 600px to 903px
   A Galaxy Fold opens to roughly 717px wide and near-square. Two columns
   work; three do not.
   -------------------------------------------------------------------------- */
@media (min-width:600px) and (max-width:903px){
  :root{--pad:32px}
  .hero-grid{grid-template-columns:1fr;gap:36px}
  .hero-media{max-width:440px}
  .pillars{grid-template-columns:repeat(2,1fr)}
  .pillars .pillar:last-child{grid-column:1 / -1}
  .quad{grid-template-columns:repeat(2,1fr)}
  .posts{grid-template-columns:repeat(2,1fr)}
  .loop-steps{grid-template-columns:repeat(2,1fr)}
  .steps4{grid-template-columns:repeat(2,1fr)}
  .paths{grid-template-columns:repeat(2,1fr)}
  .intents{grid-template-columns:repeat(2,1fr)}
  .ribbon{grid-auto-flow:row;grid-template-columns:repeat(2,1fr)}
  .rib{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px}
  .on-dark .rib{border-color:var(--line-dark)}
}

/* near-square aspect — the unfolded fold, and tablets held in portrait */
@media (min-aspect-ratio:9/10) and (max-aspect-ratio:11/10) and (min-width:600px){
  .hero-grid{grid-template-columns:1fr}
  .hero-media{max-width:420px}
  .two,.why .grid,.problem .grid{grid-template-columns:1fr;gap:32px}
}

/* --------------------------------------------------------------------------
   5. Foldables with a hinge — dual-segment viewports
   The hinge is a physical gap. Content placed across it is split in half.
   These queries are progressive: devices that do not report segments simply
   never match, and the width rules above continue to apply.
   -------------------------------------------------------------------------- */

/* --- side-by-side segments (book posture, Surface Duo open) --- */
@media (horizontal-viewport-segments:2){
  :root{
    --fold-left: env(viewport-segment-right 0 0);
    --fold-right: env(viewport-segment-left 1 0);
    --fold-gap: calc(var(--fold-right) - var(--fold-left));
  }
  /* full-width grids align their gutter to the hinge rather than ignoring it */
  .hero-grid,
  .two,
  .why .grid,
  .problem .grid,
  .phero-grid,
  .org-hero .wrap,
  .learn,
  .proof-grid,
  .final .wrap{
    grid-template-columns:
      calc(var(--fold-left) - var(--pad))
      1fr;
    column-gap:var(--fold-gap);
  }
  /* components that must never straddle the hinge */
  .coverage,.matrix,.ops,.featured,.signup,.evt{
    grid-column:1 / -1;
    max-width:calc(var(--fold-left) - var(--pad));
  }
  .wrap{max-width:none;padding-left:var(--pad);padding-right:var(--pad)}
  .rail{display:none}
}

/* --- stacked segments (laptop posture: content above the fold, keyboard below) --- */
@media (vertical-viewport-segments:2){
  :root{--fold-top: env(viewport-segment-bottom 0 0);}
  .hero{min-height:var(--fold-top);display:flex;align-items:center}
  .hero-grid{grid-template-columns:1fr}
  .hero-media{display:none}   /* keep the whole message in the upper segment */
  .site-head{position:static}
  section{padding-top:56px;padding-bottom:56px}
}

/* --- legacy Surface Duo syntax, still shipped on older builds --- */
@media (spanning:single-fold-vertical){
  .hero-grid,.two,.phero-grid,.learn,.proof-grid{
    grid-template-columns:calc(env(fold-left) - var(--pad)) 1fr;
    column-gap:env(fold-width);
  }
  .rail{display:none}
}
@media (spanning:single-fold-horizontal){
  .hero-media{display:none}
  .site-head{position:static}
}

/* --------------------------------------------------------------------------
   6. Large screens
   -------------------------------------------------------------------------- */
@media (min-width:1600px){
  :root{--maxw:1280px;--pad:64px}
  .hero h1{font-size:82px}
}

/* --------------------------------------------------------------------------
   7. Preferences and print
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .hero h1,.hero .rule,.hero .sub,.hero-ctas,.hero-media{animation:none}
  *{scroll-behavior:auto}
}
@media (prefers-contrast:more){
  :root{--line:rgba(18,22,15,.4);--line-dark:rgba(255,255,255,.44);--muted:#3d453f}
}
@media print{
  .site-head,.rail,.nav-toggle,.hero-media,.ph,.filters{display:none!important}
  body{background:#fff;color:#000;font-size:11pt}
  .on-dark,.hero,footer{background:#fff!important;color:#000!important}
  .on-dark *,.hero *,footer *{color:#000!important}
  section{padding:18pt 0;break-inside:avoid}
  a[href^="/"]::after{content:" (hacktales.com" attr(href) ")";font-size:9pt}
}

/* ---------- vendor carousel (seamless infinite scroll) ---------- */
.vendors{background:var(--white);border-bottom:1px solid var(--line);padding:30px 0 34px;overflow:hidden}
.vendors-label{margin:0 0 20px;font-size:12px;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);text-align:center}
.vendors-marquee{position:relative;width:100%;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.vendors-track{display:flex;width:max-content;align-items:center;animation:vendors 28s linear infinite;will-change:transform}
.vendors-marquee:hover .vendors-track{animation-play-state:paused}
.vendor{flex:none;display:grid;place-items:center;width:160px;height:56px;margin:0 22px}
.vendor img{width:100%;height:100%;max-width:150px;max-height:44px;object-fit:contain;object-position:center;display:block;transition:transform .3s}
.vendor:hover img{transform:scale(1.06)}
.vendor-text{font-family:var(--display);font-weight:800;font-size:17px;color:var(--muted)}
@keyframes vendors{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:520px){.vendor{width:130px;height:48px;margin:0 14px}.vendor img{max-width:120px;max-height:36px}.vendors-label{font-size:11px}}
/* carousel keeps moving under reduced-motion: it is gentle and pausable on hover */
@media (prefers-reduced-motion:reduce){.vendors-track{animation:vendors 28s linear infinite!important}}

/* ---------- card images (service pathways, home pillars, learning cards) ---------- */
.card-img{margin:0 0 18px;border-radius:12px}
.pw .card-img{margin:0 0 16px}
.pillar .card-img{margin:-32px -28px 20px;border-radius:0}
.card .card-img{margin:-34px -30px 22px;border-radius:0}
@media (max-width:640px){.pillar .card-img{margin:-24px -20px 16px}.card .card-img{margin:-24px -20px 18px}}
.phero-banner{margin:36px 0 0;border-radius:16px}
@media (max-width:640px){.phero-banner{aspect-ratio:16/9!important;margin-top:24px}}

/* ---------- WordPress-fed insights ---------- */
.post-link{display:block;color:inherit;text-decoration:none;height:100%}
.post-link:hover h4,.post-link:hover h3{color:var(--primary)}
.post .post-link .ph img{transition:transform .5s}
.post .post-link:hover .ph img{transform:scale(1.03)}
.featured .post-link{display:grid;gap:0}
@media (min-width:900px){.featured .post-link{grid-template-columns:1.1fr .9fr}}
.featured .cat{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--primary)}
.featured .meta{font-size:13.5px;color:var(--muted)}
.skeleton .ph,.skeleton .cat,.skeleton h4,.skeleton p{background:var(--tint);color:transparent;border-radius:6px;animation:pulse 1.4s ease-in-out infinite}
.skeleton .cat{display:inline-block;width:40%}.skeleton h4{width:85%}.skeleton p{width:70%}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.55}}
.wp-fallback{grid-column:1/-1;color:var(--muted)}
.wp-fallback a{color:var(--primary);font-weight:700}
.post[hidden]{display:none}

/* ---------- live forms ---------- */
.form-error{margin:10px 0 0;font-size:14px;font-weight:600;color:#B42318}
.form-error:empty{display:none}
.or-wa{margin:14px 0 0;font-size:14px;color:var(--muted)}
.or-wa a{color:var(--primary);font-weight:700;text-decoration:none}
.or-wa a:hover{text-decoration:underline}
.btn:disabled{opacity:.7;cursor:wait;transform:none}

/* ---------- mega menu ---------- */
.has-sub{position:static}
.sub-parent{display:inline-flex;align-items:center;gap:6px;background:none;border:none;color:rgba(255,255,255,.85);font:inherit;font-weight:500;padding:6px 0;cursor:pointer;border-bottom:2px solid transparent}
.sub-parent svg{width:14px;height:14px;transition:transform .2s}
.has-sub:hover .sub-parent,.has-sub.open .sub-parent,.has-sub.current .sub-parent{color:#fff;border-bottom-color:var(--gold)}
.has-sub.open .sub-parent svg,.has-sub:hover .sub-parent svg{transform:rotate(180deg)}
.mega{position:absolute;left:50%;top:100%;transform:translate(-50%,8px);width:min(1080px,calc(100vw - 32px));display:grid;grid-template-columns:1.35fr .9fr;background:#fff;color:var(--ink);border-radius:18px;box-shadow:0 40px 80px -30px rgba(0,0,0,.45);overflow:hidden;
  opacity:0;visibility:hidden;transition:opacity .18s,transform .18s,visibility .18s;z-index:120}
.mega::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.has-sub:hover .mega,.has-sub:focus-within .mega,.has-sub.open .mega{opacity:1;visibility:visible;transform:translate(-50%,0)}
.mega-main{padding:30px 36px 28px}
.mega-label{margin:0 0 20px;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--primary)}
.mega-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}
.mega-item{display:flex;align-items:center;gap:14px;padding:10px 10px 10px 6px;border-radius:12px;color:var(--ink);text-decoration:none;font-weight:600;font-size:15px;line-height:1.3;border-bottom:none}
.mega-item:hover,.mega-item:focus-visible{background:var(--tint);color:var(--ink);border-bottom:none}
.mega-ico{flex:none;width:42px;height:42px;border-radius:10px;background:var(--tint);color:var(--forest);display:grid;place-items:center}
.mega-ico svg{width:22px;height:22px}
.mega-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.mega-cta-h{margin:0 0 4px;font-family:var(--display);font-weight:800;font-size:20px;color:var(--ink)}
.mega-cta-p{margin:0;font-size:14px;color:var(--muted);max-width:44ch}
.mega .btn-dark{background:var(--forest);color:#fff;border-color:var(--forest);white-space:nowrap}
.mega .btn-dark:hover{background:var(--ground)}
.mega-side{background:var(--paper);padding:30px 30px 28px;border-left:1px solid var(--line)}
.mega-side .ph{aspect-ratio:16/10;border-radius:12px;margin-bottom:18px}
.mega-side-h{margin:0 0 12px;font-family:var(--display);font-weight:800;font-size:18px;color:var(--ink)}
.mega-side ul{margin:0 0 18px;padding:0 0 0 18px;font-size:14px;color:var(--muted)}
.mega-side li{margin:6px 0}
.mega .btn-outline{background:#fff;color:var(--ink);border-color:var(--line)}
.mega .btn-outline:hover{border-color:var(--forest);color:var(--forest)}
@media (max-width:980px){
  .has-sub{display:block;border-bottom:1px solid rgba(255,255,255,.08)}
  .sub-parent{width:100%;justify-content:space-between;padding:14px 0;border-bottom:none}
  .mega{position:static;transform:none;width:auto;display:none;grid-template-columns:1fr;background:rgba(255,255,255,.05);color:#fff;border-radius:10px;box-shadow:none;margin:0 0 10px}
  .has-sub.open .mega{display:block;opacity:1;visibility:visible}
  .has-sub:hover .mega{display:none}
  .has-sub.open:hover .mega{display:block}
  .mega-main{padding:12px 10px}
  .mega-label{color:var(--gold);margin-bottom:10px}
  .mega-grid{grid-template-columns:1fr;gap:4px}
  .mega-item{color:rgba(255,255,255,.92)}
  .mega-item:hover{background:rgba(255,255,255,.08);color:#fff}
  .mega-ico{background:rgba(255,255,255,.1);color:var(--gold);width:36px;height:36px}
  .mega-cta,.mega-side{display:none}
}

/* mega menu colour overrides (must outrank .nav a) */
.nav .mega,.nav .mega p,.nav .mega li,.nav .mega ul{color:var(--ink)}
.nav .mega .mega-label{color:var(--primary)}
.nav .mega .mega-cta-p,.nav .mega .mega-side ul{color:var(--muted)}
.nav .mega a.mega-item{color:var(--ink);padding:10px 10px 10px 6px;border-bottom:none;font-size:15px;font-weight:600}
.nav .mega a.mega-item:hover,.nav .mega a.mega-item:focus-visible{color:var(--ink);background:var(--tint);border-bottom:none}
.nav .mega a.btn-dark{color:#fff;background:var(--forest);border-color:var(--forest);padding:12px 22px;border-bottom:none}
.nav .mega a.btn-dark:hover{background:var(--ground);color:#fff}
.nav .mega a.btn-outline{color:var(--ink);background:#fff;border:1.5px solid var(--line);padding:12px 22px;border-bottom:1.5px solid var(--line)}
.nav .mega a.btn-outline:hover{color:var(--forest);border-color:var(--forest)}
@media (max-width:980px){
  .nav .mega,.nav .mega p,.nav .mega li{color:#fff}
  .nav .mega a.mega-item{color:rgba(255,255,255,.92)}
  .nav .mega a.mega-item:hover{color:#fff;background:rgba(255,255,255,.08)}
  .nav .mega .mega-label{color:var(--gold)}
}

/* ============================================================
   MOBILE OPTIMISATION LAYER (appended last: these rules win)
   ============================================================ */
:root{--head-h:64px}
.nav-toggle{display:none;align-items:center;gap:9px;margin-left:auto;background:none;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:10px;padding:8px 12px;font:inherit;font-size:14px;font-weight:600;min-height:42px;cursor:pointer}
.nt-bars{display:inline-flex;flex-direction:column;gap:4px;width:18px}
.nt-bars i{display:block;height:2px;background:#fff;border-radius:2px;transition:transform .25s,opacity .25s}
.nav-toggle[aria-expanded="true"] .nt-bars i:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] .nt-bars i:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .nt-bars i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
body.nav-locked{overflow:hidden}

@media (max-width:980px){
  .head-in{height:var(--head-h);gap:14px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .logo img{height:26px}
  .nav-toggle{display:inline-flex}
  .nav{position:fixed;top:var(--head-h);left:0;right:0;bottom:0;height:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--ground);flex-direction:column;align-items:stretch;gap:0;
       padding:6px max(16px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));display:none;border-bottom:none}
  .nav.open{display:flex}
  .nav > a{padding:16px 0;font-size:17px;border-bottom:1px solid rgba(255,255,255,.08);min-height:52px;display:flex;align-items:center}
  .nav > a.btn{margin-top:18px;justify-content:center;font-size:16px;padding:16px 20px;border-bottom:none}
  .has-sub{border-bottom:1px solid rgba(255,255,255,.08)}
  .sub-parent{font-size:17px;padding:16px 0;min-height:52px}
  .sub-parent svg{width:16px;height:16px}
  .mega{margin:0 0 12px}
  .mega-main{padding:6px 4px 10px}
  .mega-label{font-size:11px;margin:6px 0 8px}
  .nav .mega a.mega-item{padding:12px 10px;min-height:52px;font-size:15.5px}
  .mega-ico{width:38px;height:38px}
}

/* ---------- global mobile rhythm ---------- */
@media (max-width:640px){
  :root{--pad:18px}
  section,.band{padding-top:52px;padding-bottom:52px}
  h1{font-size:clamp(30px,8.4vw,40px);line-height:1.1}
  h2{font-size:clamp(24px,6.6vw,32px);line-height:1.15}
  h3{font-size:clamp(19px,5vw,22px)}
  p,li{font-size:16px}
  .btn{width:100%;padding:15px 20px;font-size:16px}
  .hero-ctas{flex-direction:column;gap:10px}
  .hero{padding:44px 0 52px}
  .hero-grid{gap:30px}
  .hero-media{order:2}                     /* headline first, then the photo */
  .hero-frame{padding:0 10px 10px 0}
  .hero-shot{border-radius:14px}
  .hero-media .proof-float{position:static;max-width:none;margin-top:12px;font-size:13.5px}
  .rule{margin-bottom:18px}
  .hero .sub{margin-top:16px;font-size:16.5px}
  .card,.pw,.pillar{padding:22px 18px;border-radius:16px}
  .card .card-img{margin:-22px -18px 16px}
  .pillar .card-img{margin:-22px -18px 16px}
  .pw .card-img{margin:0 0 14px}
  .types{grid-template-columns:1fr}
  .vendors{padding:22px 0 26px}
  .vendors-label{font-size:11px}
  .foot-grid{gap:24px}
  footer{padding-top:44px}
  .foot-bottom{flex-direction:column;align-items:flex-start;gap:8px}
  .foot-legal{gap:14px}
  .matrix{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;font-size:14px}
  .matrix th,.matrix td{white-space:nowrap}
  .filters{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:6px}
  .filters li{flex:none}
  .intents{grid-template-columns:1fr 1fr}
  .intent{min-height:52px;font-size:14.5px}
  .field input,.field select,.field textarea{font-size:16px;min-height:48px}
  .phero-grid{grid-template-columns:1fr}
  .phero-banner{aspect-ratio:16/9;margin-top:22px}
  img{max-width:100%;height:auto}
}
@media (max-width:380px){
  .logo img{height:22px}
  .nav-toggle .nt-text{display:none}
  .nav-toggle{padding:8px 10px}
  .intents{grid-template-columns:1fr}
  h1{font-size:28px}
}
/* comfortable tap targets on any touch device */
@media (hover:none) and (pointer:coarse){
  .btn,.nav > a,.sub-parent,.mega-item,.filters button,.intent,footer .foot-grid a{min-height:44px}
  .card:hover,.pw:hover,.type:hover,.pillar:hover{transform:none}
}


/* ============================================================
   SIMPLE MOBILE MENU (final override; beats every earlier nav rule)
   ============================================================ */
@media (max-width:980px){
  .site-head{position:sticky!important;top:0;transform:none!important}
  .head-in{height:64px!important;position:relative}
  .nav-toggle{display:inline-flex!important;position:relative;z-index:1001}
  #nav.nav{
    position:fixed!important;top:64px!important;right:0!important;bottom:0!important;left:0!important;
    width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;
    margin:0!important;transform:none!important;inset:64px 0 0 0!important;
    display:none!important;flex-direction:column!important;align-items:stretch!important;gap:0!important;
    padding:8px 20px calc(24px + env(safe-area-inset-bottom))!important;
    background:var(--ground)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;z-index:1000!important;
    visibility:visible!important;opacity:1!important}
  #nav.nav.open{display:flex!important}

  /* each section: a heading, then a flat list of its links (no accordion, no chevron) */
  #nav .has-sub{display:block!important;position:static!important;border-bottom:1px solid rgba(255,255,255,.1);padding:6px 0 10px}
  #nav .sub-parent{display:block!important;width:100%;padding:12px 0 4px!important;font-size:12px!important;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)!important;border:none!important;pointer-events:none;cursor:default}
  #nav .sub-parent svg{display:none!important}
  #nav .mega{
    position:static!important;display:block!important;visibility:visible!important;opacity:1!important;transform:none!important;
    width:auto!important;max-width:none!important;margin:0!important;padding:0!important;
    background:transparent!important;box-shadow:none!important;border-radius:0!important;color:#fff!important;grid-template-columns:1fr!important}
  #nav .mega-main{padding:0!important}
  #nav .mega-label,#nav .mega-cta,#nav .mega-side{display:none!important}
  #nav .mega-grid{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  #nav .mega a.mega-item{display:flex!important;align-items:center;gap:12px;padding:12px 0!important;min-height:48px;color:rgba(255,255,255,.92)!important;background:none!important;font-size:16px!important;font-weight:500!important;border:none!important;border-radius:0!important}
  #nav .mega a.mega-item:active{color:var(--gold)!important}
  #nav .mega-ico{width:32px!important;height:32px!important;background:rgba(255,255,255,.08)!important;color:var(--gold)!important;border-radius:8px}
  #nav .mega-ico svg{width:18px;height:18px}

  /* single links + CTA */
  #nav > a{display:flex!important;align-items:center;padding:16px 0!important;font-size:17px!important;font-weight:600;color:#fff!important;border-bottom:1px solid rgba(255,255,255,.1)!important;min-height:52px}
  #nav > a.btn{margin-top:18px!important;justify-content:center;background:var(--gold)!important;color:var(--ground)!important;border:none!important;border-radius:12px!important;padding:16px!important;font-size:16px!important}
}
