/**
 * MAUP manifest.
 * @maup-path: assets/css/foundations/core.css
 * @maup-version: 1.30.0
 * @maup-mode: replace
 * @maup-role: Design system foundation
 */
/* Core: tokens, reset, base typography, utilities and shared layout primitives. */
:root {
  color-scheme: dark;
  --bg: #070707;
  --bg-soft: #0c0c0d;
  --surface: #121214;
  --surface-2: #18181b;
  --text: #f5f5f3;
  --muted: #8d8d92;
  --muted-2: #66666c;
  --line: rgba(255,255,255,.08);
  --light: #e9e9e5;
  --light-2: #f7f7f4;
  --ink: #0a0a0b;
  --ink-muted: #5e5e63;
  --accent: #8f82ff;
  --accent-2: #65d5ff;
  --accent-warm: #ff6f59;
  --font-display: "Manrope", system-ui, sans-serif;
  --font-body: "Inter", system-ui, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, monospace;
  --container: 1600px;
  --gutter-max: 52px;
  --gutter: clamp(20px, 3.1vw, var(--gutter-max));
  --radius-xs: 12px;
  --radius-sm: 18px;
  --radius-md: 28px;
  --radius-lg: 40px;
  --radius-xl: 56px;
  --shadow-soft: 0 32px 90px rgba(0,0,0,.2);
  --ease: cubic-bezier(.22,.8,.24,1);
  --ease-soft: cubic-bezier(.2,.7,.2,1);
  --header-h: 88px;
  --app-vh: 100vh;
  --noise-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.52'/%3E%3C/svg%3E");
  --z-header: 1200;
  --z-bottom-blur: 5600;
  --z-floating: 18000;
  --z-service-modal: 20000;
  --z-briefing: 22000;
  --z-confirm: 23000;
  --z-overlay-cursor: 24000;
  --z-loading: 25000;
  --z-toast: 26000;
  --z-cursor: 2147483647;
}

*, *::before, *::after { box-sizing: border-box; }
html {
  background: var(--bg);
  scroll-padding-top: calc(var(--header-h) + 20px);
  scroll-behavior: auto;
}
body {
  margin: 0;
  min-width: 320px;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  overflow-x: clip;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.is-locked { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img, canvas { display: block; max-width: 100%; }
::selection { background: var(--accent); color: #0a0a0b; }
:focus-visible { outline: 2px solid var(--accent-2); outline-offset: 4px; }

.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0,0,0,0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.skip-link {
  position: fixed;
  z-index: 5000;
  top: 10px;
  left: 10px;
  transform: translateY(-160%);
  padding: 12px 16px;
  border-radius: 10px;
  background: #fff;
  color: #000;
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }
.u-container { width: min(calc(100% - (var(--gutter) * 2)), var(--container)); margin-inline: auto; }
.is-in-viewport { --section-state: 1; }

.mono {
  font-family: var(--font-mono);
  font-size: .72rem;
  letter-spacing: -.02em;
  text-transform: uppercase;
  color: var(--muted);
}
.eyebrow {
  margin: 0 0 24px;
  font-family: var(--font-mono);
  font-size: clamp(.72rem, .8vw, .82rem);
  line-height: 1.3;
  letter-spacing: .015em;
  color: #aaaab0;
  text-transform: uppercase;
}
.eyebrow--dark { color: #67676b; }
h1, h2, h3, .display { text-wrap: balance; }
.display {
  margin: 0;
  padding-bottom: .07em;
  font-family: var(--font-display);
  font-weight: 300;
  letter-spacing: -.055em;
  line-height: 1.015;
}
h1.display { font-weight: 100 !important; }
.display--hero {
  max-width: 1050px;
  font-size: clamp(3rem, 6.4vw, 7rem);
  line-height: .965;
}
.display--xl {
  max-width: 1180px;
  font-size: clamp(3.2rem, 6vw, 6.8rem);
  line-height: 1.01;
}
.display--lg { font-size: clamp(2.8rem, 5.3vw, 6.1rem); line-height: 1.01; }
.display--md { font-size: clamp(2.5rem, 4.2vw, 4.7rem); line-height: 1.01; }
.display--dark { color: var(--ink); }
.hero :is(h1,h2,h3,p,.eyebrow),
.inner-hero :is(h1,h2,h3,p,.eyebrow,.inner-lead),
.project-single-hero :is(h1,h2,h3,p,.eyebrow,.inner-lead) { text-wrap: balance; }

.section {
  position: relative;
  padding: clamp(100px, 11vw, 190px) 0;
  background: var(--bg);
}

@media (max-width: 1100px) {
  :root { --radius-xl: 42px; }
  .display--hero { font-size: clamp(3rem, 7.5vw, 6.3rem); }
}
@media (max-width: 1024px) {
  :root { --header-h: 72px; }
}
@media (max-width: 700px) {
  :root {
    --gutter: 18px;
    --radius-md: 22px;
    --radius-xl: 30px;
  }
  .display--hero { font-size: clamp(2.8rem, 13vw, 5.2rem); }
  .section { padding-block: 100px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }
}
