/* line 18, app/assets/stylesheets/_tokens.scss */
:root {
  --bg:       #f0eee6;
  --bg-raise: #faf9f5;
  --bg-card:  #faf9f5;
  --bg-hover: #faf9f5;
  --bg-sunk:  #e3dacc;
  --bg-feature: #f5e3c7;
  --bg-ink:   #141413;
  --line-faint: #cccbc8;
  --line:       #cccbc8;
  --line-loud:  #87867f;
  --fg:   #141413;
  --fg-2: #3d3d3a;
  --fg-3: #87867f;
  --fg-4: #b0aea5;
  --fg-5: #cccbc8;
  --fg-photo:   #ffffff;
  --fg-photo-2: rgba(255, 255, 255, 0.8);
  --fg-invert:   #f0eee6;
  --fg-invert-2: #b0aea5;
  --line-invert: #3d3d3a;
  --clay:      #7cc39a;
  --clay-deep: #5faa80;
  --clay-wash: rgba(124, 195, 154, 0.18);
  --manilla:   #f5e3c7;
  --oat:       #e3dacc;
  --clay-ink: #2f6b4a;
  --focus: #61aaf2;
  --error: #bf4d43;
  --track-pro:        #4f9a72;
  --track-pro-soft:   #a8d3bb;
  --track-extra:      #b5825e;
  --track-extra-soft: #dcc0a6;
  --rail-0: #3a6ea5;
  --rail-1: #47774f;
  --rail-2: #99711d;
  --rail-3: #6f5395;
  --ok:     #47774f;
  --warn:   #99711d;
  --over:   #bf4d43;
  --font-serif: "Newsreader", Georgia, "Source Serif Pro", Charter, serif;
  --font-sans:  "Inter", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --font-code:  "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --fs-display: clamp(3rem, 0.9rem + 8.6vw, 8rem);
  --fs-h1:      clamp(2.25rem, 1.35rem + 3.2vw, 4.25rem);
  --fs-h2:      clamp(1.6rem, 1.25rem + 1.4vw, 2rem);
  --fs-h3:      clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
  --fs-lede:    clamp(1.4rem, 1.15rem + 1.05vw, 2rem);
  --fs-body:    clamp(1.0625rem, 0.98rem + 0.42vw, 1.25rem);
  --fs-sm:      clamp(0.9375rem, 0.92rem + 0.16vw, 1rem);
  --fs-label:   0.875rem;
  --fs-micro:   0.75rem;
  --lh-tight: 1.1;
  --lh-ui:    1.4;
  --lh-body:  1.43;
  --tr-display: -0.03em;
  --tr-head:    -0.02em;
  --tr-serif:   normal;
  --tr-12:      -0.02em;
  --tr-16:      -0.005em;
  --tr-lg:      -0.002em;
  --tr-label:   -0.005em;
  --gutter:    clamp(1.25rem, 4.2vw, 4.5rem);
  --maxw:      1460px;
  --maxw-text: 62ch;
  --maxw-wide: 1180px;
  --sp-1:  0.25rem;
  --sp-2:  0.5rem;
  --sp-3:  0.75rem;
  --sp-4:  1rem;
  --sp-5:  1.5rem;
  --sp-6:  2rem;
  --sp-7:  3rem;
  --sp-8:  4rem;
  --sp-9:  6rem;
  --sp-10: 8rem;
  --section-gap: clamp(4.5rem, 10vw, 10rem);
  --r-sm: 2px;
  --r-md: 4px;
  --r-lg: 6px;
  --r-xl: 10px;
  --ease-out:  cubic-bezier(0.16, 1, 0.3, 1);
  --ease-soft: cubic-bezier(0.4, 0, 0.2, 1);
  --dur-fast:  0.18s;
  --dur:       0.32s;
  --dur-slow:  0.6s;
  --nav-h: 68px;
  --nav-p: 0;
  --nav-s: 0;
  --nav-travel: 0px;
  --ink-900: var(--bg);
  --ink-850: var(--bg-sunk);
  --ink-800: var(--bg-raise);
  --ink-700: var(--bg-card);
  --ink-600: var(--bg-hover);
  --ink-500: var(--bg-hover);
  --paper:   var(--fg);
  --paper-2: var(--fg-2);
  --paper-3: var(--fg-3);
  --paper-4: var(--fg-4);
  --paper-5: var(--fg-5);
  --ember:      var(--clay-deep);
  --ember-soft: var(--clay);
  --ember-dim:  var(--clay);
  --ember-wash: var(--clay-wash);
  --clay-soft:  var(--clay);
  --font-mono: var(--font-sans);
}

@media (max-width: 700px) {
  /* line 203, app/assets/stylesheets/_tokens.scss */
  :root {
    --nav-h: 58px;
  }
}

@font-face {
  font-family: "Newsreader";
  src: url(/assets/Newsreader-latin-b5edf5fa04ceb295e5134b59323f9beade3e8b07cb9e110f232e9625f6a55937.woff2) format("woff2");
  font-weight: 200 800;
  font-style: normal;
  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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Newsreader";
  src: url(/assets/Newsreader-latin-ext-2be6d1e4af587ce194b5f8a408754e2e8638506ea93f6367fc9f16305390582d.woff2) format("woff2");
  font-weight: 200 800;
  font-style: normal;
  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: "Newsreader";
  src: url(/assets/Newsreader-Italic-latin-cd8329b91cdfe06253dba2cbab25d32c12833c57a9c039a277d494ab5089f7be.woff2) format("woff2");
  font-weight: 200 800;
  font-style: italic;
  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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Newsreader";
  src: url(/assets/Newsreader-Italic-latin-ext-b2ddc4a4bca9f1bcb30a37894eb2d74441165ae96b66aa0f698ade288a73d993.woff2) format("woff2");
  font-weight: 200 800;
  font-style: italic;
  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: "Inter";
  src: url(/assets/Inter-latin-e551894788f2b450cb15469870ce9716f4ca01627ab5662b22b47235fa7e6459.woff2) format("woff2");
  font-weight: 100 900;
  font-style: normal;
  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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: "Inter";
  src: url(/assets/Inter-latin-ext-a7b9763f3b0a15116d4fdd0c67a57289c6bf0432025a6ea1049efaf5fb812a7e.woff2) format("woff2");
  font-weight: 100 900;
  font-style: normal;
  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: "JetBrains Mono";
  src: url(/assets/JetBrainsMono-latin-13253e7858a7e1f21cf5698b3de0bcd8b91d6507d50d790a22bdee8ef40a5d79.woff2) format("woff2");
  font-weight: 400 600;
  font-style: normal;
  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+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* line 5, app/assets/stylesheets/_base.scss */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* line 9, app/assets/stylesheets/_base.scss */
* {
  margin: 0;
}

/* line 11, app/assets/stylesheets/_base.scss */
html {
  -webkit-text-size-adjust: 100%;
  scrollbar-width: none;
  -ms-overflow-style: none;
  background: var(--bg);
  color-scheme: light;
  scroll-padding-top: var(--nav-h);
}

/* line 24, app/assets/stylesheets/_base.scss */
body {
  min-height: 100vh;
  color: var(--fg);
  font-family: var(--font-serif);
  font-size: var(--fs-body);
  font-weight: 400;
  line-height: var(--lh-body);
  letter-spacing: var(--tr-serif);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: clip;
}

/* line 41, app/assets/stylesheets/_base.scss */
body.is-locked {
  overflow: hidden;
}

/* line 43, app/assets/stylesheets/_base.scss */
html::-webkit-scrollbar,
body::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

/* line 46, app/assets/stylesheets/_base.scss */
img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

/* line 55, app/assets/stylesheets/_base.scss */
img {
  height: auto;
}

/* line 57, app/assets/stylesheets/_base.scss */
button,
input,
select,
textarea {
  font: inherit;
  color: inherit;
}

/* line 65, app/assets/stylesheets/_base.scss */
button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
}

/* line 72, app/assets/stylesheets/_base.scss */
a {
  color: inherit;
  text-decoration: none;
}

/* line 77, app/assets/stylesheets/_base.scss */
ul, ol {
  list-style: none;
  padding: 0;
}

/* line 79, app/assets/stylesheets/_base.scss */
:focus-visible {
  outline: 2px solid var(--clay);
  outline-offset: 3px;
  border-radius: 2px;
}

/* line 85, app/assets/stylesheets/_base.scss */
::selection {
  background: var(--manilla);
  color: var(--fg);
}

/* line 92, app/assets/stylesheets/_base.scss */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 400;
  line-height: var(--lh-tight);
  letter-spacing: var(--tr-head);
  text-wrap: balance;
  color: var(--fg);
}

/* line 101, app/assets/stylesheets/_base.scss */
h1 {
  font-size: var(--fs-h1);
}

/* line 102, app/assets/stylesheets/_base.scss */
h2 {
  font-size: var(--fs-h2);
}

/* line 103, app/assets/stylesheets/_base.scss */
h3 {
  font-size: var(--fs-h3);
}

/* line 105, app/assets/stylesheets/_base.scss */
p {
  text-wrap: pretty;
}

/* line 107, app/assets/stylesheets/_base.scss */
strong, b {
  font-weight: 600;
  color: var(--fg);
}

/* line 108, app/assets/stylesheets/_base.scss */
em, i {
  font-style: italic;
}

/* line 110, app/assets/stylesheets/_base.scss */
code, pre, kbd, samp {
  font-family: var(--font-code);
  font-size: 0.9em;
  line-height: var(--lh-ui);
}

/* line 116, app/assets/stylesheets/_base.scss */
hr {
  border: 0;
  border-top: 1px solid var(--line-faint);
  margin: 0;
}

/* line 126, app/assets/stylesheets/_base.scss */
.mono {
  font-family: var(--font-code);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0;
}

/* line 134, app/assets/stylesheets/_base.scss */
.label {
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--tr-label);
  color: var(--fg-3);
  line-height: var(--lh-ui);
}

/* line 143, app/assets/stylesheets/_base.scss */
.dim {
  color: var(--fg-2);
}

/* line 144, app/assets/stylesheets/_base.scss */
.faint {
  color: var(--fg-3);
}

/* line 146, app/assets/stylesheets/_base.scss */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

/* line 158, app/assets/stylesheets/_base.scss */
.skip-link {
  position: absolute;
  left: var(--sp-4);
  top: -100px;
  z-index: 10001;
  background: var(--bg-card);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  padding: var(--sp-3) var(--sp-5);
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--tr-label);
  transition: top var(--dur-fast) var(--ease-out);
}

/* line 173, app/assets/stylesheets/_base.scss */
.skip-link:focus {
  top: var(--sp-4);
}

/* line 178, app/assets/stylesheets/_base.scss */
.shell {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* line 185, app/assets/stylesheets/_base.scss */
.shell--wide {
  max-width: var(--maxw-wide);
}

/* line 186, app/assets/stylesheets/_base.scss */
.shell--text {
  max-width: calc(var(--maxw-text) + var(--gutter) * 2);
}

/* line 191, app/assets/stylesheets/_base.scss */
.bleed {
  width: 100%;
  padding-inline: var(--gutter);
}

/* line 197, app/assets/stylesheets/_base.scss */
.page {
  padding-top: calc(var(--nav-h) + clamp(2.75rem, 7vw, 6.5rem));
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* line 204, app/assets/stylesheets/_base.scss */
.section {
  margin-block: var(--section-gap);
}

/* line 208, app/assets/stylesheets/_base.scss */
.page > .section:last-child,
.page > :last-child > .section:last-child {
  margin-bottom: 0;
}

/* line 210, app/assets/stylesheets/_base.scss */
.section--tight {
  margin-block: clamp(2.75rem, 5vw, 5rem);
}

/* line 221, app/assets/stylesheets/_base.scss */
.section--screen {
  min-height: 100svh;
  margin-block: 0;
  padding-block: clamp(2rem, 6vh, 5rem) clamp(3rem, 8vh, 7rem);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* line 236, app/assets/stylesheets/_base.scss */
.section-head {
  display: flex;
  align-items: baseline;
  gap: var(--sp-4);
  margin-bottom: clamp(1.75rem, 3.5vw, 3rem);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--line);
}

/* line 245, app/assets/stylesheets/_base.scss */
.section-head__index {
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 600;
  color: var(--clay-ink);
  letter-spacing: var(--tr-label);
  flex-shrink: 0;
  font-variant-numeric: tabular-nums;
}

/* line 255, app/assets/stylesheets/_base.scss */
.section-head__title {
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--tr-label);
  color: var(--fg-2);
  flex-shrink: 0;
}

/* line 264, app/assets/stylesheets/_base.scss */
.section-head__note {
  margin-left: auto;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-4);
  text-align: right;
}

@media (max-width: 560px) {
  /* line 274, app/assets/stylesheets/_base.scss */
  .section-head__note {
    display: none;
  }
}

/* line 279, app/assets/stylesheets/_base.scss */
.prose {
  max-width: var(--maxw-text);
  color: var(--fg-2);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
}

/* line 285, app/assets/stylesheets/_base.scss */
.prose p + p {
  margin-top: 0.9em;
}

/* line 287, app/assets/stylesheets/_base.scss */
.prose a {
  color: var(--fg);
  border-bottom: 1px solid var(--line-loud);
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

/* line 292, app/assets/stylesheets/_base.scss */
.prose a:hover {
  color: var(--clay);
  border-color: var(--clay);
}

/* line 295, app/assets/stylesheets/_base.scss */
.prose strong {
  color: var(--fg);
}

/* line 298, app/assets/stylesheets/_base.scss */
.lede {
  font-family: var(--font-serif);
  font-size: var(--fs-lede);
  line-height: 1.28;
  letter-spacing: var(--tr-head);
  color: var(--fg);
  max-width: 24ch;
  font-weight: 400;
  text-wrap: balance;
}

/* line 311, app/assets/stylesheets/_base.scss */
.link {
  position: relative;
  color: var(--fg);
  transition: color var(--dur-fast) var(--ease-out);
}

/* line 316, app/assets/stylesheets/_base.scss */
.link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: var(--line-loud);
  transform-origin: left;
  transition: background var(--dur) var(--ease-out);
}

/* line 328, app/assets/stylesheets/_base.scss */
.link:hover {
  color: var(--clay);
}

/* line 331, app/assets/stylesheets/_base.scss */
.link:hover::after {
  background: var(--clay);
}

/* line 337, app/assets/stylesheets/_base.scss */
.icon {
  width: 1em;
  height: 1em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex-shrink: 0;
}

/* line 348, app/assets/stylesheets/_base.scss */
.icon--solid {
  fill: currentColor;
  stroke: none;
}

/* line 363, app/assets/stylesheets/_base.scss */
.movement {
  --m: 1;
  --sp: 0;
}

/* line 365, app/assets/stylesheets/_base.scss */
.movement > *:not(.masthead__media) {
  opacity: calc(0.28 + var(--m) * 0.72);
  transition: opacity 0.2s linear;
  will-change: opacity, transform;
}

/* line 373, app/assets/stylesheets/_base.scss */
.masthead.movement > .masthead__media {
  opacity: 1;
  transform: scale(calc(1 + var(--sp) * 0.06)) translate3d(0, calc(var(--sp) * -4vh), 0);
}

/* line 380, app/assets/stylesheets/_base.scss */
.masthead.movement > .masthead__inner {
  transform: translate3d(0, calc(var(--sp) * -16vh), 0);
  opacity: calc(1 - var(--sp) * 1.6);
}

/* line 389, app/assets/stylesheets/_base.scss */
#profile.movement .intro__portrait {
  transform: translate3d(0, calc(var(--sp) * -7vh), 0);
}

/* line 393, app/assets/stylesheets/_base.scss */
#profile.movement .intro__body {
  transform: translate3d(0, calc(var(--sp) * -2.5vh), 0);
}

/* line 399, app/assets/stylesheets/_base.scss */
#timeline.movement .tl__entries {
  transform: translate3d(0, calc((1 - var(--m)) * 2.5vh), 0);
}

@media (prefers-reduced-motion: reduce) {
  /* line 404, app/assets/stylesheets/_base.scss */
  .movement > *,
.movement .intro__portrait,
.movement .intro__body,
.movement .tl__entries {
    opacity: 1 !important;
    transform: none !important;
  }
}

/* line 419, app/assets/stylesheets/_base.scss */
.section-label {
  font-family: var(--font-serif);
  font-size: var(--fs-h3);
  font-weight: 400;
  letter-spacing: var(--tr-head);
  color: var(--fg);
  margin-bottom: clamp(1.25rem, 2.5vw, 2rem);
  padding-bottom: var(--sp-3);
  border-bottom: 1px solid var(--line);
}

/* line 27, app/assets/stylesheets/_grain.scss */
body {
  background-color: var(--bg);
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSd0Jz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC44MicgbnVtT2N0YXZlcz0nNCcgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnLz48ZmVDb21wb25lbnRUcmFuc2Zlcj48ZmVGdW5jUiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jQiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzIyMCcgaGVpZ2h0PScyMjAnIGZpbHRlcj0ndXJsKCN0KScvPjwvc3ZnPg==");
  background-repeat: repeat;
  background-blend-mode: multiply;
}

/* line 35, app/assets/stylesheets/_grain.scss */
.band {
  position: relative;
  background-color: var(--bg-sunk);
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSd0Jz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC44MicgbnVtT2N0YXZlcz0nNCcgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnLz48ZmVDb21wb25lbnRUcmFuc2Zlcj48ZmVGdW5jUiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jQiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzIyMCcgaGVpZ2h0PScyMjAnIGZpbHRlcj0ndXJsKCN0KScvPjwvc3ZnPg==");
  background-blend-mode: multiply;
  border-block: 1px solid var(--line-faint);
}

/* line 48, app/assets/stylesheets/_grain.scss */
.press {
  position: relative;
  isolation: isolate;
}

/* line 53, app/assets/stylesheets/_grain.scss */
.press__grit {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxODAnIGhlaWdodD0nMTgwJz48ZmlsdGVyIGlkPSdnJz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC42MicgbnVtT2N0YXZlcz0nNScgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnLz48ZmVDb21wb25lbnRUcmFuc2Zlcj48ZmVGdW5jUiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjU1JyBpbnRlcmNlcHQ9JzAuNDInLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjU1JyBpbnRlcmNlcHQ9JzAuNDInLz48ZmVGdW5jQiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjU1JyBpbnRlcmNlcHQ9JzAuNDInLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzE4MCcgaGVpZ2h0PScxODAnIGZpbHRlcj0ndXJsKCNnKScvPjwvc3ZnPg==");
  mix-blend-mode: multiply;
  opacity: 0.5;
}

/* line 65, app/assets/stylesheets/_grain.scss */
.press__grit--lift {
  mix-blend-mode: overlay;
  opacity: 0.34;
}

/* line 75, app/assets/stylesheets/_grain.scss */
.mark {
  display: block;
  overflow: visible;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

/* line 86, app/assets/stylesheets/_grain.scss */
.mark--rule {
  position: absolute;
  left: -2%;
  bottom: -0.42em;
  width: 104%;
  height: 0.34em;
  color: var(--clay);
  stroke-width: 5;
  opacity: 0.85;
}

/* line 97, app/assets/stylesheets/_grain.scss */
.scribbled {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}

/* line 104, app/assets/stylesheets/_grain.scss */
.mark--ring {
  position: absolute;
  inset: -52% -34%;
  width: auto;
  height: auto;
  color: var(--clay);
  stroke-width: 3.5;
  opacity: 0.7;
}

/* line 114, app/assets/stylesheets/_grain.scss */
.ringed {
  position: relative;
  display: inline-block;
}

/* line 120, app/assets/stylesheets/_grain.scss */
.mark--arrow {
  width: 2.6em;
  height: 1.2em;
  color: var(--fg-4);
  stroke-width: 4;
}

/* line 132, app/assets/stylesheets/_grain.scss */
.dither {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.5;
  background-image: radial-gradient(circle at 1px 1px, rgba(20, 20, 15, 0.13) 0.9px, transparent 1px);
  background-size: 4px 4px;
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 78%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.9), transparent 78%);
}

/* line 149, app/assets/stylesheets/_grain.scss */
.pblur {
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
  z-index: 3;
}

/* line 156, app/assets/stylesheets/_grain.scss */
.pblur > span {
  position: absolute;
  inset: 0;
  display: block;
}

/* line 162, app/assets/stylesheets/_grain.scss */
.pblur > span:nth-child(1) {
  backdrop-filter: blur(1px);
  -webkit-backdrop-filter: blur(1px);
  mask-image: linear-gradient(to top, #000 0%, #000 25%, transparent 50%);
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 25%, transparent 50%);
}

/* line 169, app/assets/stylesheets/_grain.scss */
.pblur > span:nth-child(2) {
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  mask-image: linear-gradient(to top, #000 0%, #000 15%, transparent 38%);
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 15%, transparent 38%);
}

/* line 176, app/assets/stylesheets/_grain.scss */
.pblur > span:nth-child(3) {
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  mask-image: linear-gradient(to top, #000 0%, #000 7%, transparent 24%);
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 7%, transparent 24%);
}

/* line 183, app/assets/stylesheets/_grain.scss */
.pblur > span:nth-child(4) {
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  mask-image: linear-gradient(to top, #000 0%, transparent 12%);
  -webkit-mask-image: linear-gradient(to top, #000 0%, transparent 12%);
}

@media (max-width: 700px) {
  /* line 194, app/assets/stylesheets/_grain.scss */
  .pblur > span:nth-child(1),
.pblur > span:nth-child(2),
.pblur > span:nth-child(3) {
    display: none;
  }
  /* line 198, app/assets/stylesheets/_grain.scss */
  .pblur > span:nth-child(4) {
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    mask-image: linear-gradient(to top, #000 0%, #000 20%, transparent 70%);
    -webkit-mask-image: linear-gradient(to top, #000 0%, #000 20%, transparent 70%);
  }
}

/* line 208, app/assets/stylesheets/_grain.scss */
.grain-layer,
.static-sheet,
.scanlines {
  display: none !important;
}

/* line 13, app/assets/stylesheets/_nav.scss */
body:not(.has-masthead),
.no-js body {
  --nav-s: 1;
}

/* line 18, app/assets/stylesheets/_nav.scss */
.nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--nav-h);
  z-index: 900;
  pointer-events: none;
  --nav-fg: var(--fg);
  --nav-fg-dim: var(--fg-3);
}

/* line 37, app/assets/stylesheets/_nav.scss */
.nav__bar {
  position: relative;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding-inline: var(--gutter);
  pointer-events: auto;
}

/* line 48, app/assets/stylesheets/_nav.scss */
.nav__bar::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(240, 238, 230, 0.88);
  border-bottom: 1px solid var(--line-faint);
  opacity: var(--nav-s);
  transition: opacity 0.15s linear;
  pointer-events: none;
}

/* line 59, app/assets/stylesheets/_nav.scss */
.nav__bar > * {
  position: relative;
  z-index: 1;
}

/* line 63, app/assets/stylesheets/_nav.scss */
body.is-docked .nav__bar::before {
  backdrop-filter: blur(16px) saturate(130%);
  -webkit-backdrop-filter: blur(16px) saturate(130%);
}

/* line 70, app/assets/stylesheets/_nav.scss */
.nav__brand {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: var(--tr-16);
  color: var(--nav-fg);
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 0.65em;
  transition: color var(--dur) var(--ease-out);
}

/* line 82, app/assets/stylesheets/_nav.scss */
.nav__brand:hover {
  color: var(--clay);
}

/* line 86, app/assets/stylesheets/_nav.scss */
.nav__pip {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--clay);
  flex-shrink: 0;
  animation: pip 3.4s var(--ease-soft) infinite;
}

@keyframes pip {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.35;
    transform: scale(0.8);
  }
}

/* line 102, app/assets/stylesheets/_nav.scss */
body.has-masthead .nav__brand {
  opacity: var(--nav-s);
  transition: opacity 0.2s linear, color var(--dur) var(--ease-out);
}

/* line 107, app/assets/stylesheets/_nav.scss */
body.has-masthead:not(.is-docked) .nav__brand {
  pointer-events: none;
}

/* line 111, app/assets/stylesheets/_nav.scss */
.nav__links {
  position: fixed;
  left: 50%;
  top: 0;
  height: var(--nav-h);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.85rem;
  pointer-events: auto;
  transform: translateX(-50%);
  opacity: var(--nav-s);
  transition: opacity 0.2s linear;
}

/* line 126, app/assets/stylesheets/_nav.scss */
.nav__link {
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: 0.9375rem;
  letter-spacing: var(--tr-16);
  color: var(--nav-fg);
  white-space: nowrap;
  position: relative;
  padding-block: 0.4em;
  transition: color var(--dur) var(--ease-out);
}

/* line 137, app/assets/stylesheets/_nav.scss */
.nav__link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0.1em;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform var(--dur) var(--ease-out);
}

/* line 150, app/assets/stylesheets/_nav.scss */
.nav__link:hover {
  color: var(--clay);
}

/* line 153, app/assets/stylesheets/_nav.scss */
.nav__link:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* line 156, app/assets/stylesheets/_nav.scss */
.nav__link[aria-current="page"] {
  color: var(--clay);
}

/* line 159, app/assets/stylesheets/_nav.scss */
.nav__link[aria-current="page"]::after {
  transform: scaleX(1);
  background: var(--clay);
}

@media (max-width: 1180px) {
  /* line 165, app/assets/stylesheets/_nav.scss */
  .nav__links {
    gap: 1.35rem;
  }
}

/* line 170, app/assets/stylesheets/_nav.scss */
.nav__toggle {
  display: none;
  width: 36px;
  height: 36px;
  margin-right: -6px;
  position: relative;
  color: var(--nav-fg);
  flex-shrink: 0;
  transition: color var(--dur) var(--ease-out);
}

/* line 180, app/assets/stylesheets/_nav.scss */
.nav__toggle span {
  position: absolute;
  left: 8px;
  right: 8px;
  height: 1.5px;
  border-radius: 2px;
  background: currentColor;
  transition: transform var(--dur) var(--ease-out), opacity 0.15s linear;
}

/* line 190, app/assets/stylesheets/_nav.scss */
.nav__toggle span:nth-child(1) {
  top: 14px;
}

/* line 191, app/assets/stylesheets/_nav.scss */
.nav__toggle span:nth-child(2) {
  top: 21px;
}

/* line 194, app/assets/stylesheets/_nav.scss */
body.menu-open .nav__toggle {
  color: var(--fg);
}

/* line 197, app/assets/stylesheets/_nav.scss */
body.menu-open .nav__toggle span:nth-child(1) {
  transform: translateY(3.5px) rotate(45deg);
}

/* line 198, app/assets/stylesheets/_nav.scss */
body.menu-open .nav__toggle span:nth-child(2) {
  transform: translateY(-3.5px) rotate(-45deg);
}

@media (max-width: 899px) {
  /* line 207, app/assets/stylesheets/_nav.scss */
  .nav__toggle {
    display: block;
  }
  /* line 211, app/assets/stylesheets/_nav.scss */
  body.has-masthead .nav__toggle {
    opacity: var(--nav-s);
    transition: opacity 0.2s linear, color var(--dur) var(--ease-out);
  }
  /* line 216, app/assets/stylesheets/_nav.scss */
  body.has-masthead:not(.is-docked) .nav__toggle {
    pointer-events: none;
  }
  /* line 220, app/assets/stylesheets/_nav.scss */
  .nav__links {
    display: none;
  }
  /* line 222, app/assets/stylesheets/_nav.scss */
  .nav__links--unused {
    left: 0;
    right: 0;
    width: auto;
    max-width: none;
    padding-inline: var(--gutter);
  }
  /* line 233, app/assets/stylesheets/_nav.scss */
  .nav__link {
    font-size: 1.05rem;
    letter-spacing: var(--tr-16);
  }
}

/* line 243, app/assets/stylesheets/_nav.scss */
.menu {
  position: fixed;
  inset: 0;
  z-index: 880;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: clamp(1.1rem, 3.4vw, 2rem);
  background: rgba(240, 238, 230, 0.78);
  backdrop-filter: blur(26px) saturate(120%);
  -webkit-backdrop-filter: blur(26px) saturate(120%);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--dur) var(--ease-out), visibility var(--dur);
}

/* line 261, app/assets/stylesheets/_nav.scss */
body.menu-open .menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

/* line 267, app/assets/stylesheets/_nav.scss */
.menu__link {
  font-family: var(--font-serif);
  font-size: clamp(2.1rem, 9vw, 3.75rem);
  font-weight: 350;
  letter-spacing: -0.028em;
  color: var(--fg);
  line-height: 1;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.4s var(--ease-out), transform 0.5s var(--ease-out), color var(--dur-fast) var(--ease-out);
}

/* line 281, app/assets/stylesheets/_nav.scss */
.menu__link:hover {
  color: var(--clay);
}

/* line 284, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link {
  opacity: 1;
  transform: none;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(1) {
  transition-delay: 0.075s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(2) {
  transition-delay: 0.11s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(3) {
  transition-delay: 0.145s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(4) {
  transition-delay: 0.18s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(5) {
  transition-delay: 0.215s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(6) {
  transition-delay: 0.25s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(7) {
  transition-delay: 0.285s;
}

/* line 291, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__link:nth-child(8) {
  transition-delay: 0.32s;
}

/* line 296, app/assets/stylesheets/_nav.scss */
.menu__foot {
  margin-top: clamp(1.5rem, 4vw, 3rem);
  display: flex;
  gap: var(--sp-5);
  opacity: 0;
  transition: opacity 0.4s var(--ease-out) 0.34s;
}

/* line 304, app/assets/stylesheets/_nav.scss */
body.menu-open .menu__foot {
  opacity: 1;
}

/* line 307, app/assets/stylesheets/_nav.scss */
.blurable {
  transition: filter var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

/* line 311, app/assets/stylesheets/_nav.scss */
body.menu-open .blurable {
  filter: blur(13px);
  transform: scale(1.012);
}

@media (prefers-reduced-motion: reduce) {
  /* line 317, app/assets/stylesheets/_nav.scss */
  body.menu-open .blurable {
    filter: blur(6px);
    transform: none;
  }
  /* line 318, app/assets/stylesheets/_nav.scss */
  .menu__link {
    transition-duration: 0.01ms;
  }
}

/* line 323, app/assets/stylesheets/_nav.scss */
.progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 2px;
  width: 100%;
  z-index: 950;
  pointer-events: none;
  transform-origin: left;
  transform: scaleX(var(--scroll-p, 0));
  background: var(--clay);
  opacity: var(--nav-s);
}

/* line 13, app/assets/stylesheets/_masthead.scss */
.masthead {
  position: relative;
  width: 100%;
  height: 100vh;
  height: 100svh;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: 1fr auto;
  isolation: isolate;
  background-color: var(--bg);
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSd0Jz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC44MicgbnVtT2N0YXZlcz0nNCcgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnLz48ZmVDb21wb25lbnRUcmFuc2Zlcj48ZmVGdW5jUiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jQiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzIyMCcgaGVpZ2h0PScyMjAnIGZpbHRlcj0ndXJsKCN0KScvPjwvc3ZnPg==");
  background-blend-mode: multiply;
}

/* line 43, app/assets/stylesheets/_masthead.scss */
.masthead__dissolve {
  --dissolve-h: clamp(200px, 30vh, 420px);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: var(--dissolve-h);
  z-index: 3;
  pointer-events: none;
  background-color: var(--bg);
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyMjAnIGhlaWdodD0nMjIwJz48ZmlsdGVyIGlkPSd0Jz48ZmVUdXJidWxlbmNlIHR5cGU9J2ZyYWN0YWxOb2lzZScgYmFzZUZyZXF1ZW5jeT0nMC44MicgbnVtT2N0YXZlcz0nNCcgc3RpdGNoVGlsZXM9J3N0aXRjaCcvPjxmZUNvbG9yTWF0cml4IHR5cGU9J3NhdHVyYXRlJyB2YWx1ZXM9JzAnLz48ZmVDb21wb25lbnRUcmFuc2Zlcj48ZmVGdW5jUiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jRyB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48ZmVGdW5jQiB0eXBlPSdsaW5lYXInIHNsb3BlPScwLjE0JyBpbnRlcmNlcHQ9JzAuODYnLz48L2ZlQ29tcG9uZW50VHJhbnNmZXI+PC9maWx0ZXI+PHJlY3Qgd2lkdGg9JzIyMCcgaGVpZ2h0PScyMjAnIGZpbHRlcj0ndXJsKCN0KScvPjwvc3ZnPg==");
  background-blend-mode: multiply;
  background-position: 0 calc(var(--dissolve-h) - 100svh);
  mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.043) 12.5%, rgba(0, 0, 0, 0.156) 25%, rgba(0, 0, 0, 0.316) 37.5%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.684) 62.5%, rgba(0, 0, 0, 0.844) 75%, rgba(0, 0, 0, 0.957) 87.5%, black 100%);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.043) 12.5%, rgba(0, 0, 0, 0.156) 25%, rgba(0, 0, 0, 0.316) 37.5%, rgba(0, 0, 0, 0.5) 50%, rgba(0, 0, 0, 0.684) 62.5%, rgba(0, 0, 0, 0.844) 75%, rgba(0, 0, 0, 0.957) 87.5%, black 100%);
}

/* line 87, app/assets/stylesheets/_masthead.scss */
.masthead__media {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  --plate-fade: calc(100% - var(--sp, 0) * 88%);
  --plate-mid:  calc(100% - var(--sp, 0) * 62%);
  --plate-soft: calc(100% - var(--sp, 0) * 34%);
  mask-image: linear-gradient(to bottom, #000 var(--plate-fade), rgba(0, 0, 0, 0.72) var(--plate-mid), rgba(0, 0, 0, 0.24) var(--plate-soft), transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, #000 var(--plate-fade), rgba(0, 0, 0, 0.72) var(--plate-mid), rgba(0, 0, 0, 0.24) var(--plate-soft), transparent 100%);
}

/* line 125, app/assets/stylesheets/_masthead.scss */
.masthead__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 22%;
  filter: contrast(1.04) saturate(0.94) brightness(1.02);
  will-change: transform;
}

/* line 138, app/assets/stylesheets/_masthead.scss */
.masthead__hold {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: radial-gradient(68% 24% at 50% 45%, rgba(20, 20, 15, 0.44) 0%, rgba(20, 20, 15, 0.2) 62%, rgba(20, 20, 15, 0) 100%), linear-gradient(to bottom, rgba(20, 20, 15, 0.16) 0%, rgba(20, 20, 15, 0) 34%);
}

/* line 156, app/assets/stylesheets/_masthead.scss */
.masthead__inner {
  position: relative;
  z-index: 4;
  grid-row: 1;
  align-self: center;
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  min-width: 0;
  padding-inline: var(--gutter);
  padding-top: calc(var(--nav-h) + 12vh);
  text-align: center;
}

/* line 170, app/assets/stylesheets/_masthead.scss */
.masthead__title {
  font-family: var(--font-serif);
  font-size: var(--fs-display);
  font-weight: 350;
  line-height: 0.94;
  letter-spacing: var(--tr-display);
  color: var(--fg-photo);
  text-shadow: 0 2px 40px rgba(20, 20, 15, 0.34);
  text-wrap: balance;
  margin-bottom: clamp(1rem, 2.4vw, 1.9rem);
}

@media (max-width: 899px) {
  /* line 186, app/assets/stylesheets/_masthead.scss */
  .masthead__img {
    object-position: 50% 26%;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* line 190, app/assets/stylesheets/_masthead.scss */
  .masthead__media {
    transform: none !important;
  }
}

/* line 11, app/assets/stylesheets/_components.scss */
.reveal {
  transition: opacity 0.7s var(--ease-out), transform 0.8s var(--ease-out);
}

/* line 17, app/assets/stylesheets/_components.scss */
.reveal.is-armed {
  opacity: 0;
  transform: translateY(18px);
}

/* line 22, app/assets/stylesheets/_components.scss */
.reveal.is-armed.is-in {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  /* line 28, app/assets/stylesheets/_components.scss */
  .reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* line 33, app/assets/stylesheets/_components.scss */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7em;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: var(--tr-16);
  color: var(--fg);
  border: 1px solid var(--line-loud);
  border-radius: 999px;
  padding: 0.7em 1.3em;
  background: transparent;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), background var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}

/* line 52, app/assets/stylesheets/_components.scss */
.btn:hover {
  color: var(--fg);
  border-color: var(--fg);
  background: var(--bg-raise);
  transform: translateY(-1px);
}

/* line 59, app/assets/stylesheets/_components.scss */
.btn:active {
  transform: none;
}

/* line 61, app/assets/stylesheets/_components.scss */
.btn .icon {
  width: 0.95em;
  height: 0.95em;
}

/* line 64, app/assets/stylesheets/_components.scss */
.btn--clay,
.btn--ember {
  color: var(--fg);
  border-color: var(--clay);
  background: var(--clay);
}

/* line 70, app/assets/stylesheets/_components.scss */
.btn--clay:hover,
.btn--ember:hover {
  color: var(--fg);
  background: var(--clay-deep);
  border-color: var(--clay-deep);
}

/* line 77, app/assets/stylesheets/_components.scss */
.btn--ghost {
  background: transparent;
  border-color: transparent;
  padding-inline: 0;
}

/* line 82, app/assets/stylesheets/_components.scss */
.btn--ghost:hover {
  background: transparent;
  border-color: transparent;
  color: var(--fg);
}

/* line 87, app/assets/stylesheets/_components.scss */
.pills {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-2);
}

/* line 93, app/assets/stylesheets/_components.scss */
.pill {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: var(--tr-16);
  color: var(--fg-4);
  border: 0;
  border-radius: 0;
  padding: 0.2em 0 0.45em;
  position: relative;
  transition: color var(--dur-fast) var(--ease-out);
}

/* line 107, app/assets/stylesheets/_components.scss */
.pill::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--clay);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--dur) var(--ease-out);
}

/* line 120, app/assets/stylesheets/_components.scss */
.pill:hover {
  color: var(--fg-2);
}

/* line 122, app/assets/stylesheets/_components.scss */
.pill[aria-pressed="true"] {
  color: var(--fg);
}

/* line 125, app/assets/stylesheets/_components.scss */
.pill[aria-pressed="true"]::after {
  transform: scaleX(1);
}

/* line 129, app/assets/stylesheets/_components.scss */
.pills {
  gap: clamp(1.25rem, 3vw, 2.25rem);
}

/* line 133, app/assets/stylesheets/_components.scss */
.social {
  display: flex;
  gap: var(--sp-2);
}

/* line 138, app/assets/stylesheets/_components.scss */
.social__link {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-faint);
  border-radius: 50%;
  color: var(--fg-3);
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur) var(--ease-out);
}

/* line 151, app/assets/stylesheets/_components.scss */
.social__link .icon {
  width: 15px;
  height: 15px;
}

/* line 153, app/assets/stylesheets/_components.scss */
.social__link:hover {
  color: var(--fg);
  border-color: var(--line-loud);
  transform: translateY(-2px);
}

/* line 162, app/assets/stylesheets/_components.scss */
.card {
  position: relative;
  background: var(--bg-raise);
  border: 1px solid var(--line-faint);
  border-radius: var(--r-lg);
  overflow: hidden;
}

/* line 175, app/assets/stylesheets/_components.scss */
.bento {
  display: grid;
  gap: 3px;
  grid-template-columns: 1fr;
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--line);
  border: 1px solid var(--line);
}

/* line 188, app/assets/stylesheets/_components.scss */
.panel {
  position: relative;
  display: block;
  min-width: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: var(--bg-raise);
  isolation: isolate;
}

/* line 198, app/assets/stylesheets/_components.scss */
.panel__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: contrast(1.03) saturate(0.97);
  transform: scale(1.02);
  transition: transform 0.9s var(--ease-out);
}

/* line 212, app/assets/stylesheets/_components.scss */
.panel--mark {
  background: var(--manilla);
}

/* line 215, app/assets/stylesheets/_components.scss */
.panel--mark .panel__img {
  object-fit: contain;
  padding: clamp(1.25rem, 4%, 3rem);
  padding-bottom: 42%;
  filter: none;
  mix-blend-mode: multiply;
}

/* line 223, app/assets/stylesheets/_components.scss */
.panel--mark .panel__scrim {
  background: none;
}

/* line 224, app/assets/stylesheets/_components.scss */
.panel--mark .panel__index {
  color: var(--fg-4);
}

/* line 225, app/assets/stylesheets/_components.scss */
.panel--mark .panel__title {
  color: var(--fg);
}

/* line 226, app/assets/stylesheets/_components.scss */
.panel--mark .panel__sub {
  color: var(--fg-3);
}

/* line 227, app/assets/stylesheets/_components.scss */
.panel--mark .panel__arrow {
  color: var(--fg-3);
}

/* line 231, app/assets/stylesheets/_components.scss */
.panel__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(18, 15, 10, 0.88) 0%, rgba(18, 15, 10, 0.42) 34%, rgba(18, 15, 10, 0) 62%);
  transition: opacity var(--dur) var(--ease-out);
}

/* line 243, app/assets/stylesheets/_components.scss */
.panel__body {
  position: absolute;
  inset: auto 0 0 0;
  z-index: 2;
  padding: clamp(0.9rem, 2vw, 1.35rem);
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--sp-3);
}

/* line 254, app/assets/stylesheets/_components.scss */
.panel__index {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-photo-2);
  display: block;
  margin-bottom: 0.5em;
}

/* line 263, app/assets/stylesheets/_components.scss */
.panel__title {
  font-family: var(--font-serif);
  font-size: clamp(1.3rem, 1.05rem + 1vw, 2rem);
  font-weight: 380;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--fg-photo);
}

/* line 272, app/assets/stylesheets/_components.scss */
.panel__sub {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-photo-2);
  margin-top: 0.5em;
  display: block;
}

/* line 281, app/assets/stylesheets/_components.scss */
.panel__arrow {
  flex-shrink: 0;
  color: var(--fg-photo-2);
  opacity: 0;
  transform: translate(-6px, 6px);
  transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}

/* line 291, app/assets/stylesheets/_components.scss */
.panel__arrow .icon {
  width: 18px;
  height: 18px;
}

/* line 295, app/assets/stylesheets/_components.scss */
.panel:hover .panel__img {
  transform: scale(1.06);
}

/* line 296, app/assets/stylesheets/_components.scss */
.panel:hover .panel__scrim {
  opacity: 0.86;
}

/* line 297, app/assets/stylesheets/_components.scss */
.panel:hover .panel__arrow {
  opacity: 1;
  transform: none;
  color: var(--clay-soft);
}

/* line 300, app/assets/stylesheets/_components.scss */
.panel--mark:hover .panel__arrow {
  color: var(--clay);
}

@media (min-width: 520px) {
  /* line 303, app/assets/stylesheets/_components.scss */
  .bento {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 760px) {
  /* line 308, app/assets/stylesheets/_components.scss */
  .bento {
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: minmax(0, 1fr);
  }
  /* line 313, app/assets/stylesheets/_components.scss */
  .panel {
    aspect-ratio: auto;
  }
  /* line 315, app/assets/stylesheets/_components.scss */
  .bento--six {
    height: clamp(340px, 42vw, 520px);
  }
  /* line 318, app/assets/stylesheets/_components.scss */
  .bento--six .panel:nth-child(1) {
    grid-column: 1 / span 2;
    grid-row: 1 / span 2;
  }
  /* line 319, app/assets/stylesheets/_components.scss */
  .bento--six .panel:nth-child(2) {
    grid-column: 3 / span 2;
    grid-row: 1;
  }
  /* line 320, app/assets/stylesheets/_components.scss */
  .bento--six .panel:nth-child(3) {
    grid-column: 5 / span 2;
    grid-row: 1;
  }
  /* line 321, app/assets/stylesheets/_components.scss */
  .bento--six .panel:nth-child(4) {
    grid-column: 3 / span 1;
    grid-row: 2;
  }
  /* line 322, app/assets/stylesheets/_components.scss */
  .bento--six .panel:nth-child(5) {
    grid-column: 4 / span 1;
    grid-row: 2;
  }
  /* line 323, app/assets/stylesheets/_components.scss */
  .bento--six .panel:nth-child(6) {
    grid-column: 5 / span 2;
    grid-row: 2;
  }
}

@media (min-width: 1200px) {
  /* line 328, app/assets/stylesheets/_components.scss */
  .bento--six {
    height: clamp(400px, 32vw, 560px);
  }
}

/* line 337, app/assets/stylesheets/_components.scss */
.gallery {
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--bg-sunk);
}

/* line 345, app/assets/stylesheets/_components.scss */
.gallery__viewport {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  overscroll-behavior-x: contain;
}

/* line 355, app/assets/stylesheets/_components.scss */
.gallery__viewport::-webkit-scrollbar {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  /* line 359, app/assets/stylesheets/_components.scss */
  .gallery__viewport {
    scroll-behavior: auto;
  }
}

/* line 362, app/assets/stylesheets/_components.scss */
.gallery__slide {
  flex: 0 0 100%;
  scroll-snap-align: center;
  scroll-snap-stop: always;
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--bg-sunk);
}

/* line 370, app/assets/stylesheets/_components.scss */
.gallery__slide img,
.gallery__slide video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* line 381, app/assets/stylesheets/_components.scss */
.gallery--contain .gallery__slide img, .gallery--contain .gallery__slide video {
  object-fit: contain;
}

/* line 384, app/assets/stylesheets/_components.scss */
.gallery__caption {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 2.6rem 1.15rem 0.9rem;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-photo);
  background: linear-gradient(to top, rgba(18, 15, 10, 0.85), transparent);
  pointer-events: none;
}

/* line 400, app/assets/stylesheets/_components.scss */
.gallery__bar {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: 3;
  display: flex;
  gap: 3px;
  padding: 10px 12px;
  pointer-events: none;
}

/* line 412, app/assets/stylesheets/_components.scss */
.gallery__seg {
  flex: 1;
  height: 2px;
  border-radius: 2px;
  background: rgba(255, 253, 246, 0.45);
  overflow: hidden;
  pointer-events: auto;
  cursor: pointer;
  position: relative;
  border: none;
  padding: 0;
}

/* line 424, app/assets/stylesheets/_components.scss */
.gallery__seg::before {
  content: "";
  position: absolute;
  inset: -9px 0;
}

/* line 431, app/assets/stylesheets/_components.scss */
.gallery__seg-fill {
  display: block;
  height: 100%;
  width: 100%;
  background: var(--fg-photo);
  transform-origin: left;
  transform: scaleX(0);
}

/* line 440, app/assets/stylesheets/_components.scss */
.gallery__seg.is-done .gallery__seg-fill {
  transform: scaleX(1);
}

/* line 442, app/assets/stylesheets/_components.scss */
.gallery__seg.is-active .gallery__seg-fill {
  background: var(--clay-soft);
  transform: scaleX(var(--seg-p, 1));
}

/* line 449, app/assets/stylesheets/_components.scss */
.gallery.is-playing .gallery__seg.is-active .gallery__seg-fill {
  transition: transform 0.12s linear;
}

/* line 453, app/assets/stylesheets/_components.scss */
.gallery__arrow {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 40px;
  height: 40px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  color: var(--fg);
  background: rgba(251, 250, 245, 0.82);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(20, 20, 15, 0.1);
  border-radius: 50%;
  opacity: 0;
  transition: opacity var(--dur) var(--ease-out), background var(--dur-fast) var(--ease-out);
}

/* line 471, app/assets/stylesheets/_components.scss */
.gallery__arrow .icon {
  width: 16px;
  height: 16px;
}

/* line 473, app/assets/stylesheets/_components.scss */
.gallery__arrow:hover {
  background: var(--bg-card);
}

/* line 474, app/assets/stylesheets/_components.scss */
.gallery__arrow[disabled] {
  opacity: 0 !important;
  pointer-events: none;
}

/* line 477, app/assets/stylesheets/_components.scss */
.gallery__arrow--prev {
  left: 12px;
}

/* line 478, app/assets/stylesheets/_components.scss */
.gallery__arrow--next {
  right: 12px;
}

/* line 480, app/assets/stylesheets/_components.scss */
.gallery:hover .gallery__arrow,
.gallery:focus-within .gallery__arrow {
  opacity: 1;
}

@media (hover: none) {
  /* line 485, app/assets/stylesheets/_components.scss */
  .gallery__arrow {
    opacity: 0.75;
  }
}

/* line 488, app/assets/stylesheets/_components.scss */
.gallery__count {
  position: absolute;
  right: 12px;
  bottom: 10px;
  z-index: 3;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-2);
  background: rgba(251, 250, 245, 0.85);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  padding: 0.35em 0.7em;
  border-radius: 999px;
  pointer-events: none;
  font-variant-numeric: tabular-nums;
}

/* line 508, app/assets/stylesheets/_components.scss */
.disclosure__trigger {
  display: flex;
  align-items: center;
  gap: 0.8em;
  width: 100%;
  text-align: left;
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  letter-spacing: var(--tr-label);
  color: var(--fg-3);
  border: 1px solid var(--line-faint);
  border-radius: var(--r-md);
  padding: 0.85em 1.2em;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

/* line 523, app/assets/stylesheets/_components.scss */
.disclosure__trigger:hover {
  color: var(--fg-2);
  border-color: var(--line);
}

/* line 525, app/assets/stylesheets/_components.scss */
.disclosure__trigger .icon {
  margin-left: auto;
  width: 13px;
  height: 13px;
  transition: transform var(--dur) var(--ease-out);
}

/* line 532, app/assets/stylesheets/_components.scss */
.disclosure__trigger[aria-expanded="true"] {
  color: var(--fg);
  border-color: var(--line);
}

/* line 536, app/assets/stylesheets/_components.scss */
.disclosure__trigger[aria-expanded="true"] .icon {
  transform: rotate(180deg);
}

/* line 540, app/assets/stylesheets/_components.scss */
.disclosure__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows var(--dur-slow) var(--ease-out);
}

/* line 545, app/assets/stylesheets/_components.scss */
.disclosure__panel > div {
  overflow: hidden;
}

/* line 548, app/assets/stylesheets/_components.scss */
.disclosure__panel.is-open {
  grid-template-rows: 1fr;
}

/* line 550, app/assets/stylesheets/_components.scss */
.no-js .disclosure__panel {
  grid-template-rows: 1fr;
}

/* line 556, app/assets/stylesheets/_components.scss */
.index-list {
  border-top: 1px solid var(--line-faint);
}

/* line 560, app/assets/stylesheets/_components.scss */
.index-row {
  display: grid;
  grid-template-columns: 6.5rem 1fr auto;
  align-items: baseline;
  gap: var(--sp-4);
  padding: 0.72rem 0.35rem;
  border-bottom: 1px solid var(--line-faint);
  transition: background var(--dur-fast) var(--ease-out), padding-left var(--dur) var(--ease-out);
}

/* line 569, app/assets/stylesheets/_components.scss */
.index-row:hover {
  background: var(--bg-raise);
  padding-left: 0.9rem;
}

/* line 573, app/assets/stylesheets/_components.scss */
.index-row:hover .index-row__title {
  color: var(--fg);
}

/* line 574, app/assets/stylesheets/_components.scss */
.index-row:hover .index-row__mark {
  opacity: 1;
  transform: none;
  color: var(--clay);
}

/* line 578, app/assets/stylesheets/_components.scss */
.index-row__date {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-4);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* line 587, app/assets/stylesheets/_components.scss */
.index-row__title {
  font-size: var(--fs-sm);
  color: var(--fg-2);
  line-height: 1.45;
  transition: color var(--dur-fast) var(--ease-out);
}

/* line 594, app/assets/stylesheets/_components.scss */
.index-row__mark {
  color: var(--fg-5);
  opacity: 0.5;
  transform: translate(-4px, 3px);
  transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out), color var(--dur) var(--ease-out);
}

/* line 603, app/assets/stylesheets/_components.scss */
.index-row__mark .icon {
  width: 13px;
  height: 13px;
}

@media (max-width: 600px) {
  /* line 607, app/assets/stylesheets/_components.scss */
  .index-row {
    grid-template-columns: 1fr auto;
    row-gap: 0.2rem;
    padding-block: 0.85rem;
  }
  /* line 613, app/assets/stylesheets/_components.scss */
  .index-row__date {
    grid-column: 1 / -1;
    order: -1;
  }
}

/* line 618, app/assets/stylesheets/_components.scss */
.spec {
  border: 1px solid var(--line-faint);
  border-radius: var(--r-md);
  overflow: hidden;
}

/* line 624, app/assets/stylesheets/_components.scss */
.spec__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: 0.7rem 1.05rem;
  background: var(--bg-sunk);
  border-bottom: 1px solid var(--line-faint);
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--tr-label);
  color: var(--fg-2);
}

/* line 639, app/assets/stylesheets/_components.scss */
.spec__row {
  display: grid;
  grid-template-columns: 7.5rem 1fr;
  gap: var(--sp-4);
  padding: 0.62rem 1.05rem;
  border-bottom: 1px solid var(--line-faint);
  font-size: var(--fs-sm);
  color: var(--fg-2);
}

/* line 648, app/assets/stylesheets/_components.scss */
.spec__row:last-child {
  border-bottom: none;
}

/* line 651, app/assets/stylesheets/_components.scss */
.spec__label {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: var(--tr-16);
  color: var(--fg-3);
  padding-top: 0.15em;
}

/* line 660, app/assets/stylesheets/_components.scss */
.spec__value {
  font-family: var(--font-code);
  font-size: var(--fs-sm);
  line-height: var(--lh-ui);
}

@media (max-width: 520px) {
  /* line 663, app/assets/stylesheets/_components.scss */
  .spec__row {
    grid-template-columns: 1fr;
    gap: 0.15rem;
  }
}

/* line 668, app/assets/stylesheets/_components.scss */
.dtable {
  border: 1px solid var(--line-faint);
  border-radius: var(--r-md);
  overflow: hidden;
  font-family: var(--font-code);
  font-size: var(--fs-sm);
}

/* line 676, app/assets/stylesheets/_components.scss */
.dtable__row {
  display: grid;
  grid-template-columns: 1fr 6rem 7rem;
  padding: 0.5rem 1.05rem;
  border-bottom: 1px solid var(--line-faint);
  color: var(--fg-2);
  font-variant-numeric: tabular-nums;
}

/* line 684, app/assets/stylesheets/_components.scss */
.dtable__row:last-child {
  border-bottom: none;
}

/* line 686, app/assets/stylesheets/_components.scss */
.dtable__row > span:nth-child(2),
.dtable__row > span:nth-child(3) {
  text-align: right;
  white-space: nowrap;
}

/* line 690, app/assets/stylesheets/_components.scss */
.dtable__row--head {
  background: var(--bg-sunk);
  color: var(--fg-2);
  font-family: var(--font-sans);
  font-weight: 500;
  font-size: var(--fs-label);
  letter-spacing: var(--tr-label);
}

/* line 699, app/assets/stylesheets/_components.scss */
.dtable__row--over {
  color: var(--over);
}

/* line 700, app/assets/stylesheets/_components.scss */
.dtable__row--ok {
  color: var(--ok);
}

/* line 702, app/assets/stylesheets/_components.scss */
.dtable__cell-stack {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  white-space: nowrap;
}

/* line 709, app/assets/stylesheets/_components.scss */
.dtable__note {
  font-size: var(--fs-micro);
  color: var(--clay);
  letter-spacing: var(--tr-12);
}

@media (max-width: 700px) {
  /* line 716, app/assets/stylesheets/_components.scss */
  .dtable__row {
    grid-template-columns: 1fr auto;
    gap: var(--sp-3);
  }
  /* line 720, app/assets/stylesheets/_components.scss */
  .dtable__row > span:nth-child(2) {
    display: none;
  }
}

/* line 726, app/assets/stylesheets/_components.scss */
.people {
  display: grid;
  gap: 0.6rem;
  grid-template-columns: repeat(auto-fill, minmax(285px, 1fr));
}

/* line 732, app/assets/stylesheets/_components.scss */
.person {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--bg-raise);
  border: 1px solid var(--line-faint);
  border-radius: var(--r-lg);
  padding: 1rem 1.15rem;
  transition: border-color var(--dur) var(--ease-out), background var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

/* line 745, app/assets/stylesheets/_components.scss */
.person:hover {
  border-color: var(--line-loud);
  background: var(--bg-sunk);
  transform: translateY(-2px);
}

/* line 752, app/assets/stylesheets/_components.scss */
.person__photo {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--bg-hover);
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  position: relative;
}

/* line 764, app/assets/stylesheets/_components.scss */
.person__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* line 771, app/assets/stylesheets/_components.scss */
.person__photo .icon {
  width: 22px;
  height: 22px;
  color: var(--fg-5);
}

/* line 775, app/assets/stylesheets/_components.scss */
.person__body {
  min-width: 0;
  flex: 1;
}

/* line 777, app/assets/stylesheets/_components.scss */
.person__name {
  font-size: 1rem;
  font-weight: 450;
  color: var(--fg);
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* line 785, app/assets/stylesheets/_components.scss */
.person__role {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-label);
  color: var(--fg-4);
  margin-top: 0.35em;
}

/* line 793, app/assets/stylesheets/_components.scss */
.person__bio {
  font-size: var(--fs-sm);
  color: var(--fg-3);
  line-height: 1.6;
  margin-top: 0.55em;
}

/* line 799, app/assets/stylesheets/_components.scss */
.person__bio:empty {
  display: none;
}

/* line 804, app/assets/stylesheets/_components.scss */
.page-hero {
  display: flex;
  align-items: flex-start;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  padding-bottom: clamp(2rem, 4vw, 3.25rem);
  border-bottom: 1px solid var(--line-faint);
}

/* line 812, app/assets/stylesheets/_components.scss */
.page-hero__mark {
  flex-shrink: 0;
  width: clamp(76px, 11vw, 132px);
}

/* line 816, app/assets/stylesheets/_components.scss */
.page-hero__mark img {
  width: 100%;
  height: auto;
  opacity: 0.9;
}

/* line 819, app/assets/stylesheets/_components.scss */
.page-hero__body {
  flex: 1;
  min-width: 0;
}

/* line 821, app/assets/stylesheets/_components.scss */
.page-hero__title {
  font-size: var(--fs-h1);
  font-weight: 400;
  color: var(--fg);
  line-height: 1;
  margin-bottom: 0.35rem;
}

/* line 829, app/assets/stylesheets/_components.scss */
.page-hero__sub {
  font-size: var(--fs-lede);
  font-weight: 400;
  color: var(--fg-2);
  line-height: 1.3;
}

/* line 836, app/assets/stylesheets/_components.scss */
.page-hero__meta {
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  letter-spacing: var(--tr-label);
  color: var(--fg-4);
  margin-top: 0.7rem;
}

/* line 844, app/assets/stylesheets/_components.scss */
.page-hero__links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.5rem;
  margin-top: 1.4rem;
}

/* line 852, app/assets/stylesheets/_components.scss */
.page-hero__link {
  display: inline-flex;
  align-items: center;
  gap: 0.65em;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: var(--tr-16);
  color: var(--fg-2);
  border-bottom: 1px solid var(--line-loud);
  padding-bottom: 2px;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

/* line 865, app/assets/stylesheets/_components.scss */
.page-hero__link .icon {
  width: 11px;
  height: 11px;
  opacity: 0.7;
}

/* line 867, app/assets/stylesheets/_components.scss */
.page-hero__link:hover {
  color: var(--clay-ink);
  border-color: var(--clay);
}

@media (max-width: 700px) {
  /* line 871, app/assets/stylesheets/_components.scss */
  .page-hero {
    flex-direction: column;
    gap: 1.25rem;
  }
}

/* line 876, app/assets/stylesheets/_components.scss */
.footer {
  position: relative;
  padding-block: clamp(1.5rem, 3vw, 2.25rem);
  margin-top: clamp(2rem, 4vw, 3.5rem);
  background: var(--bg-ink);
  color: var(--fg-invert);
}

/* line 889, app/assets/stylesheets/_components.scss */
.footer__base {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-4);
  justify-content: space-between;
  align-items: center;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-invert-2);
}

/* line 903, app/assets/stylesheets/_components.scss */
.content {
  animation: page-in 0.5s var(--ease-out) both;
}

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

/* line 910, app/assets/stylesheets/_components.scss */
body.is-leaving .content {
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 0.2s var(--ease-soft), transform 0.2s var(--ease-soft);
}

@media (prefers-reduced-motion: reduce) {
  /* line 917, app/assets/stylesheets/_components.scss */
  .content {
    animation: none;
  }
  /* line 918, app/assets/stylesheets/_components.scss */
  body.is-leaving .content {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

/* line 923, app/assets/stylesheets/_components.scss */
.gallery--portrait .gallery__slide {
  aspect-ratio: 4 / 5;
}

/* line 924, app/assets/stylesheets/_components.scss */
.gallery--square .gallery__slide {
  aspect-ratio: 1 / 1;
}

/* line 925, app/assets/stylesheets/_components.scss */
.gallery--tall .gallery__slide {
  aspect-ratio: 3 / 4;
}

/* line 929, app/assets/stylesheets/_components.scss */
.intro {
  display: grid;
  gap: clamp(1.75rem, 4vw, 3.5rem);
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 820px) {
  /* line 937, app/assets/stylesheets/_components.scss */
  .intro {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  }
}

/* line 940, app/assets/stylesheets/_components.scss */
.intro__body {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(1.25rem, 3vw, 2rem);
}

/* line 947, app/assets/stylesheets/_components.scss */
.intro__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3);
}

/* line 953, app/assets/stylesheets/_components.scss */
.intro__facts {
  width: 100%;
  border-top: 1px solid var(--line-faint);
}

/* line 958, app/assets/stylesheets/_components.scss */
.intro__fact {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: 0.6rem 0;
  border-bottom: 1px solid var(--line-faint);
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  letter-spacing: var(--tr-label);
}

/* line 970, app/assets/stylesheets/_components.scss */
.intro__fact dt {
  color: var(--fg-3);
}

/* line 971, app/assets/stylesheets/_components.scss */
.intro__fact dd {
  color: var(--fg);
  text-align: right;
  margin: 0;
}

/* line 976, app/assets/stylesheets/_components.scss */
.plates {
  display: grid;
  gap: clamp(2rem, 5vw, 3.5rem);
}

/* line 981, app/assets/stylesheets/_components.scss */
.plate__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-4);
  margin-bottom: 0.85rem;
}

/* line 989, app/assets/stylesheets/_components.scss */
.plate__title {
  font-size: clamp(1.05rem, 0.95rem + 0.5vw, 1.4rem);
  font-weight: 400;
  color: var(--fg);
  letter-spacing: -0.015em;
  transition: color var(--dur-fast) var(--ease-out);
}

/* line 997, app/assets/stylesheets/_components.scss */
a.plate__title:hover {
  color: var(--clay-deep);
}

/* line 999, app/assets/stylesheets/_components.scss */
.plate__meta {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  letter-spacing: var(--tr-16);
  color: var(--fg-3);
  white-space: nowrap;
}

/* line 1009, app/assets/stylesheets/_components.scss */
.footer .social__link {
  border-color: var(--line-invert);
  color: var(--fg-invert-2);
}

/* line 1013, app/assets/stylesheets/_components.scss */
.footer .social__link:hover {
  color: var(--fg-invert);
  border-color: var(--fg-invert-2);
}

/* line 1018, app/assets/stylesheets/_components.scss */
.footer__stamp {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  letter-spacing: var(--tr-16);
  color: var(--fg-invert-2);
}

/* line 1027, app/assets/stylesheets/_components.scss */
.intro__list {
  display: grid;
  gap: 0.4rem;
  justify-items: end;
}

/* line 1033, app/assets/stylesheets/_components.scss */
.intro__list li {
  display: inline-flex;
  align-items: baseline;
  gap: 0.6em;
}

/* line 1039, app/assets/stylesheets/_components.scss */
.intro__tag {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-weight: 600;
  letter-spacing: var(--tr-12);
  color: var(--clay-ink);
  border: 1px solid var(--clay);
  border-radius: 999px;
  padding: 0.1em 0.55em 0.15em;
  white-space: nowrap;
}

/* line 1051, app/assets/stylesheets/_components.scss */
.footer__elapsed {
  font: inherit;
  color: var(--fg-invert);
  cursor: pointer;
  border-bottom: 1px dotted var(--line-invert);
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

/* line 1058, app/assets/stylesheets/_components.scss */
.footer__elapsed:hover {
  color: #fff;
  border-color: var(--fg-invert-2);
}

/* line 17, app/assets/stylesheets/_mosaic.scss */
.mosaic {
  display: grid;
  grid-template-columns: repeat(60, minmax(0, 1fr));
  gap: 3px;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--line);
}

/* line 31, app/assets/stylesheets/_mosaic.scss */
.mosaic--bleed {
  border-inline: 0;
  border-radius: 0;
}

/* line 36, app/assets/stylesheets/_mosaic.scss */
.mtile {
  position: relative;
  display: block;
  min-width: 0;
  grid-column: span var(--c1);
  overflow: hidden;
  background: var(--bg-sunk);
  isolation: isolate;
  cursor: zoom-in;
}

/* line 51, app/assets/stylesheets/_mosaic.scss */
.mtile::before {
  content: "";
  display: block;
  padding-top: var(--pad);
}

@media (min-width: 620px) {
  /* line 59, app/assets/stylesheets/_mosaic.scss */
  .mtile {
    grid-column: span var(--c2);
  }
}

@media (min-width: 1000px) {
  /* line 63, app/assets/stylesheets/_mosaic.scss */
  .mtile {
    grid-column: span var(--c3);
  }
}

/* line 69, app/assets/stylesheets/_mosaic.scss */
.mtile__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: contrast(1.03) saturate(0.97);
  transform: scale(1.005);
  transition: transform 0.9s var(--ease-out);
}

/* line 88, app/assets/stylesheets/_mosaic.scss */
.mtile__tab {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: 0.5rem 0.7rem;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-weight: 500;
  letter-spacing: var(--tr-12);
  color: var(--fg-photo);
  background: linear-gradient(to top, rgba(18, 15, 10, 0.62), rgba(18, 15, 10, 0.16));
  backdrop-filter: blur(7px) saturate(1.1);
  -webkit-backdrop-filter: blur(7px) saturate(1.1);
  opacity: 0;
  transform: translateY(100%);
  transition: opacity var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

/* line 114, app/assets/stylesheets/_mosaic.scss */
.mtile__no {
  font-variant-numeric: tabular-nums;
  color: var(--fg-photo-2);
}

/* line 118, app/assets/stylesheets/_mosaic.scss */
.mtile:hover .mtile__img,
.mtile:focus-visible .mtile__img {
  transform: scale(1.045);
}

/* line 119, app/assets/stylesheets/_mosaic.scss */
.mtile:hover .mtile__tab,
.mtile:focus-visible .mtile__tab {
  opacity: 1;
  transform: none;
}

@media (hover: none) {
  /* line 124, app/assets/stylesheets/_mosaic.scss */
  .mtile__tab {
    display: none;
  }
}

/* line 133, app/assets/stylesheets/_mosaic.scss */
.mtile--clip {
  background: var(--bg-ink);
}

/* line 137, app/assets/stylesheets/_mosaic.scss */
.mtile__clip {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: var(--bg-ink);
}

/* line 154, app/assets/stylesheets/_mosaic.scss */
.mtile__play {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: 4.25rem;
  height: 4.25rem;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  color: var(--fg-photo);
  border: 1px solid rgba(250, 249, 245, 0.6);
  border-radius: 50%;
  background: rgba(20, 20, 19, 0.42);
  backdrop-filter: blur(6px) saturate(1.1);
  -webkit-backdrop-filter: blur(6px) saturate(1.1);
  box-shadow: 0 2px 16px rgba(20, 20, 19, 0.3);
  pointer-events: none;
}

/* line 173, app/assets/stylesheets/_mosaic.scss */
.mtile__play::before {
  content: "";
  width: 1.15rem;
  height: 1.35rem;
  margin-left: 0.28rem;
  background: currentColor;
  clip-path: polygon(0 0, 100% 50%, 0 100%);
}

@media (max-width: 620px) {
  /* line 185, app/assets/stylesheets/_mosaic.scss */
  .mtile__play {
    width: 3.25rem;
    height: 3.25rem;
  }
  /* line 189, app/assets/stylesheets/_mosaic.scss */
  .mtile__play::before {
    width: 0.9rem;
    height: 1.05rem;
  }
}

/* line 195, app/assets/stylesheets/_mosaic.scss */
.mtile--clip .mtile__tab {
  top: 0;
  bottom: auto;
  opacity: 1;
  transform: none;
  background: linear-gradient(to bottom, rgba(18, 15, 10, 0.62), rgba(18, 15, 10, 0.16));
  display: flex;
}

@media (prefers-reduced-motion: reduce) {
  /* line 205, app/assets/stylesheets/_mosaic.scss */
  .mtile__img {
    transition: none;
  }
  /* line 209, app/assets/stylesheets/_mosaic.scss */
  .mtile:hover .mtile__img,
.mtile:focus-visible .mtile__img {
    transform: scale(1.005);
  }
  /* line 210, app/assets/stylesheets/_mosaic.scss */
  .mtile:hover .mtile__tab,
.mtile:focus-visible .mtile__tab {
    transition: none;
  }
}

/* line 220, app/assets/stylesheets/_mosaic.scss */
.gallery__slide[data-frame] {
  cursor: zoom-in;
}

/* line 235, app/assets/stylesheets/_mosaic.scss */
.viewer {
  position: fixed;
  inset: 0;
  z-index: 9000;
  opacity: 0;
  transition: opacity var(--dur) var(--ease-soft);
}

/* line 242, app/assets/stylesheets/_mosaic.scss */
.viewer[hidden] {
  display: none;
}

/* line 243, app/assets/stylesheets/_mosaic.scss */
.viewer.is-open {
  opacity: 1;
}

/* line 248, app/assets/stylesheets/_mosaic.scss */
.viewer__scrim {
  position: absolute;
  inset: 0;
  background: rgba(240, 238, 230, 0.78);
  backdrop-filter: blur(26px) saturate(120%);
  -webkit-backdrop-filter: blur(26px) saturate(120%);
}

/* line 256, app/assets/stylesheets/_mosaic.scss */
.viewer__frame {
  position: relative;
  z-index: 1;
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: clamp(0.7rem, 1.6vw, 1.25rem);
  padding: clamp(0.85rem, 2.2vw, 1.75rem);
  transform: scale(0.985);
  transition: transform var(--dur) var(--ease-out);
}

/* line 268, app/assets/stylesheets/_mosaic.scss */
.viewer.is-open .viewer__frame {
  transform: none;
}

/* line 277, app/assets/stylesheets/_mosaic.scss */
.viewer__frame:focus,
.viewer__frame:focus-visible {
  outline: none;
}

/* line 282, app/assets/stylesheets/_mosaic.scss */
.viewer__head {
  display: flex;
  align-items: baseline;
  gap: var(--sp-4);
  padding-bottom: 0.7rem;
  border-bottom: 1px solid var(--line-loud);
}

/* line 292, app/assets/stylesheets/_mosaic.scss */
.viewer__ident {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 0.2rem 0.85rem;
  min-width: 0;
}

/* line 300, app/assets/stylesheets/_mosaic.scss */
.viewer__plate {
  font-family: var(--font-serif);
  font-size: var(--fs-h3);
  font-weight: 380;
  letter-spacing: var(--tr-head);
  color: var(--fg);
}

/* line 310, app/assets/stylesheets/_mosaic.scss */
.viewer__meta,
.viewer__count {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-2);
}

/* line 318, app/assets/stylesheets/_mosaic.scss */
.viewer__count {
  margin-left: auto;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* line 330, app/assets/stylesheets/_mosaic.scss */
.viewer__stage {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  overflow: hidden;
}

/* line 343, app/assets/stylesheets/_mosaic.scss */
.viewer.is-still .viewer__stage {
  touch-action: none;
}

/* line 345, app/assets/stylesheets/_mosaic.scss */
.viewer__img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  box-shadow: 0 0 0 1px rgba(20, 20, 19, 0.18), 0 3px 10px rgba(20, 20, 19, 0.1), 0 26px 60px rgba(20, 20, 19, 0.26);
  transform-origin: center center;
}

/* line 366, app/assets/stylesheets/_mosaic.scss */
.viewer__img[hidden] {
  display: none;
}

/* line 371, app/assets/stylesheets/_mosaic.scss */
.viewer__img.is-eased {
  transition: transform var(--dur) var(--ease-out);
}

@media (prefers-reduced-motion: reduce) {
  /* line 374, app/assets/stylesheets/_mosaic.scss */
  .viewer__img.is-eased {
    transition: none;
  }
}

/* line 383, app/assets/stylesheets/_mosaic.scss */
.viewer__clip {
  flex: 1 1 auto;
  align-self: stretch;
  min-width: 0;
  width: 100%;
  object-fit: contain;
  display: block;
  background: transparent;
}

/* line 392, app/assets/stylesheets/_mosaic.scss */
.viewer__clip[hidden] {
  display: none;
}

/* line 395, app/assets/stylesheets/_mosaic.scss */
.viewer__cap {
  font-family: var(--font-serif);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: var(--fg-2);
  text-align: center;
  max-width: var(--maxw-text);
  margin-inline: auto;
  padding-top: 0.55rem;
  border-top: 1px solid var(--line-loud);
}

/* line 409, app/assets/stylesheets/_mosaic.scss */
.viewer__nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 46px;
  height: 46px;
  transform: translateY(-50%);
  display: grid;
  place-items: center;
  color: var(--fg);
  background: rgba(250, 249, 245, 0.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid var(--line-loud);
  border-radius: 50%;
  box-shadow: 0 2px 12px rgba(20, 20, 19, 0.22);
  transition: background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}

/* line 433, app/assets/stylesheets/_mosaic.scss */
.viewer__nav .icon {
  width: 17px;
  height: 17px;
}

/* line 435, app/assets/stylesheets/_mosaic.scss */
.viewer__nav:hover {
  color: var(--fg-invert);
  background: var(--fg);
  border-color: var(--fg);
}

/* line 441, app/assets/stylesheets/_mosaic.scss */
.viewer__nav[hidden] {
  display: none;
}

/* line 444, app/assets/stylesheets/_mosaic.scss */
.viewer__nav--prev {
  left: clamp(0.5rem, 1.8vw, 1.5rem);
}

/* line 445, app/assets/stylesheets/_mosaic.scss */
.viewer__nav--next {
  right: clamp(0.5rem, 1.8vw, 1.5rem);
}

@media (max-width: 700px) {
  /* line 448, app/assets/stylesheets/_mosaic.scss */
  .viewer__nav {
    width: 40px;
    height: 40px;
  }
  /* line 449, app/assets/stylesheets/_mosaic.scss */
  .viewer__cap {
    font-size: var(--fs-micro);
    font-family: var(--font-sans);
    letter-spacing: var(--tr-12);
  }
}

@media (prefers-reduced-motion: reduce) {
  /* line 453, app/assets/stylesheets/_mosaic.scss */
  .viewer,
.viewer__frame {
    transition: none;
  }
  /* line 456, app/assets/stylesheets/_mosaic.scss */
  .viewer__frame {
    transform: none;
  }
}

/* line 466, app/assets/stylesheets/_mosaic.scss */
.viewer__stage {
  padding: clamp(2.5rem, 6vh, 5rem) clamp(2.5rem, 6vw, 6rem);
  box-sizing: border-box;
}

/* line 471, app/assets/stylesheets/_mosaic.scss */
.viewer__stage img,
.viewer__stage video {
  max-width: 100%;
  max-height: 100%;
}

@media (max-width: 620px) {
  /* line 478, app/assets/stylesheets/_mosaic.scss */
  .viewer__stage {
    padding: clamp(3.5rem, 9vh, 5rem) clamp(1.5rem, 6vw, 3rem);
  }
}

/* line 25, app/assets/stylesheets/_timeline.scss */
.tl-bench {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-4) var(--sp-5);
  margin-bottom: clamp(1.75rem, 3.4vw, 2.75rem);
  padding-bottom: var(--sp-4);
  border-bottom: 1px solid var(--line-faint);
}

/* line 38, app/assets/stylesheets/_timeline.scss */
.tl {
  --tl-lead: 3rem;
  --tl-lane: 11px;
  --tl-barw: 4px;
  --tl-plot-h: 100svh;
  --tl-mpx: calc(var(--tl-plot-h) / var(--tl-span));
  --tl-chart-w: calc(var(--tl-lead) + var(--tl-lanes) * var(--tl-lane));
  --tl-play: 0px;
  display: grid;
  grid-template-columns: var(--tl-chart-w) minmax(0, 1fr);
  column-gap: clamp(1.75rem, 5vw, 6rem);
  align-items: start;
  padding-right: var(--gutter);
}

@media (min-width: 1200px) {
  /* line 62, app/assets/stylesheets/_timeline.scss */
  .tl {
    --tl-lead: 4.5rem;
    --tl-lane: 15px;
    --tl-barw: 6px;
  }
}

/* line 71, app/assets/stylesheets/_timeline.scss */
.tl__chart {
  position: sticky;
  top: 0;
  align-self: start;
  mask-image: linear-gradient(to right, transparent 0, #000 22%);
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 22%);
}

/* line 82, app/assets/stylesheets/_timeline.scss */
.tl__plot {
  position: relative;
  height: var(--tl-plot-h);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 14%, #000 86%, transparent 100%);
}

/* line 91, app/assets/stylesheets/_timeline.scss */
.tl__spine {
  position: absolute;
  left: var(--tl-lead);
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--line);
}

/* line 101, app/assets/stylesheets/_timeline.scss */
.tl-tick {
  --top: calc(var(--t) * var(--tl-mpx));
  position: absolute;
  left: var(--tl-lead);
  top: 0;
  width: 4px;
  height: 1px;
  background: var(--line);
  transform: translate(-4px, var(--top));
}

/* line 112, app/assets/stylesheets/_timeline.scss */
.tl-tick--major {
  width: 10px;
  background: var(--line-loud);
  transform: translate(-10px, var(--top));
}

/* line 118, app/assets/stylesheets/_timeline.scss */
.tl-year {
  --top: calc(var(--t) * var(--tl-mpx));
  position: absolute;
  left: var(--tl-lead);
  right: 0;
  top: 0;
  height: 1px;
  background: var(--line-faint);
  transform: translateY(var(--top));
}

/* line 129, app/assets/stylesheets/_timeline.scss */
.tl-year__label {
  position: absolute;
  right: calc(100% + 0.85rem);
  top: -0.55em;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0.03em;
  color: var(--fg-4);
  line-height: 1;
}

/* line 142, app/assets/stylesheets/_timeline.scss */
.tl-now {
  --top: calc(var(--t) * var(--tl-mpx));
  position: absolute;
  left: var(--tl-lead);
  right: 0;
  top: 0;
  height: 1px;
  background: var(--clay);
  transform: translateY(var(--top));
  z-index: 4;
}

/* line 156, app/assets/stylesheets/_timeline.scss */
.tl-now::before {
  content: "";
  position: absolute;
  left: -4px;
  top: -3.5px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--clay);
  box-shadow: 0 0 0 4px var(--bg), 0 0 0 6px var(--clay-wash);
  animation: tl-live 2.6s var(--ease-soft) infinite;
}

/* line 169, app/assets/stylesheets/_timeline.scss */
.tl-now__label {
  position: absolute;
  right: 0;
  top: -0.55em;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-weight: 600;
  letter-spacing: var(--tr-12);
  color: var(--clay-ink);
  background: var(--bg);
  padding-left: 0.5em;
  line-height: 1;
}

/* line 185, app/assets/stylesheets/_timeline.scss */
.tl-bar {
  --top: calc(var(--t) * var(--tl-mpx));
  appearance: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  --len: calc(var(--d) * var(--tl-mpx));
  --x: calc(var(--lane) * var(--tl-lane));
  position: absolute;
  left: calc(var(--tl-lead) + 4px);
  top: 0;
  width: var(--tl-barw);
  height: var(--len);
  min-height: 6px;
  border-radius: 999px;
  background: var(--line-loud);
  transform: translate(var(--x), var(--top));
  transition: background var(--dur) var(--ease-out), opacity var(--dur) var(--ease-out);
}

/* line 210, app/assets/stylesheets/_timeline.scss */
.tl-bar--professional {
  background: var(--track-pro);
}

/* line 211, app/assets/stylesheets/_timeline.scss */
.tl-bar--extracurricular {
  background: var(--track-extra);
}

/* line 217, app/assets/stylesheets/_timeline.scss */
.tl-bar--professional.is-live {
  background: var(--track-pro);
}

/* line 218, app/assets/stylesheets/_timeline.scss */
.tl-bar--extracurricular.is-live {
  background: var(--track-extra);
}

/* line 219, app/assets/stylesheets/_timeline.scss */
.tl-bar:not(.is-live) {
  opacity: 0.45;
}

/* line 230, app/assets/stylesheets/_timeline.scss */
.tl-bar--open {
  width: var(--tl-barw);
  z-index: 2;
  mask-image: linear-gradient(to bottom, transparent 0, #000 54px);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 54px);
}

@keyframes tl-live {
  0%, 100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(0.72);
    opacity: 0.55;
  }
}

/* line 243, app/assets/stylesheets/_timeline.scss */
.tl-bar.is-read {
  opacity: 1;
  width: calc(var(--tl-barw) + 3px);
  margin-left: -1.5px;
  z-index: 3;
  box-shadow: 0 0 0 3px var(--bg), 0 0 0 4px var(--fg);
}

/* line 253, app/assets/stylesheets/_timeline.scss */
.tl-bar.is-off {
  opacity: 0.12;
  pointer-events: none;
}

/* line 256, app/assets/stylesheets/_timeline.scss */
.tl-bar::after {
  content: "";
  position: absolute;
  inset: -4px -6px;
}

/* line 262, app/assets/stylesheets/_timeline.scss */
.tl-bar:hover,
.tl-bar:focus-visible {
  opacity: 1;
}

/* line 267, app/assets/stylesheets/_timeline.scss */
.tl-bar:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 3px;
}

/* line 279, app/assets/stylesheets/_timeline.scss */
.tl__play {
  position: absolute;
  left: var(--tl-lead);
  right: 0;
  top: 0;
  height: 1px;
  background: var(--clay);
  opacity: 0;
  transform: translateY(var(--tl-play));
  transition: opacity var(--dur) var(--ease-out), transform var(--dur-slow) var(--ease-out);
}

/* line 295, app/assets/stylesheets/_timeline.scss */
.tl__play::before {
  content: "";
  position: absolute;
  left: -3px;
  top: -3px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--clay);
}

/* line 307, app/assets/stylesheets/_timeline.scss */
.tl.is-scanning .tl__play {
  opacity: 1;
}

/* line 316, app/assets/stylesheets/_timeline.scss */
.tl__entries {
  min-width: 0;
}

/* line 318, app/assets/stylesheets/_timeline.scss */
.tl-entry {
  position: relative;
  padding-top: clamp(0.9rem, 1.6vw, 1.35rem);
  padding-bottom: clamp(1.1rem, 2.2vw, 1.9rem);
  border-top: 1px solid var(--line-faint);
  transition: border-color var(--dur) var(--ease-out);
}

/* line 325, app/assets/stylesheets/_timeline.scss */
.tl-entry::before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  width: 0;
  height: 1px;
  background: var(--clay);
  transition: width var(--dur-slow) var(--ease-out);
}

/* line 337, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-hidden {
  display: none;
}

/* line 338, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read::before {
  width: 100%;
}

/* line 340, app/assets/stylesheets/_timeline.scss */
.tl-entry__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.9rem;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: var(--tr-12);
  color: var(--fg-4);
  transition: color var(--dur) var(--ease-out);
}

/* line 353, app/assets/stylesheets/_timeline.scss */
.tl-entry__dur {
  color: var(--fg-3);
  font-weight: 500;
}

/* line 355, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read .tl-entry__meta {
  color: var(--fg-2);
}

/* line 356, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read .tl-entry__dur {
  color: var(--fg);
}

/* line 360, app/assets/stylesheets/_timeline.scss */
.tl-entry__span {
  position: relative;
  display: block;
  width: 104px;
  height: 1px;
  margin-left: auto;
  background: var(--line-faint);
}

/* line 369, app/assets/stylesheets/_timeline.scss */
.tl-entry__span-fill {
  --x: calc(var(--t) / var(--tl-span) * 100%);
  --w: calc(var(--d) / var(--tl-span) * 100%);
  position: absolute;
  top: -1px;
  left: var(--x);
  width: var(--w);
  min-width: 3px;
  height: 3px;
  border-radius: 999px;
  background: var(--line-loud);
  transition: background var(--dur) var(--ease-out);
}

/* line 383, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read .tl-entry__span-fill {
  background: var(--fg);
}

/* line 385, app/assets/stylesheets/_timeline.scss */
.tl-entry__row {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr);
  gap: var(--sp-4);
  align-items: start;
  margin-top: 0.85rem;
}

/* line 398, app/assets/stylesheets/_timeline.scss */
.tl-entry__mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
}

/* line 404, app/assets/stylesheets/_timeline.scss */
.tl-entry__mark img {
  width: 38px;
  height: 38px;
  object-fit: contain;
}

/* line 412, app/assets/stylesheets/_timeline.scss */
.tl-entry__mark--dot {
  border-color: transparent;
  background: transparent;
}

/* line 416, app/assets/stylesheets/_timeline.scss */
.tl-entry__mark--dot::after {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 1px solid var(--line-loud);
  transition: border-color var(--dur) var(--ease-out);
}

/* line 426, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read .tl-entry__mark--dot::after {
  border-color: var(--fg);
}

/* line 428, app/assets/stylesheets/_timeline.scss */
.tl-entry__body {
  min-width: 0;
}

/* line 430, app/assets/stylesheets/_timeline.scss */
.tl-entry__title {
  font-family: var(--font-serif);
  font-size: clamp(1.15rem, 1.05rem + 0.5vw, 1.4rem);
  font-weight: 450;
  line-height: 1.2;
  letter-spacing: -0.015em;
  color: var(--fg);
}

/* line 439, app/assets/stylesheets/_timeline.scss */
.tl-entry__org {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-3);
  margin-top: 0.5em;
  line-height: 1.45;
}

/* line 448, app/assets/stylesheets/_timeline.scss */
.tl-entry__desc {
  font-size: var(--fs-sm);
  color: var(--fg-2);
  line-height: 1.62;
  margin-top: 0.65em;
  max-width: 62ch;
}

/* line 455, app/assets/stylesheets/_timeline.scss */
.tl-entry__desc a {
  color: var(--fg);
  border-bottom: 1px solid var(--line-loud);
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

/* line 462, app/assets/stylesheets/_timeline.scss */
.tl-entry__desc a:hover {
  color: var(--clay);
  border-color: var(--clay);
}

/* line 474, app/assets/stylesheets/_timeline.scss */
.tl-entry--extracurricular {
  padding-top: clamp(0.55rem, 1vw, 0.85rem);
  padding-bottom: clamp(0.7rem, 1.4vw, 1.15rem);
  border-top-color: var(--line-faint);
}

/* line 479, app/assets/stylesheets/_timeline.scss */
.tl-entry--extracurricular .tl-entry__row {
  margin-top: 0.5rem;
}

/* line 481, app/assets/stylesheets/_timeline.scss */
.tl-entry--extracurricular .tl-entry__title {
  font-size: var(--fs-body);
  font-weight: 400;
  color: var(--fg-2);
}

/* line 487, app/assets/stylesheets/_timeline.scss */
.tl-entry--extracurricular .tl-entry__org {
  color: var(--fg-4);
}

/* line 488, app/assets/stylesheets/_timeline.scss */
.tl-entry--extracurricular .tl-entry__desc {
  color: var(--fg-3);
  margin-top: 0.4em;
}

/* line 489, app/assets/stylesheets/_timeline.scss */
.tl-entry--extracurricular .tl-entry__meta {
  opacity: 0.85;
}

@media (max-width: 1100px) {
  /* line 495, app/assets/stylesheets/_timeline.scss */
  .tl {
    --tl-lead: 2.5rem;
    --tl-lane: 11px;
    --tl-barw: 6px;
  }
  /* line 501, app/assets/stylesheets/_timeline.scss */
  .tl-entry__row {
    grid-template-columns: 40px minmax(0, 1fr);
  }
  /* line 502, app/assets/stylesheets/_timeline.scss */
  .tl-entry__mark {
    width: 40px;
    height: 40px;
  }
  /* line 502, app/assets/stylesheets/_timeline.scss */
  .tl-entry__mark img {
    width: 27px;
    height: 27px;
  }
}

@media (max-width: 820px) {
  /* line 515, app/assets/stylesheets/_timeline.scss */
  .tl {
    --tl-lead: 2.6rem;
    --tl-lane: 8px;
    --tl-barw: 5px;
    column-gap: 1.25rem;
  }
  /* line 522, app/assets/stylesheets/_timeline.scss */
  .tl-tick {
    display: none;
  }
  /* line 523, app/assets/stylesheets/_timeline.scss */
  .tl-tick--major {
    display: block;
  }
  /* line 525, app/assets/stylesheets/_timeline.scss */
  .tl-year__label {
    right: calc(100% + 0.4rem);
    font-size: 0.6rem;
  }
  /* line 526, app/assets/stylesheets/_timeline.scss */
  .tl-now__label {
    font-size: 0.53rem;
    letter-spacing: 0.1em;
  }
  /* line 529, app/assets/stylesheets/_timeline.scss */
  .tl-entry__row {
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 0.75rem;
    margin-top: 0.7rem;
  }
  /* line 535, app/assets/stylesheets/_timeline.scss */
  .tl-entry__mark {
    width: 34px;
    height: 34px;
  }
  /* line 535, app/assets/stylesheets/_timeline.scss */
  .tl-entry__mark img {
    width: 23px;
    height: 23px;
  }
  /* line 536, app/assets/stylesheets/_timeline.scss */
  .tl-entry__meta {
    letter-spacing: 0.05em;
    gap: 0.3rem 0.65rem;
  }
  /* line 537, app/assets/stylesheets/_timeline.scss */
  .tl-entry__span {
    width: 88px;
  }
}

@media (max-width: 520px) {
  /* line 546, app/assets/stylesheets/_timeline.scss */
  .tl {
    --tl-barw: 4px;
    column-gap: 0.7rem;
  }
  /* line 551, app/assets/stylesheets/_timeline.scss */
  .tl-bar {
    left: calc(var(--tl-lead) + 2px);
  }
  /* line 552, app/assets/stylesheets/_timeline.scss */
  .tl-bar--extracurricular {
    width: calc(var(--tl-barw) - 2px);
  }
  /* line 554, app/assets/stylesheets/_timeline.scss */
  .tl-year__label {
    right: calc(100% + 0.28rem);
    font-size: 0.56rem;
  }
  /* line 555, app/assets/stylesheets/_timeline.scss */
  .tl-tick--major {
    width: 6px;
    transform: translate(-6px, var(--top));
  }
  /* line 556, app/assets/stylesheets/_timeline.scss */
  .tl-now__label {
    display: none;
  }
  /* line 558, app/assets/stylesheets/_timeline.scss */
  .tl-entry {
    padding-bottom: 1.25rem;
  }
  /* line 559, app/assets/stylesheets/_timeline.scss */
  .tl-entry__span {
    width: 76px;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* line 563, app/assets/stylesheets/_timeline.scss */
  .tl-bar,
.tl-entry,
.tl-entry::before,
.tl-entry__meta,
.tl-entry__span-fill,
.tl__play {
    transition: none;
  }
}

/* line 573, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-targeted .tl-entry__title {
  color: var(--clay-deep);
}

/* line 575, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-targeted::after {
  content: "";
  position: absolute;
  inset: -0.6rem -1rem;
  border-radius: var(--r-md);
  background: var(--clay-wash);
  animation: tl-ack 1.6s var(--ease-out) forwards;
  pointer-events: none;
  z-index: -1;
}

@keyframes tl-ack {
  0% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* line 592, app/assets/stylesheets/_timeline.scss */
  .tl-entry.is-targeted::after {
    animation: none;
    opacity: 0;
  }
}

/* line 604, app/assets/stylesheets/_timeline.scss */
.tl-entry {
  transition: opacity var(--dur) var(--ease-out);
}

/* line 605, app/assets/stylesheets/_timeline.scss */
.tl__entries:hover .tl-entry:not(:hover) {
  opacity: 1;
}

/* line 607, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read .tl-entry__title {
  color: var(--fg);
  font-weight: 600;
}

@media (prefers-reduced-motion: reduce) {
  /* line 613, app/assets/stylesheets/_timeline.scss */
  .tl-now::before {
    animation: none;
  }
}

/* line 621, app/assets/stylesheets/_timeline.scss */
.tl-entry__desc {
  max-width: 62ch;
}

/* line 622, app/assets/stylesheets/_timeline.scss */
.tl-entry__title {
  font-size: var(--fs-h3);
}

@media (min-width: 1100px) {
  /* line 625, app/assets/stylesheets/_timeline.scss */
  .tl-entry__body {
    max-width: 74ch;
  }
}

/* line 633, app/assets/stylesheets/_timeline.scss */
.pill__dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  display: inline-block;
  margin-right: 0.55em;
  vertical-align: 0.02em;
}

/* line 642, app/assets/stylesheets/_timeline.scss */
.pill--pro .pill__dot {
  background: var(--track-pro);
}

/* line 643, app/assets/stylesheets/_timeline.scss */
.pill--extra .pill__dot {
  background: var(--track-extra);
}

/* line 645, app/assets/stylesheets/_timeline.scss */
.tl-bench {
  padding-inline: 0;
}

/* line 649, app/assets/stylesheets/_timeline.scss */
.tl-entry__org--lead {
  font-size: var(--fs-h3);
  font-family: var(--font-serif);
  font-weight: 600;
  color: var(--fg);
  letter-spacing: var(--tr-head);
  text-transform: none;
}

/* line 658, app/assets/stylesheets/_timeline.scss */
.tl-roles {
  margin-top: 0.65rem;
  border-left: 1px solid var(--track-pro);
  padding-left: 1.1rem;
  display: grid;
  gap: 0.9rem;
}

/* line 666, app/assets/stylesheets/_timeline.scss */
.tl-role {
  position: relative;
}

/* line 669, app/assets/stylesheets/_timeline.scss */
.tl-role::before {
  content: "";
  position: absolute;
  left: calc(-1.1rem - 1px);
  top: 0.6em;
  width: 9px;
  height: 1px;
  background: var(--track-pro);
}

/* line 679, app/assets/stylesheets/_timeline.scss */
.tl-role__title {
  font-family: var(--font-serif);
  font-size: var(--fs-body);
  font-weight: 600;
  color: var(--fg);
  line-height: var(--lh-tight);
}

/* line 687, app/assets/stylesheets/_timeline.scss */
.tl-role--latest .tl-role__title {
  color: var(--fg);
}

/* line 689, app/assets/stylesheets/_timeline.scss */
.tl-role:not(.tl-role--latest) .tl-role__title {
  font-weight: 400;
  color: var(--fg-2);
}

/* line 694, app/assets/stylesheets/_timeline.scss */
.tl-role__dates {
  display: block;
  margin-top: 0.2em;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-3);
}

/* line 706, app/assets/stylesheets/_timeline.scss */
.tl-bar__promo {
  position: absolute;
  left: -2px;
  right: -2px;
  bottom: calc(var(--k) * var(--tl-mpx));
  height: 2px;
  background: var(--bg);
  pointer-events: none;
}

/* line 725, app/assets/stylesheets/_timeline.scss */
.tl-entry__dates.is-live {
  color: var(--fg);
  font-weight: 600;
}

@media (max-width: 760px) {
  /* line 745, app/assets/stylesheets/_timeline.scss */
  .tl {
    --tl-lane: 0px;
    --tl-lead: 3rem;
  }
  /* line 750, app/assets/stylesheets/_timeline.scss */
  .tl-bar--extracurricular {
    display: none;
  }
  /* line 753, app/assets/stylesheets/_timeline.scss */
  .tl-bar {
    --lane: 0 !important;
  }
}

@media (max-width: 480px) {
  /* line 763, app/assets/stylesheets/_timeline.scss */
  .tl {
    grid-template-columns: minmax(0, 1fr);
    padding-inline: var(--gutter);
  }
  /* line 768, app/assets/stylesheets/_timeline.scss */
  .tl__chart {
    display: none;
  }
}

/* line 777, app/assets/stylesheets/_timeline.scss */
.tl-media {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.9rem;
}

/* line 784, app/assets/stylesheets/_timeline.scss */
.tl-shot {
  display: block;
  width: clamp(84px, 17%, 124px);
  aspect-ratio: 4 / 3;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--bg-sunk);
  transition: border-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

/* line 796, app/assets/stylesheets/_timeline.scss */
.tl-shot:hover, .tl-shot:focus-visible {
  border-color: var(--line-loud);
  transform: translateY(-2px);
}

/* line 804, app/assets/stylesheets/_timeline.scss */
.tl-shot__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* line 817, app/assets/stylesheets/_timeline.scss */
.tl-entry__mark--dot {
  display: grid;
  place-items: center;
}

/* line 821, app/assets/stylesheets/_timeline.scss */
.tl-entry__mark--dot::after {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 1.5px solid var(--track-extra);
  background: transparent;
}

/* line 831, app/assets/stylesheets/_timeline.scss */
.tl-entry.is-read .tl-entry__mark--dot::after {
  background: var(--track-extra);
  border-color: var(--track-extra);
}

/* line 17, app/assets/stylesheets/_page-sc.scss */
.is-rail-0 {
  color: var(--rail-0);
}

/* line 18, app/assets/stylesheets/_page-sc.scss */
.is-rail-1 {
  color: var(--rail-1);
}

/* line 19, app/assets/stylesheets/_page-sc.scss */
.is-rail-2 {
  color: var(--rail-2);
}

/* line 20, app/assets/stylesheets/_page-sc.scss */
.is-rail-3 {
  color: var(--rail-3);
}

/* line 31, app/assets/stylesheets/_page-sc.scss */
.sc-mark {
  width: clamp(92px, 12vw, 148px);
  background: var(--bg-ink);
  border-radius: var(--r-md);
  overflow: hidden;
}

/* line 37, app/assets/stylesheets/_page-sc.scss */
.sc-mark img {
  opacity: 1;
}

/* line 43, app/assets/stylesheets/_page-sc.scss */
.sc-mark--inset {
  padding: clamp(0.5rem, 1vw, 0.85rem);
}

/* line 50, app/assets/stylesheets/_page-sc.scss */
.sc-duo {
  display: grid;
  align-items: start;
  gap: clamp(1.5rem, 3.5vw, 3rem);
}

/* line 60, app/assets/stylesheets/_page-sc.scss */
.sc-duo > * {
  min-width: 0;
}

@media (min-width: 900px) {
  /* line 63, app/assets/stylesheets/_page-sc.scss */
  .sc-duo {
    grid-template-columns: minmax(0, 1.12fr) minmax(0, 1fr);
  }
  /* line 68, app/assets/stylesheets/_page-sc.scss */
  .sc-duo--essay {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  }
}

/* line 76, app/assets/stylesheets/_page-sc.scss */
.sc-plate {
  max-width: 46rem;
  margin-inline: auto;
}

/* line 82, app/assets/stylesheets/_page-sc.scss */
.sc-plate--wide {
  max-width: 62rem;
}

/* line 87, app/assets/stylesheets/_page-sc.scss */
.sc-toggle {
  width: auto;
  margin-inline: auto;
}

/* line 98, app/assets/stylesheets/_page-sc.scss */
.sc-timeline {
  display: grid;
  gap: var(--sp-5);
}

/* line 103, app/assets/stylesheets/_page-sc.scss */
.sc-milestone {
  position: relative;
  padding-left: 1.35rem;
  border-left: 1px solid var(--line);
}

/* line 109, app/assets/stylesheets/_page-sc.scss */
.sc-milestone__tick {
  position: absolute;
  left: -4px;
  top: 0.3rem;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--bg-raise);
  border: 1px solid var(--line-loud);
}

/* line 120, app/assets/stylesheets/_page-sc.scss */
.sc-milestone.is-active .sc-milestone__tick {
  background: var(--clay);
  border-color: var(--clay);
  box-shadow: 0 0 0 4px var(--clay-wash);
}

/* line 127, app/assets/stylesheets/_page-sc.scss */
.sc-milestone__date {
  display: block;
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tr-label);
  font-variant-numeric: tabular-nums lining-nums;
  color: var(--fg-3);
  line-height: 1;
}

/* line 138, app/assets/stylesheets/_page-sc.scss */
.sc-milestone.is-active .sc-milestone__date {
  color: var(--clay-ink);
}

/* line 140, app/assets/stylesheets/_page-sc.scss */
.sc-milestone__label {
  display: block;
  margin-top: 0.6em;
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: var(--fg-2);
  text-wrap: pretty;
}

/* line 150, app/assets/stylesheets/_page-sc.scss */
.sc-milestone__label + .sc-milestone__label {
  margin-top: 0.3em;
  color: var(--fg-3);
}

@media (min-width: 760px) {
  /* line 156, app/assets/stylesheets/_page-sc.scss */
  .sc-timeline {
    grid-auto-flow: column;
    grid-auto-columns: minmax(0, 1fr);
    gap: 0;
  }
  /* line 162, app/assets/stylesheets/_page-sc.scss */
  .sc-milestone {
    border-left: none;
    border-top: 1px solid var(--line);
    padding: 1.15rem var(--sp-5) 0 0;
  }
  /* line 168, app/assets/stylesheets/_page-sc.scss */
  .sc-milestone__tick {
    left: 0;
    top: -4px;
  }
}

/* line 179, app/assets/stylesheets/_page-sc.scss */
.sc-rack-frame {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  background: var(--bg-raise);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: clamp(0.6rem, 1.6vw, 1.25rem);
}

/* line 189, app/assets/stylesheets/_page-sc.scss */
.sc-rack {
  display: block;
  width: 100%;
  min-width: 430px;
  height: auto;
  font-family: var(--font-code);
  font-variant-numeric: tabular-nums lining-nums;
}

/* line 203, app/assets/stylesheets/_page-sc.scss */
.sc-rack__top,
.sc-rack__side,
.sc-rack__face {
  stroke: var(--line-loud);
  stroke-width: 1;
}

/* line 210, app/assets/stylesheets/_page-sc.scss */
.sc-rack__top {
  fill: var(--bg-sunk);
}

/* line 211, app/assets/stylesheets/_page-sc.scss */
.sc-rack__face {
  fill: var(--bg);
}

/* line 212, app/assets/stylesheets/_page-sc.scss */
.sc-rack__side {
  fill: var(--fg-5);
}

/* line 216, app/assets/stylesheets/_page-sc.scss */
.sc-rack__nic {
  fill: var(--bg-sunk);
  stroke: var(--line-loud);
}

/* line 222, app/assets/stylesheets/_page-sc.scss */
.sc-rack__port {
  fill: var(--bg-raise);
}

/* line 227, app/assets/stylesheets/_page-sc.scss */
.sc-rack__label,
.sc-rack__rate {
  paint-order: stroke fill;
  stroke-width: 2;
  stroke-linejoin: round;
}

/* line 234, app/assets/stylesheets/_page-sc.scss */
.sc-rack__label {
  fill: var(--fg);
  font-weight: 500;
  stroke: var(--bg-sunk);
}

/* line 240, app/assets/stylesheets/_page-sc.scss */
.sc-rack__rate {
  stroke: var(--bg-raise);
}

/* line 242, app/assets/stylesheets/_page-sc.scss */
.sc-rack__node {
  fill: var(--fg-2);
  font-weight: 500;
}

/* line 246, app/assets/stylesheets/_page-sc.scss */
.sc-legend {
  display: grid;
  gap: 0.55rem;
  margin-top: var(--sp-4);
}

/* line 252, app/assets/stylesheets/_page-sc.scss */
.sc-legend__row {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 500;
  letter-spacing: var(--tr-label);
  color: var(--fg-2);
}

/* line 264, app/assets/stylesheets/_page-sc.scss */
.sc-legend__dot {
  width: 16px;
  height: 3px;
  border-radius: 2px;
  background: currentColor;
  flex-shrink: 0;
}

@media (min-width: 520px) {
  /* line 273, app/assets/stylesheets/_page-sc.scss */
  .sc-legend {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* line 282, app/assets/stylesheets/_page-sc.scss */
.sc-budget {
  display: grid;
  gap: clamp(1.15rem, 2.4vw, 1.75rem);
}

@media (max-width: 700px) {
  /* line 291, app/assets/stylesheets/_page-sc.scss */
  .sc-budget .dtable__row {
    grid-template-columns: minmax(0, 1fr) 4.8rem 5rem;
    gap: var(--sp-2);
    padding-inline: 0.7rem;
  }
  /* line 296, app/assets/stylesheets/_page-sc.scss */
  .sc-budget .dtable__row > span:nth-child(2) {
    display: block;
  }
}

/* line 302, app/assets/stylesheets/_page-sc.scss */
.sc-figure {
  position: relative;
  background: var(--bg-sunk);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  padding: clamp(0.75rem, 2vw, 1.5rem);
}

/* line 310, app/assets/stylesheets/_page-sc.scss */
.sc-figure img {
  width: 100%;
  height: auto;
}

/* line 329, app/assets/stylesheets/_page-sc.scss */
.sc-charts {
  display: grid;
  justify-items: center;
  gap: clamp(1.5rem, 3.5vw, 2.75rem);
}

/* line 335, app/assets/stylesheets/_page-sc.scss */
.sc-charts > * {
  width: 100%;
  max-width: 68rem;
}

/* line 340, app/assets/stylesheets/_page-sc.scss */
.gallery--chart .gallery__slide {
  aspect-ratio: 3 / 2;
}

/* line 347, app/assets/stylesheets/_page-sc.scss */
.sc-poster {
  display: grid;
  justify-items: center;
  gap: var(--sp-4);
  padding-top: var(--sp-4);
}

/* line 354, app/assets/stylesheets/_page-sc.scss */
.sc-poster__sheet {
  position: relative;
  width: 100%;
  background: var(--bg-sunk);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  overflow: hidden;
}

/* line 362, app/assets/stylesheets/_page-sc.scss */
.sc-poster__sheet img {
  width: 100%;
  height: auto;
}

/* line 378, app/assets/stylesheets/_page-sc.scss */
.sc-budget-stack::after {
  content: "";
  display: block;
  clear: both;
}

/* line 380, app/assets/stylesheets/_page-sc.scss */
.sc-budget {
  float: right;
  width: 42%;
  max-width: 34rem;
  margin: 0 0 clamp(1.25rem, 2.5vw, 2rem) clamp(1.5rem, 3.5vw, 3rem);
  display: grid;
  gap: clamp(1rem, 2.5vw, 1.75rem);
}

/* line 391, app/assets/stylesheets/_page-sc.scss */
.sc-budget-stack > .prose {
  max-width: none;
}

@media (max-width: 860px) {
  /* line 396, app/assets/stylesheets/_page-sc.scss */
  .sc-budget {
    float: none;
    width: 100%;
    max-width: none;
    margin: 0 0 clamp(1.5rem, 4vw, 2.5rem);
  }
}

/* line 411, app/assets/stylesheets/_page-sc.scss */
.sc-proposal {
  border-top: 1px solid var(--line);
  padding-top: clamp(1.5rem, 3vw, 2.25rem);
}

/* line 416, app/assets/stylesheets/_page-sc.scss */
.sc-proposal__trigger {
  width: 100%;
  justify-content: space-between;
}

/* line 429, app/assets/stylesheets/_page-sc.scss */
.sc-proposal__clip {
  overflow: hidden;
  min-height: 0;
}

/* line 434, app/assets/stylesheets/_page-sc.scss */
.sc-proposal__body {
  width: 100%;
  max-width: var(--maxw);
  margin-inline: auto;
  padding-inline: var(--gutter);
  padding-top: clamp(1.5rem, 4vw, 3rem);
  padding-bottom: clamp(2rem, 5vw, 3.5rem);
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: clamp(2.5rem, 6vw, 4.5rem);
}

/* line 446, app/assets/stylesheets/_page-sc.scss */
.sc-proposal__part {
  min-width: 0;
  display: grid;
  gap: clamp(0.9rem, 2vw, 1.35rem);
}

/* line 454, app/assets/stylesheets/_page-sc.scss */
.sc-proposal__part > :last-child {
  margin-bottom: 0;
}

@media (max-width: 620px) {
  /* line 457, app/assets/stylesheets/_page-sc.scss */
  .sc-proposal__body {
    padding-inline: var(--gutter);
  }
}

/* line 17, app/assets/stylesheets/_page-courses.scss */
.courses-ink {
  color: var(--fg-2);
}

/* line 21, app/assets/stylesheets/_page-courses.scss */
.courses-summary {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  margin-top: clamp(1.5rem, 3vw, 2.5rem);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  background: var(--line);
  overflow: hidden;
}

@media (min-width: 34rem) {
  /* line 40, app/assets/stylesheets/_page-courses.scss */
  .courses-summary {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 62rem) {
  /* line 44, app/assets/stylesheets/_page-courses.scss */
  .courses-summary {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* line 47, app/assets/stylesheets/_page-courses.scss */
.courses-summary__cell {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: clamp(0.9rem, 2vw, 1.2rem) clamp(0.9rem, 2vw, 1.35rem);
  background: var(--bg-raise);
}

/* line 59, app/assets/stylesheets/_page-courses.scss */
.courses-summary__cell--total {
  background: var(--bg-feature);
  box-shadow: inset 0 2px 0 var(--clay);
}

/* line 64, app/assets/stylesheets/_page-courses.scss */
.courses-summary__label {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-weight: 500;
  letter-spacing: var(--tr-12);
  color: var(--fg-2);
  line-height: 1.35;
}

/* line 73, app/assets/stylesheets/_page-courses.scss */
.courses-summary__value {
  font-family: var(--font-code);
  font-variant-numeric: tabular-nums lining-nums;
  font-size: clamp(0.95rem, 0.88rem + 0.42vw, 1.15rem);
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.15;
  overflow-wrap: break-word;
  color: var(--fg);
  margin-top: auto;
  white-space: nowrap;
}

/* line 92, app/assets/stylesheets/_page-courses.scss */
.courses-sheet {
  --sheet-pad: clamp(1rem, 2.4vw, 2.25rem);
  background: var(--bg-raise);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: var(--sheet-pad);
  box-shadow: 0 1px 2px rgba(20, 20, 15, 0.035), 0 10px 28px rgba(20, 20, 15, 0.04);
}

/* line 104, app/assets/stylesheets/_page-courses.scss */
.courses-term {
  position: relative;
}

/* line 107, app/assets/stylesheets/_page-courses.scss */
.courses-term + .courses-term {
  margin-top: clamp(1.75rem, 3.2vw, 2.75rem);
}

/* line 115, app/assets/stylesheets/_page-courses.scss */
.courses-term__head {
  position: sticky;
  top: var(--nav-h);
  z-index: 5;
  display: flex;
  align-items: baseline;
  gap: var(--sp-4);
  margin-inline: calc(var(--sheet-pad) * -1);
  padding: 0.7rem var(--sheet-pad) 0.6rem;
  background: var(--bg-raise);
  border-bottom: 1px solid var(--line-loud);
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: var(--tr-16);
}

/* line 133, app/assets/stylesheets/_page-courses.scss */
.courses-term__name {
  color: var(--fg);
  white-space: nowrap;
}

/* line 139, app/assets/stylesheets/_page-courses.scss */
.courses-term__rule {
  flex: 1 1 1rem;
  align-self: center;
  height: 1px;
  min-width: 0.75rem;
  background: var(--line);
}

/* line 147, app/assets/stylesheets/_page-courses.scss */
.courses-term__credits {
  font-family: var(--font-code);
  font-size: var(--fs-label);
  font-weight: 400;
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0;
  color: var(--fg-2);
  white-space: nowrap;
}

/* line 159, app/assets/stylesheets/_page-courses.scss */
.courses-row {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr) 1.5rem;
  align-items: baseline;
  column-gap: 0;
  margin-inline: calc(var(--sheet-pad) * -1);
  padding: 0.5rem var(--sheet-pad);
  border-bottom: 1px solid var(--line-faint);
  transition: background var(--dur-fast) var(--ease-out);
}

/* line 172, app/assets/stylesheets/_page-courses.scss */
.courses-row:last-child {
  border-bottom: none;
}

/* line 174, app/assets/stylesheets/_page-courses.scss */
.courses-row:hover {
  background: var(--bg);
}

/* line 177, app/assets/stylesheets/_page-courses.scss */
.courses-row:hover .courses-row__code {
  color: var(--clay-ink);
}

/* line 181, app/assets/stylesheets/_page-courses.scss */
.courses-row__code {
  font-family: var(--font-code);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0;
  color: var(--fg-2);
  white-space: nowrap;
  transition: color var(--dur-fast) var(--ease-out);
}

/* line 194, app/assets/stylesheets/_page-courses.scss */
.courses-row__title {
  display: flex;
  align-items: baseline;
  gap: 0.9rem;
  min-width: 0;
  padding-left: clamp(0.75rem, 2vw, 1.75rem);
  padding-right: 0.8rem;
  font-family: var(--font-serif);
  font-size: clamp(1.0625rem, 1rem + 0.35vw, 1.1875rem);
  line-height: 1.35;
  color: var(--fg);
  text-wrap: pretty;
}

/* line 207, app/assets/stylesheets/_page-courses.scss */
.courses-row__title::after {
  content: "";
  flex: 1 1 0;
  min-width: 0;
  align-self: baseline;
  height: 0;
  border-bottom: 1px dotted var(--fg-4);
}

/* line 217, app/assets/stylesheets/_page-courses.scss */
.courses-row__credits {
  font-family: var(--font-code);
  font-size: var(--fs-sm);
  font-variant-numeric: tabular-nums lining-nums;
  letter-spacing: 0;
  color: var(--fg-2);
  text-align: right;
}

@media (max-width: 560px) {
  /* line 232, app/assets/stylesheets/_page-courses.scss */
  .courses-row {
    grid-template-columns: minmax(0, 1fr) 2.25rem;
    row-gap: 0.15rem;
    padding-block: 0.7rem;
  }
  /* line 238, app/assets/stylesheets/_page-courses.scss */
  .courses-row__code {
    grid-column: 1;
    grid-row: 1;
  }
  /* line 239, app/assets/stylesheets/_page-courses.scss */
  .courses-row__credits {
    grid-column: 2;
    grid-row: 1;
  }
  /* line 242, app/assets/stylesheets/_page-courses.scss */
  .courses-row__title {
    grid-column: 1 / -1;
    grid-row: 2;
    display: block;
    padding-inline: 0;
  }
  /* line 248, app/assets/stylesheets/_page-courses.scss */
  .courses-row__title::after {
    content: none;
  }
}

/* line 21, app/assets/stylesheets/_page-misc.scss */
.resume-action {
  margin-left: auto;
  flex-shrink: 0;
}

@media (max-width: 700px) {
  /* line 27, app/assets/stylesheets/_page-misc.scss */
  .resume-action {
    margin-left: 0;
  }
}

/* line 30, app/assets/stylesheets/_page-misc.scss */
.resume-stage {
  display: flex;
  justify-content: center;
}

/* line 45, app/assets/stylesheets/_page-misc.scss */
.resume-plate {
  height: clamp(520px, 84vh, 1040px);
  aspect-ratio: 0.9;
  max-width: 100%;
  padding: clamp(6px, 0.7vw, 10px);
  background: var(--bg-sunk);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  box-shadow: 0 28px 56px -46px rgba(20, 20, 15, 0.5);
}

/* line 56, app/assets/stylesheets/_page-misc.scss */
.resume-plate__well {
  height: 100%;
  border-radius: var(--r-sm);
  overflow: hidden;
  background: var(--bg-ink);
}

/* line 63, app/assets/stylesheets/_page-misc.scss */
.resume-plate__frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
}

@media (max-width: 700px) {
  /* line 73, app/assets/stylesheets/_page-misc.scss */
  .resume-plate {
    width: 100%;
    aspect-ratio: auto;
    height: clamp(440px, 66vh, 620px);
  }
}

/* line 82, app/assets/stylesheets/_page-misc.scss */
.meet-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1rem, 2.4vw, 1.75rem);
}

@media (min-width: 980px) {
  /* line 91, app/assets/stylesheets/_page-misc.scss */
  .meet-grid {
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    align-items: start;
  }
}

/* line 100, app/assets/stylesheets/_page-misc.scss */
.meet-pane {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--bg-raise);
}

/* line 107, app/assets/stylesheets/_page-misc.scss */
.meet-pane__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-3);
  padding: 0.72rem 1.05rem;
  background: var(--bg-sunk);
  border-bottom: 1px solid var(--line);
}

/* line 117, app/assets/stylesheets/_page-misc.scss */
.meet-pane__title {
  font-family: var(--font-sans);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: var(--tr-label);
  color: var(--fg);
  line-height: var(--lh-ui);
}

/* line 126, app/assets/stylesheets/_page-misc.scss */
.meet-pane__note {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-3);
}

/* line 133, app/assets/stylesheets/_page-misc.scss */
.meet-pane__iframe {
  display: block;
  width: 100%;
  border: 0;
  background: var(--bg-raise);
}

/* line 140, app/assets/stylesheets/_page-misc.scss */
.meet-pane--calendar .meet-pane__iframe {
  height: clamp(480px, 70vh, 780px);
}

/* line 141, app/assets/stylesheets/_page-misc.scss */
.meet-pane--booking .meet-pane__iframe {
  height: clamp(620px, 76vh, 880px);
}

/* line 145, app/assets/stylesheets/_page-misc.scss */
.colophon-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(0.9rem, 2vw, 1.5rem);
  align-items: start;
}

@media (min-width: 900px) {
  /* line 153, app/assets/stylesheets/_page-misc.scss */
  .colophon-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* line 158, app/assets/stylesheets/_page-misc.scss */
.colophon-grid .spec__value {
  overflow-wrap: anywhere;
}

/* line 162, app/assets/stylesheets/_page-misc.scss */
.colophon-note {
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  padding-left: var(--sp-4);
  border-left: 2px solid var(--clay);
  font-family: var(--font-serif);
  font-style: italic;
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--fg-2);
}

/* line 172, app/assets/stylesheets/_page-misc.scss */
.colophon-note b {
  font-weight: 600;
  font-style: italic;
  color: var(--fg);
}

/* line 177, app/assets/stylesheets/_page-misc.scss */
.chart {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  background: var(--bg-raise);
  isolation: isolate;
}

/* line 185, app/assets/stylesheets/_page-misc.scss */
.chart__print {
  position: relative;
  padding-block: clamp(0.75rem, 2vw, 1.5rem);
  border-bottom: 1px solid var(--line-faint);
}

/* line 191, app/assets/stylesheets/_page-misc.scss */
.chart__scroll {
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

/* line 203, app/assets/stylesheets/_page-misc.scss */
.chart__img {
  display: block;
  width: 100%;
  height: auto;
  mix-blend-mode: multiply;
}

@media (max-width: 760px) {
  /* line 214, app/assets/stylesheets/_page-misc.scss */
  .chart__img {
    width: 700px;
    max-width: none;
  }
}

/* line 217, app/assets/stylesheets/_page-misc.scss */
.chart__hint {
  display: none;
  padding: 0 1.05rem 0.4rem;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-3);
}

@media (max-width: 760px) {
  /* line 227, app/assets/stylesheets/_page-misc.scss */
  .chart__hint {
    display: block;
  }
}

/* line 230, app/assets/stylesheets/_page-misc.scss */
.chart__caption {
  padding: 0.85rem 1.05rem 1rem;
  max-width: 68ch;
  font-family: var(--font-serif);
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: var(--fg-2);
}

/* line 243, app/assets/stylesheets/_page-misc.scss */
.nf {
  min-height: calc(100vh - var(--nav-h) - 14rem);
  display: grid;
  place-items: center;
  text-align: center;
}

/* line 250, app/assets/stylesheets/_page-misc.scss */
.nf__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(0.9rem, 2.2vw, 1.35rem);
}

/* line 257, app/assets/stylesheets/_page-misc.scss */
.nf__frame {
  width: clamp(96px, 15vw, 140px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid var(--line);
  background: var(--bg-raise);
}

/* line 268, app/assets/stylesheets/_page-misc.scss */
.nf__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}

/* line 275, app/assets/stylesheets/_page-misc.scss */
.nf__code {
  font-family: var(--font-serif);
  font-size: var(--fs-display);
  font-weight: 400;
  line-height: 0.9;
  letter-spacing: var(--tr-display);
  font-variant-numeric: lining-nums;
  color: var(--fg);
}

/* line 285, app/assets/stylesheets/_page-misc.scss */
.nf__msg {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 400;
  letter-spacing: var(--tr-16);
  color: var(--fg-3);
}

/* line 293, app/assets/stylesheets/_page-misc.scss */
.nf__link {
  margin-top: var(--sp-3);
}

/* line 302, app/assets/stylesheets/_page-misc.scss */
.meet {
  height: 100svh;
  display: flex;
  flex-direction: column;
  padding: calc(var(--nav-h) + 0.75rem) var(--gutter) clamp(0.75rem, 2vh, 1.5rem);
  gap: clamp(0.6rem, 1.6vh, 1rem);
}

/* line 310, app/assets/stylesheets/_page-misc.scss */
.meet__bar {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.6rem 1.25rem;
  flex-shrink: 0;
}

/* line 318, app/assets/stylesheets/_page-misc.scss */
.meet__title {
  font-family: var(--font-serif);
  font-size: var(--fs-h3);
  font-weight: 400;
  letter-spacing: var(--tr-head);
  color: var(--fg);
}

/* line 326, app/assets/stylesheets/_page-misc.scss */
.meet__note {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  letter-spacing: var(--tr-16);
  color: var(--fg-3);
}

/* line 333, app/assets/stylesheets/_page-misc.scss */
.meet__grid {
  flex: 1;
  min-height: 0;
  display: grid;
  gap: clamp(0.6rem, 1.4vw, 1rem);
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 3fr) minmax(0, 2fr);
}

/* line 342, app/assets/stylesheets/_page-misc.scss */
.meet__frame {
  width: 100%;
  height: 100%;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--bg-raise);
  display: block;
}

@media (min-width: 900px) {
  /* line 354, app/assets/stylesheets/_page-misc.scss */
  .meet__grid {
    grid-template-columns: minmax(0, 3.4fr) minmax(0, 1.35fr);
    grid-template-rows: minmax(0, 1fr);
  }
}

@media (max-width: 620px) {
  /* line 362, app/assets/stylesheets/_page-misc.scss */
  .meet {
    height: auto;
    min-height: 100svh;
  }
  /* line 363, app/assets/stylesheets/_page-misc.scss */
  .meet__grid {
    grid-template-rows: minmax(520px, 62svh) minmax(560px, 70svh);
  }
}

/* line 376, app/assets/stylesheets/_page-misc.scss */
.resume {
  position: relative;
  width: 100%;
  min-height: 100svh;
  display: grid;
  justify-items: center;
  align-content: start;
  gap: clamp(1rem, 2.5vh, 1.75rem);
  padding: calc(var(--nav-h) + clamp(1rem, 3vh, 2rem)) var(--gutter) clamp(2rem, 5vh, 3.5rem);
}

/* line 387, app/assets/stylesheets/_page-misc.scss */
.resume__get {
  justify-self: center;
}

/* line 389, app/assets/stylesheets/_page-misc.scss */
.resume__sheet {
  --reader-bleed: 10px;
  position: relative;
  overflow: hidden;
  aspect-ratio: 8.5 / 11;
  height: calc(100svh - var(--nav-h) - clamp(9rem, 18vh, 13rem));
  max-width: 100%;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  box-shadow: 0 1px 2px rgba(20, 20, 15, 0.05), 0 12px 40px rgba(20, 20, 15, 0.08);
}

/* line 411, app/assets/stylesheets/_page-misc.scss */
.resume__doc {
  position: absolute;
  top: calc(var(--reader-bleed) * -1);
  left: calc(var(--reader-bleed) * -1);
  width: calc(100% + var(--reader-bleed) * 2);
  height: calc(100% + var(--reader-bleed) * 2);
  border: 0;
  display: block;
}

@media (max-width: 620px) {
  /* line 424, app/assets/stylesheets/_page-misc.scss */
  .resume__sheet {
    height: auto;
    width: 100%;
    aspect-ratio: 8.5 / 11;
  }
}

/* line 9, app/assets/stylesheets/_metrics.scss */
.mx-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--sp-4);
  padding-bottom: var(--sp-4);
  border-bottom: 1px solid var(--line);
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

/* line 20, app/assets/stylesheets/_metrics.scss */
.mx-title {
  font-family: var(--font-serif);
  font-size: var(--fs-h2);
  font-weight: 400;
  letter-spacing: var(--tr-head);
}

/* line 27, app/assets/stylesheets/_metrics.scss */
.mx-windows {
  display: flex;
  flex-wrap: wrap;
  gap: 1.1rem;
}

/* line 29, app/assets/stylesheets/_metrics.scss */
.mx-window {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: var(--tr-16);
  color: var(--fg-3);
  padding-bottom: 0.2em;
  border-bottom: 2px solid transparent;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}

/* line 39, app/assets/stylesheets/_metrics.scss */
.mx-window:hover {
  color: var(--fg);
}

/* line 40, app/assets/stylesheets/_metrics.scss */
.mx-window.is-on {
  color: var(--fg);
  border-color: var(--clay);
}

/* line 45, app/assets/stylesheets/_metrics.scss */
.mx-stats {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  overflow: hidden;
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

/* line 56, app/assets/stylesheets/_metrics.scss */
.mx-stat {
  background: var(--bg-raise);
  padding: clamp(0.9rem, 2vw, 1.4rem);
  display: grid;
  gap: 0.3rem;
}

/* line 63, app/assets/stylesheets/_metrics.scss */
.mx-stat--hot {
  background: var(--clay-wash);
}

/* line 65, app/assets/stylesheets/_metrics.scss */
.mx-stat__n {
  font-family: var(--font-code);
  font-size: clamp(1.4rem, 1.1rem + 1.1vw, 2rem);
  font-variant-numeric: tabular-nums;
  color: var(--fg);
  line-height: 1;
}

/* line 73, app/assets/stylesheets/_metrics.scss */
.mx-stat--hot .mx-stat__n {
  color: var(--clay-ink);
}

/* line 75, app/assets/stylesheets/_metrics.scss */
.mx-stat__k {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: var(--tr-12);
  color: var(--fg-3);
}

/* line 83, app/assets/stylesheets/_metrics.scss */
.mx-gauge {
  margin-top: 0.75rem;
  height: 4px;
  border-radius: 999px;
  background: rgba(20, 20, 15, 0.12);
  overflow: hidden;
}

/* line 91, app/assets/stylesheets/_metrics.scss */
.mx-gauge__fill {
  display: block;
  height: 100%;
  background: var(--clay);
}

/* line 95, app/assets/stylesheets/_metrics.scss */
.mx-block {
  margin-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

/* line 96, app/assets/stylesheets/_metrics.scss */
.mx-block:last-of-type {
  margin-bottom: 0;
}

/* line 98, app/assets/stylesheets/_metrics.scss */
.mx-h {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  letter-spacing: var(--tr-16);
  color: var(--fg);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: baseline;
  gap: 0.65em;
}

/* line 110, app/assets/stylesheets/_metrics.scss */
.mx-h__sub {
  font-weight: 400;
  color: var(--fg-3);
  font-size: var(--fs-micro);
}

/* line 112, app/assets/stylesheets/_metrics.scss */
.mx-cols {
  display: grid;
  gap: clamp(1.25rem, 3vw, 2.5rem);
  grid-template-columns: minmax(0, 1fr);
}

@media (min-width: 760px) {
  /* line 120, app/assets/stylesheets/_metrics.scss */
  .mx-cols {
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  }
}

/* line 123, app/assets/stylesheets/_metrics.scss */
.mx-empty {
  font-size: var(--fs-sm);
  color: var(--fg-3);
}

/* line 127, app/assets/stylesheets/_metrics.scss */
.mx-table {
  border-top: 1px solid var(--line-faint);
}

/* line 129, app/assets/stylesheets/_metrics.scss */
.mx-tr {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34% auto;
  align-items: center;
  gap: 0.85rem;
  padding: 0.42rem 0;
  border-bottom: 1px solid var(--line-faint);
}

/* line 138, app/assets/stylesheets/_metrics.scss */
.mx-tr__k {
  font-family: var(--font-code);
  font-size: var(--fs-micro);
  color: var(--fg-2);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* line 147, app/assets/stylesheets/_metrics.scss */
.mx-tr__bar {
  height: 6px;
  border-radius: 999px;
  background: rgba(20, 20, 15, 0.07);
  overflow: hidden;
}

/* line 154, app/assets/stylesheets/_metrics.scss */
.mx-tr__fill {
  display: block;
  height: 100%;
  background: var(--fg-4);
}

/* line 159, app/assets/stylesheets/_metrics.scss */
.mx-tr__fill.is-hot {
  background: var(--clay);
}

/* line 162, app/assets/stylesheets/_metrics.scss */
.mx-tr__n {
  font-family: var(--font-code);
  font-size: var(--fs-micro);
  font-variant-numeric: tabular-nums;
  color: var(--fg);
  text-align: right;
}

/* line 170, app/assets/stylesheets/_metrics.scss */
.mx-table--headers .mx-tr {
  grid-template-columns: 15rem minmax(0, 1fr);
}

/* line 172, app/assets/stylesheets/_metrics.scss */
.mx-tr__v {
  font-family: var(--font-code);
  font-size: var(--fs-micro);
  color: var(--fg-2);
  word-break: break-all;
}

/* line 181, app/assets/stylesheets/_metrics.scss */
.mx-spark {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 110px;
  padding: 0 1px;
  border-bottom: 1px solid var(--line);
}

/* line 190, app/assets/stylesheets/_metrics.scss */
.mx-spark__bar {
  flex: 1;
  min-width: 2px;
  min-height: 1px;
  background: var(--clay);
  border-radius: 1px 1px 0 0;
}

/* line 198, app/assets/stylesheets/_metrics.scss */
.mx-spark__axis {
  display: flex;
  justify-content: space-between;
  margin-top: 0.4rem;
  font-family: var(--font-code);
  font-size: var(--fs-micro);
  color: var(--fg-3);
}

/* line 209, app/assets/stylesheets/_metrics.scss */
.mx-feed {
  border-top: 1px solid var(--line-faint);
}

/* line 211, app/assets/stylesheets/_metrics.scss */
.mx-row {
  display: grid;
  grid-template-columns: 9.5rem 3.2rem minmax(0, 1fr) 9rem 3rem 4rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.4rem 0.4rem;
  border-bottom: 1px solid var(--line-faint);
  font-family: var(--font-code);
  font-size: var(--fs-micro);
  color: var(--fg-2);
  transition: background var(--dur-fast) var(--ease-out);
}

/* line 223, app/assets/stylesheets/_metrics.scss */
.mx-row:hover {
  background: var(--bg-raise);
}

/* line 224, app/assets/stylesheets/_metrics.scss */
.mx-row.is-ai {
  background: var(--clay-wash);
}

/* line 225, app/assets/stylesheets/_metrics.scss */
.mx-row.is-ai:hover {
  background: var(--bg-sunk);
}

/* line 228, app/assets/stylesheets/_metrics.scss */
.mx-row__p,
.mx-row__a {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* line 230, app/assets/stylesheets/_metrics.scss */
.mx-row__t {
  color: var(--fg-3);
}

/* line 231, app/assets/stylesheets/_metrics.scss */
.mx-row__m {
  color: var(--fg);
}

/* line 232, app/assets/stylesheets/_metrics.scss */
.mx-row__a {
  color: var(--fg-3);
}

/* line 233, app/assets/stylesheets/_metrics.scss */
.mx-row__d,
.mx-row__s {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

/* line 236, app/assets/stylesheets/_metrics.scss */
.mx-row__s.is-2xx {
  color: var(--ok);
}

/* line 237, app/assets/stylesheets/_metrics.scss */
.mx-row__s.is-3xx {
  color: var(--fg-3);
}

/* line 238, app/assets/stylesheets/_metrics.scss */
.mx-row__s.is-4xx {
  color: var(--warn);
}

/* line 239, app/assets/stylesheets/_metrics.scss */
.mx-row__s.is-5xx {
  color: var(--over);
}

@media (max-width: 900px) {
  /* line 242, app/assets/stylesheets/_metrics.scss */
  .mx-row {
    grid-template-columns: minmax(0, 1fr) 3rem 4rem;
    row-gap: 0.15rem;
  }
  /* line 243, app/assets/stylesheets/_metrics.scss */
  .mx-row__t {
    grid-column: 1 / -1;
  }
  /* line 244, app/assets/stylesheets/_metrics.scss */
  .mx-row__m,
.mx-row__a {
    display: none;
  }
}

/* line 250, app/assets/stylesheets/_metrics.scss */
.mx-detail {
  display: grid;
  gap: clamp(1.5rem, 3vw, 2.5rem);
}

/* line 252, app/assets/stylesheets/_metrics.scss */
.mx-ua {
  font-family: var(--font-code);
  font-size: var(--fs-sm);
  color: var(--fg-2);
  word-break: break-all;
  background: var(--bg-raise);
  border: 1px solid var(--line-faint);
  border-radius: var(--r-md);
  padding: 0.8rem 1rem;
}

/* line 264, app/assets/stylesheets/_metrics.scss */
.page:has(.mx-head) {
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem);
}

/* line 268, app/assets/stylesheets/_metrics.scss */
.mx-storage {
  display: grid;
  grid-template-columns: auto auto minmax(80px, 200px) 1fr;
  align-items: center;
  gap: 0.85rem;
  margin-top: clamp(1.25rem, 2.5vw, 2rem);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--line);
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  color: var(--fg-3);
}

/* line 281, app/assets/stylesheets/_metrics.scss */
.mx-storage__k {
  letter-spacing: var(--tr-12);
}

/* line 283, app/assets/stylesheets/_metrics.scss */
.mx-storage__v {
  font-family: var(--font-code);
  font-variant-numeric: tabular-nums;
  color: var(--fg);
}

/* line 289, app/assets/stylesheets/_metrics.scss */
.mx-storage__note {
  text-align: right;
}

@media (max-width: 620px) {
  /* line 292, app/assets/stylesheets/_metrics.scss */
  .mx-storage {
    grid-template-columns: auto 1fr;
  }
  /* line 293, app/assets/stylesheets/_metrics.scss */
  .mx-storage .mx-gauge,
.mx-storage__note {
    grid-column: 1 / -1;
  }
  /* line 295, app/assets/stylesheets/_metrics.scss */
  .mx-storage__note {
    text-align: left;
  }
}

/* line 300, app/assets/stylesheets/_metrics.scss */
.mx-how {
  margin-top: 0.9rem;
  max-width: 82ch;
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: var(--fg-3);
}

/* line 308, app/assets/stylesheets/_metrics.scss */
.mx-how__list {
  display: block;
  margin-top: 0.5rem;
  font-family: var(--font-code);
  font-size: var(--fs-micro);
  color: var(--fg-2);
  word-spacing: 0.1em;
}

/* line 318, app/assets/stylesheets/_metrics.scss */
.mx-note {
  max-width: 68ch;
  font-size: var(--fs-sm);
  line-height: var(--lh-body);
  color: var(--fg-2);
}

/* line 324, app/assets/stylesheets/_metrics.scss */
.mx-note b {
  font-family: var(--font-code);
  font-weight: 500;
}
