@font-face {
  font-family: 'Newsreader';
  font-style: normal;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/newsreader-latin.woff2') format('woff2');
  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: 'Newsreader';
  font-style: italic;
  font-weight: 400 500;
  font-display: swap;
  src: url('../fonts/newsreader-latin-italic.woff2') format('woff2');
  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: 'Inter';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('../fonts/inter-var-latin.woff2') format('woff2');
  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: 'Clash Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('../fonts/clashdisplay-600-latin.woff2') format('woff2');
}

@font-face {
  font-family: 'Newsreader Fallback';
  src: local('Georgia'), local('Times New Roman');
  font-style: normal;
  font-weight: 400 500;
  ascent-override: 83.07%;
  descent-override: 29.95%;
  line-gap-override: 0%;
  size-adjust: 88.48%;
}

@font-face {
  font-family: 'Newsreader Fallback';
  src: local('Georgia Italic'), local('Georgia'), local('Times New Roman Italic');
  font-style: italic;
  font-weight: 400 500;
  ascent-override: 83.07%;
  descent-override: 29.95%;
  line-gap-override: 0%;
  size-adjust: 88.48%;
}

@font-face {
  font-family: 'Inter Fallback';
  src: local('Helvetica Neue'), local('Arial');
  font-style: normal;
  font-weight: 400 600;
  ascent-override: 90.79%;
  descent-override: 22.61%;
  line-gap-override: 0%;
  size-adjust: 106.7%;
}

:root {
  --bg: #FCFBF8;
  --ink: #141414;
  --ink-2: #606057;
  --accent: #2F4538;
  --accent-tint: #7DA88C;
  --rule: rgba(20, 20, 20, 0.10);
  --rule-strong: rgba(20, 20, 20, 0.18);

  --gold: #B8912F;
  --gold-ink: #8A6A1E;

  --accent-hi: #375142;

  --serif: 'Newsreader', 'Newsreader Fallback', Georgia, 'Times New Roman', serif;
  --sans: 'Inter', 'Inter Fallback', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;

  --ease: cubic-bezier(0.16, 1, 0.3, 1);

  --wrap: 1120px;
  --wrap-narrow: 720px;
  --pad: 24px;

  --sec-y: 88px;
}

@media (min-width: 900px) {
  :root { --pad: 40px; --sec-y: 128px; }
}

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

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

:target,
section[id],
article[id],
main[id],
.label[id] { scroll-margin-top: 92px; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg { max-width: 100%; }
img { display: block; }

h1, h2, h3, p, ul, ol, figure, blockquote, table { margin: 0; }
ul, ol { padding: 0; list-style: none; }

a { color: inherit; }

button, input, select, textarea { font: inherit; color: inherit; }

table { border-collapse: collapse; width: 100%; }

.wrap {
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding-inline: var(--pad);
}

.wrap--narrow { max-width: var(--wrap-narrow); }

.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: absolute;
  left: -9999px;
  top: 0;
  z-index: 200;
  background: var(--ink);
  color: var(--bg);
  padding: 12px 18px;
  font-size: 14px;
  font-weight: 600;
}
.skip-link:focus { left: 8px; top: 8px; }

.accent { color: var(--accent); }

.label {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-2);
  margin-bottom: 20px;
}

.h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 5vw, 46px);
  line-height: 1.12;
  letter-spacing: -0.015em;
  margin-bottom: 40px;
}

.prose {
  font-size: clamp(18px, 2.1vw, 21px);
  line-height: 1.62;
  color: var(--ink);
  margin-bottom: 28px;
  max-width: 62ch;
}
.prose strong { font-weight: 600; }

.prose--lead {
  font-size: clamp(21px, 2.6vw, 30px);
  line-height: 1.42;
  letter-spacing: -0.014em;
  max-width: 30ch;
  margin-bottom: 0;
}

@media (min-width: 700px) {
  .prose--lead { max-width: 28ch; }
}

.microcopy {
  font-size: 13px;
  color: var(--ink-2);
  margin-top: 14px;
}
.microcopy--dark { color: rgba(252, 251, 248, 0.62); }

.link-quiet {
  color: var(--ink-2);
  text-decoration: none;
  border-bottom: 1px solid var(--rule-strong);
  padding-bottom: 2px;
  transition: color 0.25s var(--ease), border-color 0.25s var(--ease);
}
.link-quiet:hover { color: var(--accent); border-color: var(--accent); }

a:focus-visible,
button:focus-visible,
summary:focus-visible,
[tabindex]:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
  border-radius: 2px;
}

input:focus-visible {
  outline: none;
  border-color: var(--accent);
}

.markup del,
.markup ins {
  text-decoration: none;
  background-repeat: no-repeat;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

.markup del {
  color: var(--ink-2);
  background-image: linear-gradient(to right, var(--ink), var(--ink));
  background-size: 0 1px;
  background-position: 0 0.52em;
  transition: background-size 0s var(--ease) 0.45s, opacity 0s linear 0.45s;
}

.markup ins {
  color: var(--accent);
  font-weight: 500;
  background-image: linear-gradient(to right, var(--accent), var(--accent));
  background-size: 0 1.5px;
  background-position: 0 0.86em;
  opacity: 0;
  transition: background-size 0s var(--ease) 0.45s, opacity 0s linear 0.45s;
}

.markup del.is-drawn {
  background-size: 100% 1px;
  opacity: 0.5;
  transition: background-size 0.55s var(--ease) 0.3s, opacity 0.45s var(--ease) 0.7s;
}

.markup ins.is-drawn {
  background-size: 100% 1.5px;
  opacity: 1;
  transition: background-size 0.55s var(--ease) 0.55s, opacity 0.5s var(--ease) 0.2s;
}

html:not(.js-reveal) .markup del { background-size: 100% 1px; opacity: 0.5; }
html:not(.js-reveal) .markup ins { background-size: 100% 1.5px; opacity: 1; }

html:not(.js-reveal) .dcard,
html:not(.js-reveal) .dreply { opacity: 1; transform: none; }

.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  color: var(--ink);
  --cap-y: 12px;
  --cap-x: 10px;
}

.nav__inner {
  position: relative;
  max-width: var(--wrap);
  margin: 0 auto;
  padding: 12px var(--pad);
  display: flex;
  align-items: center;
  gap: 40px;
  translate: 0 0;
  transition: translate 0.3s var(--ease);
}

.nav.is-scrolled .nav__inner { translate: 0 var(--cap-y); }

.nav__inner::before {
  content: "";
  position: absolute;
  inset: 0 var(--cap-x);
  z-index: -1;
  border-radius: 20px;
  background-color: rgba(252, 251, 248, 0);
  border: 1px solid rgba(20, 20, 20, 0);
  transition: background-color 0.3s var(--ease),
              border-color 0.3s var(--ease),
              box-shadow 0.3s var(--ease);
}

.nav.is-scrolled .nav__inner::before {
  background-color: rgba(252, 251, 248, 0.8);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-color: rgba(20, 20, 20, 0.08);
  box-shadow: 0 8px 24px rgba(20, 20, 20, 0.08);
}

html:not(.js-reveal) .nav__inner { translate: 0 var(--cap-y); }
html:not(.js-reveal) .nav__inner::before {
  background-color: rgba(252, 251, 248, 0.8);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-color: rgba(20, 20, 20, 0.08);
  box-shadow: 0 8px 24px rgba(20, 20, 20, 0.08);
}

.nav__end {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-left: auto;
}

.nav__quiet {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.25s var(--ease);
}
.nav__quiet:hover { color: var(--ink); }
.nav__quiet[aria-current="page"] { color: var(--ink); }

.brand {
  display: inline-flex;
  align-items: center;
  flex: none;
  color: var(--ink);
  text-decoration: none;
  border-radius: 6px;
  padding-block: 3px;
}

.brand__text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}

.brand__name {
  font-family: 'Clash Display', var(--sans);
  font-size: 21px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: -0.01em;
  color: var(--ink);
}

.brand__sub {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-2);
}

.nav__links {
  display: flex;
  align-items: center;
  gap: 32px;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.005em;
}

.nav__links a { text-decoration: none; }
.nav__links > a { position: relative; }

.nav__links > a::after,
.nav__trigger::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -7px;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}

.nav__links > a:hover::after,
.nav__links > a.is-current::after,
.nav__links > a[aria-current="page"]::after,
.nav__trigger:hover::after,
.nav__trigger.is-current::after,
.nav__trigger[aria-expanded="true"]::after { transform: scaleX(1); }

@media (min-width: 1100px) {
  .nav__links { gap: 36px; }
}

.nav__drop { position: relative; }

.nav__trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  background: transparent;
  border: 0;
  font-family: var(--sans);
  font-size: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  color: inherit;
  cursor: pointer;
}

.nav__chev {
  width: 9px;
  height: 6px;
  flex: none;
  color: var(--ink-2);
  transition: transform 0.3s var(--ease), color 0.25s var(--ease);
}
.nav__trigger:hover .nav__chev,
.nav__trigger[aria-expanded="true"] .nav__chev { color: var(--ink); }
.nav__trigger[aria-expanded="true"] .nav__chev { transform: rotate(180deg); }

.nav__menu {
  position: absolute;
  top: calc(100% + 22px);
  left: -14px;
  min-width: 212px;
  padding: 8px;
  background: #FFFFFF;
  border: 1px solid rgba(20, 20, 20, 0.1);
  border-radius: 12px;
  box-shadow: 0 18px 40px rgba(20, 20, 20, 0.1), 0 2px 6px rgba(20, 20, 20, 0.04);
}

.nav__menu[hidden] { display: none; }
.nav__menu:not([hidden]) { animation: menu-in 0.22s var(--ease); }

@keyframes menu-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}

.nav__menu a {
  display: block;
  padding: 9px 12px;
  border-radius: 7px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s var(--ease), color 0.2s var(--ease);
}
.nav__menu a:hover { background: rgba(47, 69, 56, 0.06); color: var(--accent); }

.btn {
  --btn-fs: 15px;
  --btn-py: 13px;
  --btn-px: 26px;

  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: var(--btn-py) var(--btn-px);
  font-family: var(--sans);
  font-size: var(--btn-fs);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: -0.005em;
  text-decoration: none;
  text-align: center;
  background-color: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  transition: background-color 0.25s var(--ease), border-color 0.25s var(--ease),
              color 0.25s var(--ease), translate 0.25s var(--ease),
              scale 0.25s var(--ease), box-shadow 0.25s var(--ease);
}

.btn--primary {
  color: #FCFBF8;
  background-color: var(--accent);
  background-image: repeating-linear-gradient(
    90deg,
    rgba(252, 251, 248, 0.055) 0,
    rgba(252, 251, 248, 0.055) 1px,
    rgba(252, 251, 248, 0) 1px,
    rgba(252, 251, 248, 0) 7px
  );
  border-color: var(--accent);
}
.btn--primary:hover,
.btn--primary:focus-visible {
  background-color: var(--accent-hi);
  border-color: var(--accent-hi);
  box-shadow: 0 4px 14px rgba(47, 69, 56, 0.16);
}

.btn--primary,
.btn--light {
  position: relative;
  overflow: hidden;
}

.btn--primary::after,
.btn--light::after {
  content: "";
  position: absolute;
  top: -60%;
  bottom: -60%;
  left: 0;
  width: 42%;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(252, 251, 248, 0) 0%,
    rgba(252, 251, 248, 0.06) 24%,
    rgba(252, 251, 248, 0.22) 50%,
    rgba(252, 251, 248, 0.06) 76%,
    rgba(252, 251, 248, 0) 100%
  );
  transform: translateX(-170%) skewX(-18deg);
}

.btn--primary:hover::after,
.btn--primary:focus-visible::after,
.btn--light:hover::after,
.btn--light:focus-visible::after {
  transform: translateX(350%) skewX(-18deg);
  transition: transform 0.7s linear;
}

.btn--primary:hover,
.btn--primary:focus-visible,
.btn--light:hover,
.btn--light:focus-visible { scale: 1.025; }

.btn--secondary {
  color: var(--ink);
  border-color: var(--rule-strong);
}
.btn--secondary:hover {
  color: var(--accent);
  border-color: var(--accent);
  background-color: rgba(47, 69, 56, 0.04);
  translate: 0 -2px;
}

.btn--light {
  color: var(--ink);
  background-color: #FCFBF8;
  background-image: repeating-linear-gradient(
    90deg,
    rgba(20, 20, 20, 0.05) 0,
    rgba(20, 20, 20, 0.05) 1px,
    rgba(20, 20, 20, 0) 1px,
    rgba(20, 20, 20, 0) 7px
  );
  border-color: #FCFBF8;
}
.btn--light:hover,
.btn--light:focus-visible {
  background-color: #FFFFFF;
  border-color: #FFFFFF;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
}

.btn--light::after {
  background: linear-gradient(
    90deg,
    rgba(20, 20, 20, 0) 0%,
    rgba(20, 20, 20, 0.02) 24%,
    rgba(20, 20, 20, 0.07) 50%,
    rgba(20, 20, 20, 0.02) 76%,
    rgba(20, 20, 20, 0) 100%
  );
}

.btn--ghost {
  color: var(--ink);
  background-color: transparent;
  border-color: rgba(20, 20, 20, 0.25);
}
.btn--ghost:hover,
.btn--ghost:focus-visible {
  border-color: var(--accent);
  background-color: rgba(47, 69, 56, 0.05);
}

.btn--sm { --btn-fs: 14px; --btn-py: 10px; --btn-px: 20px; }
.btn--lg { --btn-fs: 16px; --btn-py: 16px; --btn-px: 32px; }
.btn--block { display: flex; width: 100%; }

.btn[disabled] { opacity: 0.45; cursor: not-allowed; }
.btn[disabled]:hover { translate: none; scale: none; box-shadow: none; }
.btn[disabled]:hover::after { transform: translateX(-170%) skewX(-18deg); transition: none; }

.btn__arrow {
  width: 19px;
  height: 11px;
  flex: none;
  transition: transform 0.25s var(--ease);
}
.btn:hover .btn__arrow,
.btn:focus-visible .btn__arrow { transform: translateX(4px); }

@media (prefers-reduced-motion: reduce) {
  .btn:hover { translate: none; }
  .btn:hover, .btn:focus-visible { scale: none; }
  .btn:hover .btn__arrow,
  .btn:focus-visible .btn__arrow { transform: none; }
  .btn--primary::after, .btn--light::after { display: none; }
}

.hero {
  --nav-h: 66px;
  position: relative;
  overflow: hidden;
  isolation: isolate;
  display: grid;
  align-items: center;
  margin-top: calc(var(--nav-h) * -1);
  min-height: calc(88vh + var(--nav-h));
  min-height: calc(88svh + var(--nav-h));
  padding-top: calc(clamp(72px, 10vw, 128px) + var(--nav-h));
  padding-bottom: clamp(72px, 10vw, 128px);
  background-color: var(--bg);
  color: var(--ink);
}

.hero__fx {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--bg);
  background-image:
    radial-gradient(74% 54% at 50% 103%, rgba(125, 168, 140, 0.14) 0%, rgba(125, 168, 140, 0) 68%),
    radial-gradient(110% 78% at 50% 114%, rgba(125, 168, 140, 0.1) 0%, rgba(125, 168, 140, 0) 64%),
    radial-gradient(150% 104% at 50% 128%, rgba(220, 233, 223, 0.95) 0%, rgba(220, 233, 223, 0) 62%);

  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 86%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 86%, transparent 100%);
}

.hero__fx::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.025;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='g'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.8'%20numOctaves='4'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23g)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

.hero__inner {
  position: relative;
  z-index: 1;
  max-width: calc(820px + var(--pad) * 2);
  text-align: center;
}

.hero__h1 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(38px, 6vw, 64px);
  line-height: 1.06;
  letter-spacing: -0.028em;
  color: var(--ink);
  margin-bottom: 26px;
}
.hero__h1 em { font-style: italic; font-weight: 500; }
.hero__h1 .accent { color: var(--accent); }

.hero__sub {
  font-size: clamp(17px, 1.9vw, 18px);
  line-height: 1.62;
  color: rgba(20, 20, 20, 0.72);
  max-width: 58ch;
  margin: 0 auto 36px;
}
.hero__sub strong { font-weight: 600; color: var(--ink); }

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 12px;
}

@media (max-height: 700px) {
  .hero {
    min-height: 0;
    padding-top: calc(56px + var(--nav-h));
    padding-bottom: 56px;
  }
  .hero__h1 { margin-bottom: 20px; }
  .hero__sub { margin-bottom: 24px; }
}

@property --comet-a {
  syntax: '<angle>';
  inherits: false;
  initial-value: 0deg;
}

.hero__cta .btn--ghost { position: relative; }

.hero__cta .btn--ghost::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: 999px;
  padding: 1.5px;
  pointer-events: none;
  background: conic-gradient(from var(--comet-a),
    transparent 0deg 260deg,
    rgba(125, 168, 140, 0) 260deg,
    rgba(125, 168, 140, 0.5) 312deg,
    rgba(47, 69, 56, 0.85) 344deg,
    #2F4538 356deg,
    #B8912F 360deg);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: comet-run 4.6s linear infinite;
}

@keyframes comet-run { to { --comet-a: 360deg; } }

@media (prefers-reduced-motion: reduce) {
  .hero__cta .btn--ghost::before {
    animation: none;
    background: linear-gradient(180deg, rgba(47, 69, 56, 0.4), rgba(47, 69, 56, 0) 55%);
  }
}

.expertise {
  position: relative;
  padding-top: var(--sec-y);
  padding-bottom: var(--sec-y);
  overflow-x: clip;
}

.anchor-alias {
  display: block;
  height: 0;
  scroll-margin-top: 92px;
}

.afield {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 780px;
  margin-top: clamp(8px, 1.4vw, 18px);
}

.exphead {
  position: relative;
  z-index: 2;
  max-width: min(560px, 46%);
  text-align: center;
  padding-inline: 8px;
}
.exphead .h2 {
  margin-bottom: 0;
  text-wrap: balance;
}
.exphead .h2 em {
  font-style: italic;
  color: var(--accent);
}
.exphead .h2 em { white-space: nowrap; }

.standfirst {
  font-size: 15px;
  line-height: 1.6;
  color: var(--ink-2);
  margin-top: 16px;
  max-width: 52ch;
  margin-inline: auto;
}

.afield__logos {
  position: absolute;
  inset: 0 calc(-1 * var(--bleed));
  z-index: 1;
  --bleed: clamp(0px, calc((100vw - var(--wrap)) / 2 + 32px), 150px);

  --lh: clamp(28.4px, calc((100vw - 100px) * 0.0358), 48px);
}

.slogo {
  position: absolute;
  left: var(--x);
  top: var(--y);
  transform: translate(-50%, -50%);
}

.slogo__f {
  position: relative;
  display: block;
}

.slogo img {
  position: relative;
  z-index: 1;
  display: block;
  height: calc(var(--lh) * var(--lm, 1));
  width: auto;
  max-width: none;
}

.slogo--stanford  { --si: 0;  --lm: 0.938; }
.slogo--harvard   { --si: 1;  --lm: 1.375; }
.slogo--princeton { --si: 2;  --lm: 1.354; }
.slogo--mit       { --si: 3;  --lm: 1.417; }
.slogo--yale      { --si: 4;  --lm: 0.896; }
.slogo--columbia  { --si: 5;  --lm: 1.083; }
.slogo--upenn     { --si: 6;  --lm: 1.312; }
.slogo--brown     { --si: 7;  --lm: 1.708; }
.slogo--rice      { --si: 8;  --lm: 1.000; }
.slogo--cornell   { --si: 9;  --lm: 1.292; }
.slogo--berkeley  { --si: 10; --lm: 0.917; }
.slogo--ucla      { --si: 11; --lm: 0.875; }

.bghead {
  text-align: left;
  font-family: var(--sans);
  font-size: clamp(21px, 1.9vw, 25px);
  max-width: 48ch;
}
.bghead__h,
.bghead__sub {
  font-size: 1em;
  line-height: 1.32;
  letter-spacing: -0.016em;
  text-wrap: balance;
}
.bghead__h { font-weight: 600; color: var(--ink); }
.bghead__sub { font-weight: 500; color: var(--ink-2); }

.rec {
  margin-top: clamp(58px, 7vw, 104px);
}

.rec .bghead {
  max-width: 44ch;
}

.rec__ctrl {
  display: flex;
  width: max-content;
  max-width: 100%;
  margin: clamp(24px, 2.8vw, 34px) auto 0;
  border: 1px solid rgba(20, 20, 20, 0.14);
  border-radius: 999px;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.rec__ctrl::-webkit-scrollbar { display: none; }
html:not(.js-reveal) .rec__ctrl { display: none; }

.rec__btn {
  display: inline-flex;
  align-items: baseline;
  gap: 7px;
  flex: 0 0 auto;
  padding: 9px 16px;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--ink-2);
  background: transparent;
  border: 0;
  border-left: 1px solid rgba(20, 20, 20, 0.14);
  border-radius: 0;
  cursor: pointer;
  transition: color 0.4s var(--ease),
              border-color 0.4s var(--ease),
              background-color 0.4s var(--ease);
}
.rec__btn:first-child { border-left: 0; }
.rec__btn:focus-visible { outline-offset: -3px; border-radius: 0; }

.rec__n {
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0;
  opacity: 0.55;
}
.rec__btn:hover { background: rgb(47 69 56 / 0.07); color: var(--accent); }

.rec__btn.is-on {
  color: var(--bg);
  background: var(--accent);
  border-left-color: transparent;
}
.rec__btn.is-on:hover { background: var(--accent-hi); color: var(--bg); }
.rec__btn.is-on + .rec__btn { border-left-color: transparent; }
.rec__btn.is-on .rec__n { opacity: 0.72; }

.rec__list {
  max-width: 960px;
  margin: clamp(28px, 3.4vw, 44px) auto 0;
  text-align: center;
  line-height: clamp(26px, 2.2vw, 30px);
}

.rec__i {
  display: inline-block;
  vertical-align: baseline;
  max-width: 100%;
  font-family: var(--sans);
  font-size: clamp(15px, 1.3vw, 17.5px);
  font-weight: 500;
  letter-spacing: 0;
  color: rgba(20, 20, 20, 0.72);
}

.rec__f { display: inline; }

.rec__i:not(:last-child) .rec__f::after {
  content: '\00B7';
  margin: 0 0.34em 0 0.52em;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  color: currentColor;
  opacity: 0.3;
}

.rec__i[data-cat="honors"]     { --hd: 122 48 46; }
.rec__i[data-cat="summer"]     { --hd: 118 88 20; }
.rec__i[data-cat="comps"]      { --hd: 36 76 52; }

.rec__list[data-pick] .rec__f {
  transition: color 0.5s var(--ease) calc(var(--i, 0) * 0.012s);
  color: rgba(20, 20, 20, 0.11);
}
.rec__list[data-pick="honors"]     .rec__i[data-cat="honors"] .rec__f,
.rec__list[data-pick="summer"]     .rec__i[data-cat="summer"] .rec__f,
.rec__list[data-pick="comps"]      .rec__i[data-cat="comps"] .rec__f {
  color: rgb(var(--hd));
}

.divider {
  margin-block: clamp(54px, 6.4vw, 84px);
  text-align: center;
}

.divider__rule {
  display: flex;
  align-items: center;
  justify-content: center;
  width: min(62%, 640px);
  margin: 0 auto 22px;
}
.divider__rule::before,
.divider__rule::after {
  content: "";
  flex: 1;
  height: 1px;
}
.divider__rule::before { background: linear-gradient(90deg, rgba(20, 20, 20, 0) 0%, rgba(20, 20, 20, 0.12) 100%); }
.divider__rule::after  { background: linear-gradient(90deg, rgba(20, 20, 20, 0.12) 0%, rgba(20, 20, 20, 0) 100%); }

.divider__label {
  flex: none;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--accent);

  padding: 52px 64px;
  margin-block: -52px;
  margin-inline: -42px;
  background-image:
    radial-gradient(28% 30% at 50% 50%, rgba(125, 168, 140, 0.28), rgba(125, 168, 140, 0) 70%),
    radial-gradient(58% 20% at 43% 47%, rgba(125, 168, 140, 0.14), rgba(125, 168, 140, 0) 76%),
    radial-gradient(22% 44% at 61% 55%, rgba(125, 168, 140, 0.09), rgba(125, 168, 140, 0) 78%),
    radial-gradient(46% 34% at 37% 53%, rgba(125, 168, 140, 0.055), rgba(125, 168, 140, 0) 80%),
    radial-gradient(60% 28% at 58% 49%, rgba(125, 168, 140, 0.04), rgba(125, 168, 140, 0) 78%);
}

@media (max-width: 1099px) {
  .afield { min-height: 680px; }
}

@media (max-width: 999px) {
  .afield { min-height: 620px; }
}

@media (max-width: 899px) {
  .afield {
    display: block;
    min-height: 0;
  }
  .afield__logos {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 24px 36px;
    margin-top: 38px;
    --bleed: 0px;
    --lh: 30px;
  }
  .afield__logos .slogo {
    position: static;
    transform: none;
  }
  .exphead { max-width: 46ch; padding-inline: 0; }
}

@media (max-width: 619px) {
  .afield__logos { gap: 20px 28px; --lh: 26px; }
}

@media (max-width: 419px) {
  .afield__logos { gap: 16px 24px; --lh: 21px; }
}

@media (prefers-reduced-motion: no-preference) {
  .js-reveal .exphead > *,
  .js-reveal .bghead > * {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 0.8s var(--ease) var(--d, 0s), transform 0.8s var(--ease) var(--d, 0s);
  }
  .js-reveal .afield .slogo__f {
    opacity: 0;
    transform: scale(0.94) translateY(10px);
    transition: opacity 0.7s var(--ease) calc(0.24s + var(--si) * 0.045s),
                transform 0.7s var(--ease) calc(0.24s + var(--si) * 0.045s);
  }
  .js-reveal .rec .rec__i {
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.7s var(--ease) calc(0.2s + var(--i) * 0.018s),
                transform 0.7s var(--ease) calc(0.2s + var(--i) * 0.018s);
  }
  .js-reveal .rec .rec__ctrl {
    opacity: 0;
    transition: opacity 0.7s var(--ease) 0.14s;
  }

  .js-reveal .divider__rule { transform: scaleX(0); transition: transform 0.9s var(--ease) 0.1s; }

  .js-reveal .afield.is-in .exphead > *,
  .js-reveal .rec.is-in .bghead > * { opacity: 1; transform: none; }
  .js-reveal .rec.is-in .rec__i { opacity: 1; transform: none; }
  .js-reveal .rec.is-in .rec__ctrl { opacity: 1; }
  .js-reveal .afield.is-in .slogo__f { opacity: 1; transform: none; }

  .js-reveal .is-in.divider .divider__rule { transform: none; }
}

.why {
  padding-block: var(--sec-y);
}

.why__text .label {
  font-size: clamp(11.5px, 1.05vw, 13px);
  letter-spacing: 0.09em;
  margin-bottom: 22px;
}

.why__flower {
  margin-top: clamp(30px, 7vw, 52px);
  margin-left: clamp(8px, 10vw, 110px);
}

.why__flower .flower {
  height: clamp(340px, 84vw, 380px);
}

@media (min-width: 900px) {
  .why__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 540px;
    gap: clamp(48px, 6vw, 88px);
    align-items: center;
  }

  .why__flower {
    margin-top: 0;
    margin-left: 0;
    justify-self: center;
  }

  .why__flower .flower {
    height: clamp(440px, 38vw, 540px);
  }
}

.draft {
  position: relative;
  isolation: isolate;
  background: var(--ink);
  color: #FCFBF8;
  padding-block: clamp(72px, 10vw, 128px);

  --gd-head: #FBFAF7;
  --gd-bar: #EFEDE6;
  --gd-canvas: #E9E7E0;
  --gd-page: #FFFFFF;
  --gd-icon: #606057;
}

.draft__fx {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-color: var(--ink);
  background-image:
    radial-gradient(52% 42% at -6% 34%, rgba(47, 69, 56, 0.72) 0%, rgba(47, 69, 56, 0) 72%),
    radial-gradient(48% 40% at 106% 64%, rgba(47, 69, 56, 0.58) 0%, rgba(47, 69, 56, 0) 74%),
    radial-gradient(120% 34% at 50% 108%, rgba(15, 35, 23, 0.9) 0%, rgba(15, 35, 23, 0) 70%);

  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 92%, transparent 100%);
}

.draft__fx::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.05;
  background-image: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='180'%3E%3Cfilter%20id='g'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.8'%20numOctaves='4'%20stitchTiles='stitch'/%3E%3C/filter%3E%3Crect%20width='180'%20height='180'%20filter='url(%23g)'/%3E%3C/svg%3E");
  background-size: 180px 180px;
}

.draft > .wrap {
  position: relative;
  z-index: 1;
}

.draft__h {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 4.4vw, 50px);
  line-height: 1.12;
  letter-spacing: -0.018em;
  margin-bottom: 14px;
}

.draft__lead {
  font-size: clamp(15px, 1.9vw, 18px);
  line-height: 1.6;
  color: rgba(252, 251, 248, 0.6);
  max-width: 62ch;
  margin-bottom: clamp(34px, 5vw, 54px);
}

.gdoc {
  --gp-x: clamp(22px, 3.4vw, 52px);
  background: var(--gd-head);
  color: var(--ink);
  border-radius: 14px;
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(0, 0, 0, 0.34),
    0 10px 24px rgba(0, 0, 0, 0.32),
    0 38px 76px rgba(0, 0, 0, 0.34);
}

.gdoc__head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px clamp(14px, 2vw, 18px) 8px;
}

.gdoc__icon {
  width: 26px;
  height: 34px;
  flex: none;
  color: var(--accent);
}
.gdoc__icon svg { display: block; width: 100%; height: 100%; }

.gdoc__id { min-width: 0; }

.gdoc__titlerow {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.gdoc__title {
  font-size: 14.5px;
  font-weight: 500;
  letter-spacing: -0.005em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gdoc__tico {
  display: inline-flex;
  flex: none;
  width: 15px;
  height: 15px;
  color: var(--gd-icon);
  opacity: 0.85;
}
.gdoc__tico svg { display: block; width: 100%; height: 100%; }

.gdoc__saved {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: none;
  font-size: 11px;
  color: var(--ink-2);
}
.gdoc__saved .gdoc__tico { width: 16px; height: 16px; }

.gdoc__menus {
  display: flex;
  gap: 15px;
  margin-top: 2px;
  font-size: 12.5px;
  line-height: 1.3;
  color: var(--ink);
}

.gdoc__acts {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
  flex: none;
}

.gdoc__hico {
  display: inline-flex;
  width: 20px;
  height: 20px;
  color: var(--gd-icon);
}
.gdoc__hico svg { display: block; width: 100%; height: 100%; }

.gdoc__who {
  display: flex;
  flex: none;
  padding-left: 7px;
}

.gdoc__av {
  width: 26px;
  height: 26px;
  margin-left: -7px;
  border-radius: 999px;
  border: 1.5px solid var(--gd-head);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.gdoc__av--c { background: var(--accent); color: #FCFBF8; }
.gdoc__av--s { background: var(--ink-2); color: #FCFBF8; }

.gdoc__share {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 7px 16px 8px;
  border-radius: 999px;
  background: var(--accent);
  color: #FCFBF8;
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
}
.gdoc__share svg { width: 12px; height: 12px; display: block; }

.gdoc__barwrap { padding: 2px clamp(10px, 1.4vw, 14px) 8px; }

.gdoc__bar {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 10px;
  border-radius: 999px;
  background: var(--gd-bar);
}

.gdoc__tools {
  display: flex;
  align-items: center;
  gap: 2px;
  flex: 1;
  min-width: 0;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 16px), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 16px), transparent);
}

.gico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 5px;
  flex: none;
  color: var(--gd-icon);
}
.gico svg { display: block; width: 17px; height: 17px; }

.gsep {
  width: 1px;
  height: 17px;
  flex: none;
  background: var(--rule-strong);
  margin-inline: 4px;
}

.gtxt {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex: none;
  padding: 0 5px;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--ink);
  white-space: nowrap;
}
.gtxt svg { width: 8px; height: 8px; display: block; color: var(--gd-icon); }

.gnum {
  flex: none;
  min-width: 24px;
  padding: 1px 0 2px;
  border: 1px solid var(--rule-strong);
  border-radius: 4px;
  text-align: center;
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}

.gbold { font-family: var(--sans); font-weight: 600; font-size: 13.5px; }
.gital { font-family: var(--serif); font-style: italic; font-size: 15px; }
.gunder { font-size: 13px; font-weight: 500; text-decoration: underline; text-underline-offset: 2px; }

.gcolor { position: relative; font-size: 12.5px; font-weight: 600; line-height: 1; }
.gcolor i {
  position: absolute;
  left: 50%;
  bottom: 4px;
  width: 13px;
  height: 3px;
  transform: translateX(-50%);
  background: var(--ink);
  border-radius: 1px;
  font-style: normal;
}

.gdoc__mode {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: none;
  padding: 5px 12px 6px;
  border-radius: 999px;
  border: 1px solid rgba(47, 69, 56, 0.36);
  background: rgba(47, 69, 56, 0.07);
  color: var(--accent);
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.gdoc__mode svg { display: block; }
.gdoc__mode .gm-pen { width: 12px; height: 12px; }
.gdoc__mode .gm-chev { width: 8px; height: 8px; opacity: 0.8; }

.gdoc__ruler {
  height: 20px;
  background: var(--gd-head);
  border-bottom: 1px solid var(--rule);
}

@media (min-width: 880px) {
  .gdoc__ruler {
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(268px, 29%, 344px);
  }
}

.gdoc__rtrack {
  position: relative;
  height: 100%;
  margin-inline: var(--gp-x);
  background-image:
    repeating-linear-gradient(to right,
      rgba(20, 20, 20, 0.34) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(to right,
      rgba(20, 20, 20, 0.16) 0 1px, transparent 1px 12px);
  background-size: auto 9px, auto 5px;
  background-position: left bottom 3px, left bottom 3px;
  background-repeat: repeat-x;
}

.gdoc__rtrack::before,
.gdoc__rtrack::after {
  content: "";
  position: absolute;
  top: 3px;
  width: 9px;
  height: 9px;
  background: var(--accent);
  clip-path: polygon(50% 100%, 0 0, 100% 0);
}
.gdoc__rtrack::before { left: -4px; }
.gdoc__rtrack::after { right: -4px; }

.gdoc__body {
  --dm-pad: 20px;
  background: var(--gd-canvas);
}

@media (min-width: 880px) {
  .gdoc__body {
    --dm-pad: 18px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(268px, 29%, 344px);
  }
}

.gdoc__pagewrap {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(16px, 2.4vw, 26px) clamp(12px, 1.8vw, 20px) clamp(20px, 3vw, 34px);
}

.gdoc__page {
  position: relative;
  flex: 0 0 auto;
  background: var(--gd-page);
  border: 1px solid rgba(20, 20, 20, 0.08);
  border-radius: 2px;
  box-shadow: 0 1px 3px rgba(20, 20, 20, 0.10);
  padding: clamp(24px, 3vw, 44px) var(--gp-x) clamp(34px, 5.6vw, 82px);
}

.gpage__brief {
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--rule);
}

.gpage__plabel {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-2);
  margin-bottom: 7px;
}

.gpage__prompt {
  font-size: 12.5px;
  line-height: 1.62;
  color: var(--ink-2);
  max-width: 58ch;
}

.gpage__title {
  font-family: var(--serif);
  font-weight: 500;
  font-size: 21px;
  letter-spacing: -0.01em;
  margin-bottom: 12px;
}

.gprose {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 17.5px;
  line-height: 1.84;
  letter-spacing: -0.005em;
  max-width: 52ch;
}
.gprose + .gprose { margin-top: 1em; }

.js-reveal .gprose ins:not(.is-drawn) { display: none; }

.gprose .is-note {
  background-color: rgba(125, 168, 140, 0.16);
  box-shadow: 0 0 0 1px rgba(125, 168, 140, 0.16);
  border-radius: 1px;
  transition: background-color 0.4s var(--ease), box-shadow 0.4s var(--ease);
}

.gdoc__margin {
  position: relative;
  padding: clamp(16px, 2.4vw, 24px) var(--dm-pad);
}

@media (max-width: 879px) {
  .gdoc__margin { padding-top: 0; }
}

.gdoc__margin.is-placed .dcard {
  position: absolute;
  left: var(--dm-pad);
  right: var(--dm-pad);
  margin-bottom: 0;
}

.dcard {
  position: relative;
  margin-bottom: 12px;
  padding: 11px 13px 12px;
  background: #FFFFFF;
  border: 1px solid var(--rule);
  border-radius: 9px;
  box-shadow: 0 1px 3px rgba(20, 20, 20, 0.07);
  opacity: 0;
  transform: translateY(10px) scale(0.985);
  transform-origin: 0 0;
  transition: opacity 0.45s var(--ease), transform 0.5s var(--ease),
              top 0.5s var(--ease);
}
.dcard:last-child { margin-bottom: 0; }
.dcard.is-in { opacity: 1; transform: none; }

.dcard::before {
  content: "";
  position: absolute;
  left: -4px;
  top: 19px;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--accent);
}

.dcard__head {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 7px;
}

.dcard__av {
  width: 24px;
  height: 24px;
  flex: none;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 600;
}
.dcard__av--c { background: var(--accent); color: #FCFBF8; }
.dcard__av--s { background: var(--ink-2); color: #FCFBF8; }

.dcard__idw { display: flex; flex-direction: column; min-width: 0; }
.dcard__who { font-size: 12.5px; font-weight: 600; letter-spacing: -0.005em; line-height: 1.3; }
.dcard__time { font-size: 10.5px; color: var(--ink-2); line-height: 1.3; }

.dcard__acts {
  display: flex;
  gap: 4px;
  margin-left: auto;
  flex: none;
}
.dcard__act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: var(--ink-2);
}
.dcard__act svg { display: block; width: 13px; height: 13px; }
.dcard__act--ok { color: var(--accent); }

.dcard__body { font-size: 12.5px; line-height: 1.55; color: var(--ink-2); }

.dreply {
  margin: 11px 0 0 4px;
  padding: 10px 0 0 11px;
  border-left: 2px solid rgba(47, 69, 56, 0.22);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.4s var(--ease), transform 0.4s var(--ease);
}
.dreply.is-in { opacity: 1; transform: none; }

.caret {
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
  transition: transform 0.75s var(--ease), opacity 0.35s var(--ease);
}
.caret.is-on { opacity: 1; }

.caret__line {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 2px;
  height: var(--ch);
  background: var(--accent);
}

.caret__tag {
  position: absolute;
  left: 0;
  bottom: var(--ch);
  padding: 3px 7px 4px;
  border-radius: 4px 4px 4px 0;
  background: var(--accent);
  color: #FCFBF8;
  font-family: var(--sans);
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
}

.caret--b .caret__line,
.caret--b .caret__tag { background: var(--accent-tint); }
.caret--b .caret__tag { color: var(--ink); }

@media (max-width: 1020px) {
  .hide-md { display: none; }
}
@media (max-width: 760px) {
  .hide-sm { display: none; }
  .gdoc__menus { gap: 11px; font-size: 12px; }
  .gdoc__saved { display: none; }
  .gdoc__hico { display: none; }
  .gdoc__titlerow .gdoc__tico:nth-of-type(2) { display: none; }
  .gdoc__acts { gap: 10px; }
  .gdoc__share { padding: 7px 13px 8px; }
}

@media (max-width: 699px) {
  .caret { display: none; }
  .gprose { font-size: 16.5px; }
  .gdoc__menus { display: none; }
  .gdoc__icon { width: 22px; height: 29px; }
  .gdoc__ruler { display: none; }

  /* Phones: compress the draft demo to roughly half height */
  .draft { padding-block: 56px; }
  .draft__lead { margin-bottom: 24px; }
  .gpage__brief { display: none; }
  .gdoc__page { padding-bottom: 30px; }
  .gdoc__margin .dcard:nth-of-type(n + 3) { display: none; }
}

.pw {
  --pw-ink: var(--ink);
  --pw-accent: var(--accent);
  --pw-sage: var(--accent-tint);
  --pw-gold: var(--gold);
  --pw-paper: var(--bg);
  --pw-mut: var(--ink-2);
  --pw-grid: rgba(20, 20, 20, 0.11);

  position: relative;
  isolation: isolate;
  padding-block: var(--sec-y);

  background-image:
    radial-gradient(56% 46% at 16% 44%, rgba(125, 168, 140, 0.11), rgba(125, 168, 140, 0) 68%),
    radial-gradient(44% 38% at 86% 64%, rgba(125, 168, 140, 0.085), rgba(125, 168, 140, 0) 70%),
    radial-gradient(64% 30% at 62% 12%, rgba(184, 145, 47, 0.045), rgba(184, 145, 47, 0) 72%);
}

.pw-wrap {
  width: 100%;
  max-width: var(--wrap);
  margin: 0 auto;
  padding-inline: var(--pad);
}

.pw-h {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(30px, 5vw, 46px);
  line-height: 1.12;
  letter-spacing: -0.015em;
  margin-bottom: 0;
}
.pw-h em { font-style: italic; color: var(--accent); }

.pw-lead {
  margin-top: 14px;
  font-size: clamp(15px, 1.9vw, 18px);
  line-height: 1.6;
  color: var(--ink-2);
  max-width: 52ch;
}

.pw-canvas { margin-top: clamp(40px, 5vw, 68px); }
.pw-svg { display: block; width: 100%; height: auto; }
.pw-svg--v { display: none; }

.pw-svg text { font-family: var(--sans); }

.pw .s-grid,
.pw .s-band { stroke: var(--pw-grid); stroke-width: 1; }
.pw .s-cycle { stroke: rgba(20, 20, 20, 0.2); stroke-width: 1; }

.pw .s-act  { stroke: var(--pw-ink); stroke-width: 5; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.pw .s-comp { stroke: var(--pw-ink); stroke-width: 3; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.pw .s-acad { stroke: var(--pw-ink); stroke-width: 2; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.pw .s-lead,
.pw .s-spine { stroke: var(--pw-accent); stroke-width: 1.25; fill: none; }

.pw .s-merge { stroke: var(--pw-gold); stroke-width: 7; fill: none; stroke-linecap: round; stroke-linejoin: round; }

.pw .st-sq { fill: var(--pw-paper); stroke: var(--pw-ink); stroke-width: 2.5; }
.pw .st-sq--m { stroke-width: 2.25; }
.pw .st-sq--s { stroke-width: 2; }
.pw .st-sq--j { fill: var(--pw-accent); stroke: var(--pw-accent); }
.pw .hub-o { fill: var(--pw-paper); stroke: var(--pw-ink); stroke-width: 2.5; }
.pw .hub-c { fill: var(--pw-accent); }

.pw .term   { stroke: var(--pw-gold); stroke-width: 6; stroke-linecap: round; }
.pw .term-t { stroke: var(--pw-gold); stroke-width: 2.5; stroke-linecap: round; }

.pw .t-line { font-size: 10px; font-weight: 600; letter-spacing: 0.2em; fill: var(--pw-mut); }
.pw .t-name { font-size: 13px; font-weight: 500; fill: var(--pw-ink); paint-order: stroke; stroke: var(--pw-paper); stroke-width: 4px; stroke-linejoin: round; }
.pw .t-hub    { font-family: var(--serif); font-size: 21px; font-weight: 500; fill: var(--pw-ink); }
.pw .t-hubsub { font-size: 11.5px; font-weight: 400; fill: var(--pw-mut); }
.pw .t-cyc  { font-size: 10px; font-weight: 600; letter-spacing: 0.14em; fill: var(--pw-mut); }
.pw .t-leg  { font-size: 12px; font-weight: 500; fill: var(--pw-mut); }
.pw .t-gnum { font-size: 10px; font-weight: 600; letter-spacing: 0.18em; fill: var(--pw-mut); opacity: 0.72; }

.pw .jt-bg { fill: var(--pw-accent); }
.pw .jt-tx { font-size: 10px; font-weight: 600; letter-spacing: 0.07em; fill: var(--pw-paper); }
.pw .jt-tx .pre { fill: var(--pw-sage); }

.pw-svg--v .t-name { font-size: 12.5px; }
.pw-svg--v .t-hub  { font-size: 17px; }
.pw-svg--v .t-hubsub { font-size: 11px; }
.pw-svg--v .t-cyc  { font-size: 9px; letter-spacing: 0.12em; }
.pw-svg--v .jt-tx  { font-size: 9.5px; }
.pw-svg--v .t-leg  { font-size: 11px; }
.pw-svg--v .s-act  { stroke-width: 4.5; }
.pw-svg--v .s-merge { stroke-width: 6.5; }

@keyframes pwDraw  { to { stroke-dashoffset: 0; } }
@keyframes pwFade  { to { opacity: 1; } }
@keyframes pwStamp { 0% { opacity: 0; transform: scale(1.6); } 60% { opacity: 1; } 100% { opacity: 1; transform: scale(1); } }
@keyframes pwPop   { 0% { opacity: 0; transform: translateY(10px); } 100% { opacity: 1; transform: translateY(0); } }

@media (prefers-reduced-motion: no-preference) {
  .js-reveal .pw .d { stroke-dasharray: 1; stroke-dashoffset: 1; }
  .js-reveal .pw .rv,
  .js-reveal .pw .jt { opacity: 0; }
  .js-reveal .pw .st { opacity: 0; transform-box: fill-box; transform-origin: center; }
  .js-reveal .pw .pw-head { opacity: 0; transform: translateY(16px); }

  .js-reveal .pw.is-on .d { animation: pwDraw var(--d, 1s) cubic-bezier(0.55, 0, 0.35, 1) var(--dl, 0s) forwards; }
  .js-reveal .pw.is-on .rv { animation: pwFade 0.45s ease var(--dl, 0s) forwards; }
  .js-reveal .pw.is-on .st { animation: pwStamp 0.3s cubic-bezier(0.2, 0.8, 0.3, 1) var(--dl, 0s) forwards; }
  .js-reveal .pw.is-on .jt { transform-box: fill-box; animation: pwPop 0.38s cubic-bezier(0.2, 0.8, 0.2, 1) var(--dl, 0s) forwards; }
  .js-reveal .pw.is-on .pw-head { animation: pwPop 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) 0s forwards; }
}

@media (max-width: 959.98px) {
  .pw-svg--h { display: none; }
  .pw-svg--v { display: block; max-width: 460px; }
}

/* Phones: hide the four-year path section entirely */
@media (max-width: 699px) {
  .pw { display: none; }
}

.services {
  padding-block: var(--sec-y);
}

.services__lead {
  font-size: 16px;
  color: var(--ink-2);
  margin-bottom: clamp(34px, 4vw, 48px);
  max-width: 60ch;
}
.services .h2 { margin-bottom: 14px; }

@media (min-width: 860px) {
  .svcs--wide {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(36px, 4.4vw, 64px);
    align-items: start;
  }
  .svcs.svcs--wide .svc + .svc { margin-top: 0; }
}

.pkg {
  max-width: var(--wrap-narrow);
  margin-top: clamp(32px, 4vw, 48px);
  margin-inline: auto;
  padding: 14px 20px 12px;
  border: 1px solid var(--rule);
  border-radius: 4px;
}

.pkg__t {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 400;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.pkg__cap {
  margin-top: 6px;
  font-size: 14px;
  font-weight: 500;
}
.pkg__n { font-weight: 600; }

.pkg__note {
  margin-top: 4px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-2);
}

.pkg__more {
  margin-top: 10px;
  border-top: 1px solid var(--rule);
}

.pkg__more summary {
  list-style: none;
  cursor: pointer;
  position: relative;
  padding: 10px 24px 10px 0;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  transition: color 0.25s var(--ease);
}
.pkg__more summary::-webkit-details-marker { display: none; }
.pkg__more summary:hover { color: var(--ink); }

.pkg__more summary::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  width: 7px; height: 7px;
  border-right: 1.5px solid var(--ink-2);
  border-bottom: 1.5px solid var(--ink-2);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s var(--ease);
}
.pkg__more[open] summary::after { transform: translateY(-20%) rotate(-135deg); }

.pkg__wrap {
  display: grid;
  grid-template-rows: 1fr;
}
.pkg__wrap > .pkg__body { overflow: hidden; }

.pkg__more[open] .pkg__wrap { animation: qa-open 0.35s var(--ease); }
.pkg__more[open] .pkg__wrap > .pkg__body { animation: qa-open-inner 0.35s var(--ease); }

.pkg__body { padding-bottom: 14px; }

.pkg__lead {
  margin-top: 0;
  font-size: 14px;
  color: var(--ink-2);
}
.pkg__lead strong { color: var(--ink); font-weight: 600; }

.pkg .scope { font-size: 13px; margin-block: 12px 0; }
.pkg .scope th,
.pkg .scope td { padding: 9px 0; }

.ticks li {
  position: relative;
  padding-left: 20px;
  color: var(--ink-2);
  margin-bottom: 8px;
  font-size: 16px;
}
.ticks li::before {
  content: "";
  position: absolute;
  left: 0; top: 10px;
  width: 5px; height: 5px;
  background: var(--accent);
}

.ticks__sub {
  display: block;
  font-size: 14px;
  line-height: 1.45;
  margin-top: 2px;
  opacity: 0.78;
}

.svcs { margin-block: 8px 0; }
.svcs .svc + .svc { margin-top: 30px; }

.svc__cap {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-2);
  padding-bottom: 10px;
  margin-bottom: 14px;
  border-bottom: 1px solid var(--rule-strong);
}

.scope { font-size: 14px; margin-block: 8px 22px; }

.scope th,
.scope td {
  text-align: left;
  padding: 11px 0;
  border-bottom: 1px solid var(--rule);
  vertical-align: baseline;
}
.scope th { font-weight: 500; padding-right: 16px; }
.scope td { color: var(--ink-2); text-align: right; }

.steps-dark {
  position: relative;
  isolation: isolate;
  background: var(--ink);
  color: #FCFBF8;
  padding-block: clamp(88px, 11vw, 132px);
  overflow: hidden;

  --mut: #8A8A80;
  --hair2: rgba(252, 251, 248, 0.18);
  --line: rgba(252, 251, 248, 0.22);
}

.steps-dark::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: min(58%, 540px);
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(74% 82% at 10% -22%, rgba(47, 69, 56, 0.58), rgba(47, 69, 56, 0) 64%),
    radial-gradient(54% 66% at 44% -30%, rgba(15, 35, 23, 0.9), rgba(15, 35, 23, 0) 70%),
    radial-gradient(66% 96% at 90% -16%, rgba(47, 69, 56, 0.44), rgba(47, 69, 56, 0) 68%),
    conic-gradient(from 196deg at 70% -12%,
      rgba(125, 168, 140, 0) 0deg,
      rgba(125, 168, 140, 0.09) 44deg,
      rgba(47, 69, 56, 0.32) 92deg,
      rgba(125, 168, 140, 0.05) 128deg,
      rgba(125, 168, 140, 0) 168deg);
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.6) 38%, rgba(0, 0, 0, 0.14) 70%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0, 0, 0, 0.6) 38%, rgba(0, 0, 0, 0.14) 70%, transparent 100%);
}

.steps-dark > .wrap { position: relative; z-index: 1; }

.steps-dark .h2 {
  font-size: clamp(30px, 4.4vw, 44px);
  line-height: 1.14;
  letter-spacing: -0.022em;
  max-width: 24ch;
  margin-bottom: 0;
}
.steps-dark .h2 em { font-style: italic; font-weight: 500; color: var(--accent-tint); }

.flow { position: relative; margin-top: clamp(48px, 6vw, 76px); }

.flow::before {
  content: "";
  position: absolute;
  left: 32px; top: 16px; bottom: 6px;
  width: 1px;
  background: var(--line);
  transform-origin: top;
}

.fsteps { position: relative; }

.rail-v {
  display: none;
  position: absolute;
  left: 56px; top: 22px; bottom: -56px;
  width: 1px;
  background: var(--line);
  transform-origin: top;
}

.fstep {
  --fstep-fs: 44px;
  --fstep-py: 8px;

  position: relative;
  display: grid;
  grid-template-columns: 64px 1fr;
  column-gap: 20px;
  align-items: start;
  padding-block: 18px 26px;
}

.fstep__n {
  font-family: var(--serif);
  font-weight: 500;
  font-size: var(--fstep-fs);
  line-height: 1;
  color: #FCFBF8;
  text-align: center;
  background: radial-gradient(48% 42% at 50% 50%, var(--ink) 0%, var(--ink) 40%, rgba(20, 20, 20, 0) 100%);
  padding-block: var(--fstep-py);
  position: relative;
  z-index: 1;
}

.fstep__t {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 16px;
  row-gap: 8px;
  font-family: var(--serif);
  font-weight: 400;
  font-size: var(--fstep-fs);
  line-height: 1;
  color: #FCFBF8;
  padding-block: var(--fstep-py);
}

.fstep__h { font: inherit; margin: 0; }

.fstep__a {
  position: relative;
  color: inherit;
  text-decoration: none;
}
.fstep__a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -0.17em;
  height: 2px;
  background: var(--accent-tint);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 0.25s ease;
}
.fstep__a:hover::after { transform: scaleX(1); }

.fstep__a:focus-visible {
  outline-color: #FCFBF8;
}

.fstep__chip {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-tint);
  border: 1px solid var(--hair2);
  border-radius: 999px;
  padding: 3px 11px;
  line-height: 1.5;
}

.fstep__d {
  margin-top: 10px;
  font-size: 18.5px;
  font-weight: 500;
  line-height: 1.55;
  color: rgba(252, 251, 248, 0.82);
  max-width: 46ch;
}

.season { position: relative; }

.elbow { display: none; position: absolute; left: 56px; top: -48px; width: 49px; height: 49px; }
.elbow path { stroke: var(--line); stroke-width: 1; fill: none; }

.s-line {
  display: none;
  position: absolute;
  left: 104px; right: 0; top: 0;
  height: 1px;
  background: var(--line);
  transform-origin: left;
}

.s-track { position: relative; }

.s-item { position: relative; }

.s-tick { position: absolute; background: var(--accent-tint); }
.s-tick::before {
  content: "";
  position: absolute;
  width: 7px;
  height: 7px;
  background: var(--accent-tint);
  border-radius: 1.5px;
  transform: rotate(45deg);
}

.s-m {
  display: block;
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent-tint);
  white-space: nowrap;
}

.s-e {
  display: block;
  font-size: 14px;
  line-height: 1.4;
  color: var(--mut);
  white-space: nowrap;
}

.s-item--key .s-m { color: var(--gold); }
.s-item--key .s-e { color: #FCFBF8; font-weight: 500; }
.s-item--key .s-tick { background: var(--gold); }
.s-item--key .s-tick::before {
  background: var(--gold);
  box-shadow: 0 0 10px rgba(184, 145, 47, 0.65);
}

@media (max-width: 819.98px) {
  .fstep { --fstep-fs: 40px; --fstep-py: 7px; }
  .fstep__n { grid-row: 1 / span 2; }
  .fstep__d { grid-column: 2; }

  .season { margin-top: 6px; }

  .s-item { padding: 0 0 26px 88px; }
  .s-item:last-child { padding-bottom: 0; }

  .s-tick {
    left: 34px; top: 9px;
    width: 20px; height: 1px;
    transform: translateX(-0.5px);
  }
  .s-tick::before { left: -3.5px; top: -3px; }
  .s-m { margin-bottom: 4px; }

  .s-item--key .s-tick { width: 24px; }
  .s-item--key .s-tick::before { left: -5px; top: -5px; width: 11px; height: 11px; }

  .s-item--cluster .s-tick {
    height: 11px;
    background:
      linear-gradient(var(--accent-tint), var(--accent-tint)) 0 0 / 20px 1px no-repeat,
      linear-gradient(var(--accent-tint), var(--accent-tint)) 0 5px / 20px 1px no-repeat,
      linear-gradient(var(--accent-tint), var(--accent-tint)) 0 10px / 20px 1px no-repeat;
  }
  .s-item--cluster .s-tick::before { display: none; }
}

@media (min-width: 820px) {
  .flow::before { display: none; }
  .rail-v { display: block; }
  .elbow { display: block; }
  .s-line { display: block; }

  .fstep {
    --fstep-fs: 58px;
    --fstep-py: 10px;
    grid-template-columns: 112px minmax(0, 360px) minmax(0, 1fr);
    column-gap: 36px;
    padding-block: 16px 26px;
  }
  .fstep__d { margin-top: 0; padding-top: 16px; }

  .season { margin-top: 104px; height: 52px; }

  .s-track { margin-left: 104px; height: 100%; }

  .s-item {
    position: absolute;
    left: var(--x);
    top: 0;
    width: 0;
  }
  .s-tick {
    left: -0.5px; top: -12px;
    width: 1px; height: 24px;
    opacity: 0.85;
  }
  .s-tick::before { left: -3px; top: -3.5px; }
  .s-m {
    position: absolute;
    bottom: 26px; left: 0;
    transform: translateX(-50%);
  }
  .s-e {
    position: absolute;
    top: 24px; left: 0;
    transform: translateX(-50%);
    text-align: center;
  }

  .s-item--key .s-tick { top: -17px; height: 34px; opacity: 1; }
  .s-item--key .s-tick::before { left: -5px; top: -5px; width: 11px; height: 11px; }

  .s-item--cluster .s-tick {
    box-shadow: -6px 0 0 var(--accent-tint), 6px 0 0 var(--accent-tint);
  }
  .s-item--cluster .s-tick::before { display: none; }
}

@media (min-width: 820px) and (max-width: 999.98px) {
  .s-m { font-size: 10px; }
  .s-e {
    font-size: 13px;
    white-space: normal;
    width: 104px;
    line-height: 1.35;
  }
}

.js-reveal .flow.reveal { opacity: 1; transform: none; }

.js-reveal .fstep,
.js-reveal .s-item {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  transition-delay: var(--d, 0ms);
}

.js-reveal .rail-v,
.js-reveal .flow::before { transform: scaleY(0); transition: transform 1s var(--ease); }
.js-reveal .s-line { transform: scaleX(0); transition: transform 1.1s var(--ease) 1s; }
.js-reveal .elbow path {
  stroke-dasharray: 78;
  stroke-dashoffset: 78;
  transition: stroke-dashoffset 0.4s linear 0.75s;
}

.js-reveal .flow.is-in .fstep,
.js-reveal .flow.is-in .s-item { opacity: 1; transform: none; }
.js-reveal .flow.is-in .rail-v,
.js-reveal .flow.is-in .s-line { transform: none; }
.js-reveal .flow.is-in::before { transform: none; }
.js-reveal .flow.is-in .elbow path { stroke-dashoffset: 0; }

@media (max-width: 819.98px) {
  .js-reveal .flow::before { transition-duration: 1.6s; }
}

.faq { padding-block: var(--sec-y); }

.qa { border-bottom: 1px solid var(--rule); }

.qa summary {
  list-style: none;
  cursor: pointer;
  padding: 22px 34px 22px 0;
  position: relative;
  font-family: var(--serif);
  font-size: clamp(19px, 2.4vw, 24px);
  line-height: 1.3;
  transition: color 0.25s var(--ease);
}
.qa summary::-webkit-details-marker { display: none; }
.qa summary:hover { color: var(--accent); }

.qa summary::after {
  content: "";
  position: absolute;
  right: 6px;
  top: 50%;
  width: 11px; height: 11px;
  border-right: 1.5px solid var(--ink-2);
  border-bottom: 1.5px solid var(--ink-2);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.3s var(--ease);
}
.qa[open] summary::after { transform: translateY(-20%) rotate(-135deg); }

.qa__wrap {
  display: grid;
  grid-template-rows: 1fr;
}
.qa__wrap > .qa__body { overflow: hidden; }

.qa[open] .qa__wrap { animation: qa-open 0.35s var(--ease); }
.qa[open] .qa__wrap > .qa__body { animation: qa-open-inner 0.35s var(--ease); }

@keyframes qa-open {
  from { grid-template-rows: 0fr; }
  to { grid-template-rows: 1fr; }
}

@keyframes qa-open-inner {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}

.qa__body {
  padding-bottom: 26px;
  padding-right: 34px;
  color: var(--ink-2);
  max-width: 62ch;
}

.cta-dark {
  background: var(--ink);
  color: #FCFBF8;
  padding-block: clamp(80px, 12vw, 150px);
}

.cta-dark__h {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(31px, 5.4vw, 54px);
  line-height: 1.13;
  letter-spacing: -0.022em;
  margin-bottom: 44px;
  max-width: 22ch;
}
.cta-dark__h strong { font-weight: 500; color: var(--accent-tint); }

.foot {
  padding-block: 40px 44px;
  border-top: 1px solid rgba(252, 251, 248, 0.14);
  background: var(--ink);
}

.foot__c {
  font-size: 13px;
  line-height: 1.7;
  color: rgba(252, 251, 248, 0.72);
}

.foot__d {
  font-size: 12px;
  line-height: 1.65;
  color: rgba(252, 251, 248, 0.42);
  max-width: 78ch;
  margin-top: 8px;
}

.ctamail {
  margin-top: 22px;
  font-size: 13px;
  color: rgba(252, 251, 248, 0.55);
}
.ctamail a {
  color: rgba(252, 251, 248, 0.82);
  text-decoration: none;
  border-bottom: 1px solid rgba(252, 251, 248, 0.28);
  padding-bottom: 1px;
  transition: color 0.25s var(--ease), border-color 0.25s var(--ease);
}
.ctamail a:hover { color: #FCFBF8; border-bottom-color: rgba(252, 251, 248, 0.7); }

.stickybar {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 90;
  padding: 12px var(--pad) calc(12px + env(safe-area-inset-bottom));
  background: rgba(252, 251, 248, 0.86);
  -webkit-backdrop-filter: blur(14px) saturate(1.4);
  backdrop-filter: blur(14px) saturate(1.4);
  border-top: 1px solid var(--rule);
  transform: translateY(110%);
  transition: transform 0.4s var(--ease);
}
.stickybar.is-up { transform: translateY(0); }

@media (min-width: 760px) {
  .stickybar { display: none; }
}

@media (max-width: 759px) {
  .nav__links { display: none; }
  .nav__inner { gap: 12px; }
  .nav__end { gap: 16px; }
  .foot { padding-bottom: 96px; }
}

.js-reveal .reveal {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  transition-delay: var(--d, 0ms);
}
.js-reveal .reveal.is-in { opacity: 1; transform: none; }

.js-reveal .rule-draw {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.7s var(--ease);
  transition-delay: var(--d, 0ms);
}
.js-reveal .rule-draw.is-in { transform: scaleX(1); }

.js-reveal .rule-draw-b::before {
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.7s var(--ease);
  transition-delay: var(--d, 0ms);
}
.js-reveal .rule-draw-b.is-in::before { transform: scaleX(1); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js-reveal .reveal { transform: none; transition: opacity 0.4s linear; transition-delay: 0ms; }
  .js-reveal .rule-draw { transform: none; }
  .js-reveal .rule-draw-b::before { transform: none; }

  .js-reveal .fstep,
  .js-reveal .s-item,
  .js-reveal .rail-v,
  .js-reveal .flow::before,
  .js-reveal .s-line,
  .js-reveal .elbow path {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    stroke-dashoffset: 0 !important;
  }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
  }
}

.apply-main { padding-block: clamp(40px, 6vw, 76px) 96px; }

.apply-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 48px;
  align-items: start;
}

@media (min-width: 900px) {
  .apply-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 500px);
    column-gap: 64px;
  }
}

@media (min-width: 1120px) {
  .apply-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 520px);
    column-gap: 88px;
  }
}

.apply-layout.is-success { grid-template-columns: minmax(0, 780px); }

@media (min-width: 900px) {
  .intro-col { position: sticky; top: 108px; }
}

/* Stacked layout: the intro copy sits below the form */
@media (max-width: 899px) {
  .apply-layout .intro-col { order: 2; }
}

.intro__h {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(34px, 5vw, 54px);
  line-height: 1.06;
  letter-spacing: -0.026em;
  margin-bottom: 16px;
  max-width: 15ch;
}

.steps {
  display: grid;
  gap: 30px 36px;
}

@media (min-width: 560px) {
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
  .steps { gap: 34px 44px; }
}

.stepblk {
  position: relative;
  padding-left: 22px;
}

.stepblk::before {
  content: "";
  position: absolute;
  left: 0;
  top: 6px;
  bottom: 2px;
  width: 1px;
  background: linear-gradient(
    to bottom,
    var(--gold) 0,
    var(--gold) 18px,
    var(--rule) 18px,
    var(--rule) 100%
  );
}

.stepblk__n {
  display: block;
  font-family: var(--serif);
  font-weight: 400;
  font-size: 38px;
  line-height: 1;
  letter-spacing: -0.03em;
  color: var(--accent);
  margin-bottom: 10px;
}

.stepblk__t {
  font-size: 15.5px;
  line-height: 1.5;
  color: var(--ink);
  max-width: 34ch;
}

@media (min-width: 900px) {
  .stepblk__n { font-size: 44px; }
}

.formcard {
  background: #FFFFFF;
  border: 1px solid rgba(20, 20, 20, 0.07);
  border-radius: 18px;
  padding: 30px 24px 24px;
  box-shadow:
    0 1px 2px rgba(20, 20, 20, 0.04),
    0 14px 38px rgba(20, 20, 20, 0.07);
  scroll-margin-top: 100px;
}

@media (min-width: 560px) {
  .formcard { padding: 36px 34px 26px; }
}

.formcard__h {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 27px;
  line-height: 1.14;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}

.field { margin-bottom: 20px; }

.field__lab {
  display: block;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.005em;
  color: var(--ink);
  margin-bottom: 7px;
}

.field__lab .optional {
  font-weight: 400;
  color: var(--ink-2);
}

.select {
  display: block;
  width: 100%;
  padding: 13px 40px 13px 14px;
  background-color: #FFFFFF;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1.25 5 4.75 9 1.25' fill='none' stroke='%23606057' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-size: 11px 7px;
  border: 1px solid var(--rule-strong);
  border-radius: 4px;
  font-size: 16px;
  line-height: 1.3;
  color: var(--ink);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  transition: border-color 0.2s var(--ease);
}
.select:focus { outline: none; border-color: var(--accent); }
.select[aria-invalid="true"] { border-color: #8A2E2E; }
.select[aria-invalid="true"]:focus-visible { border-color: var(--accent); }

.select[data-empty="true"] { color: rgba(96, 96, 87, 0.75); }

.input:focus-visible,
.select:focus-visible {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(47, 69, 56, 0.14);
}

.input, .select, .textarea { scroll-margin-top: 108px; }

.input {
  display: block;
  width: 100%;
  padding: 13px 14px;
  background: #FFFFFF;
  border: 1px solid var(--rule-strong);
  border-radius: 4px;
  font-size: 16px;
  transition: border-color 0.2s var(--ease);
}
.input::placeholder { color: rgba(96, 96, 87, 0.6); }
.input:focus { border-color: var(--accent); }
.input[aria-invalid="true"] { border-color: #8A2E2E; }
.input[aria-invalid="true"]:focus-visible { border-color: var(--accent); }

.js-reveal .is-shut,
.js-reveal .is-off { display: none; }

.formcard { scroll-margin-top: 100px; }

.stage:focus { outline: none; }

@media (prefers-reduced-motion: no-preference) {
  .stage.is-opening,
  .qblock.is-opening,
  .spec.is-opening { animation: panel-in 0.34s var(--ease); }
}

.sect__lab {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  padding-bottom: 9px;
  margin: 34px 0 18px;
  border-bottom: 1px solid var(--rule-strong);
}
.stage:first-child .sect__lab { margin-top: 0; }

.req { color: var(--accent); font-weight: 600; margin-left: 1px; }

.field__hint {
  display: block;
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-2);
  margin-top: 6px;
}
.field__lab + .field__hint { margin: -2px 0 10px; }
.field__hint--free { margin-top: 18px; }

.field__echo {
  display: block;
  margin-top: 7px;
  font-size: 13px;
  font-weight: 500;
  color: var(--accent);
}

.fset { border: 0; padding: 0; margin: 0 0 20px; min-width: 0; }
.fset legend { padding: 0; }

.opts { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.opts--row { flex-direction: row; flex-wrap: wrap; gap: 6px; }

.opt {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 12px;
  border: 1px solid transparent;
  border-radius: 6px;
  font-size: 15px;
  line-height: 1.4;
  cursor: pointer;
  transition: background-color 0.18s var(--ease), border-color 0.18s var(--ease);
}
.opts--row .opt { flex: 0 1 auto; }

.opt input {
  flex: none;
  width: 17px;
  height: 17px;
  margin: 1px 0 0;
  accent-color: var(--accent);
  cursor: pointer;
}

.opt:hover { background: rgba(47, 69, 56, 0.045); }
.opt:has(input:checked) {
  background: rgba(47, 69, 56, 0.07);
  border-color: rgba(47, 69, 56, 0.22);
}
.opt:focus-within { border-color: var(--accent); }

.opt__t { display: block; }
.opt__sub {
  display: block;
  font-size: 13px;
  color: var(--ink-2);
  margin-top: 1px;
}

.spec { margin: 8px 0 2px 39px; }

.textarea {
  min-height: 0;
  resize: vertical;
  line-height: 1.5;
  padding: 11px 14px;
  font-family: inherit;
}
.input--sm { padding: 9px 12px; font-size: 15px; }
.input--date { -webkit-appearance: none; appearance: none; min-height: 46px; }

.qblock {
  margin: 0 0 18px;
  padding: 20px 18px 4px;
  border: 1px solid var(--rule);
  border-radius: 10px;
  background: rgba(20, 20, 20, 0.018);
}

.qblock__h {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 400;
  letter-spacing: -0.01em;
  margin-bottom: 16px;
}

.qblock--pkg {
  border-color: rgba(47, 69, 56, 0.28);
  background: rgba(47, 69, 56, 0.045);
  padding-bottom: 2px;
}
.qblock--pkg .field__lab { font-size: 15px; }

.err {
  display: block;
  min-height: 0;
  margin-top: 7px;
  font-size: 13px;
  color: #8A2E2E;
}

@keyframes panel-in {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}

.actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--rule);
}

.actions .btn--secondary {
  --btn-px: 22px;
  color: var(--ink-2);
  border-color: var(--rule);
}
.actions .btn--secondary:hover { color: var(--accent); border-color: var(--accent); }

.actions .btn--primary { flex: 1 1 auto; }

.actions--nav { margin-top: 26px; }
html:not(.js-reveal) .actions--nav,
html:not(.js-reveal) [data-back] { display: none; }

.trustclose {
  font-size: 15px;
  line-height: 1.55;
  color: var(--ink-2);
  margin-top: 6px;
  margin-bottom: 22px;
}

.dashrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--rule);
}

.dashes {
  display: flex;
  gap: 6px;
  flex: none;
}

.dash {
  width: 26px;
  height: 3px;
  border-radius: 999px;
  background: var(--rule);
  transition: background-color 0.4s var(--ease);
}
.dash.is-on { background: var(--accent); }

.dashrow__txt {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--ink-2);
  margin-left: auto;
}

.success__h {
  font-family: var(--serif);
  font-size: clamp(28px, 4.4vw, 40px);
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
}
.success__p { color: var(--ink-2); margin-bottom: 32px; max-width: 56ch; }

.cal-box {
  width: 100%;
  border: 1px solid var(--rule-strong);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.5);
  overflow: hidden;
}

.cal-box iframe {
  display: block;
  width: 100%;
  border: 0;
}

.cal-box { min-height: 540px; }

@media (max-width: 599px) {
  .cal-box { min-height: 700px; }
}

.cal-fallback {
  padding: 40px 28px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  border: 1px dashed var(--rule-strong);
  border-radius: 6px;
  color: var(--ink-2);
  background: rgba(255, 255, 255, 0.5);
}
.cal-fallback .label { margin-bottom: 0; }
.cal-fallback p { max-width: 52ch; font-size: 15px; }

.told {
  margin-top: 40px;
  padding-top: 26px;
  border-top: 1px solid var(--rule-strong);
}

.told .label {
  color: var(--gold-ink);
  margin-bottom: 14px;
}

.told dl {
  display: grid;
  grid-template-columns: minmax(0, 15ch) minmax(0, 1fr);
  margin: 0;
  font-size: 14.5px;
}

.told dt,
.told dd {
  padding: 11px 0;
  border-top: 1px solid var(--rule);
  margin: 0;
}

.told dt { color: var(--ink-2); padding-right: 16px; }
.told dd { font-weight: 500; overflow-wrap: anywhere; }

.told dt:first-of-type,
.told dt:first-of-type + dd { border-top: 0; }

@media (max-width: 479px) {
  .told dl { grid-template-columns: minmax(0, 1fr); }
  .told dt { padding-bottom: 0; }
  .told dd { border-top: 0; padding-top: 2px; }
  .told dt:first-of-type + dd { border-top: 0; }
}

.backlink { font-size: 14px; }

img[src*="assets/logos/"] {
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}

.rulesheet-main { padding-block: clamp(48px, 8vw, 88px) 40px; }

.rulesheet-main .wrap--narrow { max-width: 812px; }

.rulesheet__head { margin-bottom: clamp(28px, 4vw, 40px); }

.rulesheet__h {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(38px, 6.4vw, 62px);
  line-height: 1.06;
  letter-spacing: -0.028em;
  max-width: 16ch;
  margin-bottom: 20px;
}

.rulesheet__stand {
  font-size: clamp(17px, 2.2vw, 19px);
  line-height: 1.55;
  color: var(--ink-2);
  max-width: 44ch;
}

.rulesheet__hr {
  border: 0;
  height: 1px;
  background: var(--rule-strong);
  margin: 0;
}

.rulesheet__list {
  counter-reset: rulesheet;
  list-style: none;
  margin: 0;
  padding: 0;
}

.rulesheet__rule {
  display: grid;
  grid-template-columns: 76px minmax(0, 62ch);
  column-gap: 24px;
  align-items: start;
  padding: 34px 0 36px;
  border-bottom: 1px solid var(--rule);
}

.rulesheet__rule::before {
  counter-increment: rulesheet;
  content: counter(rulesheet);
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(32px, 4.2vw, 42px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--accent);
  padding-top: 3px;
}

.rulesheet__lead {
  font-weight: 600;
  font-size: clamp(18px, 2.4vw, 20px);
  line-height: 1.4;
  letter-spacing: -0.012em;
  color: var(--ink);
  margin-bottom: 10px;
}

.rulesheet__text {
  font-size: 17px;
  line-height: 1.72;
  color: var(--ink-2);
}

.rulesheet__cta { margin-top: clamp(44px, 6vw, 64px); }
.rulesheet__mail { margin-top: 20px; font-size: 14px; }

@media (max-width: 640px) {
  .rulesheet__rule {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 6px;
    padding: 28px 0 30px;
  }
  .rulesheet__rule::before {
    font-size: 30px;
    padding-top: 0;
  }
  .rulesheet__text { font-size: 16px; line-height: 1.7; }
}
