:root{--ink:#10292f;--mint:#a7e6d6;--paper:#f8f8f4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 system-ui,-apple-system,sans-serif}h1,h2,h3{line-height:1.12;letter-spacing:-.045em}h1{font-size:clamp(3rem,6vw,7rem);margin:22px 0}h2{font-size:clamp(2.4rem,4vw,4.5rem)}em{font-style:normal;color:#448d81}p{max-width:680px}a{color:inherit}.site-header{height:86px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;background:#09242d;color:white}.brand{font-weight:800;font-size:25px;text-decoration:none;display:flex;align-items:center;gap:10px}.brandmark{color:var(--mint)}.brand-sub{font-size:9px;letter-spacing:.12em;width:90px;line-height:1.4}.site-header nav{display:flex;align-items:center;gap:23px}.site-header nav a{text-decoration:none;font-size:13px}.nav-cta{color:var(--mint)}.menu{display:none}.hero{background:radial-gradient(ellipse at 70% 40%,#164c53,#09242d 65%);color:white;padding:85px 6% 24px}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:5%;max-width:1500px;margin:auto}.eyebrow,.section-index,.tag{font-size:11px;letter-spacing:.17em;font-weight:800;color:#498b80}.eyebrow{color:var(--mint)}.pulse{display:inline-block;background:var(--mint);height:8px;width:8px;border-radius:50%;margin-right:10px}.caps-expanded{font-size:12px;font-weight:700;letter-spacing:.1em;color:#b6ddd4;margin-top:22px}.hero h1 em{color:var(--mint)}.lead{font-size:19px;color:#c6d9d9}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{padding:14px 21px;display:inline-flex;gap:18px;text-decoration:none;font-size:13px;font-weight:750;border:1px solid #82a6a5;border-radius:3px;cursor:pointer}.primary{background:var(--mint);color:#09242d;border-color:var(--mint)}.secondary{color:white}.hero-art{position:relative;min-height:450px;display:grid;place-items:center;overflow:hidden}.orb{position:absolute;border:1px solid #70b5ac;border-radius:50%;aspect-ratio:1}.orb-a{width:94%}.orb-b{width:70%;border-style:dashed}.orb-c{width:45%;border-width:3px}.art-center{text-align:center;color:#d8f4ef;font-size:clamp(11px,1.2vw,15px);line-height:2.1;letter-spacing:.14em;z-index:1;white-space:nowrap}.art-caption{position:absolute;bottom:5px;right:0;text-align:right;font-size:10px;letter-spacing:.12em;color:#a4c8c6}.hero-foot{border-top:1px solid #406069;padding-top:20px;margin-top:65px;display:flex;justify-content:space-between;color:#a1b8b8;font-size:10px;letter-spacing:.12em}.section{padding:100px 7%;scroll-margin-top:20px}.split{display:grid;grid-template-columns:25% 75%;gap:20px}.split>div:last-child{max-width:850px}.split p{font-size:18px;color:#415a60}.statement{font-size:clamp(1.3rem,2.2vw,2rem);font-weight:650;margin:32px 0;padding:22px 28px;border-left:3px solid #4b9d8d}.tinted{background:#e8f0ec}.fine{font-size:13px!important;color:#667b7e!important}blockquote{margin:32px 0;padding:30px;background:#0d343b;color:#e2f4ee;font-size:clamp(1.3rem,2vw,2rem)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin:20px 0 40px}.section-head p{max-width:360px;color:#586c70}.metrics,.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.metrics article,.cards article{padding:32px;background:white;border:1px solid #d8e1dc}.metric{font-size:clamp(3rem,5vw,5rem);font-weight:800;color:#26756b;letter-spacing:-.07em}.metrics p,.cards p{font-size:14px;color:#586e70}.note{background:#e4ebe7;padding:26px;margin-top:20px;font-size:14px}.cards article{min-height:235px}.cards span{font-size:12px;color:#43877d}.updates{display:grid;grid-template-columns:1fr 1fr;gap:16px}.update{background:white;padding:28px;border-top:2px solid #28766e}.update small{color:#398277}.contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:8%}.contact-grid form{background:white;padding:32px}label{display:block;font-size:13px;font-weight:700;margin-bottom:16px}input:not([type=checkbox]),textarea,select{width:100%;display:block;padding:12px;margin-top:6px;border:1px solid #bdceca;border-radius:3px;font:inherit;font-size:14px}.check{display:flex;gap:8px;align-items:start;font-weight:400;font-size:12px}.hidden,.sr-only{position:absolute;left:-9999px}.subscribe{background:#0d343b;color:white;display:grid;grid-template-columns:1fr 1fr;gap:8%}.subscribe p{color:#c7d9d6}footer{background:#09242d;color:#c4d5d2;padding:50px 7%;display:flex;justify-content:space-between;gap:25px;font-size:12px}footer p{max-width:420px}.footer-logo{font-size:24px;font-weight:800}.footer-logo small{display:block;font-size:9px;letter-spacing:.12em}footer a{color:var(--mint)}@media(max-width:900px){.menu{display:block;background:none;color:white;border:1px solid #688e8c;padding:8px}.site-header nav{display:none;position:absolute;top:86px;left:0;right:0;padding:25px;background:#09242d;flex-direction:column;align-items:start;z-index:4}.site-header nav.open{display:flex}.hero-grid,.split,.contact-grid,.subscribe{grid-template-columns:1fr}.hero-art{min-height:320px}.section{padding:70px 6%}.section-head{display:block}.metrics,.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.metrics,.cards,.updates{grid-template-columns:1fr}.hero h1{font-size:3.1rem}.hero-art{min-height:280px}.hero-foot span:nth-child(2){display:none}.contact-grid form{padding:20px}footer{flex-direction:column}}

/* Intentional two-line balance for each half of the hero statement. */
.hero-title span,.hero-title em{display:block}
.hero-title{font-size:clamp(3rem,5.6vw,6.6rem);line-height:1.12}
.hero-title em{margin-top:.16em}
@media(max-width:560px){.hero-title{font-size:clamp(2.9rem,11vw,4.3rem)}}

/* V5: fit the full opening composition within a standard desktop viewport. */
@media (min-width:901px) {
  .hero { padding-top:clamp(16px,3vh,34px); padding-bottom:16px; }
  .caps-expanded { margin-top:0; }
  .hero-title { font-size:clamp(2.8rem,min(4.5vw,7.2vh),5.1rem); line-height:1.07; margin:clamp(10px,1.8vh,18px) 0; }
  .hero-title em { margin-top:.12em; }
  .hero .lead { font-size:clamp(15px,1.25vw,18px); line-height:1.5; margin:12px 0; }
  .hero .actions { margin-top:clamp(12px,2vh,24px); }
  .hero-art { min-height:0; height:clamp(320px,57vh,550px); }
  .hero-foot { margin-top:clamp(12px,2vh,25px); padding-top:12px; }
  .hero { min-height:calc(100svh - 86px); display:flex; flex-direction:column; justify-content:space-between; }
  .hero-grid,.hero-foot { width:100%; }
}
@media (min-width:901px) and (max-height:720px) {
 .hero-art{height:clamp(280px,52vh,390px)}
 .hero-title{font-size:clamp(2.6rem,6.7vh,4.4rem)}
 .hero .lead{font-size:15px}
 .hero .button{padding:10px 15px}
}

/* V6: keep diagram caption below the outer orbit, rather than across its outline. */
.hero-art { overflow:visible; padding-bottom:42px; }
.hero-art .orb { transform:translateY(-18px); }
.hero-art .art-center { transform:translateY(-18px); }
.hero-art .art-caption { bottom:0;right:0;line-height:1.45; }
/* Brevo manages confirmed mailing-list subscriptions; Netlify licensing form is unchanged. */
.brevo-embed {width:100%;max-width:580px;margin-inline:auto;min-width:0;}
.brevo-embed iframe {min-height:610px;}
@media(max-width:900px){.hero-art{margin-bottom:18px}.brevo-embed iframe{height:650px;}}

/* V7: anchor the label stack to the exact geometric centre of the orbits. */
.hero-art .art-center {
  position:absolute;
  left:50%;
  top:50%;
  width:max-content;
  margin:0;
  transform:translate(-50%,-50%) translateY(-18px);
  text-align:center;
}

/* V8: keep the mobile orbit diagram and caption in separate layout rows. */
.orbit-diagram { display:contents; }
@media (max-width:900px) {
  .hero-art { display:flex; flex-direction:column; align-items:center; min-height:0; padding:0; margin-bottom:18px; overflow:visible; }
  .orbit-diagram { display:grid; position:relative; place-items:center; width:100%; aspect-ratio:1; }
  .orbit-diagram .orb { top:50%; left:50%; transform:translate(-50%,-50%); }
  .orbit-diagram .art-center { top:50%; left:50%; transform:translate(-50%,-50%); }
  .hero-art .art-caption { position:static; display:block; align-self:stretch; margin-top:12px; text-align:center; font-size:10px; line-height:1.5; }
}

/* V9: mobile form section spacing; no changes to form handling or desktop. */
@media (max-width:900px) {
  /* Keep the licensing form fully within its pale section. */
  .contact { padding-bottom:120px; }
  .contact-grid { align-items:start; }
  .contact-grid form { margin:0; min-width:0; }
  /* Brevo's embedded form needs less height than the original 650px mobile box.
     Retain scrolling so confirmation/validation messages remain accessible. */
  .brevo-embed iframe { height:540px; min-height:0; }
}
