@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-400.9b8dd1ec.woff2) format("woff2")}
@font-face{font-family:"Instrument Serif";font-style:italic;font-weight:400;font-display:swap;src:url(fonts/instrument-serif-400-italic.bc891bdd.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-400.77bc0267.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-500.f7016cd4.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-600.196e3cbc.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400.79936b18.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-mono-500.b1c8a895.woff2) format("woff2")}

:root{
 /* new colour tokens, verbatim from _design/tokens.css */
 --bg-page:#FFFFFF; --bg-surface:#FAFAF9;
 --border-subtle:#E7E8EA; --border-default:#D3D5D8; --border-control:#8B9198;
 --text-primary:#10161D; --text-secondary:#58626D; --text-tertiary:#5B6571;
 --accent:#C2512C; --accent-hover:#A8431F; --accent-decorative:#D97757; --accent-wash:#FBE9E2;
 --link:#24485E; --link-hover:#173142;
 --success:#1D6304; --warning:#845610; --error:#93301F; --info:#014DD7;
 --success-wash:#E7F3E4; --warning-wash:#FBEFD8; --error-wash:#F7E4E0; --info-wash:#DFE9FA;
 --chart-1:#1461A8; --chart-2:#6A0CB9; --chart-3:#990B3D; --chart-4:#12ADB4;
 --chart-5:#9C2D8B; --chart-6:#CCB50C; --chart-7:#FC23A0; --chart-8:#A87EEB;
 --chart-9:#5E95FC; --chart-10:#417A1A; --chart-11:#2C6049; --chart-12:#A15A00;
 /* v5 site colour variables, now aliases to the tokens above (Phase 1 bridge) */
 --page:var(--border-subtle); --paper:var(--bg-page); --surface:var(--bg-page);
 --ink:var(--text-primary); --deep:var(--text-primary); --footer:var(--text-primary);
 --plumb:var(--link); --steel-deep:var(--text-tertiary); --steel:var(--border-default);
 --mist:var(--bg-page); --mist-blue:var(--border-subtle);
 --line:var(--border-default); --line-soft:var(--border-subtle); --rule:var(--border-default);
 --muted:var(--text-secondary); --slate:var(--text-secondary); --rust:var(--accent);
 --light:var(--border-default); --pale:var(--border-subtle);
 --c1:var(--chart-1); --c2:var(--chart-12); --c3:var(--chart-4); --c4:var(--chart-5);
 --apta-page:var(--bg-surface);
 /* site spacing, radius and shadow scale (kept); font stacks per _design/tokens.css */
 --sp-2xs:4px; --sp-xs:8px; --sp-sm:14px; --sp-md:22px; --sp-lg:26px;
 --sp-xl:40px; --sp-2xl:52px; --sp-3xl:62px;
 --r-field:7px; --r-card:8px; --r-band:14px; --r-header:26px;
 --sh-header:0 6px 22px rgba(16,22,29,0.07);
 --sh-header-sc:0 10px 30px rgba(16,22,29,0.10);
 --sh-hover:0 22px 52px rgba(16,22,29,0.18);
 --fd:"Instrument Serif", Georgia, serif;
 --fb:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, sans-serif;
 --fm:"IBM Plex Mono", "SFMono-Regular", ui-monospace, monospace;
}

  body { margin:0; background:var(--border-subtle); -webkit-font-smoothing:antialiased; font-family:var(--fb); }
  a { color:var(--link); text-decoration:none; }
  a:hover { color:var(--text-primary); }
  @keyframes aptaFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-6px); } }


html{scroll-behavior:smooth}
*{box-sizing:border-box}
img,video{max-width:100%}
[data-ul]{position:relative}
[data-ul]::after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:currentColor;opacity:.7;transition:right .3s ease}
[data-ul]:hover::after{right:0}
.site{background:var(--apta-page);display:flex;justify-content:center;min-height:100vh}
.cardwrap{width:100%;max-width:1180px;margin:0 auto}
@media(max-width:1180px){.site{padding:0}}
@media(max-width:900px){[style*="grid-template-columns"]{grid-template-columns:1fr !important}}
@media(max-width:820px){nav{gap:12px 16px !important}}
@media(max-width:760px){
 h1{font-size:clamp(40px,12vw,104px) !important;line-height:1.02 !important}
 h2[data-reveal]{font-size:clamp(28px,7vw,46px) !important}
 section, header, footer{padding-left:22px !important;padding-right:22px !important}
 header[data-header] > div{padding-left:0 !important;padding-right:0 !important}
}

@media(max-width:700px){h1,h2,h3,p,div,span{overflow-wrap:anywhere}[style*="display:flex"]{flex-wrap:wrap}}@media print{
 *,*::before,*::after{background:transparent !important;color:var(--text-primary) !important;box-shadow:none !important;text-shadow:none !important}
 html,body{background:var(--bg-page) !important}
 header.top,header[data-header],.dots,video{display:none !important}
 [data-reveal]{opacity:1 !important;transform:none !important}
 svg g[style*="--bg-page"]{fill:var(--text-primary) !important}
}
