body{margin:0}
.t-richblack{--ground:#050912;--surface:#0D131D;--surface-raised:#161C29;--stroke:#2A3242;--stroke-strong:#414B5C;--divider:#242B38;--ink-headline:#FAF7F1;--ink:#F3F0E9;--text-muted:#8C9398;--gold:#D8B25F;--on-gold:#050912;--rule:216,178,95}
.t-ivory{--ground:#FAF7F1;--surface:#F3F0E9;--surface-raised:#F3F0E9;--stroke:#A39C8C;--stroke-strong:#6E6A62;--divider:#A39C8C;--ink-headline:#0A0A0C;--ink:#0A0A0C;--text-muted:#6E6A62;--gold:#8C6A1E;--on-gold:#050912;--rule:140,106,30}
.t-richblack,.t-ivory{--gold-fill:#B98B2E;--gold-stroke-thin:#D9C79A;--space-8:8px;--space-16:16px;--space-24:24px;--space-32:32px;--space-64:64px;--radius-card:10px;--divider-width:1px;--font-display:Newsreader,Georgia,serif;--font-sans:"IBM Plex Sans",system-ui,sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,monospace;color:var(--ink);font-family:var(--font-sans)}
.display-2{margin:0;font-family:var(--font-display);font-size:28px;line-height:1.15;font-weight:400;text-wrap:balance}
.display-3{margin:0;font-family:var(--font-display);font-size:22px;line-height:1.2;font-weight:400;text-wrap:pretty}
.body{margin:0;font-family:var(--font-sans);font-size:19px;line-height:1.6;font-weight:400;text-wrap:pretty}
.nc-m .body{font-size:17px}
.kicker{margin:0;font-family:var(--font-mono);font-size:14px;line-height:1.4;letter-spacing:0.2em;text-transform:uppercase;font-weight:400}
.label{margin:0;font-family:var(--font-mono);font-size:11px;line-height:1.6;letter-spacing:0.14em;text-transform:uppercase;font-weight:400}
.terminal{margin:0;font-family:var(--font-mono);font-size:13px;line-height:1.75;letter-spacing:0.02em;font-weight:400}
dl{margin:0}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--gold)}
a:focus-visible,button:focus-visible{outline:2px solid #D8B25F;outline-offset:3px;border-radius:4px}
input::placeholder,textarea::placeholder{color:var(--text-muted);opacity:1}

/* sections: one continuous ground; each section lit by its own fields */
.nc-sec{position:relative;isolation:isolate;overflow:hidden;background:var(--ground)}
.t-ivory.nc-sec{background:linear-gradient(180deg,#FAF7F1 0%,#FAF7F1 22%,#F3F0E9 62%,#FAF7F1 100%)}
.nc-h2{margin:0;font-family:var(--font-display);font-size:48px;line-height:1.06;font-weight:400;text-wrap:balance;color:var(--ink-headline)}
.nc-ct{margin:0;font-family:var(--font-display);font-size:32px;line-height:1.12;font-weight:400;text-wrap:balance}
.nc-ct3{margin:0;font-family:var(--font-display);font-size:26px;line-height:1.18;font-weight:400;text-wrap:balance}
.nc-m .nc-ct{font-size:28px}
.nc-m .nc-ct3{font-size:24px}
.nc-h2-sub{margin:0;font-family:var(--font-display);font-size:34px;line-height:1.12;font-weight:400;text-wrap:balance;color:var(--ink-headline)}

/* silver sheen on headlines (DS 1.1 silver sheen stops), navy grounds only */
.t-richblack .nc-sheen{background:linear-gradient(180deg,#FFFFFF 0%,#FAF7F1 45%,#EDE6D6 85%,#A39C8C 170%);-webkit-background-clip:text;background-clip:text;color:transparent}
.t-richblack .nc-sheen-soft{background:linear-gradient(180deg,#FFFFFF 0%,#FAF7F1 45%,#EDE6D6 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.t-richblack .nc-hero-h1{background:linear-gradient(170deg,#FFFFFF 0%,#FAF7F1 40%,#EDE6D6 80%,#A39C8C 160%);-webkit-background-clip:text;background-clip:text;color:transparent}
.nc-hero-h1{margin:0;font-family:var(--font-display);font-weight:400;letter-spacing:-0.012em;text-wrap:balance;color:#FAF7F1}
.t-ivory .nc-sheen,.t-ivory .nc-sheen-soft{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--ink-headline)}

/* gold type: plain gold, no glow */
.nc-kick{display:flex;align-items:center;gap:12px}
/* metallic gold (Pass 5 ramp) on labels: gradient type, the bar in the same ramp */
.kicker.nc-kick{font-size:14px;letter-spacing:0.14em;font-weight:500;color:#D8B25F}
.t-richblack .kicker.nc-kick,.t-richblack .nc-mgold{background:linear-gradient(180deg,#F0D48E 0%,#D8B25F 48%,#C59B42 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.t-ivory .kicker.nc-kick{color:var(--gold);background:none;-webkit-background-clip:border-box;background-clip:border-box}
.nc-m .kicker.nc-kick{font-size:12px}
.nc-kick::before{content:"";width:28px;height:2px;flex:none;background:linear-gradient(180deg,#F0D48E 0%,#D8B25F 50%,#B98B2E 100%)}
.t-ivory .nc-kick::before{background:var(--gold)}
/* lead lines: 20 px sans in the raised secondary tone */
.nc-lead{margin:0;font-family:var(--font-sans);font-size:20px;line-height:1.5;font-weight:400;color:#A3A9AE;text-wrap:pretty}
.nc-m .nc-lead{font-size:17px}
.t-ivory .nc-lead{color:#57534C}
.nc-sign{margin:0;font-family:var(--font-display);font-size:20px;line-height:1.35;color:var(--ink-headline);text-wrap:pretty}
.nc-behind{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.55;color:#A3A9AE;text-wrap:pretty}
.nc-behind em{font-style:italic;color:#C9CED2}
.nc-goldline{margin:0;font-family:var(--font-mono);font-size:15px;line-height:1.5;letter-spacing:0.02em;color:#D8B25F}
.nc-fit{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.55;color:#A3A9AE}
.nc-fit-k{font-family:var(--font-mono);font-size:13px;letter-spacing:0.04em;color:#D8B25F}
.nc-close{margin:0;font-family:var(--font-display);font-style:italic;font-size:26px;line-height:1.3;color:var(--ink-headline);text-wrap:pretty}
.nc-m .nc-close{font-size:22px}
.nc-justify{text-align:left}   /* fallback: justified text with hyphens:auto opened word gaps up to 3.6x a normal space here (no hyphenation in this renderer) */
.nc-fwname{font-weight:500;color:var(--ink-headline)}
.nc-num{color:#D8B25F}
/* number chips (How It Works and How We Help): ruled, the ring in the metallic ramp, the number centered */
/* chip rows: Newsreader sets its capitals about 3 px above the middle of its line box, so the title drops 3 px (2.25 to 3 px on mobile) to center its capitals on the chip */
.nc-chiprow h3{position:relative;top:3px}
.nc-m .nc-chiprow h3{top:2.25px}
.nc-m [data-sec=steps] .nc-chiprow h3{top:3px}
.nc-chip{box-sizing:border-box;width:36px;height:36px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid transparent;border-radius:8px;
 background:linear-gradient(#161C29,#161C29) padding-box,linear-gradient(180deg,#F0D48E 0%,#D8B25F 45%,#B98B2E 100%) border-box;font-family:var(--font-mono);font-size:17px;font-weight:700;line-height:1;color:#D8B25F}
.nc-chip.nc-chip-inv{width:32px;height:32px;border:0;border-radius:7px;font-size:15px;color:#050912;background:linear-gradient(180deg,#D8B25F 0%,#C59B42 42%,#B98B2E 100%);
 box-shadow:inset 0 1px 0 rgba(252,234,191,0.80),inset 0 -1px 0 rgba(138,106,31,0.55)}

/* gold line with the registration mark at its exact center */
.nc-line{position:relative;height:28px;display:flex;align-items:center;justify-content:center}
.nc-line::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,rgba(var(--rule),0) 0%,rgba(var(--rule),0.16) 18%,rgba(var(--rule),0.48) 38%,rgba(var(--rule),0.80) 50%,rgba(var(--rule),0.48) 62%,rgba(var(--rule),0.16) 82%,rgba(var(--rule),0) 100%)}
.nc-line svg{position:relative;z-index:1;display:block;overflow:visible}
.t-ivory .nc-line svg g{stroke:rgb(var(--rule))}
.nc-line svg circle{fill:var(--ground)}
.nc-seam{position:relative;z-index:5;height:0}
.nc-seam .nc-line{position:absolute;left:var(--px);right:var(--px);top:-14px}
.nc-seam .nc-line svg circle{fill:#FAF7F1}

/* cards: the Pass 5 surface (gradient stroke with a warm top edge, raised-to-surface fill) with the two-layer dark shadow and a 1 px top highlight */
.nc-card{position:relative;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--space-24);border:1.5px solid transparent;border-radius:10px;
 background:linear-gradient(180deg,rgba(22,28,41,0.78) 0%,rgba(22,28,41,0) 100%) padding-box,linear-gradient(#0D131D,#0D131D) padding-box,linear-gradient(180deg,rgba(217,199,154,0.30) 0%,rgba(65,75,92,0.95) 16%,rgba(42,50,66,1) 50%,rgba(42,50,66,0.35) 100%) border-box;
 box-shadow:inset 0 1px 0 rgba(255,255,255,0.06),0 2px 6px rgba(0,0,0,0.35),0 16px 40px rgba(0,0,0,0.50);
 transition:transform .25s ease,box-shadow .25s ease}
.nc-card:hover{transform:translateY(-2px);background:linear-gradient(180deg,rgba(22,28,41,0.78) 0%,rgba(22,28,41,0) 100%) padding-box,linear-gradient(#0D131D,#0D131D) padding-box,linear-gradient(180deg,rgba(217,199,154,0.45) 0%,rgba(65,75,92,1) 16%,rgba(42,50,66,1) 50%,rgba(42,50,66,0.40) 100%) border-box;
 box-shadow:inset 0 1px 0 rgba(255,255,255,0.08),0 2px 6px rgba(0,0,0,0.35),0 22px 52px rgba(0,0,0,0.62)}
.t-ivory .nc-card{background:linear-gradient(180deg,#FAF7F1 0%,#F3F0E9 100%) padding-box,linear-gradient(180deg,rgba(185,139,46,0.35) 0%,rgba(163,156,140,0.60) 10%,rgba(163,156,140,0.45) 100%) border-box;
 box-shadow:inset 0 1px 0 rgba(255,255,255,0.9),0 2px 6px rgba(60,54,44,0.12),0 16px 40px rgba(60,54,44,0.16)}
/* the Book A Call card on ivory: a navy card, the primary path in Contact */
.t-ivory .nc-card.nc-card-dark{background:linear-gradient(180deg,#161C29 0%,#0D131D 100%) padding-box,linear-gradient(180deg,rgba(217,199,154,0.30) 0%,rgba(65,75,92,0.95) 16%,rgba(42,50,66,1) 100%) border-box;
 box-shadow:inset 0 1px 0 rgba(255,255,255,0.06),0 2px 6px rgba(10,10,12,0.30),0 16px 40px rgba(10,10,12,0.32)}
.t-ivory .nc-card.nc-card-dark:hover{transform:none}
/* the one honest marker: Where Most Start, on the Project card */
.nc-tag{flex:none;padding:5px 9px;border:1px solid #D9C79A;border-radius:6px;color:#D8B25F;background:none;white-space:nowrap}
/* founder pull quote */
.nc-pull{margin:0;padding:2px 0 2px 24px;border-left:1px solid #D8B25F;font-family:var(--font-display);font-style:italic;font-size:30px;line-height:1.28;color:var(--ink-headline);max-width:720px;text-wrap:pretty}
.nc-m .nc-pull{font-size:24px;padding-left:18px}
.t-ivory .nc-card:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.9),0 2px 6px rgba(60,54,44,0.12),0 22px 52px rgba(60,54,44,0.22)}

/* button padding is 1.8 px heavier at the bottom on desktop (less on mobile): IBM Plex Mono sits its capitals about 0.9 px low in a line-height 1 box, so this centers the capitals in the button; text-indent matches the trailing letter-spacing so the label sits on the horizontal center */
/* buttons: the Pass 5 metallic gold fill with a crisp top highlight, then a 3 px solid #050912 border directly around it. No ring, no gap, no glow. Rounder corners (18 px, 14 px on mobile) and tighter padding. */
.nc-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-family:var(--font-mono);line-height:1;text-indent:0.03em;border-radius:18px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease}
.nc-btn-primary{padding:13.1px 22px 14.9px;font-size:26px;font-weight:700;letter-spacing:0.03em;color:var(--on-gold);background:linear-gradient(180deg,#D8B25F 0%,#C59B42 42%,#B98B2E 100%) padding-box;border:3px solid #050912;
 box-shadow:inset 0 1px 0 rgba(252,234,191,0.80),inset 0 -1px 0 rgba(138,106,31,0.55),0 2px 6px rgba(0,0,0,0.35),0 16px 40px rgba(0,0,0,0.50)}
.nc-btn-primary:hover{color:var(--on-gold);transform:translateY(-1px);background:linear-gradient(180deg,#E5C782 0%,#D8B25F 40%,#C59B42 100%) padding-box;
 box-shadow:inset 0 1px 0 rgba(252,234,191,0.85),inset 0 -1px 0 rgba(138,106,31,0.55),0 2px 6px rgba(0,0,0,0.35),0 22px 52px rgba(0,0,0,0.62)}
.nc-btn-primary:focus-visible{outline:2px solid #D8B25F;outline-offset:4px}
.t-ivory .nc-btn-primary{box-shadow:inset 0 1px 0 rgba(252,234,191,0.80),inset 0 -1px 0 rgba(138,106,31,0.55),0 2px 6px rgba(60,54,44,0.18),0 16px 40px rgba(60,54,44,0.22)}
.t-ivory .nc-card-dark .nc-btn-primary{box-shadow:inset 0 1px 0 rgba(252,234,191,0.80),inset 0 -1px 0 rgba(138,106,31,0.55),0 2px 6px rgba(0,0,0,0.35),0 16px 40px rgba(0,0,0,0.50)}
.t-ivory .nc-btn-primary:focus-visible{outline-color:#8C6A1E}
.nc-btn-ghost{padding:14.6px 22px 16.4px;font-size:26px;font-weight:400;letter-spacing:0.03em;color:#D8B25F;background:transparent;border:1.5px solid #D9C79A}
.nc-btn-ghost:hover{color:#E5C782;border-color:#E5C782}
.t-ivory .nc-btn-ghost{color:#7A5C17;border-color:#7A5C17}
.nc-m .nc-btn{border-radius:14px}
.nc-m .nc-btn-primary{padding:11.75px 18px 12.25px;font-size:18px}
.nc-m .nc-btn-ghost{padding:13.25px 17px 13.75px;font-size:18px}
.nc-btn-primary.nc-btn-compact{padding:0 11px 1.5px;height:36px;font-size:15px;border-radius:12px}

/* header */
.nc-header{position:sticky;top:0;z-index:20}
.nc-nav a{font-size:21.6px;letter-spacing:0.2em;transition:color .2s ease}
.nc-nav a:last-child{margin-right:-0.2em}
.nc-header-scrolled{background:rgba(5,9,18,0.85);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
.nc-header-line{position:absolute;left:0;right:0;bottom:-14px}

/* hero: Logo 1.0, the Pass 5 master image as-is (artwork, silver and gold), at reduced opacity only */
.nc-gears{position:absolute;pointer-events:none;z-index:-1;display:block}
.nc-logo10{opacity:0.32}

/* light layer per section; the dither tile on top of the gradients breaks up banding */
.nc-light{position:absolute;inset:0;z-index:-1;pointer-events:none}
.nc-light::after{content:"";position:absolute;inset:0;background:url(assets/nc-dither-dark.png) 0 0/64px 64px}
.nc-light.is-ivory::after{background:url(assets/nc-dither-ivory.png) 0 0/64px 64px}

/* grain: one layer over the page; a warmer multiply layer on ivory */
.nc-grain{position:absolute;inset:0;z-index:40;pointer-events:none;background-image:url(assets/nc-grain-160.png);background-size:160px 160px;mix-blend-mode:overlay;opacity:0.28}
.nc-grain-ivory{position:absolute;inset:0;z-index:2;pointer-events:none;background-image:url(assets/nc-grain-160.png);background-size:160px 160px;mix-blend-mode:multiply;opacity:0.05}

/* forms on ivory */
.nc-input{box-sizing:border-box;width:100%;padding:16px;background:#F3F0E9;color:#0A0A0C;border:1px solid rgba(163,156,140,0.9);border-radius:10px;box-shadow:inset 0 1px 3px rgba(110,106,98,0.14);transition:border-color .2s ease,box-shadow .2s ease}
.nc-input:hover{border-color:#6E6A62}
.nc-input:focus,.nc-input.is-focus{outline:none;border-color:#8C6A1E;box-shadow:inset 0 1px 3px rgba(110,106,98,0.14),0 0 0 3px rgba(185,139,46,0.24)}

/* social */
.nc-social{box-sizing:border-box;width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink);border:1px solid var(--stroke-strong);border-radius:10px;transition:color .2s ease,border-color .2s ease,box-shadow .2s ease}
.nc-social:hover{color:#D8B25F;border-color:#D8B25F}
.nc-quote{text-wrap:pretty}
.t-richblack .nc-hero-l2{text-wrap:balance}
.nc-menu a{display:block}
/* frameworks: the external link arrow, one line tall so it sits on the first line of its row */
.nc-extlink{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;color:#D8B25F;transition:color .2s ease,transform .2s ease}
.nc-m .nc-extlink{height:27px;justify-content:flex-start}
.nc-extlink:hover{color:#E5C782;transform:translate(1px,-1px)}

/* ===== deploy layer: responsive behavior and the interactive states (the design layer above is unchanged) ===== */
html{-webkit-text-size-adjust:100%}
.v-m{display:none}
@media (max-width:1099px){.v-d{display:none}.v-m{display:block}}
.v-d>[data-page],.v-m>[data-page]{width:100%!important;min-height:0!important}
/* desktop header: fixed over a spacer of the same height; scrolled state per the Header-scrolled board */
.nc-header-d{position:fixed;top:0;left:0;right:0;box-sizing:border-box;transition:background-color .2s ease}
.nc-header-spacer{height:171px;flex:none}
.nc-hmark,.nc-hline{display:none}
.v-d .nc-header-d.is-scrolled{height:68px!important;background:rgba(5,9,18,0.85)!important;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:transparent!important}
.nc-header-d.is-scrolled [data-lockup]{display:none!important}
.nc-header-d.is-scrolled .nc-hmark{display:block;border-radius:6px}
.nc-header-d.is-scrolled .nc-hline{display:block}
.nc-header-d.is-scrolled>.nc-grain{display:none}
/* above 1440: content stays on the 1440 grid, centered; backgrounds stay full width */
@media (min-width:1441px){
 .v-d .nc-sec,.v-d .nc-header-d{padding-left:max(64px,calc((100% - 1312px) / 2))!important;padding-right:max(64px,calc((100% - 1312px) / 2))!important}
 .v-d .nc-gears{right:calc((100% - 1440px) / 2 - 120px)!important}
 .v-d .nc-seam{--px:max(64px,calc((100% - 1312px) / 2))!important}
}
/* 1100 to 1399: the 21.6 px navigation needs about 1400 px; below that it steps down to 16.2 px with a smaller lockup so the header fits */
@media (min-width:1100px) and (max-width:1399px){
 .v-d .nc-nav{gap:24px!important}
 .v-d .nc-nav a{font-size:16.2px}
 .v-d .nc-header-d .nc-btn-primary{font-size:20px;padding:10.3px 17px 11.7px;border-radius:14px}
 .v-d [data-lockup="header"]{width:240px!important;height:136px!important;margin:-12.8px -32.8px -16px -31.6px!important}
 .v-d .nc-header-d{height:137px!important}
 .nc-header-spacer{height:137px}
}
/* 1100 to 1279: a smaller lockup and tighter navigation so the header fits; the gears step back */
@media (min-width:1100px) and (max-width:1279px){
 .v-d .nc-gears{width:460px!important;height:460px!important;margin-top:-230px!important;right:-160px!important}
 .v-d [data-sec="steps"]>div[style*="repeat(4"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .v-d [data-portrait]{box-sizing:border-box;width:100%!important;height:auto!important;aspect-ratio:1/1}
}
/* in-page links land below the header */
.v-d [id]{scroll-margin-top:68px}
.v-m [id]{scroll-margin-top:69px}
/* mobile header: sticky; scrolled state per the mobile menu board header */
.nc-header-m.is-scrolled{background:rgba(5,9,18,0.85)!important;-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2)}
.nc-mmenu{position:fixed;left:0;right:0;top:69px;bottom:0;z-index:19;overflow-y:auto;padding:8px var(--space-16) 24px;display:flex;flex-direction:column;background:var(--ground)}
.nc-mmenu[hidden]{display:none}
body.menu-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
