/* aspirefox.co.uk — site stylesheet. Tokens from the AegisOps Offshore Design System. */
/* Self-hosted webfonts (SIL OFL 1.1 — licences in /fonts/). Latin subsets, WOFF2 only. */
@font-face{font-family:'IBM Plex Serif';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-serif-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Serif';font-style:italic;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-serif-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Serif';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-serif-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Serif';font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-serif-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-latin-600-normal.woff2) format('woff2')}
:root{
  --navy:#0A1628;--navy-deep:#07111C;--navy-1:#0F1B2D;--navy-2:#141E30;--navy-3:#1C3454;
  --bone:#EBE5D8;--bone-dim:#C8C0B0;--slate:#8A9AAD;--steel:#71859B;--steel-dim:#5C7086;
  --orange:#FF5A00;--orange-hover:#FF6A00;
  --ok:#4A8A5C;--ok-ink:#5FBE85;--warn:#D4A017;--warn-ink:#E3B53D;--bad:#B8392E;--bad-ink:#E08074;
  --line:rgba(235,229,216,0.10);--line-soft:rgba(235,229,216,0.08);--line-strong:rgba(235,229,216,0.35);--border:rgba(255,255,255,0.07);
  --serif:'IBM Plex Serif',Georgia,serif;--sans:'IBM Plex Sans',system-ui,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;
  --gutter:16px;--section:56px;--max:1320px;
  --t-hero:40px;--t-h2:30px;--t-card:20px;--t-body:17px;--t-eyebrow:12px;
}
@media (min-width:768px){:root{--gutter:32px;--t-hero:48px;--t-h2:34px;--t-card:22px;}}
@media (min-width:1200px){:root{--gutter:110px;--section:88px;--t-hero:56px;--t-h2:40px;--t-card:24px;--t-body:18px;--t-eyebrow:13px;}}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{margin:0;background:var(--navy);color:var(--bone);font-family:var(--sans);font-size:var(--t-body);line-height:1.55;text-wrap:pretty}
img{max-width:100%;height:auto;display:block}
a{color:var(--bone);text-decoration:none}
a:hover{color:var(--orange)}
:focus-visible{outline:2px solid var(--orange);outline-offset:3px}
h1,h2,h3,p{margin:0}
.skip{position:absolute;left:-999px;top:8px;background:var(--orange);color:var(--navy);padding:8px 12px;border-radius:8px;z-index:100}
.skip:focus{left:8px}

/* layout */
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.section{padding-top:var(--section);padding-bottom:var(--section)}
.raised{background:var(--navy-1)}
.stack{display:flex;flex-direction:column;gap:16px}
.measure{max-width:720px}
.measure-wide{max-width:820px}

/* type */
.eyebrow{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:var(--t-eyebrow);letter-spacing:0.2em;text-transform:uppercase;color:var(--slate)}
.eyebrow svg{width:16px;height:16px;flex:0 0 16px}
@media (min-width:1200px){.eyebrow svg{width:18px;height:18px;flex-basis:18px}}
.h1{font-family:var(--serif);font-weight:600;font-size:var(--t-hero);line-height:1.08;letter-spacing:-0.015em}
.h2{font-family:var(--serif);font-weight:600;font-size:var(--t-h2);line-height:1.1;letter-spacing:-0.01em}
.h3{font-family:var(--serif);font-weight:600;font-size:var(--t-card);line-height:1.2}
.lead{font-size:19px;line-height:1.45}
@media (min-width:1200px){.lead{font-size:22px}}
.dim{color:var(--bone-dim)}
.muted{color:var(--slate)}
.mono{font-family:var(--mono)}
.label{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--steel)}
@media (min-width:1200px){.label{font-size:12px;letter-spacing:0.2em}}
.quote{font-family:var(--serif);font-weight:500;font-style:italic;font-size:22px;line-height:1.32}
@media (min-width:1200px){.quote{font-size:28px}}
.rule{width:96px;height:1px;background:var(--line-strong)}
.accent{color:var(--orange)}

/* buttons */
.btn{display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:10px;font-weight:600;font-size:16px;white-space:nowrap;transition:background .15s ease,border-color .15s ease}
.btn-primary{background:var(--orange);color:var(--navy)}
.btn-primary:hover{background:var(--orange-hover);color:var(--navy)}
.btn-secondary{border:1px solid rgba(235,229,216,0.25);color:var(--bone);font-weight:500}
.btn-secondary:hover{background:rgba(235,229,216,0.04);border-color:var(--bone);color:var(--bone)}
.btn-row{display:flex;flex-direction:column;gap:10px}
@media (min-width:768px){.btn-row{flex-direction:row;gap:14px}.btn{display:inline-flex}}

/* header */
.site-header{position:sticky;top:0;z-index:50;height:64px;border-bottom:1px solid var(--line-soft);background:linear-gradient(180deg,var(--navy-deep),#0B1725);backdrop-filter:blur(8px)}
.site-header .wrap{height:100%;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px}
.brand img{height:28px;width:auto}
.brand .word{font-family:var(--serif);font-weight:700;font-size:16px;letter-spacing:0.03em;color:var(--bone)}
.brand .ltd{font-family:var(--mono);font-size:10px;letter-spacing:0.3em;color:var(--bone-dim);padding-top:3px}
.nav{display:none}
.menu-btn{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;background:none;border:0;cursor:pointer;font-family:var(--mono);font-size:12px;letter-spacing:0.22em;text-transform:uppercase;color:var(--bone-dim)}
@media (min-width:1200px){
  .site-header{height:84px}
  .brand img{height:34px}.brand .word{font-size:19px}.brand .ltd{font-size:11px}
  .nav{display:flex;align-items:center;gap:34px;font-size:15px;white-space:nowrap}
  .nav a{color:var(--bone-dim)}.nav a:hover{color:var(--bone)}
  .nav a[aria-current=page]{color:var(--bone);border-bottom:1px solid var(--bone);padding-bottom:2px}
  .nav .btn{min-height:44px;padding:0 20px;font-size:15px;border:1px solid rgba(235,229,216,0.35);font-weight:600}
  .menu-btn{display:none}
}
.sheet{position:fixed;inset:0;z-index:60;background:var(--navy);display:none;flex-direction:column;padding:16px var(--gutter) 40px}
.sheet[data-open]{display:flex}
.sheet-top{display:flex;align-items:center;justify-content:space-between;height:48px}
.sheet nav{display:flex;flex-direction:column;gap:6px;margin-top:32px}
.sheet nav a{font-family:var(--serif);font-size:32px;line-height:1.2;padding:10px 0;color:var(--bone)}
.sheet nav a[aria-current=page]{color:var(--bone);box-shadow:inset 3px 0 0 var(--orange);padding-left:16px}
.sheet .btn{margin-top:auto}

/* grid texture + glow (marketing surfaces only) */
.grid-bg{position:relative;overflow:hidden}
.grid-bg::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(235,229,216,0.045) 1px,transparent 1px),linear-gradient(90deg,rgba(235,229,216,0.045) 1px,transparent 1px);background-size:88px 88px;opacity:0.5;pointer-events:none}
.grid-bg.glow::after{content:"";position:absolute;inset:0;background:radial-gradient(700px 420px at 30% 30%,rgba(255,90,0,0.08),transparent 70%);pointer-events:none}
.grid-bg>*{position:relative}

/* panels */
.panel{background:linear-gradient(180deg,var(--navy-2),#121B2B);border:1px solid var(--line);border-radius:16px}
.well{background:rgba(0,0,0,0.18);border:1px solid var(--line);border-radius:12px;padding:18px}
@media (min-width:1200px){.panel{border-radius:24px}.well{border-radius:16px;padding:24px}}
.spine{border-color:var(--line-strong)}

/* chips & pills */
.chip{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;padding:8px 12px;border:1px solid rgba(235,229,216,0.18);border-radius:10px;color:var(--bone);line-height:1.4}
.chip-road{color:var(--slate);border:1px dashed rgba(138,154,173,0.45)}
.chip-road .tag{font-size:10px;letter-spacing:0.18em;color:var(--steel);flex:0 0 auto}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-family:var(--mono);font-size:10px;letter-spacing:0.1em;text-transform:uppercase;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill-ok{color:var(--ok-ink);background:rgba(74,138,92,0.12);border:1px solid rgba(95,190,133,0.30)}
.pill-ok::before{background:var(--ok)}
.pill-warn{color:var(--warn-ink);background:rgba(212,160,23,0.12);border:1px solid rgba(227,181,61,0.30)}
.pill-warn::before{background:var(--warn)}
.pill-bad{color:var(--bad-ink);background:rgba(184,57,46,0.12);border:1px solid rgba(224,128,116,0.30)}
.pill-bad::before{background:var(--bad)}
.pill-plain{color:var(--bone);border:1px solid rgba(235,229,216,0.25)}
.pill-plain::before{display:none}
@media (min-width:1200px){.pill{font-size:11px;padding:5px 12px}}

/* flows */
.flow{display:flex;flex-direction:column;gap:8px}
.flow .arrow{align-self:center;font-family:var(--mono);font-size:20px;color:var(--orange);transform:rotate(90deg)}
@media (min-width:768px){.flow{flex-direction:row;align-items:stretch;gap:10px}.flow .arrow{transform:none;font-size:22px;flex:0 0 auto}.flow .well{flex:1}}

/* lists */
.hairlines>*{padding:16px 0;border-top:1px solid var(--line)}
.hairlines>*:last-child{border-bottom:1px solid var(--line)}
.arrows{display:flex;flex-direction:column;gap:12px}
.arrows>div{display:flex;gap:12px}
.arrows .a{font-family:var(--mono);color:var(--orange);flex:0 0 auto}
.numbered>div{display:grid;grid-template-columns:44px 1fr;gap:12px;padding:18px 0;border-top:1px solid var(--line)}
.numbered>div:last-child{border-bottom:1px solid var(--line)}
.numbered .n{font-family:var(--mono);font-size:13px;color:var(--steel);padding-top:3px}
@media (min-width:1200px){.numbered>div{grid-template-columns:72px 1fr;gap:24px;padding:22px 0}.numbered .n{font-size:14px}}

/* responsive grids */
.g2,.g3,.g4{display:grid;gap:12px}
@media (min-width:768px){.g2{grid-template-columns:1fr 1fr;gap:20px}.g3{grid-template-columns:repeat(3,1fr);gap:20px}.g4{grid-template-columns:1fr 1fr;gap:20px}}
@media (min-width:1200px){.g4{grid-template-columns:repeat(4,1fr)}.g2,.g3{gap:20px}}
.split{display:grid;gap:40px}
@media (min-width:1200px){.split{grid-template-columns:1fr 480px;gap:64px;align-items:start}}

/* planning board / reasoning card rows */
.row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;background:rgba(0,0,0,0.16)}
.row.hot{background:rgba(255,90,0,0.06);box-shadow:inset 3px 0 0 var(--orange)}
.row .id{font-family:var(--mono);font-size:12px}
.row .t{display:none;font-size:14px}
@media (min-width:768px){.row{grid-template-columns:90px 1fr auto;gap:12px;padding:12px 14px;border-radius:12px}.row .id{font-size:13px}.row .t{display:block}}

/* assurance strip */
.strip{display:grid;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft)}
.strip>div{padding:10px 0;border-top:1px solid var(--line);font-family:var(--mono);font-size:12px;letter-spacing:0.06em;color:var(--slate);line-height:1.6}
.strip>div:first-child{border-top:0}
.strip strong{font-weight:400;color:var(--bone)}
@media (min-width:1200px){.strip{grid-template-columns:repeat(4,1fr);padding:40px 0}.strip>div{border-top:0;border-right:1px solid var(--line);padding:0 24px}.strip>div:first-child{padding-left:0}.strip>div:last-child{border-right:0;padding-right:0}}

/* episode slot */
.slot{aspect-ratio:16/9;padding:14px;display:flex;flex-direction:column;gap:6px;overflow:hidden}
@media (min-width:1200px){.slot{padding:18px 20px;gap:8px}}
.slot .cap{font-family:var(--mono);font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--bone-dim)}
@media (min-width:1200px){.slot .cap{font-size:10px}}
.slot .r{display:grid;grid-template-columns:32px 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;background:rgba(0,0,0,0.16);font-size:11px}
.slot .r.w{background:rgba(212,160,23,0.10);border:1px solid rgba(227,181,61,0.30)}
.slot .r.hot{background:rgba(255,90,0,0.06);box-shadow:inset 3px 0 0 var(--orange)}
.slot .k{font-family:var(--mono);font-size:10px;padding:2px 4px;border:1px solid rgba(235,229,216,0.18);border-radius:5px;text-align:center}
.slot .dot{width:6px;height:6px;border-radius:50%}
.slot .bar{display:grid;grid-template-columns:56px 1fr auto;gap:8px;align-items:center;font-family:var(--mono);font-size:10px;color:var(--bone-dim)}
.slot .bar .tr{height:6px;background:rgba(235,229,216,0.08);border-radius:3px;overflow:hidden}
.slot .bar .tr>i{display:block;height:100%}
.slot .bars{display:grid;grid-template-columns:repeat(12,1fr);gap:2px;flex:1;align-items:end}
.slot .bars>i{display:block;border-radius:2px}
.slot .foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:9px;color:var(--slate)}
@media (min-width:1200px){.slot .r{grid-template-columns:36px 1fr auto;gap:10px;padding:8px 10px;border-radius:8px;font-size:13px}.slot .k{font-size:11px;padding:3px 6px}.slot .bar{grid-template-columns:70px 1fr auto;font-size:11px}.slot .bar .tr{height:8px}.slot .foot{font-size:10px}}
.ep{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--steel-dim)}

/* footer */
.site-footer{padding:36px 0 32px;background:linear-gradient(180deg,var(--navy-deep),#0B1725);border-top:1px solid var(--line-soft)}
.site-footer .wrap{display:flex;flex-direction:column;gap:20px}
.site-footer .tag{font-family:var(--mono);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:var(--bone-dim)}
.site-footer .legal{font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--steel)}
.site-footer .legal a{color:var(--bone-dim)}
.site-footer .legal a:hover{color:var(--orange)}
@media (min-width:1200px){
  .site-footer{padding:48px 0 40px}
  .site-footer .top{display:flex;align-items:center;justify-content:space-between}
  .site-footer .legal{display:flex;justify-content:space-between;align-items:flex-end;gap:24px}
}

/* privacy document */
.doc{max-width:680px}
.doc .numbered>div{grid-template-columns:1fr;gap:8px;padding:22px 0}
@media (min-width:1200px){.doc .numbered>div{grid-template-columns:64px 1fr;gap:24px;padding:28px 0}}
.doc p{font-size:17px;line-height:1.65;color:var(--bone-dim)}
.doc a{text-decoration:underline;text-decoration-color:rgba(235,229,216,0.3)}

/* contact */
.email-link{align-self:flex-start;font-family:var(--serif);font-weight:600;font-size:24px;line-height:1.25;color:var(--bone);border-bottom:2px solid rgba(235,229,216,0.25);padding-bottom:3px;word-break:break-all;transition:border-color .15s ease}
.email-link:hover{color:var(--bone);border-bottom-color:var(--orange)}
@media (min-width:768px){.email-link{font-size:32px;word-break:normal}}
@media (min-width:1200px){.email-link{font-size:40px}}
