/* One material and motion language. Resting geometry and brand styles stay in styles.css. */
:root {
  --motion-enter: cubic-bezier(.23, 1, .32, 1);
  --motion-touch: cubic-bezier(.23, 1, .32, 1);
  --motion-micro: 180ms;
}
[hidden] { display: none !important; }

[data-reveal], [data-hero] {
  --reveal-opacity: .1;
  --reveal-blur: 8px;
  --reveal-rise: 20px;
  --reveal-scale: 1;
  --reveal-duration: 540;
}
[data-reveal="label"], [data-reveal="control"], [data-hero="controls"], [data-hero="quiet"] {
  --reveal-opacity: .13;
  --reveal-blur: 3px;
  --reveal-rise: 10px;
  --reveal-duration: 440;
}
[data-reveal="heading"], [data-hero="heading"] {
  --reveal-opacity: .07;
  --reveal-blur: 10px;
  --reveal-rise: 22px;
  --reveal-duration: 660;
}
[data-reveal="media"] {
  --reveal-opacity: .08;
  --reveal-blur: 12px;
  --reveal-rise: 28px;
  --reveal-scale: .985;
  --reveal-duration: 760;
}
[data-reveal="glass"] {
  --reveal-opacity: .14;
  --reveal-blur: 2px;
  --reveal-rise: 16px;
  --reveal-scale: .993;
  --reveal-duration: 700;
}
[data-hero="navigation"] {
  --reveal-opacity: .2;
  --reveal-blur: 0px;
  --reveal-rise: 0px;
  --reveal-duration: 420;
}
[data-hero="peak"] {
  --reveal-opacity: 0;
  --reveal-blur: 10px;
  --reveal-rise: 10px;
  --reveal-scale: .985;
  --reveal-duration: 640;
}
[data-hero="wordmark"] {
  --reveal-opacity: 0;
  --reveal-blur: 3px;
  --reveal-rise: 4px;
  --reveal-duration: 480;
}
.motion-ready [data-reveal]:not([data-motion-state="resolved"]),
.motion-ready [data-hero]:not([data-motion-state="resolved"]) {
  opacity: var(--reveal-opacity);
  filter: blur(var(--reveal-blur));
  transform: translate3d(0, var(--reveal-rise), 0) scale(var(--reveal-scale));
}
/* Keyboard users never land on faded content, even if initialization fails. */
.motion-ready [data-reveal]:focus-within,
.motion-ready [data-hero]:focus-within {
  opacity: 1;
  filter: none;
  transform: none;
}

/* Reveal the material independently, avoiding compounded opacity/blur on text. */
liquid-glass[data-glass-reveal] {
  isolation: isolate;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
liquid-glass[data-glass-reveal]::before { content: none; }
.glass-surface {
  position: absolute;
  inset: 0;
  z-index: -2;
  border-radius: inherit;
  pointer-events: none;
  background: var(--glass-fill);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  box-shadow: var(--glass-depth);
}

/* Navigation material thickens continuously over the first 150px of scroll. */
.site-header .navigation {
  background: linear-gradient(158deg, rgba(255,255,255,.07), rgba(255,255,255,.02) 45%),
    rgba(13,18,30,calc(.32 + var(--nav-progress,0) * .38));
  -webkit-backdrop-filter: blur(calc(14px + var(--nav-progress,0) * 12px)) saturate(160%);
  backdrop-filter: blur(calc(14px + var(--nav-progress,0) * 12px)) saturate(160%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 1px 1px rgba(0,0,0,calc(.1 + var(--nav-progress,0) * .2)),
    0 18px 50px -24px rgba(0,0,0,calc(.3 + var(--nav-progress,0) * .5));
  transition: background 220ms var(--motion-touch), box-shadow 220ms var(--motion-touch),
    backdrop-filter 220ms var(--motion-touch), -webkit-backdrop-filter 220ms var(--motion-touch);
}
.mobile-menu { background: linear-gradient(158deg, rgba(255,255,255,.07), rgba(255,255,255,.02) 45%), rgba(13,18,30,.82); }
[data-theme="light"] .site-header .navigation {
  background: linear-gradient(158deg, rgba(255,255,255,.7), rgba(255,255,255,.35) 45%),
    rgba(244,246,250,calc(.3 + var(--nav-progress,0) * .45));
  box-shadow: inset 0 1px 0 #fff, inset 0 0 0 1px rgba(255,255,255,.6), 0 1px 1px rgba(22,34,64,calc(.03 + var(--nav-progress,0) * .04)),
    0 18px 50px -24px rgba(30,45,95,calc(.12 + var(--nav-progress,0) * .16));
}
[data-theme="light"] .mobile-menu { background: linear-gradient(158deg, rgba(255,255,255,.85), rgba(255,255,255,.6) 45%), rgba(244,246,250,.8); }
.desktop-nav a:not(.nav-cta) { transition: color var(--motion-micro) var(--motion-touch), background var(--motion-micro) var(--motion-touch); }
.desktop-nav a:not(.nav-cta)::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 7px;
  width: 4px;
  height: 4px;
  margin-left: -2px;
  border-radius: 50%;
  background: var(--accent);
  opacity: 0;
  transform: scale(.4);
  transition: opacity var(--motion-micro) var(--motion-touch), transform 260ms var(--motion-touch);
}
.desktop-nav a[aria-current="location"]::after { opacity: 1; transform: none; }
@media(hover:hover) and (pointer:fine) {
  .desktop-nav a:not(.nav-cta):hover { background: var(--control-fill); }
  .button:hover { transform: translateY(-1px); }
}
.button, .nav-cta, .menu-toggle, .hero-footnote a, .back-to-top {
  transition: transform var(--motion-micro) var(--motion-touch), box-shadow 260ms var(--motion-touch),
    background 260ms var(--motion-touch), color var(--motion-micro) var(--motion-touch);
}
.button:active, .nav-cta:active, .menu-toggle:active, .hero-footnote a:active, .back-to-top:active {
  transform: scale(.975);
  transition-duration: 100ms;
}

/* Hairlines draw from the left as their row resolves. */
.motion-ready .principle:not([data-motion-state="resolved"])::before { transform: scaleX(0); }
.principle::before { transition: transform 1100ms var(--motion-enter) 80ms; }
.motion-ready .company-lead:not([data-motion-state="resolved"]) { border-top-color: transparent; }
.company-lead { transition: border-top-color 900ms var(--motion-enter); }

/* A single light pass after the product resolves, like the mountain's introduction. */
.product-logo-light {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: linear-gradient(108deg, transparent 25%, rgba(255, 255, 255, .8) 49%, transparent 72%);
  mix-blend-mode: screen;
  transform: translate3d(-110%, 0, 0);
}
@media (prefers-reduced-motion: no-preference) {
  .motion-ready .product-identity[data-motion-state="resolved"] .product-logo-light {
    animation: product-logo-sheen 900ms var(--motion-enter) 80ms both;
  }
}
@keyframes product-logo-sheen {
  0% { opacity: 0; transform: translate3d(-110%, 0, 0); }
  30% { opacity: .5; }
  75% { opacity: .3; }
  100% { opacity: 0; transform: translate3d(110%, 0, 0); }
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  .product-logo { transition: transform 260ms var(--motion-touch); }
  .product-identity:hover .product-logo { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  .product-logo-light { display: none; }
  .product-identity[data-sheen]::after { display: none; }
}

@media(max-width:760px) {
  [data-reveal], [data-hero] { --reveal-blur: 3px; --reveal-rise: 10px; --reveal-duration: 480; }
  [data-reveal="label"], [data-reveal="control"], [data-hero="controls"], [data-hero="quiet"] {
    --reveal-blur: 2px; --reveal-rise: 6px; --reveal-duration: 380;
  }
  [data-reveal="heading"], [data-hero="heading"] { --reveal-blur: 6px; --reveal-rise: 16px; --reveal-duration: 580; }
  [data-reveal="media"] { --reveal-blur: 6px; --reveal-rise: 18px; --reveal-scale: .993; --reveal-duration: 620; }
  [data-reveal="glass"] { --reveal-blur: 0px; --reveal-rise: 10px; --reveal-scale: .997; --reveal-duration: 580; }
  [data-hero="navigation"] { --reveal-blur: 0px; --reveal-rise: 0px; --reveal-duration: 360; }
  [data-hero="peak"] { --reveal-blur: 4px; --reveal-rise: 8px; --reveal-duration: 580; }
  [data-hero="wordmark"] { --reveal-blur: 2px; --reveal-rise: 4px; --reveal-duration: 440; }
  .glass-surface { -webkit-backdrop-filter: blur(18px) saturate(150%); backdrop-filter: blur(18px) saturate(150%); }
  .site-header .navigation { -webkit-backdrop-filter: blur(calc(12px + var(--nav-progress,0) * 8px)) saturate(160%); backdrop-filter: blur(calc(12px + var(--nav-progress,0) * 8px)) saturate(160%); }
}
@media(prefers-reduced-motion:reduce) {
  .motion-ready [data-reveal], .motion-ready [data-hero] { opacity: 1 !important; filter: none !important; transform: none !important; }
  .peak-reflection { display: none; }
  .hero-atmosphere, .contact-atmosphere { transform: none !important; }
  .button:hover, .button:active { transform: none; }
  .principle::before { transform: none !important; }
}
@media(prefers-reduced-transparency:reduce), (prefers-contrast:more) {
  .site-header .navigation, .mobile-menu {
    background: var(--glass-solid) !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  }
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))) {
  .site-header .navigation, .mobile-menu { background: rgba(13,18,30,.94); }
}
