/* Remint base: tokens, type and shared components. Owned by the architect: builders use it, never edit it. */
@font-face{font-family:"Mona Sans";src:url("/assets/fonts/mona-sans-latin-standard-normal.woff2") format("woff2");font-weight:200 900;font-stretch:75% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"Martian Mono";src:url("/assets/fonts/martian-mono-latin-standard-normal.woff2") format("woff2");font-weight:100 800;font-stretch:75% 112.5%;font-style:normal;font-display:swap}

:root{
  /* ground */
  --ink:#080B14; --ink-2:#0E1322; --ink-3:#181F35;
  --paper:#F4F1EA; --paper-2:#EAE5DA; --paper-3:#DCD5C6; --white:#FFFFFF;
  /* brand + grades (deep values, never neon, never pastel fills) */
  --mint:#14CC9C; --mint-deep:#087A5D;
  --violet:#5B3DF5; --violet-deep:#24185F;
  --cobalt:#2E6BFF; --amber:#FFB21F; --coral:#FF5A47;
  --grade-a:var(--mint); --grade-b:var(--cobalt); --grade-c:var(--amber); --grade-f:var(--coral);
  /* text */
  --text:#121626; --text-muted:#4A5068;
  --heading-light:var(--violet-deep);
  /* type */
  --font-sans:"Mona Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --font-mono:"Martian Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --step--1:clamp(.84rem,.8rem + .12vw,.92rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.125rem);
  --step-1:clamp(1.12rem,1.04rem + .42vw,1.38rem);
  --step-2:clamp(1.4rem,1.18rem + .95vw,1.95rem);
  --step-3:clamp(2.05rem,1.45rem + 2.5vw,3.7rem);
  --step-4:clamp(2.45rem,1.55rem + 4.1vw,5.1rem);
  --step-5:clamp(2.9rem,1.2rem + 7.6vw,8.6rem);
  /* layout */
  --maxw:1320px; --gutter:clamp(16px,4vw,48px); --space-section:clamp(76px,9vw,136px);
  --r-sm:6px; --r-md:10px; --r-lg:14px;
  --ease-out:cubic-bezier(.2,.7,.1,1); --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --shadow-1:0 1px 2px rgba(8,11,20,.06),0 10px 30px rgba(8,11,20,.08);
  --grain-dark:url("data:image/png;base64,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");
  --grain-light:url("data:image/png;base64,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");
}
/* real colour on P3 screens (Mac, iPhone) */
@supports (color:color(display-p3 1 1 1)){
  :root{
    --mint:color(display-p3 .16 .80 .62); --violet:color(display-p3 .35 .25 .97);
    --cobalt:color(display-p3 .22 .42 1); --amber:color(display-p3 1 .71 .16); --coral:color(display-p3 1 .37 .29);
  }
}

/* reset */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:96px}
body{margin:0;font-family:var(--font-sans);font-size:var(--step-0);font-weight:420;font-stretch:100%;line-height:1.55;color:var(--text);background-color:var(--paper);background-image:var(--grain-dark);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul[role=list],ol[role=list]{list-style:none;padding:0}
:focus-visible{outline:2px solid var(--mint);outline-offset:3px;border-radius:4px}
::selection{background:var(--mint);color:var(--ink)}
@view-transition{navigation:auto}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:12px;top:-64px;z-index:1000;background:var(--ink);color:#fff;padding:12px 16px;border-radius:var(--r-sm)}
.skip-link:focus{top:12px}

/* layout */
.container{width:100%;max-width:calc(var(--maxw) + var(--gutter) * 2);margin-inline:auto;padding-inline:var(--gutter)}
.section{position:relative;padding-block:var(--space-section)}
/* grounds: each sets --fg, --fg-muted, --line, --heading for everything inside */
.on-ink{--fg:#F4F1EA;--fg-muted:rgba(244,241,234,.7);--line:rgba(255,255,255,.14);--heading:#FFFFFF;--field-bg:rgba(255,255,255,.06);background-color:var(--ink);background-image:var(--grain-light);color:var(--fg)}
.on-paper{--fg:var(--text);--fg-muted:var(--text-muted);--line:rgba(8,11,20,.13);--heading:var(--heading-light);--field-bg:#fff;background-color:var(--paper);background-image:var(--grain-dark);color:var(--fg)}
.on-paper-2{--fg:var(--text);--fg-muted:var(--text-muted);--line:rgba(8,11,20,.14);--heading:var(--heading-light);--field-bg:#fff;background-color:var(--paper-2);background-image:var(--grain-dark);color:var(--fg)}
.on-violet{--fg:#FFFFFF;--fg-muted:rgba(255,255,255,.8);--line:rgba(255,255,255,.24);--heading:#FFFFFF;--field-bg:rgba(255,255,255,.1);background-color:var(--violet);background-image:var(--grain-light);color:var(--fg)}
.on-mint{--fg:var(--ink);--fg-muted:rgba(8,11,20,.74);--line:rgba(8,11,20,.18);--heading:var(--ink);--field-bg:rgba(255,255,255,.55);background-color:var(--mint);background-image:var(--grain-dark);color:var(--fg)}
.on-amber{--fg:var(--ink);--fg-muted:rgba(8,11,20,.74);--line:rgba(8,11,20,.2);--heading:var(--ink);--field-bg:rgba(255,255,255,.55);background-color:var(--amber);background-image:var(--grain-dark);color:var(--fg)}

/* type */
.display{font-size:var(--step-4);font-weight:820;font-stretch:108%;line-height:.98;letter-spacing:-.028em;color:var(--heading,currentColor);text-wrap:balance}
.giant{font-size:var(--step-5);font-weight:880;font-stretch:125%;line-height:.9;letter-spacing:-.035em;text-transform:uppercase;color:var(--heading,currentColor)}
.h2{font-size:var(--step-3);font-weight:780;font-stretch:106%;line-height:1.02;letter-spacing:-.022em;color:var(--heading,currentColor);text-wrap:balance}
.h3{font-size:var(--step-2);font-weight:700;font-stretch:104%;line-height:1.1;letter-spacing:-.014em;color:var(--heading,currentColor)}
.h4{font-size:var(--step-1);font-weight:680;font-stretch:102%;line-height:1.2;letter-spacing:-.01em}
.lead{font-size:var(--step-1);line-height:1.5;color:var(--fg-muted,var(--text-muted));max-width:60ch;text-wrap:pretty}
.small{font-size:var(--step--1);line-height:1.5}
.label{font-family:var(--font-mono);font-size:.72rem;font-weight:500;font-stretch:87.5%;letter-spacing:.08em;line-height:1.3;text-transform:uppercase}
.mono{font-family:var(--font-mono);font-stretch:87.5%;letter-spacing:.01em}
.muted{color:var(--fg-muted,var(--text-muted))}
.ico{width:1.25em;height:1.25em;flex:none;display:inline-block;vertical-align:-.2em}

/* buttons: one solid colour, squarish, press in 3% with a quick spring */
.btn{--btn-bg:var(--ink);--btn-fg:#fff;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 22px;border:0;border-radius:var(--r-md);background:var(--btn-bg);color:var(--btn-fg);font-size:1rem;font-weight:640;font-stretch:104%;letter-spacing:-.005em;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .45s var(--ease-spring),background-color .2s,color .2s,box-shadow .2s}
.btn .ico{width:20px;height:20px}
.btn:active{transform:scale(.97);transition-duration:.12s}
@media (hover:hover) and (pointer:fine){.btn:hover{transform:translateY(-2px)}.btn:active{transform:scale(.97)}}
.btn--mint{--btn-bg:var(--mint);--btn-fg:var(--ink)}
.btn--ink{--btn-bg:var(--ink);--btn-fg:#fff}
.btn--light{--btn-bg:#fff;--btn-fg:var(--ink)}
.btn--violet{--btn-bg:var(--violet);--btn-fg:#fff}
.btn--line{--btn-bg:transparent;--btn-fg:currentColor;box-shadow:inset 0 0 0 1.5px var(--line,rgba(8,11,20,.2))}
.btn--sm{min-height:44px;padding:0 16px;font-size:.94rem}
.btn--block{width:100%}
.btn[disabled],.btn[aria-busy=true]{opacity:.65;pointer-events:none}
.link-arrow{display:inline-flex;align-items:center;gap:8px;font-weight:640;text-decoration:none;min-height:44px}
.link-arrow .ico{transition:transform .3s var(--ease-out)}
@media (hover:hover){.link-arrow:hover .ico{transform:translateX(4px)}}

/* chips and grades */
.chip{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:.72rem;font-weight:500;font-stretch:87.5%;letter-spacing:.06em;text-transform:uppercase;line-height:1;color:inherit;background:transparent;box-shadow:inset 0 0 0 1px var(--line,rgba(8,11,20,.15));white-space:nowrap}
button.chip{min-height:44px;cursor:pointer;transition:background-color .2s,color .2s,box-shadow .2s,transform .35s var(--ease-spring)}
button.chip:active{transform:scale(.97)}
.chip[aria-pressed=true],.chip[aria-selected=true],.chip.is-on{background:var(--ink);color:#fff;box-shadow:none}
.on-ink .chip[aria-pressed=true],.on-ink .chip[aria-selected=true],.on-ink .chip.is-on,.on-violet .chip[aria-pressed=true],.on-violet .chip.is-on{background:var(--mint);color:var(--ink)}
.grade{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:6px;font-family:var(--font-mono);font-size:.76rem;font-weight:700;font-stretch:87.5%;letter-spacing:.02em;line-height:1;color:var(--ink);white-space:nowrap}
.grade--a{background:var(--grade-a)}.grade--b{background:var(--grade-b);color:#fff}.grade--c{background:var(--grade-c)}.grade--f{background:var(--grade-f)}

/* fields */
.field,.phone-field{width:100%;min-height:56px;border-radius:var(--r-md);border:1.5px solid var(--line,rgba(8,11,20,.16));background:var(--field-bg,#fff);color:var(--fg,var(--text));transition:border-color .2s,box-shadow .2s}
.field{display:block;padding:0 16px;font-size:1rem}
textarea.field{padding:14px 16px;min-height:110px;resize:vertical}
.field::placeholder,.phone-field input::placeholder{color:currentColor;opacity:.5}
.field:focus,.phone-field:focus-within{outline:none;border-color:var(--mint);box-shadow:0 0 0 3px color-mix(in srgb,var(--mint) 32%,transparent)}
.phone-field{display:flex;align-items:stretch;overflow:hidden}
.phone-field select{flex:none;appearance:none;-webkit-appearance:none;border:0;border-right:1.5px solid var(--line,rgba(8,11,20,.16));background:transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23888' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 10px center/10px;padding:0 30px 0 14px;min-height:56px;font-family:var(--font-mono);font-size:.86rem;font-stretch:87.5%;color:inherit;cursor:pointer}
.phone-field select option{color:#121626}
.phone-field input{flex:1;min-width:0;border:0;background:transparent;padding:0 16px;font-size:1rem;outline:none}
.check{display:flex;gap:12px;align-items:flex-start;font-size:var(--step--1);line-height:1.45;color:var(--fg-muted,var(--text-muted));cursor:pointer}
.check input{appearance:none;-webkit-appearance:none;flex:none;display:grid;place-items:center;width:22px;height:22px;margin:1px 0 0;border-radius:5px;border:1.5px solid currentColor;background:transparent;cursor:pointer}
.check input:checked{background:var(--mint);border-color:var(--mint)}
.check input:checked::after{content:"";width:10px;height:6px;border-left:2.2px solid var(--ink);border-bottom:2.2px solid var(--ink);transform:translateY(-1px) rotate(-45deg)}
.check a{color:inherit}
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
/* lead form states (set by main.js on the form: data-state="sending|success|error") */
[data-lead-form] [data-msg]{display:none}
[data-lead-form][data-state=success] [data-msg=success],[data-lead-form][data-state=error] [data-msg=error]{display:block}
[data-lead-form][data-state=success] [data-hide-on-success]{display:none}
.field-error{display:none;margin-top:8px;font-size:var(--step--1);color:var(--coral)}
.is-invalid .field-error,.field-error.is-on{display:block}

/* panels and image slots */
.panel{position:relative;border-radius:var(--r-lg);padding:clamp(24px,4vw,56px);overflow:hidden}
.slot{position:relative;overflow:hidden;border-radius:var(--r-md);aspect-ratio:var(--ratio,4/3);background-color:var(--paper-3);background-image:repeating-linear-gradient(135deg,rgba(8,11,20,.06) 0 1px,transparent 1px 13px)}
.on-ink .slot,.on-violet .slot{background-color:rgba(255,255,255,.06);background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 1px,transparent 1px 13px)}
.slot>img,.slot>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s var(--ease-out)}
.slot.has-img>img,.slot.has-img>video{opacity:1}
.slot__tag{position:absolute;left:12px;bottom:12px;max-width:calc(100% - 24px);padding:7px 9px;border-radius:5px;background:rgba(255,255,255,.82);color:var(--ink);font-family:var(--font-mono);font-size:.64rem;font-stretch:87.5%;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.slot.has-img .slot__tag{display:none}
@supports (corner-shape:squircle){.panel{corner-shape:squircle;border-radius:24px}.slot{corner-shape:squircle;border-radius:18px}}

/* promises: hidden until switched on in js/config.js (main.js adds .claim-on) */
[data-claim]{display:none!important}
[data-claim].claim-on{display:revert!important}
[data-requires]:not(.config-on){display:none!important}

/* reveal on entry: short, transform + opacity only. html.motion is set in <head> before first paint */
html.motion .reveal{opacity:0;transform:translateY(18px)}
html.motion .reveal.in{opacity:1;transform:none;transition:opacity .3s var(--ease-out),transform .3s var(--ease-out)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
