/*
 * Legacy Hull measurement-token compatibility layer.
 * New design-system work belongs in ice-design-system.css. This file keeps the proven
 * component API available while routes migrate away from the old --hs-* names.
 */

:root{
  /* Type families and measures. */
  --hs-font-sans:var(--ice-font-primary,-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif);
  --hs-font-display:var(--ice-font-display,Georgia,"Times New Roman",ui-serif,serif);
  --hs-measure-prose:65ch;
  --hs-measure-prose-wide:80ch;
  --hs-measure-lede:62ch;
  --hs-measure-h1:15ch;
  --hs-measure-quote:56ch;
  --hs-measure-heading:820px;
  --hs-measure-card:42ch;
  --hs-measure-course-copy:72ch;
  --hs-measure-facility:48ch;
  --hs-measure-promo-heading:16ch;
  --hs-measure-promo-copy:44ch;
  --hs-measure-career-copy:60ch;
  --hs-measure-stat:340px;
  --hs-measure-faq:70ch;
  --hs-measure-apply-heading:18ch;
  --hs-measure-program-copy:58ch;
  --hs-measure-related-copy:46ch;
  --hs-component-min:180px;
  --hs-curriculum-rail-min:280px;
  --hs-career-heading-gap:8%;

  /* Measured type roles: 390/base. */
  --hs-display-h1-size:40px;
  --hs-display-h1-line:46px;
  --hs-display-h1-track:-.4px;
  --hs-feature-h2-size:42px;
  --hs-feature-h2-line:48.3px;
  --hs-feature-h2-track:-.42px;
  --hs-section-h2-size:24px;
  --hs-section-h2-line:28.8px;
  --hs-section-h3-size:21.008px;
  --hs-section-h3-line:25.2096px;
  --hs-card-h4-size:16px;
  --hs-card-h4-line:19.2px;
  --hs-body-size:16px;
  --hs-body-line:20.8px;
  --hs-lede-size:18px;
  --hs-lede-line:23.4px;
  --hs-small-size:12px;
  --hs-small-line:15.6px;
  --hs-eyebrow-size:12px;
  --hs-eyebrow-line:15.6px;
  --hs-eyebrow-track:1.2px;
  --hs-breadcrumb-size:12px;
  --hs-breadcrumb-line:16px;
  --hs-button-size:14px;
  --hs-button-line:20.8px;
  --hs-button-track:.7px;
  --hs-meta-size:13px;
  --hs-compact-size:15px;
  --hs-pull-quote-size:26px;
  --hs-pull-quote-line:31.2px;
  --hs-stat-size:28px;
  --hs-stat-line:30.8px;
  --hs-program-title-size:22px;
  --hs-program-title-line:26.4px;
  --hs-related-title-size:19px;
  --hs-related-title-line:23.75px;
  --hs-icon-type-size:1.1em;
  --hs-leading-110:1.1;
  --hs-leading-115:1.15;
  --hs-leading-120:1.2;
  --hs-leading-125:1.25;
  --hs-leading-128:1.28;
  --hs-leading-130:1.3;
  --hs-leading-135:1.35;
  --hs-leading-140:1.4;
  --hs-leading-145:1.45;
  --hs-leading-150:1.5;
  --hs-leading-155:1.55;
  --hs-leading-158:1.58;
  --hs-leading-160:1.6;
  --hs-track-none:0em;
  --hs-track-tight-8:-.008em;
  --hs-track-tight-10:-.01em;
  --hs-track-tight-20:-.02em;
  --hs-track-wide-3:.03em;
  --hs-track-wide-4:.04em;
  --hs-track-wide-5:.05em;
  --hs-track-wide-6:.06em;
  --hs-track-wide-75:.075em;

  /* Atomic spacing compatibility layer. Component aliases below carry meaning. */
  --hs-space-0:0px;
  --hs-space-1:1px;
  --hs-space-3:3px;
  --hs-space-4:4px;
  --hs-space-5:5px;
  --hs-space-6:6px;
  --hs-space-7:7px;
  --hs-space-8:8px;
  --hs-space-9:9px;
  --hs-space-10:10px;
  --hs-space-11:11px;
  --hs-space-12:12px;
  --hs-space-13:13px;
  --hs-space-14:14px;
  --hs-space-16:16px;
  --hs-space-18:18px;
  --hs-space-20:20px;
  --hs-space-22:22px;
  --hs-space-24:24px;
  --hs-space-26:26px;
  --hs-space-28:28px;
  --hs-space-30:30px;
  --hs-space-32:32px;
  --hs-space-34:34px;
  --hs-space-36:36px;
  --hs-space-40:40px;
  --hs-space-44:44px;
  --hs-space-48:48px;
  --hs-space-52:52px;
  --hs-space-56:56px;
  --hs-space-58:58px;
  --hs-space-64:64px;
  --hs-space-72:72px;
  --hs-space-76:76px;
  --hs-space-80:80px;
  --hs-space-88:88px;
  --hs-space-92:92px;
  --hs-space-96:96px;
  --hs-space-104:104px;
  --hs-space-112:112px;
  --hs-space-fluid-28-40:clamp(28px,4vw,40px);
  --hs-space-fluid-28-44:clamp(28px,4vw,44px);
  --hs-space-fluid-36-56:clamp(36px,5vw,56px);
  --hs-space-fluid-44-80:clamp(44px,6vw,80px);
  --hs-space-fluid-44-88:clamp(44px,6vw,88px);
  --hs-space-fluid-44-104:clamp(44px,7vw,104px);
  --hs-space-fluid-48-80:clamp(48px,6vw,80px);
  --hs-space-fluid-48-96:clamp(48px,6vw,96px);
  --hs-space-fluid-48-104:clamp(48px,7vw,104px);
  --hs-space-fluid-56-88:clamp(56px,6vw,88px);
  --hs-space-fluid-56-112:clamp(56px,7vw,112px);
  --hs-space-fluid-64-104:clamp(64px,7vw,104px);
  --hs-space-fluid-68-112:clamp(68px,7vw,112px);
  --hs-space-fluid-72-104:clamp(72px,8vw,104px);
  --hs-hero-pad-top-mobile:calc(var(--nav-h) + var(--hs-space-30));
  --hs-hero-pad-top-tablet:calc(var(--nav-h) + var(--hs-space-48));
  --hs-hero-pad-top-wide:calc(var(--nav-main-h) + var(--contact-h) + var(--hs-space-56));

  /* Measured semantic rhythm. */
  --hs-gutter-course:22.1515px;
  --hs-gutter-home:27.3472px;
  --hs-section-course:clamp(50.4589px,calc(37.7219px + 3.266vw),62.8043px);
  --hs-section-course-large:clamp(53.5325px,calc(43.8653px + 2.479vw),62.8944px);
  --hs-section-home:78.6944px;
  --hs-section-editorial:78.7431px;
  --hs-gap-grid:clamp(35.6883px,calc(24.1821px + 2.9503vw),46.8403px);
  --hs-gap-editorial:44.5952px;
  --hs-gap-hero:80px;
  --hs-gap-facts:32px;
  --hs-gap-card:16px;
  --hs-gap-card-inner:20px;
  --hs-gap-prose:24px;
  --hs-gap-title:8px;
  --hs-gap-kicker:8px;
  --hs-gap-news-kicker:4px;
  --hs-caption-padding-block:16px;
  --hs-caption-leading:56px;
  --hs-control-min:44px;
  --hs-control-standard:48px;
  --hs-cta-min:52.8px;
  --hs-subnav-height:56px;
  --hs-rule:1px;
  --hs-rule-active:2px;
  --hs-accent-rule:4px;
  --hs-icon-size:22px;
  --hs-mark-size:16px;
  --hs-size-full:100%;
  --hs-size-auto:auto;
  --hs-position-center:50%;
  --hs-position-negative-center:-50%;
  --hs-sweep-offstage:-101%;
  --hs-rotate-quarter:90deg;
  --hs-hero-accent-gradient:linear-gradient(90deg,var(--terracotta) 0 52%,transparent 52%); /* §02: one accent per composition */
  --hs-career-overlay:linear-gradient(180deg,rgba(10,18,38,.92),rgba(10,18,38,.88) 40%,rgba(10,18,38,.96));
  --hs-promo-shadow:0 24px 52px rgba(10,18,38,.28);
  --hs-glass-blur:14px;
  --hs-glass-saturation:1.2;
  --hs-glass-mix:88%;

  /* ICE canvas deviation recorded in the spec. */
  --hs-canvas:1320px;
  --hs-canvas-wide:1560px;
  --hs-hull-canvas-reference:1496px;

  /* Image slots and offsets. */
  --hs-ratio-square:1;
  --hs-ratio-course-hero:1.041;
  --hs-ratio-card:1;
  --hs-ratio-feature-video:1.25;
  --hs-ratio-promo:1.6;
  --hs-hero-media-bleed:-20px;
  --hs-band-media-height:600px;
  --hs-academic-media-height:430px;
  --hs-facility-thumb:48px;
  --hs-story-thumb:64px;
  --hs-sticky-media-offset:70px;
  --hs-sticky-media-height:calc(100dvh - var(--hs-sticky-media-offset));

  /* Measured motion. */
  --hs-dur-fast:150ms;
  --hs-dur-action:200ms;
  --hs-dur-nav:300ms;
  --hs-dur-accordion:300ms;
  --hs-dur-card:500ms;
  --hs-ease:cubic-bezier(.4,0,.2,1);
  --hs-hover-shift:12px;
}

@media (min-width:640px){
  :root{
    --hs-display-h1-size:50px;
    --hs-display-h1-line:57.5px;
    --hs-display-h1-track:-.5px;
    --hs-feature-h2-size:46px;
    --hs-feature-h2-line:52.9px;
    --hs-section-h2-size:29.008px;
    --hs-section-h2-line:34.8096px;
    --hs-section-h3-size:24px;
    --hs-section-h3-line:28.8px;
    --hs-card-h4-size:17.008px;
    --hs-card-h4-line:20.4096px;
    --hs-body-size:17.008px;
    --hs-body-line:22.1104px;
    --hs-lede-size:20px;
    --hs-lede-line:26px;
    --hs-eyebrow-size:13.008px;
    --hs-eyebrow-line:16.9104px;
    --hs-eyebrow-track:1.296px;
    --hs-button-size:15px;
    --hs-button-track:.75px;
    --hs-pull-quote-size:32px;
    --hs-pull-quote-line:38.4px;
    --hs-program-title-size:24px;
    --hs-program-title-line:28.8px;
    --hs-related-title-size:20px;
    --hs-related-title-line:25px;
    --hs-caption-padding-block:24px;
    --hs-caption-leading:72px;
    --hs-ratio-course-hero:1.047;
    --hs-facility-thumb:80px;
    --hs-story-thumb:96px;
  }
}

@media (min-width:768px){
  :root{
    --hs-gutter-course:46.1323px;
    --hs-gutter-home:36.3321px;
  }
}

@media (min-width:1024px){
  :root{
    --hs-display-h1-size:65.008px;
    --hs-display-h1-line:74.7592px;
    --hs-display-h1-track:-.65008px;
    --hs-feature-h2-size:48px;
    --hs-feature-h2-line:55.2px;
    --hs-section-h2-size:34px;
    --hs-section-h2-line:40.8px;
    --hs-section-h3-size:26px;
    --hs-section-h3-line:31.2px;
    --hs-card-h4-size:18px;
    --hs-card-h4-line:21.6px;
    --hs-body-size:18px;
    --hs-body-line:23.4px;
    --hs-lede-size:22px;
    --hs-lede-line:28.6px;
    --hs-eyebrow-size:14px;
    --hs-eyebrow-line:18.2px;
    --hs-eyebrow-track:1.408px;
    --hs-button-size:16px;
    --hs-button-track:.8px;
    --hs-pull-quote-size:38px;
    --hs-pull-quote-line:45.6px;
    --hs-stat-size:36px;
    --hs-stat-line:39.6px;
    --hs-program-title-size:28px;
    --hs-program-title-line:33.6px;
    --hs-related-title-size:22px;
    --hs-related-title-line:27.5px;
    --hs-gutter-course:48px;
    --hs-gutter-home:45.5132px;
    --hs-section-course:63.2202px;
    --hs-section-course-large:63.279px;
    --hs-section-editorial:79.5375px;
    --hs-gap-grid:47.2437px;
    --hs-gap-editorial:44.3177px;
    --hs-ratio-course-hero:1.034;
    --hs-ratio-feature-video:.668;
    --hs-academic-media-height:400px;
  }
}

@media (min-width:1280px){
  :root{
    --hs-gutter-home:47.5819px;
    --hs-section-editorial:80px;
    --hs-ratio-course-hero:1.024;
    --hs-ratio-feature-video:1.018;
    --hs-measure-h1:17ch;
  }
}

@media (min-width:1920px){
  :root{
    --hs-gutter-home:48px;
    --hs-ratio-feature-video:1.755;
  }
}

@media (prefers-reduced-motion:reduce){
  :root{
    --hs-dur-fast:1ms;
    --hs-dur-action:1ms;
    --hs-dur-nav:1ms;
    --hs-dur-accordion:1ms;
    --hs-dur-card:1ms;
    --hs-hover-shift:0px;
  }
}
