@charset "utf-8";

@font-face{font-family:"Geometr415";src:url("fonts/geometr415-black.woff2") format("woff2");font-weight:900;font-style:normal;font-display:swap}

@font-face{font-family:"Sora";src:url("fonts/sora-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Sora";src:url("fonts/sora-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Roboto SemiCondensed";src:url("fonts/robotosc-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Roboto SemiCondensed";src:url("fonts/robotosc-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Roboto SemiCondensed";src:url("fonts/robotosc-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --structure:"Sora","Outfit",ui-sans-serif,system-ui,sans-serif;
  --prose:"Roboto SemiCondensed","Roboto Condensed","Arial Narrow",ui-sans-serif,sans-serif;

  --numerals:"Roboto SemiCondensed","Roboto Condensed","Arial Narrow",ui-sans-serif,sans-serif;
  --wordmark:"Geometr415","Futura","Trebuchet MS",sans-serif;

  --dk-0:#1C1C1E;
  --dk-1:#173749;
  --dk-2:#284B63;
  --dk-3:#286081;

  --lt-0:#F4F9E9;
  --lt-1:#DCDFD5;
  --lt-2:#C4C9B7;
  --lt-3:#ADB49C;

  --vein:#1C6458;
  --vein-well:#144840;

  --ink:var(--dk-0);
  --ink-raised:var(--dk-1);
  --paper:var(--lt-0);
  --paper-sunk:var(--lt-1);

  --teal:#2A7F72;
  --teal-on-light:#28796D;
  --teal-on-dark:#4BC3B1;
  --teal-on-dark-hi:#79D3C5;
  --teal-on-dark-max:#A5E2D8;

  --acc-dk:#57C7B6;
  --acc-lt:#246D63;
  --fg3-lt:#606455;
  --other-lt:#608390;

  --accent-1000:linear-gradient(270deg,var(--fill-a) 30%,var(--fill-b) 70%);

  --accent-1000-hover:linear-gradient(270deg,var(--fill-a-hover) 30%,var(--fill-b-hover) 70%);

  --accent-text:linear-gradient(251deg,var(--gw-edge) 0%,var(--gw-core) 40%,var(--gw-edge) 100%);

  --accent-text-on-light:var(--accent-text);

  --text--gr:linear-gradient(251deg,rgba(87,199,182,0) 0%,var(--acc-dk) 40%,rgba(87,199,182,0) 100%);

  --bg--gr-overlay:linear-gradient(180deg,#1C1C1E 0%,rgba(28,28,30,0) 43.67%,rgba(28,28,30,0) 100%);

  --amber:#C9781B;

  --surface:      light-dark(var(--lt-0), var(--dk-0));
  --surface-2:    light-dark(var(--lt-1), var(--dk-1));
  --surface-3:    light-dark(var(--lt-2), var(--dk-2));
  --track:        light-dark(var(--lt-3), var(--dk-3));

  --fg:           light-dark(#153243, #F4F9E9);

  --fg-2:         light-dark(#284B63, #D2D5CD);

  --fg-3:         light-dark(var(--fg3-lt), #B4B8AB);

  --rule:         light-dark(var(--lt-2), #3E3E44);

  --rule-strong:  light-dark(#B4B8AB, var(--dk-3));

  --series-other: light-dark(var(--other-lt), #6B8F9C);

  --accent-tx:    light-dark(var(--acc-lt), var(--acc-dk));
  --focus:        light-dark(var(--acc-lt), var(--acc-dk));
  --rule-gr:var(--text--gr);

  --gw-edge:      light-dark(#2A7F72, #2A7F72);
  --gw-core:      light-dark(#144840, #79D3C5);

  --fill-a:       light-dark(var(--acc-lt), var(--acc-dk));
  --fill-b:       light-dark(#28796D,       #79D3C5);

  --btn-ink:      light-dark(#F4F9E9, #1C1C1E);

  --fill-a-hover: light-dark(var(--vein-well),      var(--teal-on-dark-hi));
  --fill-b-hover: light-dark(var(--vein),           var(--teal-on-dark-max));

  --accent-field:   var(--vein);
  --on-accent-field:#F4F9E9;
  --accent-field-2: var(--vein-well);

  --t-eyebrow:.75rem;
  --t-fine:.875rem;
  --t-small:1rem;
  --t-body:1.125rem;
  --t-lede:1.375rem;
  --t-h3:1.375rem;
  --t-h4:1.75rem;
  --t-h2:3rem;

  --t-h1:3.6rem;
  --t-num:2.125rem;
  --t-num-hero:3.5rem;

  --s1:.5rem; --s2:1rem; --s3:2rem; --s4:3.5rem; --s5:6rem; --s6:9rem;

  --inset:clamp(1rem,2.6vw,2.25rem);
  --radius:clamp(1.5rem,2.8vw,2.5rem);
  --r-card:clamp(.9rem,1.4vw,1.25rem);
  --r-pill:999px;
  --hold:1180px;
  --pad-x:clamp(1.25rem,4vw,3.5rem);

  --draft-bar:0px;
  --header:60px;
}
@media (max-width:1200px){
  :root{ --t-h1:3.5rem; --t-h2:2.4rem }
}
@media (max-width:900px){
  :root{ --t-h1:2.6rem; --t-h2:1.95rem; --t-lede:1.1875rem; --t-body:1.0625rem;
         --t-num-hero:2.6rem; --t-num:1.75rem; --t-h3:1.25rem; --t-h4:1.375rem;
         --s5:4rem; --s6:5.25rem; --s4:2.5rem; --s3:1.5rem }
}
@media (max-width:620px){ :root{ --header:56px } }

@media (min-width:680px) and (max-width:959px){ :root{ --t-h1:3.1rem } }
@media (max-width:374px){ :root{ --t-h1:2.15rem } }

@media (min-width:960px) and (max-width:1200px){ :root{ --t-h1:3.2rem } }

.plate{
  --surface:      light-dark(var(--dk-0), var(--lt-0));
  --surface-2:    light-dark(var(--dk-1), var(--lt-1));
  --surface-3:    light-dark(var(--dk-2), var(--lt-2));
  --track:        light-dark(var(--dk-3), var(--lt-3));
  --fg:           light-dark(#F4F9E9, #153243);
  --fg-2:         light-dark(#D2D5CD, #284B63);
  --fg-3:         light-dark(#B4B8AB, var(--fg3-lt));
  --rule:         light-dark(#3E3E44, var(--lt-2));
  --rule-strong:  light-dark(var(--dk-3), #B4B8AB);
  --series-other: light-dark(#6B8F9C, var(--other-lt));
  --accent-tx:    light-dark(var(--acc-dk), var(--acc-lt));
  --focus:        light-dark(var(--acc-dk), var(--acc-lt));
  --fill-a:       light-dark(var(--acc-dk), var(--acc-lt));
  --fill-b:       light-dark(#79D3C5,       #28796D);

  --fill-a-hover: light-dark(var(--teal-on-dark-hi),  var(--vein-well));
  --fill-b-hover: light-dark(var(--teal-on-dark-max), var(--vein));
  --btn-ink:      light-dark(#1C1C1E, #F4F9E9);

  --gw-edge:      light-dark(#2E9A8A, #2A7F72);
  --gw-core:      light-dark(#79D3C5, #144840);

  --accent-1000:linear-gradient(270deg,var(--fill-a) 30%,var(--fill-b) 70%);

  --accent-1000-hover:linear-gradient(270deg,var(--fill-a-hover) 30%,var(--fill-b-hover) 70%);
  --accent-text:linear-gradient(251deg,var(--gw-edge) 0%,var(--gw-core) 40%,var(--gw-edge) 100%);
  --rule-gr:linear-gradient(251deg,transparent 0%,var(--accent-tx) 40%,transparent 100%);
}

.plate--vein{
  --surface:var(--vein);
  --surface-2:var(--vein-well);
  --surface-3:#0E312C;
  --track:#0E312C;
  --fg:var(--on-accent-field);

  --fg-2:#E4E7DE;
  --fg-3:#E4E7DE;
  --rule:#2E8375;
  --rule-strong:#4BA294;
  --accent-tx:var(--on-accent-field);
  --focus:var(--on-accent-field);
  --series-other:#9FC3BB;

  --fill-a:var(--acc-dk);
  --fill-b:#79D3C5;

  --fill-a-hover:var(--teal-on-dark-hi);
  --fill-b-hover:var(--teal-on-dark-max);
  --btn-ink:#1C1C1E;
  --rule-gr:linear-gradient(251deg,transparent 0%,#79D3C5 40%,transparent 100%);

  --gw-edge:#79D3C5;
  --gw-core:#A5E2D8;
  --accent-1000:linear-gradient(270deg,var(--fill-a) 30%,var(--fill-b) 70%);
  --accent-1000-hover:linear-gradient(270deg,var(--fill-a-hover) 30%,var(--fill-b-hover) 70%);
  --accent-text:linear-gradient(251deg,var(--gw-edge) 0%,var(--gw-core) 40%,var(--gw-edge) 100%);
}

:root{color-scheme:dark}
html[data-theme="dark"] { color-scheme:dark }
html[data-theme="light"]{ color-scheme:light }

@supports not (color:light-dark(#000,#fff)){
  :root{
    --surface:var(--dk-0); --surface-2:var(--dk-1);
    --surface-3:var(--dk-2); --track:var(--dk-3);
    --fg:#F4F9E9; --fg-2:#D2D5CD; --fg-3:#B4B8AB;
    --rule:#3E3E44; --rule-strong:var(--dk-3); --series-other:#6B8F9C;
    --accent-tx:var(--acc-dk); --focus:var(--acc-dk);
    --gw-edge:#2A7F72; --gw-core:#79D3C5;
    --fill-a:var(--acc-dk); --fill-b:#79D3C5; --btn-ink:#1C1C1E;
  }
  .plate{
    --surface:var(--lt-0); --surface-2:var(--lt-1);
    --surface-3:var(--lt-2); --track:var(--lt-3);
    --fg:#153243; --fg-2:#284B63; --fg-3:var(--fg3-lt);
    --rule:var(--lt-2); --rule-strong:#B4B8AB; --series-other:var(--other-lt);
    --accent-tx:var(--acc-lt); --focus:var(--acc-lt);
    --gw-edge:#2A7F72; --gw-core:#144840;
    --fill-a:var(--acc-lt); --fill-b:#28796D; --btn-ink:#F4F9E9;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{

  font-size:clamp(15.5px,1.1111vw,18px);
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}
body{
  margin:0;
  background:var(--surface);
  color:var(--fg);
  font-family:var(--prose);
  font-size:var(--t-body);
  line-height:1.46;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{max-width:100%}
h1,h2,h3{
  font-family:var(--structure);
  font-weight:400;
  margin:0;
  letter-spacing:-.012em;
  color:var(--fg);
}

h1{font-size:var(--t-h1);line-height:1.28;letter-spacing:-.02em}
h2{font-size:var(--t-h2);line-height:1.2;letter-spacing:-.016em}
h3{font-size:var(--t-h3);line-height:1.18}
p{margin:0;text-wrap:pretty}
p + p{margin-top:var(--s2)}
a{color:inherit}
ul,ol{margin:0;padding:0;list-style:none}
strong,b{font-weight:500}
em{font-style:italic}
table{border-collapse:collapse;width:100%}
button,input,select,textarea{font:inherit;color:inherit}

.visually-hidden{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.skip{
  position:absolute;left:var(--s2);top:calc(var(--draft-bar) + var(--s1));
  z-index:60;padding:.55rem 1.1rem;
  background-color:var(--fill-a);background-image:var(--accent-1000);
  color:var(--btn-ink);
  font-family:var(--structure);font-size:var(--t-small);text-decoration:none;
  border-radius:var(--r-pill);transform:translateY(-200%);
}
.skip:focus{transform:none}

:where(a,button,input,select,textarea,[tabindex]):focus-visible{
  outline:2px solid var(--focus);
  outline-offset:2px;
  border-radius:2px;
}

.draftbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;gap:var(--s2);
  height:var(--draft-bar);padding-inline:var(--s2);
  background:var(--amber);color:#160B01;
  font-family:var(--structure);font-weight:500;
  font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;
}
.draftbar p{margin:0 auto;text-align:center;line-height:1}
.draftbar__stripe{
  flex:0 0 88px;align-self:stretch;
  background:repeating-linear-gradient(-45deg,#160B01 0 6px,transparent 6px 13px);
  opacity:.65;
}
@media (max-width:620px){
  .draftbar{font-size:.625rem;letter-spacing:.08em}
  .draftbar__stripe{flex-basis:26px}
}

.siteheader{
  position:sticky;top:var(--draft-bar);z-index:45;
  background-color:light-dark(rgba(244,249,233,.90), rgba(28,28,30,.90));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--rule);
}
.siteheader__inner{

  max-width:min(1360px, 100%);
  margin-inline:auto;padding-inline:var(--pad-x);
  min-height:var(--header);
  display:flex;align-items:center;gap:var(--s3);
}
.lockup{
  display:inline-flex;align-items:center;gap:.5rem;
  text-decoration:none;flex:0 0 auto;
}
.lockup__mark{width:19px;height:22px;flex:0 0 auto}
.lockup__word{
  font-family:var(--wordmark);font-weight:900;
  font-size:.9375rem;letter-spacing:.18em;color:var(--fg);
}
.lockup__pipe{color:var(--fg-3);margin-inline:.15rem}
.lockup__domain{
  font-family:var(--structure);font-size:.875rem;color:var(--fg-2);
  letter-spacing:.01em;
}
.nav{margin-left:auto;min-width:0}

@supports (mask-image:linear-gradient(90deg,#000,transparent)) or (-webkit-mask-image:linear-gradient(90deg,#000,transparent)){
  .nav ul.is-clipped{
    --nav-fade-s:0px;--nav-fade-e:0px;
    mask-image:linear-gradient(90deg,
      transparent 0, #000 var(--nav-fade-s),
      #000 calc(100% - var(--nav-fade-e)), transparent 100%);
    -webkit-mask-image:linear-gradient(90deg,
      transparent 0, #000 var(--nav-fade-s),
      #000 calc(100% - var(--nav-fade-e)), transparent 100%);
  }
  .nav ul.is-clipped-start{--nav-fade-s:22px}
  .nav ul.is-clipped-end{--nav-fade-e:22px}
}
.nav ul{
  display:flex;align-items:center;
  border:1px solid var(--rule-strong);border-radius:999px;
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;-ms-overflow-style:none;
  max-width:100%;
}
.nav ul::-webkit-scrollbar{display:none}
.nav li + li{border-left:1px solid var(--rule)}
.nav a{
  display:block;white-space:nowrap;
  padding:.5rem .85rem;
  font-family:var(--structure);font-size:.8125rem;
  color:var(--fg-2);text-decoration:none;
}

@media (hover:hover){
  .nav a:hover{color:var(--accent-tx);background:var(--surface-2)}
}
.nav li:first-child a{border-radius:var(--r-pill) 0 0 var(--r-pill)}
.nav li:last-child a{border-radius:0 var(--r-pill) var(--r-pill) 0}

.navdisc{position:relative;flex:0 0 auto}

.navdisc[hidden]{display:none}
.navdisc:not([hidden]){margin-left:auto}
.navdisc:not([hidden]) ~ .nav{margin-left:0}

@media (max-width:430px){
  .navdisc:not([hidden]) ~ .nav{display:none}

  .navdisc:not([hidden]) .navdisc__panel{left:auto;right:0}
}
.navdisc__btn{
  display:inline-flex;align-items:center;

  padding:.5rem .85rem;line-height:inherit;
  font-family:var(--structure);font-size:.8125rem;font-weight:500;

  color:var(--fg);background:var(--surface-2);
  border:1px solid var(--rule-strong);border-radius:var(--r-pill);
  cursor:pointer;white-space:nowrap;
  transition:border-color .18s ease,background-color .18s ease,color .18s ease;
}

@media (hover:hover){
  .navdisc__btn:hover{color:var(--accent-tx);border-color:var(--accent-tx);background:var(--surface-2)}
}

.navdisc__btn[aria-expanded="true"]{
  color:var(--accent-tx);border-color:var(--accent-tx);background:var(--surface-2);
}
.navdisc__panel{

  position:absolute;top:calc(100% + .5rem);left:0;z-index:1;
  min-width:11rem;
  max-width:min(18rem, calc(100vw - 2 * var(--pad-x)));

  max-height:calc(100dvh - var(--header) - var(--draft-bar) - 2rem);
  overflow:auto;overscroll-behavior:contain;
  background:var(--surface);color:var(--fg);
  border:1px solid var(--rule-strong);border-radius:var(--radius);
}
.navdisc__panel[hidden]{display:none}
.navdisc__panel ul{list-style:none;margin:0;padding:0}
.navdisc__panel li + li{border-top:1px solid var(--rule)}
.navdisc__panel a{
  display:block;white-space:nowrap;
  padding:.5rem .85rem;
  font-family:var(--structure);font-size:.8125rem;
  color:var(--fg-2);text-decoration:none;
}
@media (hover:hover){
  .navdisc__panel a:hover{color:var(--accent-tx);background:var(--surface-2)}
}

@media (prefers-reduced-motion:no-preference){
  .navdisc__panel{animation:navdisc-in .14s ease-out both}
}
@keyframes navdisc-in{from{opacity:0;transform:translateY(-4px)}}

.themetoggle{
  flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;padding:0;

  background:transparent;
  border:1px solid var(--rule-strong);border-radius:var(--r-pill);
  color:var(--fg);cursor:pointer;
  transition:border-color .18s ease, background-color .18s ease;
}
.themetoggle:hover{border-color:var(--accent-tx);background:var(--surface-2)}
.themetoggle svg{width:15px;height:15px;display:block}

.themetoggle .tt__ground{fill:var(--surface)}
.themetoggle .tt__ink{fill:var(--fg)}
.themetoggle .tt__ring{fill:none;stroke:var(--fg);stroke-width:1.2}
@media (max-width:820px){
  .themetoggle{width:30px;height:30px}
}
@media (max-width:820px){
  .siteheader__inner{gap:var(--s2)}

  .nav a{padding-inline:.65rem;font-size:.75rem}

  .navdisc__btn{padding-inline:.65rem;font-size:.75rem}
  .lockup__domain{display:none}
  .lockup__pipe{display:none}
}

@media (max-width:820px), (any-pointer:coarse){
  .nav a,
  .navdisc__btn,
  .navdisc__panel a{padding-block:.95rem}
}

.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--structure);font-size:var(--t-small);font-weight:500;
  letter-spacing:.01em;text-decoration:none;
  padding:.85rem 1.6rem;border-radius:var(--r-pill);
  border:1px solid transparent;cursor:pointer;
  transition:background-color .2s ease,border-color .2s ease,color .2s ease;
}
.btn--primary{
  background-color:var(--fill-a);background-image:var(--accent-1000);
  color:var(--btn-ink);border-color:transparent;
}
.btn--primary:hover{

  background-color:var(--fill-b-hover);background-image:var(--accent-1000-hover);
}
.btn--quiet{color:var(--fg);border-color:var(--rule-strong);background:transparent}
.btn--quiet:hover{border-color:var(--accent-tx);color:var(--accent-tx)}
.btn--ghost{
  color:var(--accent-tx);border-color:currentColor;background:transparent;
}

.btn--ghost:hover{background-color:color-mix(in srgb, var(--accent-tx) 14%, transparent)}
.ico{width:1em;height:1em;flex:0 0 auto}

.band{position:relative}
.band--ink{padding-block:var(--s5)}
.band--plate{padding-inline:var(--inset);padding-block:calc(var(--inset) * .55)}
.plate{
  background-color:var(--surface);color:var(--fg);
  border-radius:var(--radius);
  padding-block:var(--s5);
  padding-inline:var(--pad-x);

  overflow:clip;
}

.plate--vein{
  background-color:var(--vein);
  background-image:none;
  border-radius:0;

  margin-inline:calc(var(--inset) * -1);
  padding-inline:var(--pad-x);

  margin-block:calc(var(--inset) * -.55);
}
.plate--major{padding-block:calc(var(--s5) + var(--s3))}
.hold{max-width:var(--hold);margin-inline:auto}
.plate .hold{max-width:calc(var(--hold) - 2rem)}
.band--ink > .hold{padding-inline:var(--pad-x)}
[id]{scroll-margin-top:calc(var(--draft-bar) + var(--header) + 1.5rem)}

.band--glow{
  background-image:
    radial-gradient(60% 44% at 14% 88%, rgba(121,211,197,.12) 0%, rgba(121,211,197,0) 68%),
    radial-gradient(46% 36% at 88% 18%, rgba(75,195,177,.07) 0%, rgba(75,195,177,0) 70%);
}

.sub + .sub{
  margin-top:var(--s5);padding-top:var(--s5);position:relative;
}
.sub + .sub::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background-image:var(--rule-gr);opacity:.6;
}

.head{text-align:center;margin-bottom:var(--s4)}

.head:not(:has(.lede)){margin-bottom:calc(var(--s3) * .75)}
.eyebrow{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.16em;text-transform:uppercase;
  color:var(--fg-2);
  margin-bottom:var(--s3);
}
.tri{width:11px;height:10px;flex:0 0 auto;fill:var(--accent-tx)}
.head h2{max-width:var(--h2-ch,24ch);margin-inline:auto;text-wrap:balance}
.head .lede{
  max-width:var(--lede-ch,56ch);margin-inline:auto;margin-top:var(--s3);
  font-size:var(--t-lede);line-height:1.56;color:var(--fg-2);
  text-wrap:pretty;
}
.centred-prose{
  max-width:62ch;margin-inline:auto;margin-top:var(--s3);
  color:var(--fg-2);
}
.head .centred-prose{text-align:left}

.register{margin-bottom:var(--s4)}
.register > :first-child{margin-top:0}
.closing{
  max-width:var(--closing-ch,44ch);margin-inline:auto;margin-top:var(--s4);
  text-align:center;font-family:var(--structure);

  font-size:var(--t-h4);line-height:1.3;color:var(--fg);
  text-wrap:balance;
}

#problem .head{--h2-ch:37ch}

#problem .head{--lede-ch:96ch}

#approach .head{--h2-ch:34ch}

#science .head{--lede-ch:80ch}

#science .closing{--closing-ch:67ch}

#science .fine--centre{--fine-ch:112ch}

#competition .fine--centre{--fine-ch:108ch}

#team .head{--h2-ch:36ch}

#science .pull--centre{max-width:58rem}

@media (min-width:1201px){ #model .centred-prose{max-width:none} }

.gw{
  background-image:var(--accent-text);
  background-size:300% 100%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:shimmer 12.5s linear infinite;
}

.gw--deep{background-image:var(--accent-text)}

@keyframes shimmer{
  0%   { background-position:-300% 0 }
  100% { background-position: 300% 0 }
}

@supports not ((-webkit-background-clip:text) or (background-clip:text)){
  .gw{-webkit-text-fill-color:currentColor;color:var(--accent-tx);background-image:none}
}

.hero{
  padding-inline:var(--pad-x);
  padding-block:var(--s4) var(--s5);
  display:grid;gap:var(--s5);
  align-items:center;
}
.hero__h1{line-height:1.16}

.band--hero{
  background-color:var(--surface);
  background-image:
    radial-gradient(58% 62% at 76% 26%, rgba(121,211,197,.42) 0%, rgba(121,211,197,0) 68%),
    radial-gradient(30% 34% at 88% 20%, rgba(75,195,177,.34)  0%, rgba(75,195,177,0)  70%),
    radial-gradient(96% 70% at 62% 12%, rgba(121,211,197,.10) 0%, rgba(121,211,197,0) 74%);
  border-bottom:0;
}
.kicker{
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg-2);margin-bottom:var(--s3);
}
.hero__h1{max-width:15ch}
.hero__sub{
  max-width:52ch;color:var(--fg-2);font-size:var(--t-lede);line-height:1.5;
}

.hero__h1 + .hero__sub{margin-top:calc(var(--s4) * 1.15)}
.hero__actions{
  display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4);
}
@media (min-width:960px){
  .hero{grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr)}
}

.tfield{position:relative;padding-top:var(--s3)}

.tfield::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background-image:var(--rule-gr);opacity:.6;
}
.tfield svg{display:block;width:100%;height:auto;overflow:visible}

.tf__dots circle{fill:color-mix(in srgb, var(--accent-tx) 38%, var(--surface));r:2}
.tf__quiet path{
  fill:none;stroke-width:1.4;
  stroke:color-mix(in srgb, var(--accent-tx) 45%, var(--surface));
}

.tf__lit path{
  fill:color-mix(in srgb, var(--accent-tx) 20%, transparent);
  stroke:var(--accent-tx);stroke-width:2.1;
  filter:drop-shadow(0 0 9px color-mix(in srgb, var(--accent-tx) 55%, transparent));
}
.tf__nodes circle{
  fill:var(--accent-tx);r:3;
  filter:drop-shadow(0 0 4px color-mix(in srgb, var(--accent-tx) 75%, transparent))
         drop-shadow(0 0 12px color-mix(in srgb, var(--accent-tx) 40%, transparent));
}

.tfield[data-live] .tf__quiet path,
.tfield[data-live] .tf__lit path{
  transition:fill .95s ease, stroke .95s ease, stroke-width .95s ease,
             filter .95s ease;
}
.tfield[data-live] .tf__dots circle,
.tfield[data-live] .tf__nodes circle{
  transition:fill .95s ease, r .95s ease, filter .95s ease;
}
.tfield[data-live] .is-echo,
.tfield[data-live] .is-flare{transition-duration:.34s}

.tfield[data-live] .tf__quiet path.is-echo,
.tfield[data-live] .tf__lit path.is-echo{
  stroke:var(--accent-tx);stroke-width:2.2;
  filter:drop-shadow(0 0 8px color-mix(in srgb, var(--accent-tx) 45%, transparent));
}
.tfield[data-live] .tf__quiet path.is-flare,
.tfield[data-live] .tf__lit path.is-flare{
  fill:color-mix(in srgb, var(--accent-tx) 62%, transparent);
  stroke:var(--accent-tx);stroke-width:3;
  filter:drop-shadow(0 0 14px color-mix(in srgb, var(--accent-tx) 70%, transparent));
}

.tfield[data-live] .tf__dots circle.is-echo{
  fill:color-mix(in srgb, var(--accent-tx) 72%, var(--surface));r:2.5;
}
.tfield[data-live] .tf__dots circle.is-flare{
  fill:var(--accent-tx);r:3.6;
  filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent-tx) 85%, transparent))
         drop-shadow(0 0 16px color-mix(in srgb, var(--accent-tx) 45%, transparent));
}
.tfield[data-live] .tf__nodes circle.is-echo{r:3.3}
.tfield[data-live] .tf__nodes circle.is-flare{
  r:4.2;
  filter:drop-shadow(0 0 8px color-mix(in srgb, var(--accent-tx) 90%, transparent))
         drop-shadow(0 0 20px color-mix(in srgb, var(--accent-tx) 50%, transparent));
}

.tfield--wide{
  max-width:840px;margin-inline:auto;margin-block:var(--s4) var(--s4);
}

.sphere{

  --sph-lo:   var(--teal);

  --sph-hi:   light-dark(var(--vein), var(--teal-on-dark-hi));

  --sph-edge: var(--accent-tx);

  --sph-node: light-dark(var(--vein-well), var(--teal-on-dark-max));

  position:relative;
  aspect-ratio:1;

  width:100%;
  max-width:320px;
  margin-inline:auto;

  pointer-events:none;
}
@media (min-width:960px){
  .sphere{max-width:480px}
}
.sphere__canvas{
  position:absolute;inset:0;display:block;width:100%;height:100%;
  pointer-events:none;
}

.sphere__still{display:block;width:100%;height:auto;overflow:visible}
.sphere[data-live="on"] .sphere__still{display:none}

.sp__facets .sp__lo{fill:var(--sph-lo)}
.sp__facets .sp__hi{fill:var(--sph-hi)}
.sp__edges path{fill:none;stroke:var(--sph-edge);stroke-width:1.9;stroke-linecap:round}
.sp__edges .sp__rim{stroke-width:3.1}
.sp__triads path{fill:none;stroke:var(--sph-node);stroke-width:4.2;stroke-linejoin:round}
.sp__nodes circle{fill:var(--sph-node)}

.sphere__probe{
  position:absolute;left:0;top:0;width:0;height:0;overflow:hidden;
  pointer-events:none;transition:none !important;
}
.sphere__probe--lo{color:var(--sph-lo)}
.sphere__probe--hi{color:var(--sph-hi)}
.sphere__probe--edge{color:var(--sph-edge)}
.sphere__probe--node{color:var(--sph-node)}

@keyframes rise{ from{ opacity:0; transform:translateY(14px) } }
.hero .kicker{animation:rise .7s ease both}
.hero__h1{animation:rise .8s ease both;animation-delay:.08s}
.hero__sub{animation:rise .8s ease both;animation-delay:.16s}
.hero__actions{animation:rise .8s ease both;animation-delay:.26s}

.cells{display:grid;gap:var(--s2)}

.cells > li{
  background:var(--surface-2);

  border-radius:var(--r-card);
  padding:var(--s3);
}
.cells--3{grid-template-columns:1fr}
.cells--4{grid-template-columns:1fr}
@media (min-width:680px){
  .cells--3{grid-template-columns:repeat(3,1fr)}
  .cells--4{grid-template-columns:repeat(2,1fr)}
}
@media (min-width:1040px){
  .cells--4{grid-template-columns:repeat(4,1fr)}
}
.cells h3{margin-bottom:var(--s2)}
.cells p{color:var(--fg-2);font-size:var(--t-small);line-height:1.48}

.cells--marked h3{margin-top:var(--s3)}
.cellmark{
  display:block;width:3rem;height:3rem;
  color:var(--accent-tx);
  overflow:visible;
}
.cellmark__edge{
  fill:none;stroke:currentColor;stroke-width:1.4;
  stroke-linejoin:round;stroke-linecap:round;
  vector-effect:non-scaling-stroke;
}

.cellmark__edge--open{stroke-dasharray:3 3.4}
.cellmark__open{
  fill:var(--surface-2);stroke:currentColor;stroke-width:1.4;
  vector-effect:non-scaling-stroke;
}

.cellmark__ghost{
  fill:none;stroke:currentColor;stroke-width:1;opacity:.2;
  stroke-linejoin:round;vector-effect:non-scaling-stroke;
}
.cellmark__edge--drawn{stroke-dasharray:72 96}
.cellmark__node circle{fill:currentColor}
@media (max-width:900px){ .cellmark{width:2.5rem;height:2.5rem} }

@supports (grid-template-rows:subgrid){
  @media (min-width:680px){
    .cells--diff{grid-template-rows:repeat(3,auto)}
    .cells--diff > li{
      grid-row:span 3;
      grid-template-rows:subgrid;
      display:grid;
    }

    .cells--diff > li > .outcome{align-self:start}
  }
}
.outcome{
  margin-top:var(--s3);padding-top:var(--s2);
  border-top:1px solid var(--rule);
  color:var(--fg) !important;
}
.outcome span{
  display:block;
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-tx);margin-bottom:.4rem;
}
.team__role{
  font-family:var(--structure);font-size:var(--t-small);
  color:var(--accent-tx) !important;margin-bottom:var(--s2);
}

.argue{display:grid;gap:var(--s4)}
.argue__main p{color:var(--fg-2)}
@media (min-width:900px){
  .argue{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:var(--s5)}
  .argue__aside{position:sticky;top:calc(var(--draft-bar) + var(--header) + 2rem);align-self:start}
}
.figblock{position:relative;padding-top:var(--s3)}
.figblock::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background-image:var(--rule-gr);opacity:.75;
}
.figlabel{
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.13em;text-transform:uppercase;
  color:var(--fg-2);margin-bottom:var(--s3);
}
.nb{white-space:nowrap}
.fine{
  font-size:var(--t-fine);line-height:1.5;color:var(--fg-3);
  margin-top:var(--s2);
}
.fine--centre{text-align:center;max-width:var(--fine-ch,74ch);margin-inline:auto;margin-top:var(--s4)}
.fine a{color:var(--accent-tx)}

.growth{margin-bottom:var(--s2)}
.growth__panel{
  border-radius:var(--r-card);
  background:var(--surface-2);
  overflow:hidden;
}
.growth__line{display:block;width:100%;height:clamp(88px,13vh,132px)}
.growth__area{fill:url(#growthArea)}
.growth__path{
  stroke:url(#growthStroke);stroke-width:2;fill:none;
  stroke-linecap:round;stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
}

.growth__dot{fill:var(--fg-3);stroke:var(--surface-2);stroke-width:2;vector-effect:non-scaling-stroke}
.growth__dot--fore{fill:var(--accent-tx)}

.growth__labels{
  display:flex;justify-content:space-between;gap:var(--s2);
  border-top:1px solid var(--rule);
  padding:calc(var(--s2) * .7) var(--s2);
}
.growth__point{display:flex;flex-direction:column;gap:.3rem}
.growth__point--end{text-align:right;align-items:flex-end}
.growth__val{
  font-family:var(--numerals);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em;
  font-size:calc(var(--t-num) * .78);line-height:1;color:var(--fg);
}
.growth__point--end .growth__val{color:var(--accent-tx)}

.growth__yr{
  font-family:var(--structure);font-size:var(--t-eyebrow);
  letter-spacing:.02rem;text-transform:uppercase;
  color:var(--fg-3);line-height:1.2;
}

.term{
  position:relative;margin-block:var(--s4);
  padding-block:var(--s3);text-align:center;
}
.term::before,.term::after{
  content:"";position:absolute;left:0;right:0;height:1px;
  background-image:var(--rule-gr);opacity:.75;
}
.term::before{top:0}
.term::after{bottom:0}
.term__word{
  font-family:var(--structure);font-weight:400;
  font-size:clamp(1.9rem,4.4vw,3rem);line-height:1.1;
  letter-spacing:.02em;text-transform:uppercase;color:var(--fg);
}
.pull{margin:var(--s4) 0 0;padding-left:var(--s3);border-left:2px solid var(--accent-tx)}
.pull p{

  font-family:var(--structure);font-size:var(--t-h4);line-height:1.3;
  color:var(--fg);
}
.pull--centre{
  border-left:0;padding-left:0;text-align:center;
  max-width:32ch;margin-inline:auto;
}
.pull--centre p{font-size:calc(var(--t-h2) * .72);line-height:1.2}

.chart + .chart{margin-top:var(--s3)}
.chart__title{
  font-family:var(--structure);font-weight:500;font-size:var(--t-small);
  color:var(--fg);margin-bottom:var(--s2);
}
.bar{
  display:grid;grid-template-columns:1fr auto;align-items:baseline;
  column-gap:var(--s2);margin-bottom:.7rem;
}
.bar__name{
  font-family:var(--structure);font-size:var(--t-fine);color:var(--fg-2);
  line-height:1.3;
}
.bar__name em{font-style:normal;color:var(--fg-3)}
.bar__val{
  font-family:var(--numerals);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em;
  font-size:var(--t-small);color:var(--fg);justify-self:end;
}
.bar[data-series="ternia"] .bar__val{color:var(--accent-tx)}
.bar__track{
  grid-column:1 / -1;position:relative;display:block;
  height:9px;margin-top:.35rem;background:var(--track);border-radius:2px;
}
.bar__fill{
  position:absolute;inset:0 auto 0 0;width:var(--v,0%);
  background:var(--series-other);border-radius:2px;
}

.bar[data-series="ternia"] .bar__fill{
  background-color:var(--fill-a);background-image:var(--accent-1000);
}
.plate .bar[data-series="ternia"] .bar__fill{
  background-color:var(--accent-tx);
  background-image:linear-gradient(270deg,#28796D 30%,#2A7F72 70%);
}
.bar__fill--est{
  background:repeating-linear-gradient(-45deg,
    var(--series-other) 0 3px, transparent 3px 7px);
}
.bar__range{
  position:absolute;top:-2px;bottom:-2px;
  left:var(--lo,0%);width:calc(var(--hi,0%) - var(--lo,0%));
  border-left:1px solid var(--fg-2);border-right:1px solid var(--fg-2);
  background:repeating-linear-gradient(-45deg,
    var(--fg-3) 0 1px, transparent 1px 5px);
}
.bar__mark{
  position:absolute;top:-3px;bottom:-3px;left:var(--at,0%);width:0;
  border-left:1px dashed var(--fg-3);
}
.bar--lead .bar__val{font-size:var(--t-num);line-height:1}
.chart__axis{
  display:flex;justify-content:space-between;gap:var(--s2);
  font-family:var(--structure);font-size:var(--t-fine);color:var(--fg-3);
  margin-top:.5rem;
}
.chart__axis span:nth-child(2):last-child{text-align:right}
.chart__axis span:nth-child(2):not(:last-child){text-align:center;flex:1}
.chart__axis span:last-child:nth-child(3){text-align:right}

.chart__base{
  font-family:var(--structure);font-size:var(--t-fine);color:var(--fg-3);
  margin-top:.4rem;
}
.chart__cap{
  font-family:var(--structure);font-size:var(--t-fine);color:var(--fg-2);
  margin-top:var(--s2);
}
.chart__axis--ladder{margin-top:var(--s2)}
.board__prose{
  max-width:62ch;margin-top:var(--s3);
  font-size:var(--t-small);line-height:1.55;color:var(--fg-2);
  text-wrap:pretty;
}
.board__prose + .chart{margin-top:var(--s3)}

.board__prose--out{margin-top:var(--s3)}

.board__prose--out,
.board__prose--sub{max-width:100ch}

.fine--dag{max-width:110ch;padding-left:1.15em;text-indent:-1.15em}

.pdeck{
  --r-tab:.875rem;
  --r-stage:var(--r-card);
  --pdeck-pad:.5rem;
  --tab-drop:5px;
  background-color:var(--surface-2);
  border:1px solid var(--rule);
  border-radius:calc(var(--r-stage) + var(--pdeck-pad));
  padding:var(--pdeck-pad);
}
.pdeck__strip{display:flex;align-items:stretch;gap:var(--pdeck-pad)}

.pdeck__strip[hidden]{display:none}
.pdeck__stage{
  background-color:var(--surface);
  border-radius:var(--r-stage);
  padding:var(--s3);
}

#proof[data-tabs="on"] .pdeck__stage{
  border-radius:0 0 var(--r-stage) var(--r-stage);
}
.ptab{
  flex:1 1 auto;min-width:0;
  display:flex;align-items:center;justify-content:center;gap:.6rem;
  padding:1.55rem 1rem;
  margin-bottom:var(--tab-drop);
  background-color:transparent;
  border:1px solid var(--fg-3);
  border-radius:var(--r-tab);

  color:var(--fg-2);cursor:pointer;
  transition:color .2s ease,background-color .2s ease,border-color .2s ease;
}
.ptab__n{
  flex:0 0 auto;
  font-family:var(--numerals);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em;
  font-size:var(--t-fine);line-height:1;letter-spacing:.03em;

  color:var(--fg-2);
}
.ptab__sl{
  flex:0 0 auto;width:1px;height:1.15em;
  background-color:var(--fg-3);opacity:.75;
  transform:skewX(-18deg);
}
.ptab__lab{
  font-family:var(--structure);font-weight:400;
  font-size:var(--t-small);line-height:1.15;letter-spacing:.005em;
  text-align:center;
}
.ptab:not([aria-selected="true"]):hover{color:var(--fg);border-color:var(--fg)}
.ptab[aria-selected="true"]{

  flex-grow:1.7;
  margin-bottom:0;
  background-color:var(--surface);
  background-image:linear-gradient(var(--accent-tx),var(--accent-tx));
  background-repeat:no-repeat;
  background-size:100% 3px;
  background-position:top center;

  background-origin:border-box;
  border-color:transparent;
  border-radius:var(--r-tab) var(--r-tab) 0 0;
  color:var(--fg);
}

.ptab:focus-visible{outline:2px solid var(--focus);outline-offset:-4px}
.proofpanel[hidden]{display:none}
.proofpanel:focus-visible{outline:2px solid var(--focus);outline-offset:4px}

.proofpanel + .proofpanel{margin-top:var(--s5)}

#proof[data-tabs="on"] .proofpanel + .proofpanel{margin-top:0}

.ppanel__head{
  display:grid;gap:var(--s2);
  padding-bottom:var(--s2);margin-bottom:var(--s3);
  border-bottom:1px solid var(--rule);
}

@media (min-width:1100px){
  .ppanel__head{
    grid-template-columns:minmax(0,23rem) minmax(0,1fr);
    gap:var(--s4);align-items:baseline;
  }
}
.ppanel__lab{
  font-family:var(--structure);font-weight:400;
  font-size:var(--t-num);line-height:1.08;letter-spacing:-.005em;
  color:var(--fg);max-width:24ch;text-wrap:balance;
}
.ppanel__frame{
  font-size:var(--t-lede);line-height:1.45;color:var(--fg-2);max-width:52ch;
}

.depth{margin-top:0}

.board{
  border-radius:var(--r-card);
  padding:var(--s3) var(--s3) calc(var(--s3) * 1.1);position:relative;
  background:var(--surface-2);
}
.board__cols{display:grid;gap:var(--s4)}
@media (min-width:900px){

  .board__cols:has(.board__col + .board__col){grid-template-columns:.85fr 1.15fr;gap:var(--s4)}
  .board__col + .board__col{
    padding-left:var(--s4);border-left:1px solid var(--rule);
  }

  .board__cols--even:has(.board__col + .board__col){grid-template-columns:1fr 1fr}

  .board__cols--even > .board__col:first-child{padding-right:var(--s4)}
  .board__wide > :first-child{padding-right:var(--s4)}

  .board__wide{grid-template-columns:1fr 1fr;align-items:start}
}

@media (max-width:679px){ .board__cols{gap:var(--s3)} }
@media (min-width:680px) and (max-width:899px){
  .board__cols{gap:var(--s3)}
  .board__cols--even:has(.board__col + .board__col){grid-template-columns:1fr 1fr}
  .board__cols--even > .board__col:first-child{padding-right:var(--s3)}
  .board__cols--even > .board__col + .board__col{
    padding-left:var(--s3);border-left:1px solid var(--rule);
  }
  .board__wide{grid-template-columns:1fr 1fr;align-items:start}
  .board__wide > :first-child{padding-right:var(--s3)}
}

.board__wide{
  display:grid;gap:var(--s4);

  margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--rule);
}

.board__wide > .board__prose{margin-top:0}
.stamp{

  display:inline-block;justify-self:start;width:fit-content;
  font-family:var(--structure);font-weight:500;

  font-size:max(11px, .625rem);letter-spacing:.16em;text-transform:uppercase;
  color:var(--fg-3);border:1px solid var(--rule-strong);
  border-radius:var(--r-pill);padding:.2rem .65rem;margin-bottom:var(--s2);
}
.board__stamp{position:absolute;top:calc(var(--s3) * -.62);left:var(--s3);background:var(--surface)}
.caveat{
  margin-top:var(--s3);padding:var(--s2) var(--s3);
  border-left:2px solid var(--rule-strong);
  font-size:var(--t-small);color:var(--fg-2);line-height:1.48;
}

.caveat--loud{
  border:1px solid var(--rule);border-left:2px solid var(--accent-tx);
  border-radius:var(--r-card);
  background:var(--surface);
  color:var(--fg);
}
.caveat strong{font-weight:500}

.tick{
  display:block;position:relative;
  font-family:var(--numerals);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em;
  font-size:var(--t-small);color:var(--fg-2);line-height:1.1;
}
.tick i{font-style:normal}
.tick::after{
  content:"";position:absolute;right:-.62rem;top:.42rem;
  width:7px;height:7px;border-radius:50%;
  background:var(--accent-tx);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--accent-tx) 14%, transparent);
}
.tick--sub{color:var(--fg-3);margin-top:.25rem;font-size:var(--t-fine)}
.tick--sub::after{
  width:9px;height:1px;border-radius:0;right:-.75rem;top:.55rem;
  background:var(--fg-3);
}

.read{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}
.num{
  font-family:var(--numerals);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.01em;
  font-size:var(--t-num);line-height:1;color:var(--accent-tx);
  letter-spacing:-.01em;
}

.strap{

  font-family:var(--structure);font-size:var(--t-h4);line-height:1.3;
  color:var(--fg);max-width:30ch;
}
.panel{
  border:1px solid var(--rule);border-radius:var(--r-card);
  padding:var(--s3);background:var(--surface);
}
.panel__split{
  margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--rule);
}
.panel__prose{margin-top:var(--s3);color:var(--fg-2);font-size:var(--t-small)}

.cutgrid{display:grid;gap:var(--s4);margin-top:var(--s4)}
@media (min-width:820px){
  .cutgrid{grid-template-columns:auto minmax(0,1fr);gap:var(--s4)}
}

.cutside .note{

  font-family:var(--structure);font-size:var(--t-h4);line-height:1.3;
  color:var(--fg);max-width:38ch;
}
.loss{margin-top:var(--s4);border-top:1px solid var(--rule);padding-top:var(--s3)}
.loss p{color:var(--fg-2);font-size:var(--t-small);line-height:1.48}
.pending{
  margin-top:var(--s3);padding:var(--s2) var(--s3);
  border:1px dashed var(--rule-strong);border-radius:var(--r-card);
  color:var(--fg-3) !important;
}
.pending strong{color:var(--fg-2)}

@media (max-width:620px){

  .panel,.board{padding:var(--s2)}
}

@media (max-width:820px){
  .ptab{padding:1.35rem .6rem;gap:.45rem}
  .ptab__lab{font-size:var(--t-fine)}
}
@media (max-width:620px){
  .pdeck{--pdeck-pad:.3rem;--r-tab:.7rem;--tab-drop:4px}
  .pdeck__stage{padding:var(--s2)}
  .ptab,.ptab[aria-selected="true"]{flex:1 1 0}
  .ptab{flex-direction:column;gap:.3rem;padding:.85rem .35rem}
  .ptab__sl{display:none}
  .ptab__n{font-size:.75rem}
  .ptab__lab{font-size:.8125rem;line-height:1.2}
  .ppanel__head{padding-bottom:var(--s2);margin-bottom:var(--s2)}
  .ppanel__lab{font-size:var(--t-h4)}
  .ppanel__frame{font-size:var(--t-body)}
}

@media (max-width:359px){
  .ptab__n,.ptab__sl{display:none}
}

.landscape{
  font-size:var(--t-small);
  border-top:1px solid var(--rule-strong);
}
.landscape th,.landscape td{
  text-align:left;padding:var(--s2) var(--s2);
  border-bottom:1px solid var(--rule);vertical-align:top;
}
.landscape thead th{
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;
  color:var(--fg-3);
}
.landscape tbody th{
  font-family:var(--structure);font-weight:500;font-size:var(--t-body);
  color:var(--fg);white-space:nowrap;
}
.landscape td{color:var(--fg-2)}
.landscape .is-us th,.landscape .is-us td{
  background:var(--surface-2);color:var(--fg);
}
.landscape .is-us th{
  box-shadow:inset 3px 0 0 var(--accent-tx);color:var(--accent-tx);
}
@media (max-width:719px){
  .landscape thead{display:none}
  .landscape tr{display:block;border-bottom:1px solid var(--rule-strong);padding-block:var(--s2)}
  .landscape th,.landscape td{display:block;border:0;padding:.25rem 0}
  .landscape td::before{
    content:attr(data-l);display:block;
    font-family:var(--structure);font-size:var(--t-eyebrow);
    letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);
  }
  .landscape .is-us th,.landscape .is-us td{background:transparent}

  .landscape .is-us th{box-shadow:none}
  .landscape .is-us{
    background:var(--surface-2);padding-inline:var(--s2);
    border-left:3px solid var(--accent-tx);
  }
}

.track{display:grid;gap:var(--s2)}
.stage{
  background:var(--surface-2);padding:var(--s3);position:relative;
  border-radius:var(--r-card);
}
.stage h3{margin-block:.35rem var(--s2)}
.stage p{color:var(--fg-2);font-size:var(--t-small)}
.stages__when{
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;
  color:var(--accent-tx) !important;
  display:flex;align-items:center;gap:.5rem;
}

.stages__when::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:var(--accent-tx);flex:0 0 auto;
}

.stage--par .stages__when::before{
  width:22px;height:1px;border-radius:0;
  background:repeating-linear-gradient(90deg,
    var(--accent-tx) 0 4px, transparent 4px 8px);
}
@media (min-width:860px){
  .track{grid-template-columns:1fr 1fr}
  .stage--par{grid-column:1 / -1}
}

@media (min-width:900px){

}

@media (min-width:520px){  }

.form{max-width:760px;margin-inline:auto}
.form__row{display:grid;gap:var(--s3);margin-bottom:var(--s3)}
@media (min-width:640px){ .form__row{grid-template-columns:1fr 1fr} }
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);letter-spacing:.14em;text-transform:uppercase;
  color:var(--fg-2);
}
.field input,.field select,.field textarea{
  background:var(--surface-2);border:1px solid var(--rule-strong);
  border-radius:.9rem;padding:.85rem 1rem;color:var(--fg);
  font-family:var(--prose);

  font-size:max(16px, var(--t-small));
}
.field textarea{resize:vertical}

.field select{
  appearance:none;
  padding-right:2.6rem;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--fg-2) 50%),
    linear-gradient(135deg, var(--fg-2) 50%, transparent 50%);
  background-position:right calc(1rem + 5px) top 50%, right 1rem top 50%;
  background-size:5px 5px;
  background-repeat:no-repeat;
}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--fg-3)}
.form__foot{
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);
  margin-top:var(--s3);
}
.form__foot .fine{margin-top:0;max-width:34ch}

.sent{
  margin:auto;
  width:min(34rem, calc(100vw - 2 * var(--s3)));
  padding:var(--s3);
  background:var(--surface-2);
  border:1px solid var(--rule);border-left:2px solid var(--accent-tx);
  border-radius:var(--r-card);color:var(--fg);
}

.sent::backdrop{background:rgb(28 28 30 / .74)}
.sent__line{font-size:var(--t-small);line-height:1.5;max-width:60ch}
.sent__line a{color:var(--accent-tx)}
.sent__foot{margin-top:var(--s3)}

@media (prefers-reduced-motion:no-preference){
  .sent{
    opacity:0;translate:0 8px;
    transition:opacity .2s ease, translate .2s cubic-bezier(.22,.61,.36,1),
               overlay .2s allow-discrete, display .2s allow-discrete;
  }
  .sent[open]{opacity:1;translate:0 0}
  .sent::backdrop{
    opacity:0;
    transition:opacity .2s ease, overlay .2s allow-discrete, display .2s allow-discrete;
  }
  .sent[open]::backdrop{opacity:1}
  @starting-style{
    .sent[open]{opacity:0;translate:0 8px}
    .sent[open]::backdrop{opacity:0}
  }
}

.foot{
  border-top:1px solid var(--rule);
  padding-block:var(--s4);
  background:var(--surface);
}
.foot__inner{padding-inline:var(--pad-x)}

.foot__mark svg{width:22px;height:26px;display:block}
.foot__totop{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--structure);font-size:var(--t-small);color:var(--fg-2);
  text-decoration:none;
}
.foot__totop:hover{color:var(--fg)}

.foot__privacy{
  margin-top:var(--s2);max-width:64ch;
  font-size:var(--t-fine);line-height:1.55;color:var(--fg-3);
}

@media (min-width:560px){  }

a[data-todo][href="#"]::after{
  content:"TODO";
  font-family:var(--structure);font-weight:700;font-size:.625rem;
  letter-spacing:.12em;
  background:var(--amber);color:#160B01;
  padding:.1rem .35rem;border-radius:.25rem;margin-left:.4rem;
}

.has-reveal [data-rv]{
  opacity:0;
  transition:opacity .62s cubic-bezier(.22,.61,.36,1),
             transform .62s cubic-bezier(.22,.61,.36,1);
  transition-delay:calc(var(--rv-i, 0) * 70ms);
}
.has-reveal [data-rv].is-in{opacity:1;transform:none}

.has-reveal [data-rv="head"]   { transform:translateY(18px) }
.has-reveal [data-rv="card"]   { transform:translateY(26px) scale(.985) }
.has-reveal [data-rv="figure"] { transform:translateY(10px) scale(.99) }
.has-reveal [data-rv="band"]   { transform:none; opacity:0 }
.has-reveal [data-rv="band"].is-in{ opacity:1 }

.has-reveal .bar__fill{
  transform:scaleX(0);transform-origin:left center;
  transition:transform .9s cubic-bezier(.22,.61,.36,1);
  transition-delay:calc(120ms + var(--rv-i, 0) * 90ms);
}
.has-reveal [data-rv].is-in .bar__fill,
.has-reveal .bar__fill.is-in{transform:scaleX(1)}

.foot{
  border-top:0;
  padding-block:var(--s5) var(--s4);
  background:var(--surface);
  position:relative;
}

.foot::before{
  content:"";position:absolute;left:0;right:0;top:0;height:1px;
  background-image:var(--rule-gr);opacity:.75;
}

.foot__mark svg{width:52px;height:60px;display:block}
.foot__totop{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--structure);font-size:var(--t-small);
  color:var(--fg-2);text-decoration:none;
  padding:.5rem 1.1rem;border-radius:var(--r-pill);
  border:1px solid var(--rule-strong);
  transition:color .2s ease,border-color .2s ease,background-color .2s ease;
}
.foot__totop:hover{color:var(--accent-tx);border-color:var(--accent-tx);background:var(--surface-2)}
.foot__totop .ico{width:14px;height:14px;transition:transform .2s ease}
.foot__totop:hover .ico{transform:translateY(-2px)}
.foot__inner{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;
  grid-template-areas:"top top top" "entity privacy links";
  column-gap:var(--s4);row-gap:var(--s3);
  align-items:start;
}

.foot__privacy{
  grid-area:privacy;margin:0;
  max-width:52ch;
  font-size:var(--t-fine);line-height:1.55;color:var(--fg-3);
}

@media (max-width:820px){
  .foot__inner{
    grid-template-columns:1fr;
    grid-template-areas:"top" "privacy" "entity" "links";
  }

  .foot__privacy{max-width:none}
}

.foot--site{

  padding-block:var(--s5) var(--s4);

  --foot-row:calc(var(--t-fine) * 1.4 + .8rem + 1px);
  --foot-ico:17px;
}
.foot--site .foot__inner{
  display:grid;

  grid-template-columns:minmax(0,1.35fr) minmax(0,1.25fr) minmax(0,1.2fr) minmax(0,.65fr);
  grid-template-areas:none;
  column-gap:clamp(2rem,3vw,3rem);
  row-gap:var(--s4);
  align-items:start;
}
.foot--site .foot__col{min-width:0}

.foot__head{
  margin:0 0 var(--s2);
  font-family:var(--structure);font-weight:500;
  font-size:var(--t-eyebrow);line-height:1.4;
  letter-spacing:.16em;text-transform:uppercase;
  color:var(--fg);
}

.foot--site .foot__brand .foot__mark{display:inline-block}

.foot__note{
  margin:var(--s3) 0 0;max-width:40ch;
  font-size:var(--t-fine);line-height:1.65;color:var(--fg-3);
}

.foot__index{
  display:grid;
  grid-auto-flow:column;
  grid-template-rows:repeat(4,auto);
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:var(--s2);
}

.foot__email{margin:0}
.foot__addr{
  margin:var(--s2) 0 0;
  font-size:var(--t-fine);line-height:1.8;color:var(--fg-3);
}

.foot__social{
  display:grid;
  grid-template-columns:repeat(3,var(--foot-row));
  column-gap:var(--s1);
  align-items:start;
}

.foot--site .foot__social a{
  display:flex;justify-content:center;
  width:var(--foot-row);height:var(--foot-row);
  padding:0;gap:0;border-bottom:0;
}
.foot__social .ico{width:var(--foot-ico);height:var(--foot-ico);flex:0 0 auto}

.foot__theme:empty{display:none}

.foot__theme{margin-top:0;display:flex;align-items:flex-start}

.foot__index a,
.foot__social a,
.foot__legal a,
.foot__email a{
  display:inline-flex;align-items:center;gap:.4rem;
  padding-block:.4rem;
  font-family:var(--structure);font-size:var(--t-fine);line-height:1.4;
  color:var(--fg-2);text-decoration:none;
  border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
.foot__index a:hover,
.foot__social a:hover,
.foot__legal a:hover,
.foot__email a:hover{color:var(--accent-tx);border-bottom-color:var(--accent-tx)}

.foot__base{
  grid-column:1 / -1;
  display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);
  padding-top:var(--s3);
  border-top:1px solid var(--rule);
}
.foot__copy{
  margin:0;
  font-family:var(--structure);font-size:var(--t-fine);color:var(--fg-3);
}
.foot__legal{display:flex;flex-wrap:wrap;gap:var(--s3)}
.foot--site .foot__totop{margin-left:auto}

@media (max-width:1100px){
  .foot--site .foot__inner{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .foot--site .foot__inner{grid-template-columns:minmax(0,1fr);row-gap:var(--s3)}
  .foot__note{max-width:none}
  .foot--site .foot__base{
    flex-direction:column;align-items:flex-start;gap:var(--s2);
  }
  .foot--site .foot__totop{margin-left:0}
}

.btn{
  transition:transform .16s cubic-bezier(.22,.61,.36,1),
             box-shadow .22s ease, background-color .22s ease,
             border-color .22s ease, color .22s ease;
}
.btn--primary:hover{
  transform:translateY(-1px);
  box-shadow:0 6px 22px color-mix(in srgb, var(--accent-tx) 30%, transparent);
}

.btn--primary:active,.btn--ghost:active{transform:translateY(1px);transition-duration:.06s}
.btn--ghost:hover{border-color:var(--accent-tx);color:var(--accent-tx)}

.btn--ghost .ico{transition:transform .2s cubic-bezier(.22,.61,.36,1)}
.btn--ghost:hover .ico{transform:translateY(3px)}

.btn,
.ptab{
  transition:transform .18s cubic-bezier(.22,.61,.36,1),
             box-shadow .24s ease,
             background-color .24s ease,
             background-size .2s ease,
             border-color .24s ease,
             color .24s ease;
}

.btn--primary:hover{
  transform:translateY(-3px);

  box-shadow:0 4px 12px color-mix(in srgb, var(--accent-tx) 34%, transparent),
             0 14px 36px color-mix(in srgb, var(--accent-tx) 46%, transparent);
}

.btn--quiet:hover,
.btn--ghost:hover{
  transform:translateY(-3px);
  border-color:var(--accent-tx);
  box-shadow:inset 0 0 0 1px var(--accent-tx);
}

.btn--quiet:hover,
.btn--ghost:hover{

  color:var(--fg);
}
.btn--quiet:hover{
  background-color:color-mix(in srgb, var(--accent-tx) 20%, transparent);
}
.btn--ghost:hover{
  background-color:color-mix(in srgb, var(--accent-tx) 24%, transparent);
}

.btn--primary:active,.btn--ghost:active,.btn--quiet:active{
  transform:translateY(1px);transition-duration:.06s;
}

.ptab:not([aria-selected="true"]):hover{
  color:var(--fg);
  border-color:var(--accent-tx);
  background-color:color-mix(in srgb, var(--accent-tx) 16%, transparent);
  box-shadow:inset 0 0 0 1px var(--accent-tx);

  transform:translateY(-3px);
}
.ptab:not([aria-selected="true"]):active{
  transform:translateY(0);transition-duration:.06s;
}

.ptab[aria-selected="true"]:hover{background-size:100% 5px}

.plate--vein .cells--marked > li{
  position:relative;
  transition:transform .18s cubic-bezier(.22,.61,.36,1),
             box-shadow .24s ease,
             background-color .24s ease;
}
@media (hover:hover){
  .plate--vein .cells--marked > li:hover{
    background-color:var(--surface-3);
    transform:translateY(-3px);
    z-index:1;
    box-shadow:0 3px 10px color-mix(in srgb, var(--accent-tx) 34%, transparent),
               0 14px 32px color-mix(in srgb, var(--accent-tx) 24%, transparent);
  }
}

.band--ink .cells--diff > li{
  position:relative;
  transition:transform .18s cubic-bezier(.22,.61,.36,1),
             box-shadow .24s ease;
}

.band--ink .cells--diff > li > p,
.band--ink .cells--diff > li .outcome,
.band--ink .cells--diff > li .outcome span{
  transition:color .24s ease, border-color .24s ease;
}
@media (hover:hover){
  .band--ink .cells--diff > li:hover{
    transform:translateY(-3px);
    z-index:1;
    box-shadow:inset 0 0 24px color-mix(in srgb, var(--fill-a-hover) 16%, transparent),
               0 3px 10px color-mix(in srgb, var(--fill-a-hover) 46%, transparent),
               0 14px 32px color-mix(in srgb, var(--fill-a-hover) 24%, transparent);
  }

  .band--ink .cells--diff > li:hover > p{color:var(--fg)}
  .band--ink .cells--diff > li:hover .outcome{border-top-color:var(--fill-a-hover)}
  .band--ink .cells--diff > li:hover .outcome span{color:var(--fill-a-hover)}
}

.cells--team{grid-template-columns:1fr}
@media (min-width:680px){  .cells--team{grid-template-columns:repeat(3,1fr)} }
@media (min-width:1200px){
  .cells--team{grid-template-columns:repeat(5,1fr)}

  .cells--team > li{padding:var(--s2)}
}

@supports (grid-template-rows:subgrid){
  .cells--team{grid-template-rows:repeat(15,auto)}
  @media (min-width:680px){  .cells--team{grid-template-rows:repeat(6,auto)} }
  @media (min-width:1200px){ .cells--team{grid-template-rows:repeat(3,auto)} }

  .cells--team > li{
    display:grid;
    grid-template-rows:subgrid;
    grid-row:span 3;
  }
  .cells--team > li > h3,
  .cells--team > li > .team__role{margin-bottom:0}
}

.band--ink .cells--team > li{
  position:relative;
  transition:transform .18s cubic-bezier(.22,.61,.36,1),
             box-shadow .24s ease;
}

.band--ink .cells--team > li > p{
  transition:color .24s ease;
}
@media (hover:hover){
  .band--ink .cells--team > li:hover{
    transform:translateY(-3px);
    z-index:1;
    box-shadow:inset 0 0 24px color-mix(in srgb, var(--fill-a-hover) 16%, transparent),
               0 3px 10px color-mix(in srgb, var(--fill-a-hover) 46%, transparent),
               0 14px 32px color-mix(in srgb, var(--fill-a-hover) 24%, transparent);
  }
  .band--ink .cells--team > li:hover > p:not(.team__role){color:var(--fg)}

  .band--ink .cells--team > li:hover > .team__role{color:var(--fill-a-hover) !important}
}

.form__foot .fine{max-width:47ch}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation:none !important;
    transition:none !important;
  }

  .has-reveal [data-rv],
  .has-reveal [data-rv].is-in{opacity:1 !important;transform:none !important}
  .has-reveal .bar__fill{transform:scaleX(1) !important}

  .gw{background-size:100% 100% !important;background-position:0 0 !important}
}
@media print{
  *,*::before,*::after{animation:none !important}

  .has-reveal [data-rv]{opacity:1 !important;transform:none !important}
  .has-reveal .bar__fill{transform:scaleX(1) !important}
  .gw{background-size:100% 100%;background-position:0 0}
  .draftbar{position:static}
  .siteheader,.nav{display:none}
  body{background:#fff;color:#000}
}
