@font-face{font-family:'Source Sans 3';src:url('../assets/fonts/SourceSans3-Variable.woff2') format('woff2');font-style:normal;font-weight:200 900;font-display:swap}
@font-face{font-family:'Source Sans 3';src:url('../assets/fonts/SourceSans3-Variable-Italic.woff2') format('woff2');font-style:italic;font-weight:200 900;font-display:swap}
:root{
  --night:#082f4a;
  --night-soft:#0c456d;
  --ink:#0d3047;
  --paper:#f8fcff;
  --paper-deep:#eaf6fd;
  --acid:#74acdf;
  --acid-dark:#2f80b9;
  --muted:#668397;
  --on-night:#c6ddeb;
  --on-night-soft:#8dc4e5;
  --line-dark:rgba(220,241,253,.22);
  --line-light:rgba(13,48,71,.16);
  --header-height:82px;
  --sans:'Source Sans 3',system-ui,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-height);background:var(--night)}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
a{color:inherit}
button,input{font:inherit}
:focus-visible{outline:2px solid var(--acid-dark);outline-offset:3px}
::selection{background:#bfe5f8;color:var(--night)}

.skip-link{position:fixed;z-index:10000;top:8px;left:8px;transform:translateY(-160%);background:var(--night);color:#fff;padding:10px 14px;font-weight:800;text-decoration:none}
.skip-link:focus{transform:none}

.landing-header{position:fixed;z-index:1000;top:0;left:0;right:0;height:var(--header-height);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:36px;padding:0 clamp(22px,4vw,68px);color:var(--night);border-bottom:1px solid transparent;transition:background .25s ease,border-color .25s ease,backdrop-filter .25s ease}
.landing-header.scrolled{background:rgba(248,252,255,.9);border-color:rgba(13,48,71,.12);backdrop-filter:blur(18px)}
.landing-brand{justify-self:start;display:flex;align-items:center;gap:14px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:-.01em}
.landing-brand-logo{display:block;width:132px;height:auto;transition:opacity .18s ease}
.landing-brand:hover .landing-brand-logo,.landing-brand:focus-visible .landing-brand-logo{opacity:.78}
.landing-product{padding-left:14px;border-left:1px solid rgba(13,48,71,.2);color:#4f7187;white-space:nowrap}
.landing-nav{display:flex;align-items:center;justify-content:flex-end;gap:22px}
.landing-nav a{position:relative;color:#4f7187;text-decoration:none;font-size:12px;font-weight:700}
.landing-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-8px;height:1px;background:var(--acid);transition:right .2s ease}
.landing-nav a:hover:after,.landing-nav a:focus-visible:after{right:0}
.header-cta{justify-self:end;display:inline-flex;align-items:center;gap:10px;color:#fff;background:var(--night);padding:12px 16px;text-decoration:none;font-size:12px;font-weight:800;transition:background .2s ease,transform .2s ease}
.header-cta:hover{background:#0e527f;transform:translateY(-2px)}

.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:calc(var(--header-height) + 42px) clamp(22px,6vw,96px) 72px;background:var(--paper);color:var(--night);overflow:hidden;isolation:isolate}
.hero-atmosphere{position:absolute;z-index:-2;inset:0;background:radial-gradient(circle at 78% 44%,rgba(116,172,223,.34),transparent 36%),radial-gradient(circle at 62% 8%,rgba(255,255,255,.96),transparent 32%),linear-gradient(112deg,#ffffff 0%,#f5fbff 47%,#dceffb 100%)}
.hero-atmosphere:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(13,48,71,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(13,48,71,.035) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,#000,transparent 70%)}
.hero-copy{position:relative;z-index:4;width:min(690px,55vw)}
.kicker{margin:0 0 22px;color:var(--acid-dark);font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.hero h1{margin:0;font-size:clamp(72px,9.5vw,148px);font-weight:600;line-height:.86;letter-spacing:-.065em}
.hero h1 span{display:block;white-space:nowrap}
.hero-lede{margin:22px 0 0;color:var(--acid-dark);font-size:clamp(24px,2.6vw,38px);font-weight:600;line-height:1.1;letter-spacing:-.03em}
.hero-intro{width:min(520px,90%);margin:28px 0 0;color:#4f7187;font-size:clamp(16px,1.4vw,20px);line-height:1.58}
.hero-actions{display:flex;align-items:center;gap:30px;margin-top:34px}
.primary-cta{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:230px;padding:6px 6px 6px 20px;background:var(--night);color:#fff;font-size:14px;font-weight:800;text-decoration:none;transition:background .2s ease,transform .2s ease}
.primary-cta:hover{background:#0e527f;transform:translateY(-2px)}
.primary-cta--light{background:#fff;color:var(--night)}
.primary-cta--light:hover{background:var(--paper-deep)}
.cta-arrow{display:grid;place-items:center;width:42px;height:42px;background:var(--acid);color:var(--night);font-size:18px;transition:transform .25s ease}
.primary-cta:hover .cta-arrow{transform:rotate(45deg)}
.text-link{color:#315b76;text-decoration:none;font-size:13px;font-weight:700}
.text-link span{display:inline-block;margin-left:8px;transition:transform .2s ease}
.text-link:hover span{transform:translateY(3px)}
.hero-meta{display:flex;gap:0;margin:52px 0 0;padding:0;list-style:none;color:#6b8ba0;font-size:11px;text-transform:uppercase;letter-spacing:.1em}
.hero-meta li{padding:0 16px;border-left:1px solid rgba(13,48,71,.18)}
.hero-meta li:first-child{padding-left:0;border:0}

.territory-visual{--parallax-x:0px;--parallax-y:0px;position:absolute;z-index:1;right:-1vw;top:9vh;width:min(51vw,760px);height:88vh;transform:translate3d(var(--parallax-x),var(--parallax-y),0);transition:transform .2s ease-out}
#territoryMap{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 28px 50px rgba(16,70,104,.2));transform:rotate(2deg)}
.province-path{fill:#a9d7f0;stroke:#2f7fb8;stroke-width:.7;vector-effect:non-scaling-stroke;opacity:0;transform:translateY(16px);transition:fill .25s ease,opacity .75s ease,transform .75s cubic-bezier(.2,.8,.2,1)}
.province-path.ready{opacity:.88;transform:none}
.province-path:nth-child(3n){fill:#91c8e9}
.province-path:nth-child(4n){fill:#c3e4f5}
.province-path:hover{fill:#74acdf}
.shadow-path{fill:none;stroke:rgba(47,128,185,.22);stroke-width:13;filter:url(#mapGlow);opacity:.45}
.map-point{fill:var(--night);stroke:#fff;stroke-width:1.4;opacity:0;transform-box:fill-box;transform-origin:center;animation:point-in .45s ease forwards}
.map-point-halo{fill:url(#pointGlow);opacity:0;transform-box:fill-box;transform-origin:center;animation:halo-in 1.2s ease forwards}
.map-orbit{position:absolute;border:1px solid rgba(47,128,185,.18);border-radius:50%;pointer-events:none}
.orbit-one{width:520px;height:520px;left:7%;top:17%;animation:orbit 18s linear infinite}
.orbit-two{width:380px;height:380px;left:17%;top:27%;border-style:dashed;animation:orbit 24s linear infinite reverse}
.map-caption{position:absolute;right:calc(2% + 3vw);bottom:8%;display:grid;gap:8px;padding-left:18px;border-left:1px solid var(--acid-dark);color:#315b76;font-size:13px;font-weight:500;line-height:1.45;text-transform:uppercase;letter-spacing:.08em}
.caption-index{color:var(--acid-dark);font-size:10px;font-weight:800;letter-spacing:.18em}
.scroll-cue{position:absolute;z-index:4;left:clamp(22px,4vw,68px);bottom:28px;display:flex;align-items:center;gap:10px;color:#67879b;text-decoration:none;font-size:10px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}
.scroll-cue span{display:block;width:44px;height:1px;background:#67879b;transform-origin:left;animation:scroll-line 2s ease-in-out infinite}
.hero-enter{opacity:0;transform:translateY(22px);animation:hero-enter .8s cubic-bezier(.2,.75,.25,1) forwards}
.hero-enter:nth-child(2){animation-delay:.1s}.hero-enter:nth-child(3){animation-delay:.2s}.hero-enter:nth-child(4){animation-delay:.3s}.hero-enter:nth-child(5){animation-delay:.4s}.hero-enter:nth-child(6){animation-delay:.5s}

.section-pad{padding:clamp(90px,12vw,180px) clamp(22px,7vw,110px)}

.method{display:grid;grid-template-columns:1fr 1.1fr;gap:10vw;background:var(--paper-deep)}
.method-heading h2{max-width:620px;margin:0;font-size:clamp(44px,5.6vw,84px);font-weight:600;line-height:.95;letter-spacing:-.055em}
.method-body{align-self:end}
.method-lead{margin:0 0 45px;font-size:clamp(19px,1.9vw,26px);font-weight:500;line-height:1.45}
.method-list{margin:0;border-top:1px solid var(--ink)}
.method-list div{display:grid;grid-template-columns:140px 1fr;gap:30px;padding:20px 0;border-bottom:1px solid var(--line-light)}
.method-list dt{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.method-list dd{margin:0;color:#4f6d80;font-size:15px;line-height:1.55}

.assistant-cta{display:grid;grid-template-columns:minmax(0,1.5fr) auto;gap:clamp(32px,6vw,90px);align-items:end;background:#fff;border-top:1px solid var(--line-light)}
.assistant-cta-copy{max-width:760px}
.assistant-cta-copy h2{margin:0 0 24px;font-size:clamp(38px,4.6vw,66px);font-weight:600;line-height:.98;letter-spacing:-.05em}
.assistant-cta-copy>p:not(.kicker){margin:0;color:#4f6d80;font-size:clamp(16px,1.35vw,19px);line-height:1.65}
.assistant-steps{display:grid;gap:12px;margin:30px 0 0;padding:0;list-style:none;counter-reset:paso}
.assistant-steps li{counter-increment:paso;display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:baseline;color:#4f6d80;font-size:15px;line-height:1.55}
.assistant-steps li:before{content:"0" counter(paso);color:var(--acid-dark);font-size:12px;font-weight:800;letter-spacing:.1em}
.assistant-steps strong{color:var(--ink)}
.dorothy{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(48px,7vw,110px);align-items:start;background:var(--night);color:#fff}
.dorothy .kicker{color:var(--on-night-soft)}
.dorothy-portrait{position:sticky;top:calc(var(--header-height) + 40px);justify-self:end;width:100%;max-width:440px;margin:0}
.dorothy-portrait img{display:block;width:100%;height:auto;border-radius:18px;box-shadow:0 30px 70px rgba(0,0,0,.35)}
.dorothy-copy{max-width:680px}
.dorothy-copy h2{margin:0 0 32px;font-size:clamp(40px,5vw,72px);font-weight:600;line-height:.95;letter-spacing:-.05em}
.dorothy-copy p{margin:0 0 20px;color:var(--on-night);font-size:clamp(15px,1.3vw,18px);line-height:1.72}
.dorothy-copy strong{color:#fff}
.dorothy-copy .dorothy-close{margin-top:34px;padding-top:22px;border-top:1px solid var(--line-dark);color:#fff;font-size:clamp(19px,1.7vw,24px);line-height:1.45}
.dorothy-copy .dorothy-sources{margin:26px 0 0;color:var(--on-night-soft);font-size:12px;line-height:1.6}

.project-origin{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:10vw;background:#fff;color:var(--ink)}
.project-origin-heading h2{max-width:510px;margin:0;font-size:clamp(48px,6.2vw,90px);font-weight:600;line-height:.92;letter-spacing:-.065em}
.project-origin-copy{max-width:720px}.project-origin-copy p{margin:0 0 24px;color:#577487;font-size:clamp(15px,1.35vw,18px);line-height:1.72}.project-origin-copy p:first-child{color:var(--ink);font-size:clamp(19px,1.8vw,27px);line-height:1.48}.project-origin-copy .project-origin-byline{margin-top:42px;padding-top:16px;border-top:1px solid var(--line-light);color:var(--acid-dark);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}

.closing{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:40px;background:var(--night-soft);color:#fff}
.closing .kicker{color:var(--on-night-soft)}
.closing-copy{max-width:720px}
.closing-copy h2{margin:0;font-size:clamp(40px,5vw,72px);font-weight:600;line-height:.95;letter-spacing:-.05em}
.closing-copy p:not(.kicker){margin:24px 0 0;color:var(--on-night);font-size:clamp(15px,1.3vw,18px);line-height:1.65}

.landing-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;padding:30px clamp(22px,4vw,68px);background:var(--night);color:#a9cadc;font-size:11px;text-transform:uppercase;letter-spacing:.09em}
.landing-footer>a:not(.footer-brand){justify-self:end;color:var(--acid);text-decoration:none}
.footer-brand{justify-self:start;display:flex;align-items:center;gap:14px;color:#a9cadc;text-decoration:none}
.footer-brand img{display:block;width:124px;height:auto}
.footer-brand span{padding-left:14px;border-left:1px solid var(--line-dark);white-space:nowrap}
.noscript{position:fixed;z-index:2000;bottom:10px;left:10px;right:10px;padding:12px;background:#fff;color:#111;text-align:center;font-size:13px}
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.25,1)}
.reveal.visible{opacity:1;transform:none}

@keyframes hero-enter{to{opacity:1;transform:none}}
@keyframes point-in{0%{opacity:0;transform:scale(0)}100%{opacity:1;transform:scale(1)}}
@keyframes halo-in{0%{opacity:0;transform:scale(.2)}45%{opacity:.55}100%{opacity:.18;transform:scale(1)}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes scroll-line{0%,100%{transform:scaleX(.35);opacity:.4}50%{transform:scaleX(1);opacity:1}}

@media(max-width:980px){
  .landing-header{grid-template-columns:1fr auto}.landing-nav{display:none}
  .hero{align-items:flex-end;padding-bottom:110px}.hero-copy{width:72vw}.territory-visual{right:-9vw;top:10vh;width:66vw;height:75vh;opacity:.72}
  .method{grid-template-columns:1fr;gap:56px}.method-body{max-width:760px}
  .dorothy{grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)}
  .assistant-cta{grid-template-columns:1fr;align-items:start}
}

@media(max-width:780px){
  .project-origin{grid-template-columns:1fr;gap:42px}
  .dorothy{grid-template-columns:1fr;gap:44px}.dorothy-portrait{position:static;justify-self:start;max-width:320px}
}

@media(max-width:680px){
  :root{--header-height:66px}
  .landing-header{padding:0 16px}.landing-product{display:none}.landing-brand-logo{width:124px}.header-cta{padding:10px 12px}
  .hero{min-height:100svh;align-items:flex-end;padding:100px 16px 100px}.hero-copy{width:100%}.hero h1{font-size:clamp(64px,22vw,96px)}.hero-lede{font-size:24px}.hero-intro{width:100%;margin-top:20px;font-size:15px}.hero-actions{align-items:flex-start;flex-direction:column;gap:20px;margin-top:28px}.primary-cta{width:100%}.hero-meta,.map-caption{display:none}
  .section-pad{padding:88px 16px}
  .method-heading h2{font-size:44px}.method-list div{grid-template-columns:1fr;gap:6px}
  .dorothy-portrait{max-width:260px}.dorothy-copy h2{font-size:40px}
  .assistant-cta .primary-cta{width:100%}
  .closing{flex-direction:column;align-items:stretch}.closing .primary-cta{width:100%}
  .landing-footer{grid-template-columns:1fr auto;padding:26px 16px}.landing-footer>span{display:none}.footer-brand span{display:none}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .hero-enter,.reveal,.province-path{opacity:1;transform:none}
  .territory-visual{transform:none!important}
}
