/* Scoresby V3 Daylight home page. Fonts: Fontsource 5.3.0, SIL OFL 1.1. */
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-tight-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-tight-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/inter-tight-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/inter-latin-600-normal.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-latin-400-normal.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-latin-500-normal.woff2) format("woff2")}
/* Layout: a fixed 3D pitch "chart" sits behind everything; content floats over it on soft grey with frosted white cards, Apple-style. */
:root{
  --mist:#F5F5F7;        /* ground */
  --paper:#FFFFFF;       /* cards */
  --graphite:#1D1D1F;    /* text, pitch lines */
  --slate:#6E6E73;       /* secondary text */
  --pebble:#86868B;      /* the turn line, 24px and up only */
  --sounding:#0066CC;    /* the one accent */
  --sounding-soft:#E8F1FB;
  --line:rgba(29,29,31,.10);
  --frost:rgba(255,255,255,.82);
  --display:"Inter Tight","Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,monospace;
  --ease:cubic-bezier(.77,0,.18,1);
  color-scheme:light;
}
*{box-sizing:border-box}
html{background:var(--mist)}
body{background:var(--mist);color:var(--graphite);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
::selection{background:var(--sounding);color:#fff}
:focus-visible{outline:2px solid var(--sounding);outline-offset:3px;border-radius:8px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:60;background:var(--mist)}

/* ---------- 3D scene ---------- */
#scene{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}
.veil{position:fixed;inset:0;z-index:1;pointer-events:none;background:radial-gradient(120% 70% at 50% 0%,rgba(245,245,247,0) 0%,rgba(245,245,247,.55) 70%,rgba(245,245,247,.85) 100%)}

/* ---------- loader ---------- */
#loader{position:fixed;inset:0;z-index:100;background:var(--mist);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:22px}
.loader-word{display:flex;align-items:flex-start;overflow:hidden;padding:4px 6px}
.loader-word span{display:inline-block;font-family:var(--display);font-weight:700;font-size:clamp(44px,8vw,88px);letter-spacing:-.045em;line-height:1;transform:translateY(115%)}
.loader-word i{display:inline-block;width:.22em;height:.22em;border-radius:50%;background:var(--sounding);margin:.08em 0 0 .06em;font-size:clamp(44px,8vw,88px);transform:scale(0)}
.loader-meta{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);opacity:0}
.reduced #loader,.no-js #loader{display:none}
.reduced .loader-word span,.no-js .loader-word span{transform:none}

/* ---------- nav ---------- */
.nav-wrap{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:50;display:flex;justify-content:center;padding:16px max(16px,env(safe-area-inset-right,0px)) 0 max(16px,env(safe-area-inset-left,0px));pointer-events:none}
nav.pill{pointer-events:auto;width:100%;max-width:820px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-radius:999px;padding:8px 8px 8px 22px;box-shadow:0 0 0 1px var(--line);transition:max-width .5s var(--ease),box-shadow .3s}
nav.pill.scrolled{max-width:680px;box-shadow:0 0 0 1px var(--line),0 8px 30px rgba(29,29,31,.06)}
.logo{display:block;height:17px;width:auto}
.nav-links{display:flex;align-items:center;gap:2px}
.nav-links a{text-decoration:none;font-size:14px;padding:10px 14px;border-radius:999px;color:var(--graphite)}
.nav-links a:hover{background:rgba(29,29,31,.05)}
.nav-links a.cta{background:var(--graphite);color:#fff;font-weight:600;padding:10px 18px}
.nav-links a.cta:hover{background:#000}
@media (max-width:720px){.nav-links a.hide-sm{display:none}}

/* ---------- shared ---------- */
main{position:relative;z-index:2}
.wrap{width:100%;max-width:1200px;margin:0 auto;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
section{padding-block:clamp(96px,14vw,180px)}
.eyebrow{font-family:var(--mono);font-size:13px;color:var(--slate);display:flex;align-items:center;gap:12px}
.eyebrow::before{content:"";width:28px;height:1px;background:currentColor;opacity:.5}
.h-xl,.h-lg{font-family:var(--display);font-weight:600;letter-spacing:-.045em;line-height:1.02;margin:0;text-wrap:balance}
.h-xl{font-size:clamp(52px,9.4vw,132px)}
.h-lg{font-size:clamp(40px,6.4vw,88px)}
.turn{color:var(--pebble)}
.line{display:block;overflow:hidden;padding-bottom:.22em;margin-bottom:-.22em}
.line > span{display:inline-block}
.lede{font-size:clamp(18px,1.8vw,22px);line-height:1.45;color:var(--slate);max-width:620px;margin:0}
.card{background:var(--frost);-webkit-backdrop-filter:saturate(180%) blur(24px);backdrop-filter:saturate(180%) blur(24px);border-radius:28px;box-shadow:0 0 0 1px rgba(29,29,31,.05)}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:17px;border-radius:999px;padding:15px 26px;transition:transform .3s var(--ease),background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--sounding);color:#fff}
.btn-primary:hover{background:#0058B0}
.btn-quiet{background:var(--paper);color:var(--graphite);box-shadow:0 0 0 1px var(--line)}
.index{font-family:var(--mono);font-size:13px;color:var(--slate)}

/* ---------- hero ---------- */
#hero{min-height:min(100svh,980px);display:flex;align-items:center;padding-block:140px 80px}
.hero-inner{display:flex;flex-direction:column;gap:30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.scroll-cue{display:flex;align-items:center;gap:14px;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-top:24px}
.scroll-cue .tick{position:relative;width:1px;height:44px;background:var(--line);overflow:hidden}
.scroll-cue .tick::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--sounding);animation:cue 2.2s var(--ease) infinite}
@keyframes cue{0%{top:-100%}55%{top:0}100%{top:100%}}

/* ---------- marquee ---------- */
.marquee{position:relative;z-index:2;overflow:hidden;background:var(--frost);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-block:1px solid var(--line)}
.marquee .track{display:flex;width:max-content;animation:marquee 46s linear infinite}
.marquee .track span{display:flex;align-items:center;gap:28px;padding:18px 14px;font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:-.02em;white-space:nowrap}
.marquee .track span.dim{color:var(--slate)}
.marquee .track i{width:7px;height:7px;border-radius:50%;background:var(--sounding);display:inline-block}
@keyframes marquee{100%{transform:translateX(-50%)}}

/* ---------- gap ---------- */
.gap-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;margin-top:56px}
.gap-copy{grid-column:span 6;padding:36px;display:flex;flex-direction:column;justify-content:center}
.gap-copy p{margin:0;font-size:19px;line-height:1.55;color:var(--slate)}
.stats{grid-column:span 6;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.stat{padding:28px 24px;display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:240px}
.stat b{font-family:var(--display);font-weight:600;font-size:clamp(44px,5vw,64px);letter-spacing:-.045em;line-height:1}
.stat span{font-size:14px;line-height:1.45;color:var(--slate)}
.stat.accent b{color:var(--sounding)}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px;margin-top:56px}
.svc{padding:40px;display:flex;flex-direction:column;gap:18px;min-height:380px}
.svc h3{font-family:var(--display);font-weight:600;font-size:clamp(28px,3vw,36px);letter-spacing:-.035em;line-height:1.05;margin:0}
.svc p{margin:0;font-size:17px;line-height:1.55;color:var(--slate)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}
.chips span{font-size:13px;font-weight:500;background:var(--mist);border-radius:999px;padding:7px 13px}
.chips span.on{background:var(--sounding-soft);color:var(--sounding)}

/* ---------- method ---------- */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:56px}
.step{padding:32px;display:flex;flex-direction:column;gap:14px}
.step h3{font-family:var(--display);font-weight:600;font-size:30px;letter-spacing:-.035em;margin:0}
.step p{margin:0;font-size:16px;line-height:1.55;color:var(--slate)}
.step .bar{height:4px;border-radius:2px;background:var(--line);overflow:hidden;margin-bottom:6px}
.step .bar i{display:block;height:100%;width:100%;background:var(--sounding);transform-origin:left;transform:scaleX(1)}

/* ---------- name ---------- */
.name-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;align-items:end}
.name-grid .h-lg{grid-column:span 7}
.name-card{grid-column:span 5;padding:32px;display:flex;flex-direction:column;gap:12px}
.name-card .who{font-family:var(--display);font-weight:600;font-size:22px;letter-spacing:-.02em}
.name-card p{margin:0;color:var(--slate);line-height:1.55}
.name-card .ours{color:var(--graphite);font-weight:500}

/* ---------- contact ---------- */
.contact-card{background:var(--graphite);color:#fff;border-radius:36px;padding:clamp(32px,6vw,80px);display:flex;flex-direction:column;gap:36px;overflow:hidden;position:relative}
.contact-card .h-lg{color:#fff}
.contact-card .turn{color:#A1A1A6}
.contact-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px 28px}
.contact-card .btn-primary{background:#fff;color:var(--graphite)}
.contact-card .btn-primary:hover{background:#E8E8ED}
.mail{font-family:var(--mono);font-size:14px;color:#C7C7CC;user-select:all}
footer{position:relative;z-index:2;padding-block:28px 40px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:13px;color:var(--slate)}

@media (max-width:900px){
  .gap-copy,.stats,.name-grid .h-lg,.name-card{grid-column:1 / -1}
  .steps{grid-template-columns:1fr}
}
@media (max-width:560px){
  .stats{grid-template-columns:1fr}
  .stat{min-height:0}
  .svc{padding:28px;min-height:0}
  .gap-copy{padding:26px}
}
@media (prefers-reduced-motion:reduce){
  .marquee .track,.scroll-cue .tick::after{animation:none}
}
footer a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.mail{color:inherit;text-decoration:none}
.mail:hover{text-decoration:underline}
