@font-face {
  font-family:'IBM Plex Sans';
  font-weight:400;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/ibm-plex-sans-400.ttf) format('truetype');
}
@font-face {
  font-family:'IBM Plex Sans';
  font-weight:500;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/ibm-plex-sans-500.ttf) format('truetype');
}
@font-face {
  font-family:'IBM Plex Sans';
  font-weight:600;
  font-style:normal;
  font-display:swap;
  src:url(assets/fonts/ibm-plex-sans-600.ttf) format('truetype');
}
:root {
  --bg:#071b2a;
  --panel:#102c3e;
  --panel-alt:#173747;
  --header:#071b2af5;
  --text:#e0e6df;
  --muted:#b4c5ce;
  --accent:#e7a489;
  --orange:#d97757;
  --line:#91acbb45;
  --font:'IBM Plex Sans',Arial,sans-serif;
  --space:.01em;
  --word:.025em;
  --leading:1.7;
  color-scheme:dark;
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:112px;
}
body {
  margin:0;
  font-family:var(--font);
  font-size:17px;
  line-height:var(--leading);
  letter-spacing:var(--space);
  word-spacing:var(--word);
  color:var(--text);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4,p,figure {
  margin:0;
}
h1,h2,h3,h4 {
  font-family:var(--font);
  font-weight:600;
  letter-spacing:0;
  line-height:1.22;
  text-wrap:balance;
}
h1 {
  font-size:clamp(44px,5.1vw,72px);
}
h2 {
  font-size:clamp(30px,3.2vw,44px);
}
h3 {
  font-size:24px;
}
h4 {
  font-size:20px;
}
em {
  font-style:normal;
  color:var(--accent);
}
p,li,dd {
  max-width:65ch;
}
p {
  color:var(--muted);
}
a {
  color:inherit;
  text-decoration:none;
}
button {
  font:inherit;
  letter-spacing:inherit;
  word-spacing:inherit;
  cursor:pointer;
}
button,a,summary {
  -webkit-tap-highlight-color:transparent;
}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px;
}
button:disabled {
  cursor:default;
  opacity:.65;
}
::selection {
  background:var(--orange);
  color:#071b2a;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  z-index:100;
  background:var(--orange);
  color:#071b2a;
  padding:15px;
}
.skip-link:focus {
  top:10px;
}
.site-header {
  height:88px;
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding:0 max(5%,calc((100% - 1320px)/2));
  background:var(--header);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(16px);
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
  flex-shrink:0;
}
.brand img {
  width:52px;
  height:52px;
  object-fit:contain;
}
.brand>span {
  font:34px Georgia,serif;
  letter-spacing:-1px;
  color:var(--text);
}
#navigation {
  display:flex;
  align-items:center;
  gap:25px;
  font-size:15px;
  line-height:1.5;
}
#navigation>a:hover,#navigation>a[aria-current] {
  color:var(--accent);
}
.nav-cta {
  padding:11px 15px;
  border:1px solid var(--accent);
  color:var(--accent);
  white-space:nowrap;
}
.nav-cta>span {
  margin-left:10px;
}
.menu-toggle {
  display:none;
}
.section-shell {
  padding:72px max(5%,calc((100% - 1320px)/2));
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:35px;
}
.section-heading>p {
  font-size:17px;
  max-width:34ch;
}
.eyebrow {
  font-size:16px;
  font-weight:500;
  color:var(--accent);
  margin-bottom:18px;
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:22px;
  padding:15px 20px;
  border:1px solid var(--orange);
  font-size:16px;
  font-weight:500;
  line-height:1.5;
  transition:background .2s,transform .2s;
}
.primary {
  background:var(--orange);
  color:#08202e;
}
.primary:hover {
  background:#e99f80;
  transform:translateY(-2px);
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  color:var(--accent);
  font-weight:500;
  font-size:16px;
  padding:8px 0;
}
.text-link:hover {
  color:var(--text);
}
.small-copy {
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
}
.hero {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:5%;
  align-items:center;
  padding-top:56px;
  padding-bottom:50px;
  max-width:1600px;
  margin:auto;
}
.hero h1 {
  margin-bottom:24px;
}
.hero-description {
  font-size:21px;
  max-width:37ch;
  line-height:1.65;
}
.welcome {
  font-size:17px;
  margin-top:15px;
  color:var(--text);
}
.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:25px;
  align-items:center;
  margin-top:29px;
}
.launch-strip {
  display:flex;
  align-items:center;
  gap:16px;
  padding:22px max(5%,calc((100% - 1320px)/2));
  background:var(--panel);
  border-block:1px solid var(--line);
  font-size:15px;
}
.launch-strip p {
  color:var(--text);
}
.launch-strip>a {
  margin-left:auto;
  color:var(--accent);
  white-space:nowrap;
}
.status-dot {
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--orange);
  flex-shrink:0;
}
.programme-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--line);
  gap:0 50px;
}
.programme-card {
  padding:30px 0;
  border-bottom:1px solid var(--line);
  position:relative;
  padding-right:35px;
}
.card-number {
  position:absolute;
  right:0;
  top:28px;
  color:var(--accent);
  font-size:20px;
}
.timing {
  font-size:15px;
  color:var(--accent);
  margin-bottom:13px;
}
.programme-card h3 {
  margin-bottom:14px;
}
.programme-card>p:not(.timing) {
  max-width:49ch;
}
.programme-card .text-link {
  margin-top:14px;
}
.programme-card details {
  margin-top:18px;
}
.programme-card details p,.programme-card details li {
  font-size:16px;
}
.programme-card details p {
  margin-top:14px;
}
.programme-card details ul {
  padding-left:23px;
  margin-bottom:0;
}
details>summary {
  cursor:pointer;
  font-weight:500;
  line-height:1.65;
  color:var(--text);
  list-style:none;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:24px;
}
details>summary::-webkit-details-marker {
  display:none;
}
details>summary:after {
  content:'+';
  font-size:24px;
  font-weight:400;
  color:var(--accent);
  flex-shrink:0;
}
details[open]>summary:after {
  content:'−';
}
details li+li {
  margin-top:13px;
}
.projects {
  background:var(--panel);
}
.branch-explorer {
  display:grid;
  grid-template-columns:40% 60%;
  border:1px solid var(--line);
}
.branch-tabs {
  border-right:1px solid var(--line);
  display:flex;
  flex-direction:column;
}
.branch-tabs button {
  background:transparent;
  border:0;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  text-align:left;
  padding:24px;
  min-height:100px;
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  font-size:19px;
  line-height:1.6;
}
.branch-tabs button:last-child {
  border-bottom:0;
}
.branch-tabs button[aria-selected=true] {
  background:var(--panel-alt);
  color:var(--text);
  box-shadow:inset 3px 0 var(--orange);
}
.branch-tabs button>span {
  color:var(--accent);
}
.branch-tabs button:hover {
  color:var(--text);
}
.branch-panel {
  padding:35px;
  min-width:0;
}
.branch-symbol {
  display:block;
  font-size:32px;
  color:var(--accent);
  margin-bottom:20px;
  line-height:1.2;
}
.branch-panel h3 {
  font-size:29px;
  margin-bottom:15px;
}
.branch-panel>p {
  font-size:18px;
  max-width:44ch;
}
.branch-panel>.text-link {
  margin-top:20px;
}
.branch-example {
  border-top:1px solid var(--line);
  margin-top:24px;
  padding-top:19px;
}
.branch-example h4 {
  margin-top:20px;
}
.branch-example dl {
  margin:18px 0;
}
.branch-example dl>div {
  display:grid;
  grid-template-columns:55px 1fr;
  gap:15px;
  margin-top:16px;
}
.branch-example dt {
  font-weight:600;
  color:var(--accent);
}
.branch-example dd {
  margin:0;
  color:var(--muted);
}
.branch-example .small-copy {
  margin-top:18px;
}
.sponsor-teaser {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:9%;
  align-items:center;
}
.sponsor-teaser h2 {
  margin-bottom:24px;
}
.sponsor-teaser p {
  max-width:49ch;
}
.sponsor-teaser .button {
  margin-top:26px;
}
.funding-list {
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid var(--line);
  font-size:19px;
  color:var(--text);
}
.funding-list li {
  padding:18px 0 18px 26px;
  border-bottom:1px solid var(--line);
  position:relative;
}
.funding-list li:before {
  content:'+';
  position:absolute;
  left:0;
  color:var(--accent);
}
.faq {
  display:grid;
  grid-template-columns:1fr 1.15fr;
  gap:8%;
  background:var(--panel);
}
.faq h2 {
  max-width:10ch;
}
.faq details,.support-accordion details {
  border-bottom:1px solid var(--line);
  padding:21px 0;
}
.faq details:first-child,.support-accordion details:first-child {
  border-top:1px solid var(--line);
}
.faq details p,.support-accordion details p {
  margin-top:17px;
  font-size:17px;
}
.faq details a {
  color:var(--accent);
  font-weight:500;
}
.closing {
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  background:var(--panel-alt);
}
.closing p {
  margin-top:20px;
}
.closing .button {
  flex-shrink:0;
}
.site-footer {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:40px;
  padding:42px max(5%,calc((100% - 1320px)/2));
  border-top:1px solid var(--line);
}
.footer-brand {
  font:34px Georgia,serif;
  color:var(--text);
  flex-shrink:0;
}
.footer-brand>span {
  display:block;
  font:15px/1.6 var(--font);
  margin-top:10px;
  letter-spacing:var(--space);
  color:var(--muted);
  max-width:20ch;
}
.site-footer nav {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px 35px;
  font-size:15px;
  color:var(--muted);
}
.site-footer nav a:hover {
  color:var(--accent);
}
.site-footer>p {
  font-size:14px;
  line-height:1.8;
}
.page-hero {
  background:var(--panel);
  padding-top:65px;
  padding-bottom:65px;
}
.page-hero h1 {
  max-width:21ch;
  margin-bottom:28px;
}
.page-hero>p:not(.eyebrow) {
  font-size:21px;
  max-width:48ch;
}
.page-hero .button {
  margin-top:29px;
}
.benefit-list {
  max-width:950px;
  border-top:1px solid var(--line);
}
.benefit-list article {
  display:flex;
  gap:28px;
  padding:28px 0;
  border-bottom:1px solid var(--line);
}
.benefit-list article>span {
  color:var(--accent);
  font-size:20px;
  min-width:32px;
}
.benefit-list h3 {
  margin-bottom:13px;
}
.tinted {
  background:var(--panel);
}
.support-accordion {
  max-width:850px;
}
.support-accordion summary {
  font-size:20px;
}
.compact-copy h2 {
  margin-bottom:25px;
  max-width:24ch;
}
.compact-copy>p+p {
  margin-top:22px;
}
.guide-steps {
  max-width:1050px;
  margin:auto;
}
.guide-steps>article {
  padding-bottom:38px;
  border-bottom:1px solid var(--line);
}
.guide-steps>article+article {
  padding-top:38px;
}
.step-heading {
  display:flex;
  gap:22px;
  align-items:baseline;
  margin-bottom:18px;
}
.step-heading>span {
  font-size:20px;
  color:var(--accent);
  min-width:32px;
}
.step-heading h2 {
  font-size:33px;
}
.guide-steps article>p {
  font-size:19px;
  margin-bottom:23px;
}
.guide-steps details {
  margin-left:54px;
}
.guide-steps details ul {
  padding-left:23px;
  margin-top:25px;
}
.guide-steps details li {
  font-size:17px;
}
.guide-steps strong {
  font-weight:600;
  color:var(--text);
}
.example-note {
  border-left:2px solid var(--orange);
  padding:15px 20px;
  background:var(--panel);
  margin-top:25px;
  font-size:17px;
}
.milestone-note {
  margin-top:40px;
  padding:30px;
  background:var(--panel);
}
.milestone-note h3 {
  margin-bottom:20px;
}
.milestone-note p+p {
  margin-top:20px;
}
.announcement {
  padding:30px;
  background:var(--panel);
  border-left:3px solid var(--orange);
  max-width:900px;
}
.announcement h3 {
  margin-bottom:20px;
}
.announcement p+p {
  margin-top:18px;
}
.involvement-list {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:35px;
  border-top:1px solid var(--line);
  padding-top:30px;
}
.involvement-list h3 {
  margin-bottom:15px;
}
.involvement-list p {
  margin-bottom:15px;
}
.interest-note {
  margin-top:45px;
  border-top:1px solid var(--line);
  padding-top:35px;
  max-width:800px;
}
.interest-note h3 {
  margin-bottom:20px;
}
.interest-note .button {
  margin:25px 0 20px;
}
/* The short sticky scene keeps the layers visible while scrolling assembles them. */
.hero {
  align-items:start;
}
.hero-copy {
  padding-top:38px;
}
.model-scroll-space {
  min-width:0;
  --scroll-distance:220px;
}
.model-scroll-space.scroll-enabled {
  min-height:calc(var(--model-height, 500px) + var(--scroll-distance));
}
.model-scroll-space.scroll-enabled > .maker-model {
  position:sticky;
  top:112px;
}
.maker-model {
  min-width:0;
  --yaw:-32deg;
  --assembly-progress:0;
  --lid-z:calc(115px - 87px * var(--assembly-progress));
  --chip-z:calc(40px - 26px * var(--assembly-progress));
  --base-z:calc(-65px + 46px * var(--assembly-progress));
}
.model-stage {
  height:390px;
  position:relative;
  perspective:850px;
  overflow:hidden;
  touch-action:pan-y;
  cursor:grab;
  background:#092334;
  border-radius:50% 50% 12px 12px;
}
.model-stage:active {
  cursor:grabbing;
}
.model-halo {
  position:absolute;
  width:300px;
  height:300px;
  left:50%;
  top:53%;
  transform:translate(-50%,-50%);
  border:1px solid #7cbfc32b;
  border-radius:50%;
  box-shadow:0 0 0 35px #7cbfc308,0 0 0 70px #7cbfc306;
  background:radial-gradient(ellipse,#59acba30,transparent 70%);
}
.model-orbit {
  position:absolute;
  inset:0;
  transform-style:preserve-3d;
  transform:rotateX(53deg) rotateZ(var(--yaw));
  transition:transform .7s cubic-bezier(.22,.7,.3,1);
}
.is-dragging .model-orbit {
  transition:none;
}
.model-motion {
  position:absolute;
  inset:0;
  transform-style:preserve-3d;
  animation:maker-float 12s ease-in-out infinite;
}
.model-layer {
  position:absolute;
  left:50%;
  top:51%;
  width:240px;
  height:240px;
  transform-style:preserve-3d;
  transition:transform 1.1s cubic-bezier(.22,.7,.3,1);
}
.layer-base {
  transform:translate(-50%,-50%) translateZ(var(--base-z));
  --face:#758b98;
  --side:#40576a;
}
.layer-board {
  transform:translate(-50%,-50%);
  --face:#164f61;
  --side:#123a4d;
}
.layer-chip {
  width:87px;
  height:87px;
  transform:translate(-50%,-50%) translateZ(var(--chip-z));
  --face:#102f46;
  --side:#193b52;
}
.layer-lid {
  transform:translate(-50%,-50%) translateZ(var(--lid-z));
  --face:#80b4bc25;
  --side:#507f8b80;
}
.surface {
  position:absolute;
  inset:0;
  background:var(--face);
  border:1px solid #acced5;
  border-radius:16px;
  box-shadow:inset 0 0 0 5px #d7ebec0a,0 18px 40px #0004;
  backface-visibility:visible;
}
.edge {
  position:absolute;
  display:block;
  background:var(--side);
  border:1px solid #a5c7d266;
}
.edge-front {
  width:100%;
  height:13px;
  top:100%;
  left:0;
  transform-origin:top;
  transform:rotateX(-90deg);
  border-radius:0 0 8px 8px;
}
.edge-right {
  height:100%;
  width:13px;
  left:100%;
  top:0;
  transform-origin:left;
  transform:rotateY(90deg);
  border-radius:0 8px 8px 0;
}
.layer-base .surface {
  background:linear-gradient(145deg,#d1dcde,#7b94a5 40%,#547181);
}
.base-slot {
  position:absolute;
  inset:34px;
  border:1px solid #c8ded7;
  box-shadow:inset 0 0 25px #122e3d50;
  border-radius:8px;
}
.bolt {
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#d5dbcf;
  box-shadow:0 0 0 3px #122f4260;
}
.b1 {
  top:14px;
  left:14px;
}
.b2 {
  top:14px;
  right:14px;
}
.b3 {
  bottom:14px;
  left:14px;
}
.b4 {
  bottom:14px;
  right:14px;
}
.circuit-surface {
  background:linear-gradient(140deg,#225a69,#103c55);
  color:#9bd6cf;
}
.circuit-surface svg {
  width:100%;
  height:100%;
  opacity:.8;
}
.layer-chip .surface {
  border-color:#e9ad87;
  border-radius:7px;
  box-shadow:0 0 0 6px #ce956b,0 0 0 9px #163c4b,0 0 32px #e3956b55;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:linear-gradient(135deg,#224f61,#0c253c);
}
.chip-symbol {
  font-size:28px;
  font-weight:600;
  letter-spacing:.06em;
  color:#efc4a4;
}
.chip-line {
  width:31px;
  height:2px;
  background:#e4ae85;
  margin-top:6px;
}
.layer-chip .edge {
  height:8px;
}
.layer-chip .edge-right {
  width:8px;
  height:100%;
}
.layer-lid .surface {
  background:linear-gradient(130deg,#84c6d733,#0d3c5660);
  border-color:#a3d4dabb;
  backdrop-filter:blur(1px);
}
.lid-frame {
  position:absolute;
  inset:12px;
  border:1px solid #90d0d866;
  border-radius:9px;
}
.layer-lid img {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  mix-blend-mode:screen;
  opacity:.9;
  width:110px;
  height:110px;
  object-fit:contain;
  pointer-events:none;
}
.model-axis {
  position:absolute;
  width:1px;
  height:320px;
  background:linear-gradient(transparent,#80bfc444,transparent);
  top:50%;
  left:50%;
  transform:translate(-50%,-50%) rotateX(90deg);
}
.axis-a {
  margin-left:-108px;
}
.axis-b {
  margin-left:108px;
}
.is-scroll-linked .model-layer {
  transition:none;
}
.maker-model figcaption {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  margin:19px 0 14px;
  font-size:14px;
  color:var(--muted);
}
.model-hint {
  color:var(--accent);
}
.scroll-mode-button {
  flex-shrink:0;
  background:transparent;
  border:1px solid var(--line);
  padding:6px 9px;
  color:var(--muted);
  font-size:13px;
  line-height:1.5;
  letter-spacing:normal;
  word-spacing:normal;
}
.scroll-mode-button[aria-pressed=true] {
  color:var(--accent);
  border-color:var(--accent);
}
.scroll-mode-button[aria-pressed=true]:after {
  content:' ✓';
}
.model-controls {
  display:grid;
  grid-template-columns:40px 1fr 1.35fr 40px;
  gap:8px;
}
.model-controls button {
  background:var(--panel);
  border:1px solid var(--line);
  color:var(--text);
  padding:11px 6px;
  font-size:14px;
  line-height:1.5;
}
.model-controls button:hover {
  border-color:var(--accent);
}
.is-assembled [data-assemble],.is-paused [data-motion] {
  color:var(--accent);
  border-color:var(--accent);
}
.maker-model.is-paused .model-motion,.maker-model.is-dragging .model-motion,.maker-model.is-out-of-view .model-motion {
  animation-play-state:paused;
}
.reduce-motion .model-motion {
  animation:none;
}
.reduce-motion * {
  scroll-behavior:auto!important;
  transition:none!important;
}
@keyframes maker-float {
  0%,100% {
    transform:translateZ(0) rotateZ(-6deg);
  }
  50% {
    transform:translateZ(14px) rotateZ(7deg);
  }
}
@media(max-width:1150px) {
  #navigation {
    gap:17px;
    font-size:14px;
  }
  .brand>span {
    font-size:31px;
  }
  .hero h1 {
    font-size:56px;
  }
  .model-stage {
    height:360px;
  }
  .hero-description {
    font-size:20px;
  }
}
@media(max-width:1000px) {
  .site-header {
    height:78px;
    padding:0 6%;
    gap:15px;
  }
  .brand img {
    width:46px;
    height:46px;
  }
  .brand>span {
    font-size:32px;
  }
  .menu-toggle {
    display:flex;
    gap:15px;
    align-items:center;
    padding:10px 13px;
    background:transparent;
    border:1px solid var(--line);
    color:var(--text);
    font-size:15px;
    line-height:1.5;
  }
  .menu-toggle>span {
    color:var(--accent);
  }
  #navigation {
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:77px;
    background:var(--bg);
    padding:16px 6% 25px;
    border-bottom:1px solid var(--line);
    max-height:calc(100dvh - 80px);
    overflow-y:auto;
  }
  #navigation.is-open {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:0;
  }
  #navigation>a {
    padding:14px 0;
    font-size:17px;
  }
  #navigation>.nav-cta {
    padding:13px 15px;
    margin-top:15px;
    display:flex;
    justify-content:space-between;
  }
  .section-shell {
    padding:56px 6%;
  }
  .hero {
    gap:4%;
    padding-top:45px;
  }
  .hero h1 {
    font-size:48px;
  }
  .hero-description {
    font-size:18px;
  }
  .hero-actions {
    gap:15px;
  }
  .hero-actions .button,.hero-actions .text-link {
    font-size:15px;
  }
  .model-stage {
    height:330px;
  }
  .model-orbit {
    scale:.86;
  }
  .maker-model figcaption {
    font-size:13px;
  }
  .model-hint {
    display:none;
  }
  .model-controls {
    grid-template-columns:32px 1fr 1.35fr 32px;
    gap:5px;
  }
  .model-controls button {
    font-size:13px;
  }
  .launch-strip {
    padding:20px 6%;
    font-size:14px;
    gap:12px;
  }
  .programme-grid {
    gap:0 35px;
  }
  .programme-card {
    padding-right:25px;
  }
  .programme-card h3 {
    font-size:23px;
  }
  .programme-card>p:not(.timing) {
    font-size:17px;
  }
  .branch-tabs button {
    padding:22px;
    font-size:18px;
  }
  .branch-panel {
    padding:28px;
  }
  .branch-panel h3 {
    font-size:26px;
  }
  .branch-panel>p {
    font-size:17px;
  }
  .sponsor-teaser {
    gap:7%;
  }
  .funding-list {
    font-size:17px;
  }
  .faq {
    gap:6%;
  }
  .closing h2 {
    font-size:32px;
  }
  .site-footer {
    flex-wrap:wrap;
    padding:35px 6%;
    gap:30px;
  }
  .site-footer nav {
    margin-left:auto;
  }
  .site-footer>p {
    flex-basis:100%;
  }
}
@media(max-width:760px) {
  .hero-copy {
    padding-top:0;
  }
  .model-scroll-space {
    width:100%;
    max-width:480px;
    justify-self:center;
    --scroll-distance:180px;
  }
  .model-scroll-space.scroll-enabled > .maker-model {
    top:98px;
  }
  html {
    scroll-padding-top:98px;
  }
  .hero {
    grid-template-columns:1fr;
    gap:34px;
    padding-bottom:32px;
  }
  .hero-copy {
    max-width:580px;
  }
  .hero h1 {
    font-size:clamp(39px,7vw,57px);
  }
  .hero-description {
    font-size:20px;
    max-width:43ch;
  }
  .hero .welcome {
    font-size:17px;
  }
  .hero-actions {
    gap:25px;
  }
  .maker-model {
    max-width:480px;
    width:100%;
    justify-self:center;
  }
  .model-stage {
    height:330px;
  }
  .model-orbit {
    scale:.9;
  }
  .model-hint {
    display:inline;
  }
  .maker-model figcaption {
    font-size:14px;
  }
  .model-controls {
    grid-template-columns:40px 1fr 1.35fr 40px;
    gap:8px;
  }
  .model-controls button {
    font-size:14px;
  }
  .launch-strip {
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .launch-strip .status-dot {
    margin-top:8px;
  }
  .launch-strip p {
    flex:1;
    font-size:15px;
  }
  .launch-strip>a {
    margin-left:19px;
    flex-basis:100%;
    font-size:15px;
  }
  .section-heading {
    align-items:start;
    flex-direction:column;
    gap:20px;
    margin-bottom:28px;
  }
  .section-heading>p {
    max-width:50ch;
  }
  .section-heading>p br {
    display:none;
  }
  .programme-grid {
    grid-template-columns:1fr;
  }
  .programme-card {
    padding:28px 30px 28px 0;
  }
  .programme-card>p:not(.timing) {
    font-size:18px;
  }
  .programme-card details p,.programme-card details li {
    font-size:17px;
  }
  .branch-explorer {
    grid-template-columns:1fr;
  }
  .branch-tabs {
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .branch-tabs button {
    min-height:76px;
    padding:19px 23px;
    font-size:18px;
  }
  .branch-panel {
    padding:29px 24px;
  }
  .branch-panel>p {
    font-size:18px;
  }
  .sponsor-teaser {
    grid-template-columns:1fr;
    gap:35px;
  }
  .sponsor-teaser .eyebrow {
    margin-bottom:15px;
  }
  .sponsor-teaser h2 {
    margin-bottom:20px;
  }
  .funding-list {
    font-size:18px;
  }
  .faq {
    grid-template-columns:1fr;
    gap:25px;
  }
  .faq h2 {
    max-width:none;
  }
  .closing {
    flex-direction:column;
    align-items:flex-start;
    gap:25px;
  }
  .closing h2 {
    font-size:34px;
  }
  .page-hero h1 {
    font-size:clamp(38px,7vw,57px);
  }
  .page-hero>p:not(.eyebrow) {
    font-size:20px;
  }
  .guide-steps details {
    margin-left:0;
  }
  .guide-steps article>p {
    font-size:18px;
  }
  .step-heading {
    gap:15px;
  }
  .step-heading h2 {
    font-size:28px;
  }
  .step-heading>span {
    font-size:18px;
    min-width:27px;
  }
  .guide-steps details li {
    font-size:17px;
  }
  .milestone-note {
    padding:25px;
  }
  .involvement-list {
    grid-template-columns:1fr;
    gap:28px;
  }
  .involvement-list article+article {
    border-top:1px solid var(--line);
    padding-top:28px;
  }
  .involvement-list p {
    margin-bottom:8px;
  }
  .interest-note {
    margin-top:34px;
  }
  .benefit-list article {
    gap:18px;
  }
  .benefit-list article>span {
    min-width:25px;
  }
  .benefit-list h3 {
    font-size:23px;
  }
  .benefit-list p {
    font-size:17px;
  }
}
@media(max-width:420px) {
  body {
    font-size:17px;
  }
  .section-shell {
    padding-top:44px;
    padding-bottom:44px;
  }
  .site-header {
    height:74px;
  }
  .brand img {
    width:43px;
    height:43px;
  }
  .brand>span {
    font-size:29px;
  }
  .brand {
    gap:8px;
  }
  .menu-toggle {
    padding:9px 11px;
    font-size:14px;
    gap:9px;
  }
  .eyebrow {
    font-size:15px;
  }
  .hero {
    padding-top:35px;
    padding-bottom:28px;
    gap:26px;
  }
  .hero h1 {
    font-size:clamp(35px,10.4vw,44px);
  }
  .hero-description {
    font-size:19px;
  }
  .hero .welcome {
    font-size:16px;
  }
  .hero-actions {
    gap:14px;
    margin-top:25px;
  }
  .hero-actions .button,.hero-actions .text-link {
    font-size:15px;
  }
  .hero-actions .button {
    padding:14px 16px;
  }
  .model-stage {
    height:290px;
  }
  .model-orbit {
    scale:.78;
  }
  .maker-model figcaption {
    font-size:13px;
    gap:8px;
  }
  .model-controls {
    grid-template-columns:32px 1fr 1.3fr 32px;
    gap:6px;
  }
  .model-controls button {
    font-size:13px;
    padding:11px 4px;
  }
  .model-hint {
    display:none;
  }
  .launch-strip {
    font-size:15px;
  }
  .section-heading h2,h2 {
    font-size:30px;
  }
  .programme-card>p:not(.timing) {
    font-size:17px;
  }
  .timing {
    font-size:14px;
  }
  .programme-card h3 {
    font-size:23px;
  }
  .branch-tabs button {
    font-size:17px;
    min-height:76px;
    padding:19px;
  }
  .branch-panel {
    padding:25px 20px;
  }
  .branch-panel h3 {
    font-size:25px;
  }
  .branch-panel>p {
    font-size:17px;
  }
  .branch-example dd {
    font-size:16px;
  }
  .branch-example dl>div {
    grid-template-columns:45px 1fr;
    gap:10px;
  }
  .branch-example .small-copy {
    font-size:15px;
  }
  .branch-example h4 {
    font-size:19px;
  }
  .branch-panel .text-link {
    font-size:16px;
  }
  .funding-list {
    font-size:17px;
  }
  .faq details p,.support-accordion details p {
    font-size:17px;
  }
  .faq summary {
    font-size:17px;
  }
  .closing h2 {
    font-size:30px;
  }
  .button {
    font-size:15px;
    padding:14px 17px;
  }
  .page-hero h1 {
    font-size:clamp(33px,9.7vw,41px);
  }
  .page-hero>p:not(.eyebrow) {
    font-size:19px;
  }
  .page-hero .button {
    font-size:15px;
  }
  .support-accordion summary {
    font-size:18px;
  }
  .step-heading h2 {
    font-size:25px;
  }
  .step-heading {
    align-items:start;
  }
  .step-heading>span {
    margin-top:3px;
  }
  .guide-steps article>p {
    font-size:17px;
  }
  .milestone-note {
    padding:23px;
  }
  .milestone-note h3 {
    font-size:22px;
  }
  .benefit-list article {
    gap:14px;
  }
  .announcement {
    padding:25px 20px;
  }
  .announcement h3 {
    font-size:23px;
  }
  .site-footer {
    display:block;
  }
  .site-footer nav {
    margin-top:30px;
    grid-template-columns:1fr;
    gap:17px;
    font-size:16px;
  }
  .site-footer>p {
    margin-top:30px;
    font-size:15px;
  }
  .footer-brand>span {
    max-width:none;
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important;
  }
  .model-orbit {
    transition:none;
  }
}
@media print {
  .site-header,.maker-model,.launch-strip,.closing,.site-footer {
    display:none;
  }
  body {
    background:white;
    color:black;
    font-size:12pt;
  }
  .section-shell {
    padding:20pt 0;
  }
  p,li {
    color:black;
  }
  details>summary {
    font-weight:bold;
  }
  details::details-content {
    display:block!important;
  }
  details {
    break-inside:avoid;
  }
}
