/* ==========================================================================
   VENTUREITALICA — DESIGN TOKENS
   Built on the Harvard University visual identity.

   Colour values are taken from the Harvard Graphic Identity Standards Manual
   and the Harvard design systems: Crimson #A51C30, Ink #1E1E1E, Slate
   #8996A0, Mortar #8C8179, Parchment #F3F3F1, Shade #BAC5C6, with the
   documented accents Indigo #283352, Ivy #1C6947 and Gold #B1863D / #8C5E10.

   Typography follows Harvard's specification: Caslon for serif and a Franklin
   Gothic grotesque for sans, delivered as Libre Caslon and Libre Franklin,
   with Harvard's own web fallbacks of Georgia and Arial beneath them.

   Two identity rules are observed throughout:
     · Crimson is never used for running text or headings.
     · No italics anywhere. Emphasis is carried by weight and colour.
   ========================================================================== */

:root {

  /* ---------------------------------------------------------------------
     PRIMARY — HARVARD CRIMSON
     Used decisively and sparingly: links, rules, primary actions, eyebrows.
     Never for headings or body copy.
     --------------------------------------------------------------------- */
  --vi-crimson:          #A51C30;
  --vi-crimson-700:      #8B1728;
  --vi-crimson-800:      #6E1220;
  --vi-crimson-900:      #4E0D17;
  --vi-crimson-300:      #C9737F;
  --vi-crimson-100:      #F0D6DA;
  --vi-crimson-050:      #FBF2F3;

  /* Legacy aliases — the component layer addresses the primary through
     these, so the whole system re-skins from the six values above. */
  --vi-verdigris:        var(--vi-crimson);
  --vi-verdigris-700:    var(--vi-crimson-700);
  --vi-verdigris-800:    var(--vi-crimson-800);
  --vi-verdigris-900:    #1E1E1E;          /* dark bands sit on Ink */
  --vi-verdigris-300:    var(--vi-crimson-300);
  --vi-verdigris-100:    var(--vi-crimson-100);
  --vi-verdigris-050:    var(--vi-crimson-050);

  /* ---------------------------------------------------------------------
     HARVARD CORE NEUTRALS
     --------------------------------------------------------------------- */
  --vi-ink:              #1E1E1E;   /* Harvard Ink */
  --vi-ink-700:          #3D3D3D;
  --vi-ink-500:          #63625F;
  --vi-ink-400:          #8C8179;   /* Harvard Mortar */
  --vi-ink-300:          #8996A0;   /* Harvard Slate */
  --vi-rule:             #D3D1CD;
  --vi-rule-light:       #E7E5E1;
  --vi-linen:            #F3F3F1;   /* Harvard Parchment */
  --vi-linen-deep:       #DBD7D4;   /* Harvard Light Mortar */
  --vi-paper:            #FFFFFF;

  --vi-slate:            #8996A0;
  --vi-mortar:           #8C8179;
  --vi-parchment:        #F3F3F1;
  --vi-shade:            #BAC5C6;

  /* ---------------------------------------------------------------------
     HARVARD ACCENTS — object-class coding across the platform
     --------------------------------------------------------------------- */
  --vi-gold:             #B1863D;   /* Harvard Light Gold — capital and value */
  --vi-gold-700:         #8C5E10;   /* Harvard Dark Gold */
  --vi-gold-100:         #F5EDDF;

  --vi-rust:             #8B1728;   /* deep crimson — risk and obligation */
  --vi-rust-700:         #6E1220;
  --vi-rust-100:         #F0D6DA;

  --vi-lapis:            #283352;   /* Harvard Indigo — Place and territory */
  --vi-lapis-100:        #DDE0E8;
  --vi-terracotta:       #8C8179;   /* Harvard Mortar — Asset and property */
  --vi-terracotta-100:   #E9E6E3;
  --vi-olive:            #1C6947;   /* Harvard Ivy — Venture and operation */
  --vi-olive-100:        #DAE7E0;
  --vi-plum:             #4D4B48;   /* Harvard Dark Clay — Collective */
  --vi-plum-100:         #E4E3E1;

  /* ---------------------------------------------------------------------
     SEMANTIC
     --------------------------------------------------------------------- */
  --vi-positive:         #1C6947;
  --vi-positive-100:     #DAE7E0;
  --vi-caution:          #8C5E10;
  --vi-caution-100:      #F5EDDF;
  --vi-critical:         #A51C30;
  --vi-critical-100:     #F0D6DA;
  --vi-info:             #283352;
  --vi-info-100:         #DDE0E8;

  /* ---------------------------------------------------------------------
     TYPEFACES — Harvard's own web specification, followed exactly.

     The Harvard Graphic Identity Standards name two families: Anziano Pro
     for display and Benton Sans for text. For the web, where neither is
     licensed for general distribution, the standards specify Georgia and
     Arial, and that is what Harvard's own properties render for most
     visitors. Both are installed on effectively every device, so the site
     loads with no webfont request and no flash of substituted text.

     The licensed families are named first in each stack, so a site that
     holds an Anziano Pro or Benton Sans licence gets them automatically by
     installing the webfont; everywhere else the stack resolves to Harvard's
     specified web faces.

     Figures, classification codes and statutory references are set in the
     text face with tabular lining numerals rather than a second typeface.
     --------------------------------------------------------------------- */
  --vi-font-display: "Anziano Pro", Georgia, "Times New Roman", Times, serif;
  --vi-font-heading: "Anziano Pro", Georgia, "Times New Roman", Times, serif;
  --vi-font-text:    "Benton Sans", Arial, Helvetica, "Helvetica Neue", sans-serif;
  --vi-font-mono:    "Benton Sans", Arial, Helvetica, "Helvetica Neue", sans-serif;

  /* ---------------------------------------------------------------------
     TYPE SCALE
     Georgia carries a large x-height and generous sidebearings, so the
     display steps come down a little from a Caslon setting and the tracking
     tightens; Arial at text sizes wants a slightly shorter measure and a
     touch more leading than a humanist sans would.
     --------------------------------------------------------------------- */
  --vi-size-display-1:  clamp(2.75rem, 1.45rem + 4.4vw, 5rem);
  --vi-size-display-2:  clamp(2.3125rem, 1.35rem + 3.3vw, 4rem);
  --vi-size-display-3:  clamp(2rem, 1.32rem + 2.4vw, 3.125rem);
  --vi-size-h1:         clamp(1.8125rem, 1.28rem + 1.85vw, 2.6875rem);
  --vi-size-h2:         clamp(1.5rem, 1.16rem + 1.3vw, 2.0625rem);
  --vi-size-h3:         clamp(1.25rem, 1.07rem + 0.7vw, 1.5625rem);
  --vi-size-h4:         clamp(1.09375rem, 1rem + 0.34vw, 1.28125rem);
  --vi-size-h5:         1.0625rem;
  --vi-size-lede:       clamp(1.1875rem, 1.08rem + 0.5vw, 1.4375rem);
  --vi-size-body:       1.0625rem;
  --vi-size-body-sm:    0.9375rem;
  --vi-size-caption:    0.8125rem;
  --vi-size-micro:      0.6875rem;

  --vi-lh-display:      1.1;
  --vi-lh-heading:      1.22;
  --vi-lh-lede:         1.5;
  --vi-lh-body:         1.66;
  --vi-lh-tight:        1.34;

  --vi-track-display:   -0.018em;
  --vi-track-heading:   -0.012em;
  --vi-track-body:      -0.003em;
  --vi-track-eyebrow:   0.13em;
  --vi-track-caps:      0.055em;

  /* ---------------------------------------------------------------------
     SPACE
     --------------------------------------------------------------------- */
  --vi-s1:  0.25rem;
  --vi-s2:  0.5rem;
  --vi-s3:  0.75rem;
  --vi-s4:  1rem;
  --vi-s5:  1.5rem;
  --vi-s6:  2rem;
  --vi-s7:  2.5rem;
  --vi-s8:  3rem;
  --vi-s9:  4rem;
  --vi-s10: 5rem;
  --vi-s11: 6.5rem;
  --vi-s12: 8rem;
  --vi-s13: 10rem;

  --vi-section-y:      clamp(3.5rem, 2rem + 6vw, 7.5rem);
  --vi-section-y-lg:   clamp(5rem, 2.5rem + 8vw, 10rem);
  --vi-section-y-sm:   clamp(2.5rem, 1.5rem + 3.5vw, 4.5rem);

  /* ---------------------------------------------------------------------
     MEASURE
     --------------------------------------------------------------------- */
  --vi-measure:        66ch;
  --vi-measure-narrow: 56ch;
  --vi-measure-wide:   82ch;

  /* ---------------------------------------------------------------------
     LAYOUT
     --------------------------------------------------------------------- */
  --vi-container:       1320px;
  --vi-container-wide:  1560px;
  --vi-container-text:  760px;
  --vi-container-mid:   1040px;
  --vi-gutter:          clamp(1.25rem, 0.6rem + 2.6vw, 3.5rem);

  --vi-header-h:        74px;
  --vi-utility-h:       38px;

  /* ---------------------------------------------------------------------
     SURFACE
     --------------------------------------------------------------------- */
  --vi-radius-0:  0;
  --vi-radius-1:  2px;
  --vi-radius-2:  3px;
  --vi-radius-3:  6px;
  --vi-radius-pill: 999px;

  --vi-shadow-1: 0 1px 2px rgba(30,30,30,.06), 0 1px 1px rgba(30,30,30,.04);
  --vi-shadow-2: 0 4px 16px rgba(30,30,30,.08), 0 1px 3px rgba(30,30,30,.05);
  --vi-shadow-3: 0 12px 40px rgba(30,30,30,.12), 0 2px 8px rgba(30,30,30,.06);
  --vi-shadow-4: 0 28px 80px rgba(30,30,30,.18), 0 4px 16px rgba(30,30,30,.08);

  --vi-ease:      cubic-bezier(.22,.61,.36,1);
  --vi-ease-in:   cubic-bezier(.55,.06,.68,.19);
  --vi-ease-out:  cubic-bezier(.16,1,.3,1);
  --vi-dur-1:     140ms;
  --vi-dur-2:     240ms;
  --vi-dur-3:     420ms;
  --vi-dur-4:     680ms;

  --vi-z-overlay:  880;
  --vi-z-header:   900;
  --vi-z-mega:     950;
  --vi-z-modal:    1000;
  --vi-z-toast:    1050;
}

/* --------------------------------------------------------------------------
   DARK SURFACE CONTEXT
   Interstitial bands sit on Harvard Ink, with Gold carrying the accent role
   that Crimson carries on light ground.
   -------------------------------------------------------------------------- */
.vi-invert {
  --vi-ink:        #F7F6F4;
  --vi-ink-700:    #DAD7D2;
  --vi-ink-500:    #ADA9A2;
  --vi-ink-400:    #918C85;
  --vi-rule:       rgba(247,246,244,.22);
  --vi-rule-light: rgba(247,246,244,.13);
  --vi-paper:      #1E1E1E;
  --vi-linen:      #2A2A2A;
  --vi-verdigris:  var(--vi-gold);
  color: var(--vi-ink);
  background: #1E1E1E;
}

/* --------------------------------------------------------------------------
   MOTION PREFERENCE
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
