/* Studio East: shared styles for the umbrella and venture pages. */

@font-face {
  font-family: "Fraunces";
  src: url("fonts/fraunces-latin-opsz-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Fraunces";
  src: url("fonts/fraunces-latin-ext-opsz-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "DM Sans";
  src: url("fonts/dm-sans-latin-opsz-normal.woff2") format("woff2");
  font-weight: 100 1000;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "DM Sans";
  src: url("fonts/dm-sans-latin-ext-opsz-normal.woff2") format("woff2");
  font-weight: 100 1000;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Tokens. Venture palettes are taken from each investor deck. */
:root {
  --paper: #f4f3ee;
  --ink: #1d2422;
  --ink-soft: #4d5451;
  --rule: #d8d6ce;

  --deep: #1d2422;
  --accent: #1d2422;
  --accent-text: #1d2422;
  --on-deep: #f4f3ee;
  --on-deep-soft: rgb(244 243 238 / 0.74);

  --signed: #152f2a;
  --signed-gold: #d8b349;
  --stay: #291d2d;
  --stay-coral: #eb896b;
  --stay-mauve: #49394f;
  --stay-stone: #d2cac4;
  --innovate: #13203c;
  --innovate-amber: #e7a23c;

  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  --wrap: 72rem;
  --gutter: clamp(1rem, 4vw, 3rem);
  --section: clamp(4rem, 9vw, 7rem);
}

.signed {
  --deep: var(--signed);
  --accent: var(--signed-gold);
  --accent-text: #765a0c;
}
.stay {
  --paper: #f9f5f0;
  --deep: var(--stay);
  --accent: var(--stay-coral);
  --accent-text: #a1442a;
}
.innovate {
  --deep: var(--innovate);
  --accent: var(--innovate-amber);
  --accent-text: #8a560b;
}

/* Base */
*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1.125rem;
  line-height: 1.6;
  font-optical-sizing: auto;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
h1,
h2,
h3,
p,
ol,
ul,
dl,
dd,
figure {
  margin: 0;
}
h1,
h2 {
  font-family: var(--serif);
  font-weight: 600;
  letter-spacing: -0.012em;
  text-wrap: balance;
}
h1 {
  font-size: clamp(3rem, 9vw, 6.25rem);
  line-height: 1;
}
h2 {
  font-size: clamp(1.875rem, 4vw, 2.875rem);
  line-height: 1.1;
  max-width: 20ch;
}
h3 {
  font-size: 1.1875rem;
  font-weight: 600;
  line-height: 1.3;
}
p {
  text-wrap: pretty;
}
a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}
a:hover {
  text-decoration-thickness: 2px;
}
:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}
svg {
  display: block;
}
/* Venture marks move, bounce and lean toward the pointer; let their shapes draw past the box. */
.mark {
  overflow: visible;
}

.wrap {
  width: 100%;
  max-width: calc(var(--wrap) + 2 * var(--gutter));
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.skip {
  position: absolute;
  left: var(--gutter);
  top: -4rem;
  padding: 0.5rem 1rem;
  background: var(--ink);
  color: var(--paper);
  z-index: 10;
}
.skip:focus {
  top: 1rem;
}

/* Header */
.site-head {
  padding-block: 1.5rem;
}
.site-head .wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem 2rem;
}
.wordmark {
  display: inline-flex;
  align-items: baseline;
  gap: 0.3em;
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.375rem;
  letter-spacing: -0.01em;
  text-decoration: none;
}
/* The arcade stands on the baseline and reaches the top of the ascenders, as in the logo files. */
.logo-mark {
  flex: none;
  width: 0.86em;
  height: 0.743em;
}
.site-nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
}
.site-nav a {
  text-decoration: none;
}
.site-nav a:hover,
.site-nav a[aria-current="page"] {
  text-decoration: underline;
  text-decoration-thickness: 1px;
}
.venture-page .site-head {
  background: var(--deep);
  color: var(--on-deep);
}

/* Shared section rhythm */
.section {
  padding-block: var(--section);
}
.section + .section {
  border-top: 1px solid var(--rule);
}
.section > .wrap > h2 + * {
  margin-top: 1.5rem;
}
.lead {
  font-size: clamp(1.1875rem, 2vw, 1.375rem);
  line-height: 1.5;
  max-width: 36em;
}
.prose {
  max-width: 36em;
}
.prose p + p {
  margin-top: 1em;
}
.muted,
.note {
  color: var(--ink-soft);
}
.note {
  margin-top: 1.25rem;
  max-width: 36em;
}
.facts + .note,
.doors + .note {
  margin-top: 2.5rem;
}
.source {
  margin-top: 2.5rem;
  font-size: 0.8125rem;
  color: var(--ink-soft);
}

/* Umbrella home */
.intro {
  padding-block: clamp(3rem, 9vw, 7rem) clamp(3.5rem, 8vw, 6rem);
}
.intro h1 {
  font-size: clamp(2.75rem, 7.5vw, 5.5rem);
  line-height: 1.02;
  max-width: 14ch;
}
.intro .lead {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
}

.ventures {
  list-style: none;
  padding: 0;
}
.band {
  display: block;
  background: var(--deep);
  color: var(--on-deep);
  text-decoration: none;
}
.band .wrap {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 2rem;
  padding-block: clamp(2.5rem, 6vw, 4.5rem);
}
.band h2 {
  font-size: clamp(2.25rem, 5.5vw, 4rem);
  line-height: 1;
  max-width: none;
}
.band p {
  margin-top: 1rem;
  max-width: 30em;
  color: var(--on-deep-soft);
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.5;
}
.band .more {
  display: inline-block;
  margin-top: 1.5rem;
  font-size: 0.9375rem;
  color: var(--accent);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.25em;
}
.band:hover .more {
  text-decoration-thickness: 2px;
}
.band:focus-visible {
  outline-offset: -6px;
  border-radius: 0;
}
.band .mark {
  width: clamp(5.5rem, 16vw, 11rem);
}

.split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 2rem clamp(2rem, 6vw, 6rem);
}
.facts {
  display: grid;
  gap: 1.25rem;
  margin-top: 2rem;
  padding: 0;
  list-style: none;
}
.facts li {
  padding-left: 1.25rem;
  border-left: 2px solid var(--rule);
}
.facts strong {
  font-family: var(--serif);
  font-weight: 600;
  font-size: 1.25rem;
}

.contact-line {
  margin-top: 1.5rem;
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(1.375rem, 3.2vw, 2.25rem);
  line-height: 1.2;
}

/* Venture hero */
.hero {
  background: var(--deep);
  color: var(--on-deep);
  padding-block: clamp(3rem, 9vw, 7rem) clamp(4rem, 10vw, 8rem);
}
.hero .wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2rem clamp(2rem, 6vw, 6rem);
}
.hero .lead {
  margin-top: clamp(1.25rem, 3vw, 2rem);
  color: var(--on-deep-soft);
  max-width: 26em;
}
.hero .mark {
  width: clamp(9rem, 24vw, 17rem);
}
.hero .by {
  margin-top: clamp(2rem, 5vw, 3.5rem);
  font-size: 0.9375rem;
  color: var(--on-deep-soft);
}
.hero .by a {
  color: var(--on-deep);
}

/* Three parallel points */
.trio {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem clamp(1.5rem, 4vw, 3rem);
  margin-top: clamp(2rem, 5vw, 3rem);
  padding: 0;
  list-style: none;
}
.trio.duo {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 52rem;
}
.trio h3 + p {
  margin-top: 0.5rem;
  color: var(--ink-soft);
}

/* Numbered steps: only used where the content is a sequence */
.steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem clamp(1.5rem, 4vw, 3rem);
  margin-top: clamp(2rem, 5vw, 3rem);
  padding: 0;
  list-style: none;
  counter-reset: step;
}
.steps li {
  counter-increment: step;
}
.steps li::before {
  content: counter(step);
  display: block;
  margin-bottom: 0.75rem;
  font-family: var(--serif);
  font-weight: 600;
  font-size: 2.25rem;
  line-height: 1;
  color: var(--accent-text);
}
.steps h3 + p {
  margin-top: 0.5rem;
  color: var(--ink-soft);
}

/* Figures with sources */
.figures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2rem clamp(2rem, 5vw, 4rem);
  margin-top: clamp(2rem, 5vw, 3rem);
}
.figures div {
  padding-top: 1rem;
  border-top: 1px solid var(--rule);
}
.figures dt {
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(1.75rem, 3.5vw, 2.5rem);
  line-height: 1.1;
}
.figures dd {
  margin-top: 0.375rem;
  color: var(--ink-soft);
  max-width: 26em;
}

/* Signed: the roster and its two doors */
.doors {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr);
  gap: 1.25rem clamp(1.5rem, 4vw, 3rem);
  margin-top: clamp(2rem, 5vw, 3rem);
}
.roster {
  padding: clamp(1.5rem, 4vw, 2.5rem);
  background: var(--deep);
  color: var(--on-deep);
  border-radius: 10px;
}
.roster p {
  margin-top: 0.75rem;
  color: var(--on-deep-soft);
}
.door-list {
  display: grid;
  gap: 2rem;
  align-content: center;
  padding: 0;
  list-style: none;
}
.door-list li {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
}
.door-list svg {
  width: 2.5rem;
}
.door-list p {
  margin-top: 0.375rem;
  color: var(--ink-soft);
}

/* Stay Creative: the three layers */
.layers {
  display: grid;
  gap: 1rem;
  margin-top: clamp(2rem, 5vw, 3rem);
  padding: 0;
  list-style: none;
}
.layers li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 0.75rem clamp(1.5rem, 4vw, 3rem);
  align-items: center;
}
.layers h3 {
  padding: 1.125rem 1.25rem;
  border-radius: 8px;
}
.layers li:nth-child(1) h3 {
  background: var(--stay-coral);
  color: var(--stay);
}
.layers li:nth-child(2) h3 {
  background: var(--stay-mauve);
  color: var(--paper);
}
.layers li:nth-child(3) h3 {
  background: var(--stay-stone);
  color: var(--stay);
}
.layers p {
  color: var(--ink-soft);
}

/* Innovate 100: the funnel */
.funnel {
  display: grid;
  gap: 1.5rem;
  margin-top: clamp(2rem, 5vw, 3rem);
  padding: 0;
  list-style: none;
}
.funnel li {
  display: grid;
  grid-template-columns: 4.5rem minmax(0, 1fr);
  gap: 0.25rem 1.25rem;
  align-items: center;
}
.funnel .count {
  grid-row: span 2;
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(2rem, 4vw, 2.75rem);
  line-height: 1;
  text-align: right;
}
.funnel .bar {
  height: 0.875rem;
  border-radius: 4px;
  background: var(--accent);
}
.funnel li:nth-child(1) .bar { width: 100%; background: #d2953c; }
.funnel li:nth-child(2) .bar { width: 72%; background: #a77b3c; }
.funnel li:nth-child(3) .bar { width: 43%; background: #7d613c; }
.funnel li:nth-child(4) .bar { width: 15%; background: var(--innovate-amber); }
.funnel p {
  color: var(--ink-soft);
}
.funnel p strong {
  color: var(--ink);
  font-weight: 600;
}

.stakes {
  display: flex;
  gap: 4px;
  max-width: 34rem;
  height: 3rem;
  margin-top: clamp(2rem, 5vw, 3rem);
  border-radius: 6px;
  overflow: hidden;
}
.stakes span {
  display: flex;
  align-items: center;
  padding-inline: 0.75rem;
  font-size: 0.875rem;
  font-weight: 600;
}
.stakes .founder {
  flex: 7;
  background: var(--deep);
  color: var(--on-deep);
}
.stakes .stage {
  flex: 1;
  justify-content: center;
  padding-inline: 0;
  background: var(--accent);
  color: var(--deep);
}

/* Closing call to action */
.closing {
  background: var(--deep);
  color: var(--on-deep);
  padding-block: var(--section);
}
.closing h2 {
  max-width: 18ch;
}
.closing p {
  margin-top: 1.25rem;
  max-width: 32em;
  color: var(--on-deep-soft);
}
.closing .contact-line a {
  color: var(--on-deep);
  text-decoration-color: var(--accent);
}

/* Footer */
.site-foot {
  padding-block: 2.5rem;
  font-size: 0.875rem;
  color: var(--ink-soft);
}
.site-foot .wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.75rem 2rem;
}

/* Homepage intro: headline beside the shape-shifting venture mark */
.intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 2.5rem clamp(2rem, 6vw, 6rem);
}
.morph-wrap {
  width: clamp(15rem, 27vw, 22rem);
}
.morph {
  position: relative;
  aspect-ratio: 1;
  container-type: size;
  overflow: hidden;
  border-radius: 16px;
  background: var(--signed);
}
.morph .s {
  position: absolute;
  left: 54%;
  top: 18%;
  width: 36%;
  height: 64%;
  border: 0.9cqw solid var(--signed-gold);
  border-radius: 18cqw 18cqw 1cqw 1cqw;
  background: var(--signed-gold);
}
.morph[data-state="signed"] .s1 { left: 10%; background: transparent; }
.morph[data-state="signed"] .s3,
.morph[data-state="signed"] .s4 { opacity: 0; }

.morph[data-state="stay"] { background: var(--stay); }
.morph[data-state="stay"] .s { left: 12%; width: 76%; height: 14%; border-radius: 2.4cqw; }
.morph[data-state="stay"] .s1 { top: 25%; background: var(--stay-coral); border-color: var(--stay-coral); }
.morph[data-state="stay"] .s2 { top: 43%; background: var(--stay-mauve); border-color: var(--stay-mauve); }
.morph[data-state="stay"] .s3,
.morph[data-state="stay"] .s4 { top: 61%; background: var(--stay-stone); border-color: var(--stay-stone); }
.morph[data-state="stay"] .s4 { opacity: 0; }

.morph[data-state="innovate"] { background: var(--innovate); }
.morph[data-state="innovate"] .s { height: 10%; border-radius: 1.8cqw; }
.morph[data-state="innovate"] .s1 { left: 12%; top: 25%; width: 76%; background: #d2953c; border-color: #d2953c; }
.morph[data-state="innovate"] .s2 { left: 33%; top: 40%; width: 55%; background: #a77b3c; border-color: #a77b3c; }
.morph[data-state="innovate"] .s3 { left: 55%; top: 55%; width: 33%; background: #7d613c; border-color: #7d613c; }
.morph[data-state="innovate"] .s4 { left: 77%; top: 70%; width: 11%; background: var(--innovate-amber); border-color: var(--innovate-amber); }

.morph-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.25rem;
  margin-top: 1rem;
  padding: 0;
  list-style: none;
  font-size: 0.9375rem;
}
.morph-links a {
  text-decoration-color: transparent;
  text-decoration-thickness: 2px;
}
.morph-links a:hover,
.morph-links a.is-active {
  text-decoration-color: currentColor;
}

/* Signed: the signature under the name */
.signature {
  width: clamp(11rem, 26vw, 20rem);
  margin-top: 0.75rem;
  overflow: visible;
}
.signature path {
  fill: none;
  stroke: var(--accent);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.mark .light {
  opacity: 0;
}

/* Innovate 100: the cohort, 500 dots narrowing to 4. Only shown with motion on. */
.cohort {
  display: none;
  position: relative;
  margin-top: clamp(2rem, 5vw, 3rem);
}
.motion .cohort {
  display: block;
}
.cohort canvas {
  display: block;
  width: 100%;
  height: clamp(13rem, 26vw, 19rem);
}
.cohort-count {
  display: block;
  margin-bottom: 0.75rem;
  font-family: var(--serif);
  font-weight: 600;
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1;
  color: var(--deep);
  font-variant-numeric: tabular-nums;
}
.cohort-foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1.5rem;
  margin-top: 0.75rem;
}
.cohort-note {
  font-size: 0.875rem;
  color: var(--ink-soft);
}
.cohort-replay {
  padding: 0.5rem 0.875rem;
  border: 1px solid var(--deep);
  border-radius: 999px;
  background: var(--paper);
  color: var(--deep);
  font: inherit;
  font-size: 0.875rem;
  cursor: pointer;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s;
}
.cohort.done .cohort-replay {
  opacity: 1;
  pointer-events: auto;
}
.cohort-replay:hover {
  background: var(--deep);
  color: var(--on-deep);
}

/* Mobile menu. The button only appears once site.js has run. */
.menu-toggle {
  display: none;
}

/* Page-to-page morphs: a venture band on the homepage becomes that venture's hero. */
.band h2,
.hero h1 {
  width: fit-content;
}
.site-head { view-transition-name: site-head; }
.band.signed { view-transition-name: signed-bg; }
.band.stay { view-transition-name: stay-bg; }
.band.innovate { view-transition-name: innovate-bg; }
.band.signed h2 { view-transition-name: signed-title; }
.band.stay h2 { view-transition-name: stay-title; }
.band.innovate h2 { view-transition-name: innovate-title; }
.band.signed .mark { view-transition-name: signed-mark; }
.band.stay .mark { view-transition-name: stay-mark; }
.band.innovate .mark { view-transition-name: innovate-mark; }
.venture-page.signed .hero { view-transition-name: signed-bg; }
.venture-page.stay .hero { view-transition-name: stay-bg; }
.venture-page.innovate .hero { view-transition-name: innovate-bg; }
.venture-page.signed .hero h1 { view-transition-name: signed-title; }
.venture-page.stay .hero h1 { view-transition-name: stay-title; }
.venture-page.innovate .hero h1 { view-transition-name: innovate-title; }
.venture-page.signed .hero .mark { view-transition-name: signed-mark; }
.venture-page.stay .hero .mark { view-transition-name: stay-mark; }
.venture-page.innovate .hero .mark { view-transition-name: innovate-mark; }

@media (prefers-reduced-motion: no-preference) {
  @view-transition {
    navigation: auto;
  }
  ::view-transition-group(*) {
    animation-duration: 0.8s;
    animation-timing-function: cubic-bezier(0.75, 0, 0.15, 1);
  }
  ::view-transition-old(root) {
    animation: 0.5s cubic-bezier(0.7, 0, 0.3, 1) both vt-recede;
  }
  ::view-transition-new(root) {
    animation: 0.8s cubic-bezier(0.75, 0, 0.15, 1) both vt-wipe;
  }
}
@keyframes vt-recede {
  to { opacity: 0; scale: 0.94; }
}
@keyframes vt-wipe {
  from { clip-path: inset(100% 0 0 0); }
  to { clip-path: inset(0 0 0 0); }
}

/* Motion. html.motion is set by site.js, which skips anyone who prefers reduced motion. */
.motion {
  --spring: cubic-bezier(0.68, -0.4, 0.27, 1.4);
  --bounce: cubic-bezier(0.3, 1.5, 0.4, 1);
}

/* Headings rise word by word */
.motion .words .w {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  padding: 0 0.06em 0.14em;
  margin: 0 -0.06em -0.14em;
}
.motion .words .w > span {
  display: inline-block;
  transform: translateY(118%) rotate(9deg);
  transform-origin: 0 100%;
  transition: transform 1s cubic-bezier(0.2, 1.25, 0.3, 1) calc(var(--i, 0) * 60ms);
}
.motion .words.in .w > span {
  transform: none;
}

/* Blocks wipe up into place, staggered within their group */
.motion .rv {
  opacity: 0;
  translate: 0 2.5rem;
  clip-path: inset(0 0 100% 0);
  transition:
    opacity 0.7s ease calc(var(--i, 0) * 90ms),
    translate 1s var(--bounce) calc(var(--i, 0) * 90ms),
    clip-path 1s cubic-bezier(0.7, 0, 0.2, 1) calc(var(--i, 0) * 90ms);
}
.motion .rv.in {
  opacity: 1;
  translate: 0 0;
  clip-path: inset(-2rem -2rem -2rem -2rem);
}

/* Stay Creative layers: each bar wipes across, then its line slides in */
.motion .layers > li.rv {
  opacity: 1;
  translate: none;
  clip-path: none;
}
.motion .layers > li.rv h3 {
  clip-path: inset(0 100% 0 0 round 8px);
  transition: clip-path 1s cubic-bezier(0.7, 0, 0.2, 1) calc(var(--i, 0) * 160ms);
}
.motion .layers > li.rv p {
  opacity: 0;
  translate: -1.5rem 0;
  transition:
    opacity 0.6s ease calc(var(--i, 0) * 160ms + 450ms),
    translate 0.8s var(--bounce) calc(var(--i, 0) * 160ms + 450ms);
}
.motion .layers > li.rv.in h3 { clip-path: inset(0 0 0 0 round 8px); }
.motion .layers > li.rv.in p { opacity: 1; translate: 0 0; }

/* Innovate 100 funnel: bars shoot out, rows light up with the cohort */
.motion .funnel > li.rv .bar {
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 1.1s var(--bounce) calc(var(--i, 0) * 140ms + 250ms);
}
.motion .funnel > li.rv.in .bar { transform: none; }
.motion .funnel.synced > li { opacity: 0.28; transition: opacity 0.5s ease; }
.motion .funnel.synced > li.lit { opacity: 1; }

/* Founders keep 70%: the stake splits into its stages */
.motion .stakes.rv .founder { flex-grow: 10; transition: flex-grow 1s cubic-bezier(0.7, 0, 0.2, 1) 0.2s; }
.motion .stakes.rv .stage { flex-grow: 0; overflow: hidden; transition: flex-grow 0.8s var(--bounce); }
.motion .stakes.rv.in .founder { flex-grow: 7; }
.motion .stakes.rv.in .stage { flex-grow: 1; }
.motion .stakes.rv.in .stage:nth-child(2) { transition-delay: 0.8s; }
.motion .stakes.rv.in .stage:nth-child(3) { transition-delay: 0.95s; }
.motion .stakes.rv.in .stage:nth-child(4) { transition-delay: 1.1s; }

/* Venture marks: assemble on load, follow the pointer, react on hover */
.motion .mark > * {
  transform-box: fill-box;
  translate: calc(var(--mx, 0) * var(--depth, 1) * 9px) calc(var(--my, 0) * var(--depth, 1) * 9px);
  transition:
    translate 0.6s cubic-bezier(0.2, 0.8, 0.2, 1),
    transform 0.8s var(--bounce),
    opacity 0.4s ease;
}
.motion .mark > :nth-child(2) { --depth: -1.6; }
.motion .mark > :nth-child(3) { --depth: 2.2; }
.motion .mark > :nth-child(4) { --depth: -3; }
.motion .mark > .light,
.motion .mark > .door { --depth: -1.6; }

.motion .hero .mark {
  translate: 0 calc(var(--sy, 0) * 0.3px);
  rotate: calc(var(--mx, 0) * 4deg);
  transition: rotate 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.motion .hero .wrap > div:first-child {
  translate: 0 calc(var(--sy, 0) * -0.12px);
  opacity: calc(1 - var(--sy, 0) / 650);
}
.motion:not(.vt) .hero h1 {
  animation: title-in 1.1s cubic-bezier(0.2, 0.8, 0.2, 1) both;
}
.motion .hero .mark .grow {
  animation: grow 1s var(--bounce) backwards;
}
.motion .hero .mark .grow:nth-child(2) { animation-delay: 0.14s; }
.motion .hero .mark .grow:nth-child(3) { animation-delay: 0.28s; }
.motion .hero .mark .grow:nth-child(4) { animation-delay: 0.42s; }
.motion .hero .mark .door { animation-delay: 0.2s; }
.motion .hero .mark .from-left { transform-origin: left center; }
.motion .hero .mark .from-right { transform-origin: right center; }
.motion .hero .mark .from-bottom { transform-origin: center bottom; animation-name: rise; }
.motion.vt .hero .mark .grow { animation: none; }

.motion .signature path {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: sign 1.7s cubic-bezier(0.6, 0, 0.2, 1) 0.8s forwards;
}

/* Signed: the filled arch is a door that swings open onto light */
.motion .mark .door,
.motion .hero .mark .from-bottom.door { transform-origin: left bottom; }
.motion .band.signed:hover .door,
.motion .band.signed:focus-visible .door,
.motion .hero .mark:hover .door { transform: scaleX(0.16) skewY(-16deg); }
.motion .band.signed:hover .light,
.motion .band.signed:focus-visible .light,
.motion .hero .mark:hover .light { opacity: 1; }

/* Stay Creative: the bars slide out like drawers */
.motion .band.stay:hover .mark > :nth-child(1) { transform: translateX(16%); }
.motion .band.stay:hover .mark > :nth-child(2) { transform: translateX(-12%); }
.motion .band.stay:hover .mark > :nth-child(3) { transform: translateX(8%); }
.motion .stay .hero .mark:hover > :nth-child(1) { transform: translateX(16%); }
.motion .stay .hero .mark:hover > :nth-child(2) { transform: translateX(-12%); }
.motion .stay .hero .mark:hover > :nth-child(3) { transform: translateX(8%); }

/* Innovate 100: the funnel squeezes and the last four jump */
.motion .band.innovate .mark > *,
.motion .innovate .hero .mark > * { transform-origin: right center; }
.motion .band.innovate .mark > :nth-child(2),
.motion .innovate .hero .mark > :nth-child(2) { transition-delay: 0s, 60ms, 0s; }
.motion .band.innovate .mark > :nth-child(3),
.motion .innovate .hero .mark > :nth-child(3) { transition-delay: 0s, 120ms, 0s; }
.motion .band.innovate .mark > :nth-child(4),
.motion .innovate .hero .mark > :nth-child(4) { transition-delay: 0s, 180ms, 0s; }
.motion .band.innovate:hover .mark > :not(:last-child),
.motion .innovate .hero .mark:hover > :not(:last-child) { transform: scaleX(0.55); }
.motion .band.innovate:hover .mark > :last-child,
.motion .innovate .hero .mark:hover > :last-child { transform: translateY(-30%) scale(1.8); }

/* Homepage shape-shifter: shapes fly, resize and spin between venture marks */
.motion .morph {
  cursor: pointer;
  transition: background-color 0.9s ease;
}
.motion .morph .s {
  rotate: calc(var(--turn, 0) * var(--dir, 1) * 1turn);
  transition:
    left 1s var(--spring) var(--lag),
    top 1s var(--spring) var(--lag),
    width 1s var(--spring) var(--lag),
    height 1s var(--spring) var(--lag),
    border-radius 1s var(--spring) var(--lag),
    rotate 1.1s cubic-bezier(0.5, 0, 0.2, 1) var(--lag),
    background-color 0.6s ease var(--lag),
    border-color 0.6s ease var(--lag),
    opacity 0.4s ease var(--lag);
}
.motion .morph .s1 { --lag: 0ms; --dir: 1; }
.motion .morph .s2 { --lag: 70ms; --dir: -1; }
.motion .morph .s3 { --lag: 140ms; --dir: 1; }
.motion .morph .s4 { --lag: 210ms; --dir: -1; }
.motion .morph-links a {
  transition: text-decoration-color 0.3s ease;
}

@keyframes title-in {
  from { opacity: 0; letter-spacing: 0.3em; filter: blur(14px); }
}
@keyframes grow {
  from { transform: scaleX(0); }
}
@keyframes rise {
  from { transform: scaleY(0); }
}
@keyframes sign {
  to { stroke-dashoffset: 0; }
}

/* Small screens */
@media (max-width: 52rem) {
  .split,
  .doors {
    grid-template-columns: minmax(0, 1fr);
  }
  .trio,
  .trio.duo,
  .steps {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.75rem;
  }
  .layers li {
    grid-template-columns: minmax(0, 1fr);
  }
  .intro-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .morph-wrap {
    width: min(100%, 20rem);
  }
}
@media (max-width: 40rem) {
  body {
    font-size: 1.0625rem;
  }

  /* Hamburger menu: sticky header, full-screen panel */
  .has-menu .site-head {
    position: sticky;
    top: 0;
    z-index: 50;
    padding-block: 1rem;
    background: var(--paper);
  }
  .has-menu .venture-page .site-head {
    background: var(--deep);
  }
  .has-menu .site-head .wrap {
    flex-wrap: nowrap;
    align-items: center;
  }
  .has-menu .wordmark {
    position: relative;
    z-index: 2;
  }
  .has-menu .menu-toggle {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    min-height: 2.75rem;
    padding: 0 0.25rem;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    font-size: 0.9375rem;
    cursor: pointer;
  }
  .menu-icon {
    position: relative;
    width: 1.375rem;
    height: 0.875rem;
  }
  .menu-icon span {
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
  }
  .menu-icon span:nth-child(1) { top: 0; }
  .menu-icon span:nth-child(2) { top: calc(50% - 1px); }
  .menu-icon span:nth-child(3) { bottom: 0; }
  .menu-open .menu-icon span:nth-child(1) { top: calc(50% - 1px); rotate: 45deg; }
  .menu-open .menu-icon span:nth-child(2) { scale: 0 1; }
  .menu-open .menu-icon span:nth-child(3) { bottom: calc(50% - 1px); rotate: -45deg; }

  .has-menu .site-nav {
    position: fixed;
    inset: 0;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 6rem var(--gutter) 3rem;
    overflow-y: auto;
    background: var(--deep);
    color: var(--on-deep);
    visibility: hidden;
  }
  .menu-open .site-nav {
    visibility: visible;
  }
  .menu-open .site-head {
    background: var(--deep);
    color: var(--on-deep);
  }
  .menu-open body {
    overflow: hidden;
  }
  .has-menu .site-nav ul {
    flex-direction: column;
    gap: 0.5rem;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(2.25rem, 11vw, 3.25rem);
    line-height: 1.1;
  }
  .has-menu .site-nav a {
    display: block;
    padding-block: 0.25rem;
  }
  .has-menu .site-nav a[aria-current="page"] {
    text-decoration-color: var(--accent);
    text-decoration-thickness: 3px;
  }

  /* With motion: the panel bursts out of the button and the links swing in */
  .motion .menu-icon span {
    transition: top 0.3s ease, bottom 0.3s ease, rotate 0.4s var(--bounce), scale 0.2s ease;
  }
  .motion.has-menu .site-nav {
    clip-path: circle(0 at calc(100% - 2.5rem) 2.25rem);
    transition: clip-path 0.7s cubic-bezier(0.7, 0, 0.2, 1), visibility 0s linear 0.7s;
  }
  .motion.menu-open .site-nav {
    clip-path: circle(150% at calc(100% - 2.5rem) 2.25rem);
    transition: clip-path 0.7s cubic-bezier(0.7, 0, 0.2, 1);
  }
  .motion.has-menu .site-nav li {
    opacity: 0;
    translate: 0 2rem;
    rotate: -6deg;
    transform-origin: left bottom;
    transition: opacity 0.3s ease, translate 0.3s ease, rotate 0.3s ease;
  }
  .motion.menu-open .site-nav li {
    opacity: 1;
    translate: 0 0;
    rotate: 0deg;
    transition: opacity 0.5s ease, translate 0.8s var(--bounce), rotate 0.8s var(--bounce);
  }
  .motion.menu-open .site-nav li:nth-child(1) { transition-delay: 0.2s; }
  .motion.menu-open .site-nav li:nth-child(2) { transition-delay: 0.27s; }
  .motion.menu-open .site-nav li:nth-child(3) { transition-delay: 0.34s; }
  .motion.menu-open .site-nav li:nth-child(4) { transition-delay: 0.41s; }
  .figures {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero .wrap {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero .mark {
    grid-row: 1;
    width: 7.5rem;
  }
  .band .wrap {
    grid-template-columns: minmax(0, 1fr);
  }
  .band .mark {
    grid-row: 1;
    width: 4.5rem;
  }
}
