/* FRBX IT Solutions · page styles. Tokens first (the whole theme is these), then chrome, then the flight, then the coda.
   Engine mechanism classes (.sc-world, [data-sc-*]) are never restyled here. */

/* ------------------------------------------------------------------ tokens */
@font-face { font-family: "Archivo"; src: url("fonts/Archivo-latin.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Geist";   src: url("fonts/Geist-latin.woff2")   format("woff2"); font-weight: 100 900; font-display: swap; }

:root {
  --sc-canvas:      #0B0A08;
  --sc-surface:     #16130F;
  --sc-ink:         #F2EBDF;
  --sc-ink-soft:    #B3A896;
  --sc-accent:      #A9CFEE;   /* the screen glow: one cool accent in a warm world */
  --sc-accent-ink:  #0B0A08;
  --sc-font-display: "Archivo", system-ui, sans-serif;
  --sc-font-text:    "Geist", system-ui, sans-serif;
  --sc-shadow-color: 36 30% 4%;
  --brass: #C8A45C;            /* used only inside the doors scene as light, never as UI */
  --radius: 4px;
  --bar-h: 4.5rem;
}
html { scroll-behavior: auto; }
body { background: var(--sc-canvas); color: var(--sc-ink); line-height: 1.6; overflow-x: clip; }
.sc-display { font-weight: 600; line-height: 1.02; text-wrap: balance; }
.sc-lead { font-family: var(--sc-font-text); font-weight: 400; color: var(--sc-ink); }
.sc-body { line-height: 1.62; letter-spacing: 0.002em; }
.sc-kicker { font-family: var(--sc-font-text); font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); margin: 0 0 var(--sc-3); font-weight: 500; }
.idx { font-variant-numeric: tabular-nums; color: var(--sc-accent); font-weight: 500; margin-right: 0.6em; font-size: 0.72em; letter-spacing: 0.04em; vertical-align: 0.12em; }
a { color: inherit; }
.link { color: var(--sc-ink); text-decoration: underline; text-underline-offset: 0.2em; text-decoration-thickness: 1px; text-decoration-color: color-mix(in oklab, var(--sc-ink) 40%, transparent); }
.link:hover { text-decoration-color: var(--sc-accent); }
:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 3px; border-radius: 2px; }
.skip { position: fixed; top: var(--sc-3); left: var(--sc-3); z-index: 1000; padding: var(--sc-2) var(--sc-4); background: var(--sc-accent); color: var(--sc-accent-ink); border-radius: var(--radius); transform: translateY(-200%); font-weight: 500; }
.skip:focus-visible { transform: none; }
.sc-grain { z-index: 400; }

/* buttons: one radius scale, one accent role */
.btn { display: inline-flex; align-items: center; gap: 0.6em; padding: 0.9em 1.5em; border-radius: var(--radius); font-family: var(--sc-font-text); font-weight: 500; font-size: var(--sc-t-sm); letter-spacing: 0.01em; text-decoration: none; white-space: nowrap; transition: transform 140ms var(--sc-ease-out), background-color 140ms var(--sc-ease-out), color 140ms var(--sc-ease-out); border: 1px solid transparent; }
.btn--primary { background: var(--sc-accent); color: var(--sc-accent-ink); box-shadow: var(--sc-e2); }
.btn--primary:hover { background: color-mix(in oklab, var(--sc-accent) 88%, white); transform: translateY(-1px); }
.btn--ghost { border-color: color-mix(in oklab, var(--sc-ink) 30%, transparent); color: var(--sc-ink); }
.btn--ghost:hover { border-color: var(--sc-ink); }
.btn:active { transform: translateY(1px) scale(0.985); }

/* ------------------------------------------------------------------ chrome: the directory */
.bar { position: fixed; inset: 0 0 auto 0; height: var(--bar-h); z-index: 500; display: flex; align-items: center; justify-content: space-between; padding-inline: var(--sc-gutter); pointer-events: none; }
.bar > * { pointer-events: auto; }
.mark { display: inline-flex; align-items: baseline; gap: 0.5em; text-decoration: none; font-family: var(--sc-font-display); }
.mark__text { font-weight: 700; font-size: 1.35rem; letter-spacing: 0.06em; }
.mark__sub { font-family: var(--sc-font-text); font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); }
.mark__img { height: 2.75rem; width: auto; display: block; }
.directory__list { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--sc-5); }
.directory__link { position: relative; display: inline-block; padding: 0.45em 0; font-family: var(--sc-font-text); font-size: var(--sc-t-sm); font-weight: 500; color: var(--sc-ink-soft); text-decoration: none; letter-spacing: 0.01em; transition: color 140ms var(--sc-ease-out); }
.directory__link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0.1em; height: 1px; background: var(--sc-accent); transform: scaleX(0); transform-origin: 0 50%; transition: transform 220ms var(--sc-ease-out); }
.directory__link:hover, .directory__link[aria-current="true"] { color: var(--sc-ink); }
.directory__link[aria-current="true"]::after { transform: scaleX(1); }
.bar__toggle { display: none; width: 2.75rem; height: 2.75rem; border: 1px solid color-mix(in oklab, var(--sc-ink) 22%, transparent); border-radius: var(--radius); background: color-mix(in oklab, var(--sc-canvas) 70%, transparent); backdrop-filter: blur(8px); flex-direction: column; align-items: center; justify-content: center; gap: 6px; cursor: pointer; }
.bar__toggle-line { display: block; width: 1.1rem; height: 1.5px; background: var(--sc-ink); transition: transform 200ms var(--sc-ease-out); }
.bar__toggle[aria-expanded="true"] .bar__toggle-line:first-child { transform: translateY(3.75px) rotate(45deg); }
.bar__toggle[aria-expanded="true"] .bar__toggle-line:last-child { transform: translateY(-3.75px) rotate(-45deg); }

/* ------------------------------------------------------------------ chrome: the access pass (signature move)
   A slim strip in the bottom-right corner, below the reach of every copy block. */
.pass { position: fixed; right: var(--sc-gutter); bottom: 1.25rem; z-index: 450; display: flex; align-items: center; gap: var(--sc-4); max-width: calc(100% - var(--sc-gutter) * 2); padding: 0.55rem 0.9rem; background: color-mix(in oklab, var(--sc-surface) 86%, transparent); backdrop-filter: blur(10px); border-radius: var(--radius); box-shadow: var(--sc-e2), var(--sc-edge); font-family: var(--sc-font-text); font-size: var(--sc-t-xs); opacity: 0; transform: translateY(8px); transition: opacity 500ms var(--sc-ease-out), transform 500ms var(--sc-ease-out); pointer-events: none; white-space: nowrap; }
.pass.is-issued { opacity: 1; transform: none; pointer-events: auto; }
.pass__head { display: flex; gap: 0.5rem; align-items: baseline; padding-right: var(--sc-3); border-right: 1px solid var(--sc-hairline); }
.pass__kicker { letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); }
.pass__brand { font-family: var(--sc-font-display); font-weight: 700; letter-spacing: 0.06em; }
.pass__stamps { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.9rem; }
.pass__stamp { display: flex; align-items: center; gap: 0.4rem; color: var(--sc-ink-soft); transition: color 300ms var(--sc-ease-out); }
.pass__dot { width: 0.5rem; height: 0.5rem; border-radius: 50%; border: 1px solid color-mix(in oklab, var(--sc-ink) 35%, transparent); transition: background-color 300ms var(--sc-ease-out), transform 300ms var(--sc-ease-out); }
.pass__stamp.is-stamped { color: var(--sc-ink); }
.pass__stamp.is-stamped .pass__dot { background: var(--sc-accent); border-color: var(--sc-accent); transform: scale(1.15); }
.pass__foot { margin: 0; padding-left: var(--sc-3); border-left: 1px solid var(--sc-hairline); display: flex; align-items: center; gap: var(--sc-3); color: var(--sc-ink-soft); }
.pass__cta { color: var(--sc-accent); text-decoration: none; font-weight: 500; }
.pass__cta:hover { text-decoration: underline; text-underline-offset: 0.2em; }
.pass.is-complete .pass__status { color: var(--sc-ink); }

/* ------------------------------------------------------------------ the flight */
.flight { position: relative; }
.sc-world__seg > picture { position: absolute; inset: 0; }
.sc-world__seg > picture > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; will-change: transform; }

/* The hero: five planes cut from two stills, choreographed purely from --sc-seg / --sc-segp.
   open  = door swing (0 closed .. 1 fully open), runs over the first 60% of the entrance leg
   thru  = camera passing through the frame, runs over the last 45%
   Both are forced to 1 once any later leg is current, so the doors never snap shut under a crossfade.
   The scene box keeps the still's aspect ratio and covers the stage exactly like object-fit: cover, so the
   opening rectangle (measured on the still, as unitless fractions) lands on the real door at every viewport. */
.doors { position: absolute; inset: 0; overflow: hidden; container-type: size;
  --open: clamp(0, calc((var(--sc-segp, 0) - 0.06) / 0.56 + var(--sc-seg, 0) * 10), 1);
  --thru: clamp(0, calc((var(--sc-segp, 0) - 0.55) / 0.45 + var(--sc-seg, 0) * 10), 1);
  --ar: calc(16 / 9);
  --ox: 0.31; --oy: 0.059; --ow: 0.384; --oh: 0.876;          /* opening rect in the landscape still */
  --lw: 0.504;                                                 /* each leaf's share of the opening width */
  --swing: 84deg; }
.doors__scene { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: max(100cqw, calc(100cqh * var(--ar))); height: max(100cqh, calc(100cqw / var(--ar))); }
.doors__scene > *, .doors__near > *, .doors__spill { position: absolute; inset: 0; }
.doors__beyond { background: var(--beyond) center / 100% 100% no-repeat; transform: scale(calc(1 + var(--thru) * 0.04)); transform-origin: 50% 55%; }
.doors__near { transform: scale(calc(1 + var(--thru) * 0.62)); transform-origin: 50% 62%; opacity: calc(1 - var(--thru) * var(--thru)); will-change: transform, opacity; }
.doors__frame { background: var(--frame) center / 100% 100% no-repeat;
  /* a hole where the opening is, so the leaves and the lobby show through */
  -webkit-mask: linear-gradient(#000 0 0), linear-gradient(#000 0 0) calc(var(--ox) / (1 - var(--ow)) * 100%) calc(var(--oy) / (1 - var(--oh)) * 100%) / calc(var(--ow) * 100%) calc(var(--oh) * 100%) no-repeat; -webkit-mask-composite: xor;
          mask: linear-gradient(#000 0 0), linear-gradient(#000 0 0) calc(var(--ox) / (1 - var(--ow)) * 100%) calc(var(--oy) / (1 - var(--oh)) * 100%) / calc(var(--ow) * 100%) calc(var(--oh) * 100%) no-repeat; mask-composite: exclude; }
.doors__opening { inset: auto; left: calc(var(--ox) * 100%); top: calc(var(--oy) * 100%); width: calc(var(--ow) * 100%); height: calc(var(--oh) * 100%); overflow: hidden; perspective: 900px; perspective-origin: 50% 50%; }
.doors__leaf { position: absolute; top: 0; bottom: 0; width: calc(var(--lw) * 100%); overflow: hidden; backface-visibility: hidden; will-change: transform; box-shadow: 0 0 60px rgba(0,0,0,0.45); }
.doors__leaf::before { content: ""; position: absolute; top: 0; left: 0; width: calc(100% / var(--lw) / var(--ow)); height: calc(100% / var(--oh)); background: var(--frame) center / 100% 100% no-repeat; }
.doors__leaf--l { left: 0; transform-origin: 0 50%; transform: rotateY(calc(var(--open) * var(--swing) * -1)); }
.doors__leaf--l::before { transform: translate(calc(var(--ox) * -100%), calc(var(--oy) * -100%)); }
.doors__leaf--r { right: 0; transform-origin: 100% 50%; transform: rotateY(calc(var(--open) * var(--swing))); }
.doors__leaf--r::before { transform: translate(calc((var(--ox) + var(--ow) * (1 - var(--lw))) * -100%), calc(var(--oy) * -100%)); }
.doors__spill { background: radial-gradient(ellipse 70% 120% at 50% 60%, color-mix(in oklab, var(--brass) 55%, transparent), transparent 70%); opacity: calc(var(--open) * (1 - var(--open)) * 2.2); mix-blend-mode: screen; pointer-events: none; }
.doors__floorglow { top: auto; height: 22%; background: linear-gradient(to top, color-mix(in oklab, var(--brass) 28%, transparent), transparent); opacity: calc(var(--open) * 0.7 * (1 - var(--thru))); mix-blend-mode: screen; }

/* ------------------------------------------------------------------ copy windows */
/* A host positions; the copy block inside shrinks to its text. The engine writes opacity, transform and
   pointer-events on the block, and the contrast pass grades the block's own box, so the box must be the text. */
.copyhost { position: absolute; inset: 0; display: flex; padding: calc(var(--bar-h) + var(--sc-6)) var(--sc-gutter) clamp(3rem, 10vh, 7rem); pointer-events: none; z-index: 2; }
.copyhost--center { align-items: center; justify-content: center; text-align: center; }
.copyhost--bottom { align-items: flex-end; justify-content: center; text-align: center; }
.copyhost--top { align-items: flex-start; justify-content: flex-start; }
.copyhost--trail { align-items: center; justify-content: flex-end; }
.copyhost--lead { align-items: center; justify-content: flex-start; }
.copyhost--floor { align-items: center; justify-content: flex-start; }
.copy { position: relative; pointer-events: auto; }
.copy--hero { max-width: 62rem; }
.copy--beat { max-width: 56rem; }
.copy--vision { width: min(44vw, 40rem); }
.copy--aud { width: min(46vw, 42rem); }
.copy--edu { max-width: 36rem; }
.copy--why { max-width: 74rem; }
.copy--floor { width: min(100%, 66rem); }
.copy__h1 { margin: 0 0 var(--sc-5); max-width: 16ch; font-size: clamp(2.6rem, 1.6rem + 4.4vw, 5.4rem); letter-spacing: -0.03em; line-height: 0.98; margin-inline: auto; }
.copy__h2 { margin: 0 0 var(--sc-4); }
.copy__h2--center { text-align: center; }
.copy__h2--caps { text-transform: uppercase; letter-spacing: -0.01em; font-size: clamp(1.6rem, 1rem + 2vw, 2.7rem); max-width: 20ch; }
.copy--vision .copy__h2 { font-size: var(--sc-t-xl); }
.copy--vision .sc-body, .founder__bio { font-size: var(--sc-t-sm); }
.copy__h3 { font-family: var(--sc-font-text); font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); margin: var(--sc-5) 0 var(--sc-2); font-weight: 500; }
.copy__sub { max-width: 44ch; margin: 0 auto var(--sc-6); font-size: var(--sc-t-lg); line-height: 1.45; color: var(--sc-ink); }
.copy .sc-body { color: var(--sc-ink-soft); }
.copy .sc-body + .sc-body { margin-top: var(--sc-3); }
.copy--beat .copy__line { margin: 0 auto var(--sc-3); max-width: 24ch; }
.copy--beat .sc-body { max-width: 52ch; margin-inline: auto; }

/* scrims are siblings of the copy they protect, shaped to where the copy sits */
.scrim { position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0; }
.scrim--hero { background: radial-gradient(ellipse 46% 60% at 50% 52%, color-mix(in oklab, var(--sc-canvas) 78%, transparent), transparent 100%); }
.scrim--band { background: linear-gradient(to top, color-mix(in oklab, var(--sc-canvas) 90%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 60%, transparent) 30%, transparent 58%); }
.scrim--top { background: linear-gradient(to bottom, color-mix(in oklab, var(--sc-canvas) 92%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 70%, transparent) 42%, transparent 74%); }
.scrim--lead { background: linear-gradient(100deg, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 80%, transparent) 40%, transparent 64%); }
.scrim--trail { background: linear-gradient(260deg, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 80%, transparent) 42%, transparent 66%); }
.scrim--edu { background: linear-gradient(to bottom, color-mix(in oklab, var(--sc-canvas) 92%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 60%, transparent) 40%, transparent 70%), linear-gradient(100deg, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 88%, transparent) 36%, color-mix(in oklab, var(--sc-canvas) 40%, transparent) 56%, transparent 70%); }
.scrim--office { background: linear-gradient(to bottom, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 88%, transparent) 56%, color-mix(in oklab, var(--sc-canvas) 40%, transparent) 80%, transparent 100%); }
.scrim--floor { background: linear-gradient(90deg, color-mix(in oklab, var(--sc-canvas) 95%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 88%, transparent) 34%, color-mix(in oklab, var(--sc-canvas) 62%, transparent) 64%, transparent 84%); }

/* products: three marks hung on the three spotlight boards of the lobby wall.
   On landscape viewports page.js positions each .props__item on its measured board (inline left/top/width/height,
   tracking the clip's playhead). On portrait viewports only the middle board is in frame, so the three stack as a
   band instead (see the phone block below). */
.copyhost--wall { position: absolute; inset: 0; padding: 0; display: block; }
.props { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; }
.props__item { position: absolute; display: flex; align-items: center; justify-content: center; }
.props__link { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6%; width: 78%; height: 100%; padding-top: 14%; text-decoration: none; color: var(--sc-ink); transition: transform 220ms var(--sc-ease-out); }
a.props__link:hover { transform: translateY(-3px); }
.props__name { font-family: var(--sc-font-display); font-weight: 600; font-size: clamp(0.9rem, 0.4rem + 1.5vw, 1.9rem); letter-spacing: 0.05em; text-transform: uppercase; text-align: center; text-shadow: 0 2px 18px rgba(0,0,0,0.7); }
.props__logo { display: block; width: 100%; height: auto; max-height: 62%; object-fit: contain; filter: drop-shadow(0 6px 22px rgba(0,0,0,0.55)); }
.props__logo--tcc-arnavfx { width: 92%; }
.props__go { font-family: var(--sc-font-text); font-size: clamp(0.6rem, 0.4rem + 0.5vw, 0.8rem); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-accent); opacity: 0; transform: translateY(4px); transition: opacity 200ms var(--sc-ease-out), transform 200ms var(--sc-ease-out); }
a.props__link:hover .props__go, a.props__link:focus-visible .props__go { opacity: 1; transform: none; }

/* founders and vision */
.founders { display: grid; gap: var(--sc-5); }
/* founders: each row is [portrait | text]. Portraits hang in the left column over the cabin glass at their full,
   uncropped aspect; the text column starts past the door frame at ~50% of the stage. */
.copyhost--founders { align-items: center; justify-content: stretch; }
.copy--founders { width: 100%; }
.founders { gap: var(--sc-4); }
.founder { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 1.4vw; align-items: center; margin-left: 38%; }
.founder__photo { display: block; height: clamp(11rem, 27vh, 17rem); aspect-ratio: 1 / 1; width: auto; border-radius: 50%; overflow: hidden; filter: drop-shadow(0 10px 28px rgba(0,0,0,0.55)); }
.founder__photo img { display: block; height: 100%; width: 100%; object-fit: cover; }
.founder__text { grid-column: 2; }
.copy--founders .copy__h2, .copy--founders .copy__note { margin-left: 50%; }
.copy--founders .copy__note { width: 46%; }
.founder__name { font-family: var(--sc-font-display); font-size: var(--sc-t-lg); font-weight: 600; margin: 0; letter-spacing: -0.01em; }
.founder__role { margin: 0 0 var(--sc-2); font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-accent); }
.copy__note { margin-top: var(--sc-5); border-top: 1px solid var(--sc-hairline); padding-top: var(--sc-3); }

/* education: upper half, lead anchored, the quietest leg */
.edu { display: grid; grid-template-columns: 1fr; gap: var(--sc-4); max-width: 34rem; }
.edu .sc-body { font-size: var(--sc-t-sm); }
.edu__close { grid-column: 1 / -1; max-width: 60ch; }
.edu__close .sc-body { color: var(--sc-ink); }
.chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.chip { font-family: var(--sc-font-text); font-size: var(--sc-t-xs); letter-spacing: 0.02em; padding: 0.42em 0.8em; border: 1px solid color-mix(in oklab, var(--sc-ink) 24%, transparent); border-radius: 999px; color: var(--sc-ink); background: color-mix(in oklab, var(--sc-canvas) 55%, transparent); }

/* the floor: index left, one desk at a time right; scroll walks the desks, tabs jump the camera */
.copy--floor { display: grid; grid-template-columns: minmax(15rem, 20rem) minmax(0, 40rem); gap: var(--sc-7); align-items: start; }
.tabs { display: grid; gap: 0.15rem; }
.tab { all: unset; cursor: pointer; display: flex; align-items: baseline; padding: 0.55em 0.6em; border-radius: var(--radius); font-family: var(--sc-font-display); font-size: var(--sc-t-base); font-weight: 500; color: var(--sc-ink-soft); transition: color 160ms var(--sc-ease-out), background-color 160ms var(--sc-ease-out); }
.tab:hover { color: var(--sc-ink); }
.tab[aria-selected="true"] { color: var(--sc-ink); background: color-mix(in oklab, var(--sc-ink) 8%, transparent); }
.tab:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 2px; }
.desk__title { font-family: var(--sc-font-display); font-size: var(--sc-t-2xl); font-weight: 600; letter-spacing: -0.02em; margin: 0 0 var(--sc-2); line-height: 1.05; }
.desk__tagline { font-family: var(--sc-font-display); font-size: var(--sc-t-lg); color: var(--sc-accent); margin: 0 0 var(--sc-4); font-weight: 500; }
.desk__text { margin-bottom: var(--sc-4); }
.desk__close { margin-top: var(--sc-4); color: var(--sc-ink) !important; }
.risk { margin: var(--sc-4) 0 0; padding: var(--sc-3) var(--sc-4); border-left: 1px solid var(--sc-accent); font-size: var(--sc-t-sm); color: var(--sc-ink); background: color-mix(in oklab, var(--sc-surface) 70%, transparent); }
.desk { animation: deskIn 420ms var(--sc-ease-out); }
@keyframes deskIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* audiences: a ledger in the corridor's dark wall */
.ledger { margin: var(--sc-5) 0 0; }
.ledger__row { display: grid; grid-template-columns: 11rem 1fr; gap: var(--sc-4); padding: var(--sc-2) 0; border-top: 1px solid var(--sc-hairline); }
.ledger__row:last-child { border-bottom: 1px solid var(--sc-hairline); }
.ledger__k { font-family: var(--sc-font-display); font-weight: 600; margin: 0; }
.ledger__v { margin: 0; color: var(--sc-ink-soft); font-size: var(--sc-t-sm); }

/* back office: why FRBX, then the line the page lands on */
.why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sc-3) var(--sc-6); margin: 0; }
.why__k { font-family: var(--sc-font-display); font-weight: 600; margin: 0 0 var(--sc-1); }
.why__v { margin: 0; color: var(--sc-ink-soft); font-size: var(--sc-t-xs); line-height: 1.5; }
.copy__finale { margin: var(--sc-6) 0 0; max-width: 20ch; }

/* ------------------------------------------------------------------ coda: the back office in document flow */
.coda { position: relative; z-index: 300; background: var(--sc-canvas); box-shadow: 0 -1px 0 var(--sc-hairline); }
.coda__block { padding-block: var(--sc-section); }
.coda__block + .coda__block { border-top: 1px solid var(--sc-hairline); }
.coda__block--eco { padding-block: var(--sc-7); }
.eco { list-style: none; margin: 0 0 var(--sc-4); padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 0; font-family: var(--sc-font-display); font-weight: 500; }
.eco__node::after { content: "→"; margin-inline: 0.7em; color: var(--sc-accent); }
.eco__node:last-child::after { content: none; }
.coda__block--cta .sc-lead { max-width: 60ch; margin: var(--sc-4) 0 var(--sc-6); }
.cta__actions { display: flex; flex-wrap: wrap; gap: var(--sc-3); margin: 0; }
.contact { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--sc-8); }
.contact__qs { list-style: none; margin: var(--sc-5) 0; padding: 0; font-family: var(--sc-font-display); font-size: var(--sc-t-lg); display: grid; gap: 0.35em; }
.contact__list { margin: 0; }
.contact__row { display: grid; grid-template-columns: 6rem 1fr; gap: var(--sc-3); padding: var(--sc-3) 0; border-top: 1px solid var(--sc-hairline); }
.contact__row dt { color: var(--sc-ink-soft); font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; padding-top: 0.2em; }
.contact__row dd { margin: 0; }
.form { display: grid; gap: var(--sc-4); margin-top: var(--sc-5); }
.form__field { display: grid; gap: 0.4em; font-size: var(--sc-t-sm); color: var(--sc-ink-soft); }
.form__field input, .form__field textarea { font: inherit; color: var(--sc-ink); background: var(--sc-surface); border: 1px solid var(--sc-hairline-strong); border-radius: var(--radius); padding: 0.7em 0.9em; }
.form__note { font-size: var(--sc-t-xs); color: var(--sc-ink-soft); margin: 0; }
.videos { list-style: none; margin: var(--sc-5) 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: var(--sc-4); }
.videos:has(.video--portrait) { grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); gap: var(--sc-4) var(--sc-3); }
.video--portrait .video__cover { aspect-ratio: 9 / 16; }
.video__link { display: grid; gap: var(--sc-2); text-decoration: none; color: var(--sc-ink); }
.video__cover { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); }
.video__title { font-size: var(--sc-t-sm); }
.socials { list-style: none; margin: var(--sc-4) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--sc-3) var(--sc-5); }
.socials__link { font-family: var(--sc-font-display); font-weight: 500; text-decoration: none; border-bottom: 1px solid var(--sc-hairline-strong); }
.socials__link:hover { border-color: var(--sc-accent); }
.foot { position: relative; z-index: 300; background: var(--sc-surface); padding-block: var(--sc-7); font-size: var(--sc-t-sm); color: var(--sc-ink-soft); }
.foot__entity { font-family: var(--sc-font-display); font-weight: 600; color: var(--sc-ink); margin: 0 0 var(--sc-3); }
.foot__disclaimer { max-width: 80ch; margin: 0 0 var(--sc-4); font-size: var(--sc-t-xs); line-height: 1.6; }
.foot__signoff { margin: 0; color: var(--sc-ink); }
.foot__links { list-style: none; margin: var(--sc-4) 0 0; padding: 0; display: flex; gap: var(--sc-4); }

/* ------------------------------------------------------------------ phone and tablet: art-directed separately */
@media (max-width: 860px) {
  :root { --bar-h: 3.75rem; }
  .bar__toggle { display: flex; }
  .directory { position: fixed; inset: var(--bar-h) 0 auto 0; padding: var(--sc-4) var(--sc-gutter) var(--sc-6); background: color-mix(in oklab, var(--sc-canvas) 94%, transparent); backdrop-filter: blur(12px); border-bottom: 1px solid var(--sc-hairline); transform: translateY(-8px); opacity: 0; visibility: hidden; transition: opacity 220ms var(--sc-ease-out), transform 220ms var(--sc-ease-out), visibility 0s 220ms; }
  .directory.is-open { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .directory__list { flex-direction: column; gap: var(--sc-2); }
  .directory__link { font-size: var(--sc-t-lg); font-family: var(--sc-font-display); }
  .pass { right: var(--sc-4); bottom: 0.9rem; gap: var(--sc-3); padding: 0.45rem 0.7rem; }
  .pass__head, .pass__foot .pass__status { display: none; }
  .pass__stamp { font-size: 0; gap: 0; }         /* dots only on phones; the label stays in the DOM for assistive tech */
  .pass__stamps { gap: 0.45rem; }
  .pass__foot { padding-left: 0; border-left: 0; }

  /* portrait doors: the type sits ABOVE the doors, in the still's empty top third */
  .doors { --ar: calc(9 / 16); --ox: 0.103; --oy: 0.289; --ow: 0.805; --oh: 0.638; --lw: 0.5; --swing: 78deg; }
  .doors__beyond { background-image: var(--beyond-m); }
  .doors__frame, .doors__leaf::before { background-image: var(--frame-m); }

  /* every window becomes a bottom band on a band scrim, except the hero (top) */
  .copyhost { padding: var(--bar-h) var(--sc-gutter) 5.5rem; align-items: flex-end; justify-content: stretch; }
  .copyhost--center, .copyhost--props { align-items: flex-start; padding-top: calc(var(--bar-h) + 2vh); }
  .copy--props { max-height: none; }
  .copyhost--bottom { padding-bottom: 7vh; }
  .copy { width: 100%; max-width: none; max-height: calc(100svh - var(--bar-h) - 5rem); overflow: clip; }
  .copy--founders, .copy--vision, .copy--aud, .copy--floor { width: 100%; }
  .copy__h1 { font-size: clamp(2rem, 1.2rem + 6vw, 3rem); max-width: 14ch; margin-bottom: var(--sc-3); }
  .copy__sub { font-size: var(--sc-t-base); margin-bottom: var(--sc-4); }
  .scrim--hero { background: linear-gradient(to bottom, color-mix(in oklab, var(--sc-canvas) 88%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 55%, transparent) 36%, transparent 55%); }
  .copy--beat .copy__line { font-size: var(--sc-t-xl); }
  .scrim--top, .scrim--lead, .scrim--trail, .scrim--floor, .scrim--office, .scrim--edu { background: linear-gradient(to top, color-mix(in oklab, var(--sc-canvas) 95%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 86%, transparent) 46%, color-mix(in oklab, var(--sc-canvas) 34%, transparent) 72%, transparent 100%); }
  .scrim--props { background: linear-gradient(to bottom, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 78%, transparent) 26%, transparent 46%); }
  /* portrait: the boards stack as a band over the wall; each item draws its own board */
  .copyhost--wall { inset: auto 0 0 0; padding: 0 var(--sc-gutter) 6.5rem; }
  .props { position: static; display: grid; grid-template-columns: 1fr; gap: 0.6rem; }
  .props__item { position: static; height: 5.6rem; background: color-mix(in oklab, var(--sc-canvas) 78%, transparent); border-radius: var(--radius); box-shadow: var(--sc-e2), var(--sc-edge); }
  .props__link { flex-direction: row; gap: var(--sc-3); padding: 0 var(--sc-4); width: 100%; justify-content: space-between; }
  .props__logo { width: auto; height: 3.6rem; max-height: none; max-width: 60%; }
  .props__logo--tcc-arnavfx { height: 4.6rem; }
  .props__go { opacity: 1; transform: none; }
  .props__item--empty { display: none; }
  .props__name { font-size: var(--sc-t-lg); }
  .founders { gap: var(--sc-3); }
  .founder__bio { font-size: var(--sc-t-xs); line-height: 1.5; }
  .founder { grid-template-columns: auto minmax(0, 1fr); column-gap: var(--sc-3); align-items: start; margin-left: 0; }
  .founder__photo { height: 7.5rem; }
  .copy--founders .copy__h2, .copy--founders .copy__note { margin-left: 0; width: auto; }
  .copy__note { display: none; }
  .copy--vision .copy__h2 { font-size: var(--sc-t-lg); }
  .copy--vision .sc-body { font-size: var(--sc-t-xs); }
  .copy--vision .sc-body + .sc-body { display: none; }
  .edu { grid-template-columns: 1fr; gap: var(--sc-3); }
  .edu__text .sc-body { font-size: var(--sc-t-xs); }
  .edu__text .sc-body:first-child { display: none; }
  .edu__close .sc-body + .sc-body { display: none; }
  .copy__h2--caps { font-size: var(--sc-t-xl); }
  .copy--floor { display: flex; flex-direction: column; gap: var(--sc-3); }
  .floor__index .copy__h2 { font-size: var(--sc-t-lg); margin-bottom: var(--sc-2); }
  .tabs { display: flex; overflow-x: auto; gap: 0.25rem; scrollbar-width: none; margin-inline: calc(var(--sc-gutter) * -1); padding-inline: var(--sc-gutter); }
  .tab { white-space: nowrap; font-size: var(--sc-t-sm); }
  .desk__title { font-size: var(--sc-t-xl); }
  .desk__tagline { font-size: var(--sc-t-base); margin-bottom: var(--sc-2); }
  .desk__text .sc-body:not(:last-child) { display: none; }
  .desk__text .sc-body { font-size: var(--sc-t-xs); }
  .desk__close { display: none; }
  .chip { font-size: 0.7rem; padding: 0.3em 0.6em; }
  .ledger__row { grid-template-columns: 1fr; gap: 0.1rem; padding: 0.35rem 0; }
  .ledger__v { font-size: var(--sc-t-xs); }
  .why { grid-template-columns: 1fr 1fr; gap: var(--sc-2) var(--sc-4); }
  .why__v { font-size: 0.68rem; line-height: 1.4; }
  .why__k { font-size: var(--sc-t-sm); }
  .copy__finale { margin-top: var(--sc-4); font-size: var(--sc-t-xl); }
  .contact { grid-template-columns: 1fr; gap: var(--sc-6); }
}
@media (max-width: 400px) { .ledger__row { padding: 0.2rem 0; } .chip { font-size: 0.64rem; } .edu__text .sc-body:not(:last-child) { display: none; } .why__v { font-size: 0.62rem; } .why { grid-template-columns: 1fr 1fr; gap: 0.25rem var(--sc-3); } .ledger__v { font-size: 0.68rem; } .founder__bio { font-size: 0.68rem; } }

/* ------------------------------------------------------------------ reduced motion: the whole story, no travel */
@media (prefers-reduced-motion: reduce) {
  .doors { --open: 0.55; --thru: 0; }               /* doors held ajar, depth kept in the static composition */
  .doors__near, .doors__beyond, .doors__leaf { transition: none; will-change: auto; }
  .props__item { transition: none; }
  .desk { animation: none; }
  .pass, .directory, .directory__link::after, .btn, .bar__toggle-line, .pass__dot { transition: none; }
}

/* short desktop viewports: keep the two tallest windows inside the fold */
@media (min-width: 861px) and (max-height: 800px) {
  .copy__h2--caps { font-size: 2rem; }
  .edu { gap: var(--sc-3); }
  .edu .sc-body, .founder__bio, .copy--vision .sc-body { font-size: var(--sc-t-xs); }
  .founders { gap: var(--sc-3); }
  .copyhost { padding-top: calc(var(--bar-h) + var(--sc-4)); }
}

/* products heading: bottom-left over the desks, clear of the three boards and of the access pass */
.copyhost--props { align-items: flex-end; justify-content: flex-start; }
.copy__h2--products { margin: 0; }
.scrim--props { background: linear-gradient(to top, color-mix(in oklab, var(--sc-canvas) 90%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 55%, transparent) 22%, transparent 42%); }
@media (max-width: 860px) {
  .copyhost--props { align-items: flex-start; }
  .scrim--props { background: linear-gradient(to bottom, color-mix(in oklab, var(--sc-canvas) 94%, transparent) 0%, color-mix(in oklab, var(--sc-canvas) 78%, transparent) 26%, transparent 46%); }
}

/* footer logo */
.foot__logo { display: block; height: 3.25rem; width: auto; margin: 0 0 var(--sc-4); }

/* founder instagram handle beside the name */
.founder__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.3rem 0.9rem; }
.founder__ig { display: inline-flex; align-items: center; gap: 0.35em; font-family: var(--sc-font-text); font-size: var(--sc-t-sm); color: var(--sc-ink-soft); text-decoration: none; transition: color 140ms var(--sc-ease-out); }
.founder__ig:hover, .founder__ig:focus-visible { color: var(--sc-ink); }
.ico { width: 1.05em; height: 1.05em; flex: none; }
.founder__ig .ico { transform: translateY(0.12em); }
/* social columns under "Let's talk." */
.contact__socials { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sc-5) var(--sc-6); margin-top: var(--sc-4); padding-top: var(--sc-5); border-top: 1px solid var(--sc-hairline); }
.social__platform { display: flex; align-items: center; gap: 0.5em; margin: 0 0 var(--sc-3); font-family: var(--sc-font-text); font-size: var(--sc-t-xs); letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-ink-soft); font-weight: 500; }
.social__platform .ico { width: 1.35em; height: 1.35em; color: var(--sc-ink); }
.social__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.social__link { font-family: var(--sc-font-display); font-weight: 500; font-size: var(--sc-t-base); text-decoration: none; border-bottom: 1px solid var(--sc-hairline-strong); transition: border-color 140ms var(--sc-ease-out); overflow-wrap: anywhere; }
.social__link:hover, .social__link:focus-visible { border-color: var(--sc-accent); }
@media (max-width: 860px) {
  .contact__socials { grid-template-columns: 1fr; gap: var(--sc-5); }
  .founder__ig { font-size: var(--sc-t-xs); }
}

/* education programs: kicker, heading and text in the left column; the three boxes fill the right column,
   starting level with the heading so they fit the fixed stage. Boxes cap their own height and scroll if a
   short viewport still cannot hold them. */
.copy--edu:has(.edu--programs) { max-width: none; width: 100%; display: grid; grid-template-columns: minmax(0, 21rem) minmax(0, 1fr); grid-template-rows: auto auto 1fr; column-gap: var(--sc-6); align-items: start; }
.copy--edu:has(.edu--programs) > .sc-kicker, .copy--edu:has(.edu--programs) > .copy__h2 { grid-column: 1; }
.copy--edu:has(.edu--programs) .copy__h2--caps { font-size: clamp(1.5rem, 1rem + 1.7vw, 2.4rem); max-width: 18ch; margin-bottom: var(--sc-3); }
.edu--programs { display: contents; }
.edu__col { grid-column: 1; display: grid; gap: var(--sc-3); }
.edu__col .sc-body { font-size: 0.82rem; }
.programs { grid-column: 2; grid-row: 1 / span 3; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sc-3); align-items: stretch; max-height: calc(100vh - var(--bar-h) - 7rem); }
.program { display: flex; flex-direction: column; gap: 0.5rem; padding: var(--sc-4); max-height: calc(100vh - var(--bar-h) - 7rem); overflow-y: auto; scrollbar-width: thin; background: color-mix(in oklab, var(--sc-surface) 84%, transparent); border: 1px solid var(--sc-hairline); border-radius: calc(var(--radius) * 2); box-shadow: var(--sc-e2); backdrop-filter: blur(6px); font-size: 0.76rem; line-height: 1.42; }
.program__tier { align-self: flex-start; margin: 0; padding: 0.2em 0.7em; border: 1px solid currentColor; border-radius: 999px; font-family: var(--sc-font-text); font-size: 0.66rem; letter-spacing: 0.03em; color: var(--tone); }
.program--green { --tone: #9ADB5C; }
.program--red { --tone: #E0705E; }
.program--gold { --tone: #E2B45A; }
.program__title { margin: 0.1rem 0 0; font-family: var(--sc-font-display); font-size: clamp(0.95rem, 0.65rem + 0.65vw, 1.25rem); font-weight: 600; line-height: 1.1; letter-spacing: -0.01em; }
.program__avail { margin: 0; font-family: var(--sc-font-text); font-size: 0.66rem; letter-spacing: var(--sc-track-wide); text-transform: uppercase; color: var(--sc-accent); font-weight: 500; }
.program__desc { margin: 0; color: var(--sc-ink-soft); }
.program__lead { margin: 0.15rem 0 0; font-weight: 500; color: var(--sc-ink); }
.program__list { list-style: none; margin: 0 0 auto; padding: 0; display: grid; gap: 0.28rem; color: var(--sc-ink-soft); }
.program__list li { padding-left: 1em; text-indent: -1em; }
.program__list li::before { content: "•"; display: inline-block; width: 1em; text-indent: 0; color: var(--tone); }
.program__cta { margin-top: var(--sc-3); align-self: flex-start; padding: 0.55em 1.05em; font-size: 0.72rem; }
@media (max-height: 800px) { .program { font-size: 0.68rem; line-height: 1.38; gap: 0.4rem; } .program__list { gap: 0.2rem; } .edu__col .sc-body { font-size: 0.76rem; } }
@media (max-width: 1180px) { .copy--edu:has(.edu--programs) { grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); column-gap: var(--sc-4); } .program { font-size: 0.66rem; padding: var(--sc-3); } }
@media (max-width: 860px) {
  .copy--edu:has(.edu--programs) { display: block; padding-top: 12vh; }
  .edu--programs { display: grid; grid-template-columns: 1fr; gap: var(--sc-3); }
  .edu__col { grid-template-columns: 1fr; }
  .programs { grid-column: auto; grid-row: auto; display: flex; gap: var(--sc-3); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; order: -1; max-height: none; }
  .program { flex: 0 0 82%; max-height: 42svh; scroll-snap-align: start; font-size: 0.7rem; }
}

/* dense desk (Trading Floor): six grouped lists in two columns, then the daily schedule */
.desk--dense .desk__text { margin-bottom: var(--sc-3); }
.desk__groups { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sc-3) var(--sc-4); }
.group__title { margin: 0 0 0.4rem; font-family: var(--sc-font-text); font-size: var(--sc-t-xs); font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; color: var(--sc-ink); }
.chips--sm { gap: 0.3rem; }
.chips--sm .chip { font-size: 0.68rem; padding: 0.32em 0.65em; }
.sched { margin-top: var(--sc-4); padding-top: var(--sc-3); border-top: 1px solid var(--sc-hairline); }
.sched__rows { margin: 0; display: grid; gap: 0.3rem; }
.sched__row { display: grid; grid-template-columns: 9.5rem 1fr; gap: var(--sc-3); font-size: var(--sc-t-sm); }
.sched__row dt { color: var(--sc-accent); font-weight: 500; font-variant-numeric: tabular-nums; }
.sched__row dd { margin: 0; color: var(--sc-ink-soft); }
@media (max-height: 800px) { .desk--dense .desk__text .sc-body { font-size: var(--sc-t-xs); } .chips--sm .chip { font-size: 0.62rem; } .desk__groups { gap: var(--sc-2) var(--sc-3); } .sched__row { font-size: var(--sc-t-xs); } .desk--dense .desk__title { font-size: var(--sc-t-xl); } }
@media (max-width: 860px) {
  .desk__groups { grid-template-columns: 1fr 1fr; gap: 0.5rem var(--sc-3); }
  .chips--sm .chip { font-size: 0.6rem; }
  .group__title { font-size: 0.62rem; margin-bottom: 0.25rem; }
  .sched { margin-top: var(--sc-2); padding-top: var(--sc-2); }
  .sched__row { grid-template-columns: 7rem 1fr; font-size: 0.66rem; }
  .desk--dense .desk__text { display: none; }
}

/* dense desk fit: wider desk column, three group columns, schedule as three cells, and a scroll cap as the last resort */
.copy--floor:has(.desk--dense:not([hidden])) { width: min(100%, 78rem); grid-template-columns: minmax(15rem, 19rem) minmax(0, 52rem); gap: var(--sc-6); }
.desk--dense { max-height: calc(100vh - var(--bar-h) - 6.5rem); overflow-y: auto; scrollbar-width: thin; padding-right: var(--sc-2); }
.desk--dense .desk__title { font-size: var(--sc-t-xl); }
.desk--dense .desk__tagline { font-size: var(--sc-t-base); margin-bottom: var(--sc-3); }
.desk--dense .desk__groups { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sc-3); }
.sched__rows { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sc-3); }
.sched__row { display: block; }
.sched__row dt { margin-bottom: 0.15rem; }
@media (max-width: 1180px) { .desk--dense .desk__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 860px) {
  .desk--dense { max-height: 56svh; padding-right: 0; }
  .desk--dense .desk__groups { grid-template-columns: 1fr 1fr; }
  .sched__rows { grid-template-columns: 1fr; gap: 0.3rem; }
  .sched__row { display: grid; grid-template-columns: 7rem 1fr; }
}

/* videos carousel: a scroll-snap track with edge buttons; swipe, wheel, arrows and buttons all work */
.carousel { position: relative; margin: var(--sc-5) 0; }
.videos--carousel { display: flex; gap: var(--sc-3); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 0; scrollbar-width: none; margin: 0; padding: 0.25rem 0; -webkit-overflow-scrolling: touch; }
.videos--carousel::-webkit-scrollbar { display: none; }
.videos--carousel .video { flex: 0 0 clamp(10rem, 14vw, 13rem); scroll-snap-align: start; }
.videos--carousel:focus-visible { outline: 2px solid var(--sc-accent); outline-offset: 4px; border-radius: var(--radius); }
.carousel__btn { position: absolute; top: 40%; z-index: 2; width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 1px solid var(--sc-hairline-strong); background: color-mix(in oklab, var(--sc-canvas) 82%, transparent); backdrop-filter: blur(8px); color: var(--sc-ink); display: grid; place-items: center; cursor: pointer; box-shadow: var(--sc-e2); transition: opacity 160ms var(--sc-ease-out), transform 160ms var(--sc-ease-out); }
.carousel__btn svg { width: 1.2rem; height: 1.2rem; }
.carousel__btn--prev { left: -1.375rem; }
.carousel__btn--next { right: -1.375rem; }
.carousel__btn:hover { transform: scale(1.06); }
.carousel__btn[disabled] { opacity: 0; pointer-events: none; }
@media (max-width: 860px) { .carousel__btn--prev { left: 0.25rem; } .carousel__btn--next { right: 0.25rem; } .videos--carousel .video { flex-basis: 42vw; } }
@media (prefers-reduced-motion: reduce) { .videos--carousel { scroll-behavior: auto; } }

/* carousel pause/resume control */
.carousel__toggle { position: absolute; right: 0; top: -2.6rem; width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid var(--sc-hairline-strong); background: transparent; color: var(--sc-ink-soft); display: grid; place-items: center; cursor: pointer; }
.carousel__toggle:hover { color: var(--sc-ink); border-color: var(--sc-ink); }
.carousel__toggle svg { width: 1rem; height: 1rem; }
.carousel__toggle .carousel__toggle-play, .carousel__toggle[aria-pressed="true"] .carousel__toggle-pause { display: none; }
.carousel__toggle[aria-pressed="true"] .carousel__toggle-play { display: block; }
.carousel__toggle[hidden] { display: none; }

/* videos marquee: continuous leftward loop. Two copies of the row; the keyframe moves exactly one copy's width. */
.marquee { position: relative; margin: var(--sc-5) 0; }
.marquee__clip { overflow: clip; }
.videos--marquee { display: flex; width: max-content; gap: var(--sc-3); margin: 0; padding: 0.25rem 0; animation: marquee var(--marquee-dur, 60s) linear infinite; will-change: transform; }
.videos--marquee .video { flex: 0 0 clamp(10rem, 14vw, 13rem); margin-right: 0; }
.videos--marquee .video:last-child { margin-right: var(--sc-3); }   /* the seam gets the same gap as every other join */
.marquee:hover .videos--marquee, .marquee:focus-within .videos--marquee, .marquee.is-paused .videos--marquee { animation-play-state: paused; }
@keyframes marquee { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 860px) { .videos--marquee .video { flex-basis: 42vw; } }
@media (prefers-reduced-motion: reduce) {
  .videos--marquee { animation: none; width: auto; overflow-x: auto; scroll-snap-type: x mandatory; }
  .videos--marquee .video { scroll-snap-align: start; }
  .videos--marquee [data-clone] { display: none; }
}
