/* [project]/src/app/(frontend)/styles.css [app-client] (css) */
:root {
  --font-heading-fallback: "The Seasons", Georgia, serif;
  --font-body-fallback: "Hanken Grotesk", system-ui, sans-serif;
  --accent-rgb: 10, 110, 110;
  --theme-bg: #f3eee6;
  --theme-bg-elevated: #f3eee6;
  --theme-surface-tint: color-mix(in srgb, var(--theme-accent) 10%, white);
  --theme-surface: var(--theme-surface-tint);
  --theme-surface-raised: #fff;
  --theme-surface-alt: color-mix(in srgb, var(--theme-accent) 16%, white);
  --theme-hero-fallback: color-mix(in srgb, var(--theme-accent) 20%, white);
  --theme-text: #1a1612;
  --theme-text-secondary: #1a1612;
  --theme-muted: #5c574f;
  --theme-muted-hover: #3d3a36;
  --theme-accent: #0a6e6e;
  --theme-accent-hover: #075a5a;
  --theme-accent-soft: rgba(var(--accent-rgb), .42);
  --theme-accent-04: rgba(var(--accent-rgb), .07);
  --theme-accent-06: rgba(var(--accent-rgb), .1);
  --theme-accent-08: rgba(var(--accent-rgb), .14);
  --theme-accent-12: rgba(var(--accent-rgb), .18);
  --theme-accent-15: rgba(var(--accent-rgb), .22);
  --theme-accent-18: rgba(var(--accent-rgb), .26);
  --theme-accent-20: rgba(var(--accent-rgb), .3);
  --theme-accent-22: rgba(var(--accent-rgb), .32);
  --theme-accent-25: rgba(var(--accent-rgb), .36);
  --theme-accent-30: rgba(var(--accent-rgb), .42);
  --theme-accent-35: rgba(var(--accent-rgb), .48);
  --theme-accent-45: rgba(var(--accent-rgb), .58);
  --theme-accent-50: rgba(var(--accent-rgb), .62);
  --theme-accent-85: rgba(var(--accent-rgb), .9);
  --theme-border: rgba(var(--accent-rgb), .22);
  --theme-border-strong: rgba(var(--accent-rgb), .38);
  --theme-overlay: #fffffffa;
  --theme-overlay-soft: #fffffff0;
  --theme-shadow: #1a16121f;
  --theme-shadow-soft: #1a161214;
  --theme-gradient-hero: radial-gradient(ellipse 80% 60% at 50% 40%,
    rgba(var(--accent-rgb), .14) 0%,
    #f3eee6 72%);
  --theme-gradient-hero-alt: radial-gradient(ellipse 85% 65% at 50% 42%,
    rgba(var(--accent-rgb), .12) 0%,
    #f3eee6 70%);
  --theme-gradient-fade: linear-gradient(to bottom, transparent, var(--theme-surface-tint));
  --theme-gradient-fade-alt: linear-gradient(to bottom, transparent, var(--theme-surface-tint));
  --theme-hamburger: #1a1612;
  --theme-nav-link: #1a1612;
  --theme-nav-link-hover: #5c574f;
  --theme-input-bg: #fff;
  --theme-shimmer: #0000000a;
  --theme-shine: #ffffff8c;
  --theme-text-on-accent: #fff;
  --theme-on-image-text: #f5f0eb;
  --theme-on-image-muted: #f5f0ebd1;
  --theme-on-image-shadow: 0 4px 24px #000000a6;
  --theme-hero-overlay: #00000073;
  --theme-category-overlay: linear-gradient(to bottom,
    #00000059 0%,
    #00000038 45%,
    #000000c7 100%);
  --theme-panel-scrim: #0000004d;
  --theme-panel-scrim-hover: #00000024;
  --theme-ticker-bg: #ffffffe0;
  --theme-splash-border: #1a16121f;
  --theme-splash-border-subtle: #1a161229;
  --theme-splash-loader: #1a161238;
  --theme-disabled-bg: color-mix(in srgb, var(--theme-accent) 12%, #ececec);
  --theme-disabled-text: #8a847c;
  --theme-placeholder: #8a847c;
  --theme-success: #2d7a4f;
  --theme-error: #b33;
  --theme-status-green: #3d7a52;
}

* {
  box-sizing: border-box;
}

html {
  background: var(--theme-bg);
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
  -webkit-font-smoothing: antialiased;
  font-size: 18px;
  line-height: 32px;
  transition: background-color .3s, color .3s;
}

html, body, #app {
  height: 100%;
}

body {
  font-family: var(--font-body), var(--font-body-fallback);
  color: var(--theme-text);
  background: var(--theme-bg);
  margin: 0;
  font-size: 18px;
  line-height: 32px;
}

@media (max-width: 1024px) {
  body {
    font-size: 15px;
    line-height: 24px;
  }
}

:is(main:has(.projects-hub), main:has(.team-page), main:has(.careers-page), main:has(.about-page), main:has(.contact-page), main:has(.category-projects)) {
  margin: 0;
  padding: 0;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading), var(--font-heading-fallback);
  font-weight: 600;
}

h1 {
  margin: 40px 0;
  font-size: 64px;
  line-height: 70px;
}

@media (max-width: 1024px) {
  h1 {
    margin: 24px 0;
    font-size: 42px;
    line-height: 42px;
  }
}

@media (max-width: 768px) {
  h1 {
    font-size: 38px;
    line-height: 38px;
  }
}

@media (max-width: 400px) {
  h1 {
    font-size: 32px;
    line-height: 32px;
  }
}

p {
  margin: 24px 0;
}

@media (max-width: 1024px) {
  p {
    margin: calc(var(--base) * .75) 0;
  }
}

a {
  color: currentColor;
}

a:focus {
  opacity: .8;
  outline: none;
}

a:active {
  opacity: .7;
  outline: none;
}

svg {
  vertical-align: middle;
}

.page-container {
  text-align: center;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  max-width: 1024px;
  min-height: 100vh;
  margin: 0 auto;
  padding: 45px;
  display: flex;
}

.home-container {
  width: 100%;
  position: relative;
  overflow-x: clip;
}

.ambient-bg {
  z-index: 0;
  pointer-events: none;
  position: fixed;
  inset: 0;
  overflow: hidden;
}

.ambient-bg__mesh {
  background: radial-gradient(ellipse 55% 45% at 15% 20%, rgba(var(--accent-rgb), .14) 0%, transparent 55%),
    radial-gradient(ellipse 50% 40% at 85% 75%, rgba(var(--accent-rgb), .11) 0%, transparent 50%),
    radial-gradient(ellipse 40% 35% at 50% 50%, rgba(var(--accent-rgb), .07) 0%, transparent 60%);
  animation: 28s ease-in-out infinite alternate ambientMeshDrift;
  position: absolute;
  inset: -20%;
}

.ambient-bg__grain {
  opacity: .58;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  background-size: 140px 140px;
  position: absolute;
  inset: 0;
}

.ambient-bg__paper {
  opacity: .72;
  background-image: linear-gradient(rgba(var(--accent-rgb), .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .045) 1px, transparent 1px);
  background-size: 100px 100px;
  position: absolute;
  inset: 0;
  -webkit-mask-image: linear-gradient(#0000 5%, #000 20% 80%, #0000 95%);
  mask-image: linear-gradient(#0000 5%, #000 20% 80%, #0000 95%);
}

.ambient-bg__orb {
  filter: blur(80px);
  opacity: .62;
  will-change: transform;
  border-radius: 50%;
  position: absolute;
}

.ambient-bg__orb--1 {
  background: radial-gradient(circle, rgba(var(--accent-rgb), .26) 0%, transparent 70%);
  width: 42vw;
  max-width: 520px;
  height: 42vw;
  max-height: 520px;
  animation: 22s ease-in-out infinite ambientOrbFloat1;
  top: 12%;
  left: -8%;
}

.ambient-bg__orb--2 {
  background: radial-gradient(circle, rgba(var(--accent-rgb), .2) 0%, transparent 70%);
  width: 36vw;
  max-width: 460px;
  height: 36vw;
  max-height: 460px;
  animation: 26s ease-in-out infinite ambientOrbFloat2;
  top: 48%;
  right: -12%;
}

.ambient-bg__orb--3 {
  background: radial-gradient(circle, rgba(var(--accent-rgb), .16) 0%, transparent 70%);
  width: 30vw;
  max-width: 380px;
  height: 30vw;
  max-height: 380px;
  animation: 30s ease-in-out infinite ambientOrbFloat3;
  bottom: 8%;
  left: 28%;
}

@keyframes ambientMeshDrift {
  0% {
    transform: translate(0)scale(1);
  }

  50% {
    transform: translate(2%, -1.5%)scale(1.03);
  }

  100% {
    transform: translate(-1.5%, 2%)scale(1.01);
  }
}

@keyframes ambientOrbFloat1 {
  0%, 100% {
    transform: translate(0);
  }

  50% {
    transform: translate(4vw, 6vh);
  }
}

@keyframes ambientOrbFloat2 {
  0%, 100% {
    transform: translate(0);
  }

  50% {
    transform: translate(-5vw, -4vh);
  }
}

@keyframes ambientOrbFloat3 {
  0%, 100% {
    transform: translate(0);
  }

  50% {
    transform: translate(3vw, -5vh);
  }
}

.scroll-reveal {
  opacity: 0;
  will-change: opacity, transform;
  transition: opacity .85s cubic-bezier(.22, 1, .36, 1), transform .85s cubic-bezier(.22, 1, .36, 1);
}

.scroll-reveal--up {
  transform: translateY(36px);
}

.scroll-reveal--down {
  transform: translateY(-36px);
}

.scroll-reveal--left {
  transform: translateX(-36px);
}

.scroll-reveal--right {
  transform: translateX(36px);
}

.scroll-reveal--fade {
  transform: none;
}

.scroll-reveal--scale {
  transform: scale(.94);
}

.scroll-reveal.is-visible {
  opacity: 1;
  transform: none;
}

.home-section--textured {
  z-index: 1;
  isolation: isolate;
  position: relative;
  overflow: hidden;
}

.home-section--textured > :not(.section-texture) {
  z-index: 1;
  position: relative;
}

.section-texture {
  z-index: 0;
  pointer-events: none;
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.section-texture__fill {
  width: 100vw;
  height: 100%;
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
}

.section-texture__corner {
  opacity: .78;
  width: clamp(160px, 26vw, 360px);
  height: clamp(160px, 26vw, 360px);
  position: absolute;
}

.section-texture__corner--tl {
  top: 24px;
  left: max(12px, 50% - 50vw + 24px);
}

.section-texture__corner--tr {
  top: 24px;
  right: max(12px, 50% - 50vw + 24px);
}

.section-texture__corner--bl {
  bottom: 24px;
  left: max(12px, 50% - 50vw + 24px);
}

.section-texture__corner--br {
  bottom: 24px;
  right: max(12px, 50% - 50vw + 24px);
}

.section-texture--blueprint .section-texture__corner--tl {
  border-bottom: none;
  border-right: none;
}

.section-texture--blueprint .section-texture__corner--br {
  border-top: none;
  border-left: none;
}

.section-texture--dots .section-texture__fill {
  background-image: radial-gradient(rgba(var(--accent-rgb), .18) 1.2px, transparent 1.2px);
  background-size: 20px 20px;
  -webkit-mask-image: radial-gradient(92% 85%, #000 42%, #0000 100%);
  mask-image: radial-gradient(92% 85%, #000 42%, #0000 100%);
}

.section-texture--dots .section-texture__corner {
  background-image: radial-gradient(rgba(var(--accent-rgb), .22) 1.5px, transparent 1.5px);
  background-size: 14px 14px;
  -webkit-mask-image: radial-gradient(circle, #000 28%, #0000 78%);
  mask-image: radial-gradient(circle, #000 28%, #0000 78%);
}

.section-texture--grid .section-texture__fill {
  background-image: linear-gradient(rgba(var(--accent-rgb), .1) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .1) 1px, transparent 1px);
  background-size: 48px 48px;
  -webkit-mask-image: linear-gradient(#0000, #000 10% 90%, #0000);
  mask-image: linear-gradient(#0000, #000 10% 90%, #0000);
}

.section-texture--grid .section-texture__corner {
  background: linear-gradient(rgba(var(--accent-rgb), .16) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .16) 1px, transparent 1px);
  background-size: 18px 18px;
  -webkit-mask-image: radial-gradient(circle, #000 22%, #0000 75%);
  mask-image: radial-gradient(circle, #000 22%, #0000 75%);
}

.section-texture--blueprint .section-texture__fill {
  background-image: linear-gradient(rgba(var(--accent-rgb), .08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .08) 1px, transparent 1px),
    linear-gradient(rgba(var(--accent-rgb), .14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .14) 1px, transparent 1px);
  background-size: 28px 28px, 28px 28px, 140px 140px, 140px 140px;
  -webkit-mask-image: radial-gradient(95% 88%, #000 48%, #0000 100%);
  mask-image: radial-gradient(95% 88%, #000 48%, #0000 100%);
}

.section-texture--blueprint .section-texture__corner--tl, .section-texture--blueprint .section-texture__corner--br {
  border: 1px solid rgba(var(--accent-rgb), .24);
  border-radius: 0;
}

.section-texture--hatch .section-texture__fill {
  background-image: repeating-linear-gradient(-42deg,
    transparent,
    transparent 10px,
    rgba(var(--accent-rgb), .075) 10px,
    rgba(var(--accent-rgb), .075) 11px);
  -webkit-mask-image: linear-gradient(#0000, #000 8% 92%, #0000);
  mask-image: linear-gradient(#0000, #000 8% 92%, #0000);
}

.section-texture--hatch .section-texture__corner {
  background-image: repeating-linear-gradient(-42deg,
    transparent,
    transparent 7px,
    rgba(var(--accent-rgb), .13) 7px,
    rgba(var(--accent-rgb), .13) 8px);
  -webkit-mask-image: radial-gradient(circle, #000 18%, #0000 72%);
  mask-image: radial-gradient(circle, #000 18%, #0000 72%);
}

.section-texture--arcs .section-texture__fill {
  background: radial-gradient(circle at 12% 18%, transparent 56%, rgba(var(--accent-rgb), .08) 57%, transparent 58%),
    radial-gradient(circle at 12% 18%, transparent 66%, rgba(var(--accent-rgb), .07) 67%, transparent 68%),
    radial-gradient(circle at 12% 18%, transparent 76%, rgba(var(--accent-rgb), .06) 77%, transparent 78%),
    radial-gradient(circle at 88% 82%, transparent 56%, rgba(var(--accent-rgb), .08) 57%, transparent 58%),
    radial-gradient(circle at 88% 82%, transparent 66%, rgba(var(--accent-rgb), .07) 67%, transparent 68%),
    radial-gradient(circle at 88% 82%, transparent 76%, rgba(var(--accent-rgb), .06) 77%, transparent 78%);
}

.section-texture--arcs .section-texture__corner--tl {
  border-top: 1.5px solid rgba(var(--accent-rgb), .26);
  border-left: 1.5px solid rgba(var(--accent-rgb), .26);
  border-radius: 100% 0 0;
}

.section-texture--arcs .section-texture__corner--tr {
  border-top: 1.5px solid rgba(var(--accent-rgb), .26);
  border-right: 1.5px solid rgba(var(--accent-rgb), .26);
  border-radius: 0 100% 0 0;
}

.section-texture--arcs .section-texture__corner--bl {
  border-bottom: 1.5px solid rgba(var(--accent-rgb), .26);
  border-left: 1.5px solid rgba(var(--accent-rgb), .26);
  border-radius: 0 0 0 100%;
}

.section-texture--arcs .section-texture__corner--br {
  border-bottom: 1.5px solid rgba(var(--accent-rgb), .26);
  border-right: 1.5px solid rgba(var(--accent-rgb), .26);
  border-radius: 0 0 100%;
}

.section-texture--cross .section-texture__fill {
  background-image: linear-gradient(rgba(var(--accent-rgb), .085) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .085) 1px, transparent 1px);
  background-position: center;
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(88% 78%, #000 38%, #0000 100%);
  mask-image: radial-gradient(88% 78%, #000 38%, #0000 100%);
}

.section-texture--cross .section-texture__corner {
  background-image: linear-gradient(rgba(var(--accent-rgb), .18) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--accent-rgb), .18) 1px, transparent 1px);
  background-position: center;
  background-size: 32px 32px;
  -webkit-mask-image: radial-gradient(circle, #000 14%, #0000 70%);
  mask-image: radial-gradient(circle, #000 14%, #0000 70%);
}

.home-band--warm {
  background-color: color-mix(in srgb, var(--theme-accent) 6.5%, var(--theme-bg));
}

.home-band--cool {
  background-color: color-mix(in srgb, var(--theme-accent) 5%, white);
}

.home-section-divider {
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(var(--accent-rgb), .18) 20%,
    rgba(var(--accent-rgb), .32) 50%,
    rgba(var(--accent-rgb), .18) 80%,
    transparent 100%);
  border: none;
  width: 100%;
  height: 1px;
  margin: 0;
  position: relative;
}

.home-section-divider:after {
  content: "";
  background: var(--theme-bg);
  border: 1px solid rgba(var(--accent-rgb), .35);
  width: 8px;
  height: 8px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%)rotate(45deg);
}

.home-container > section, .home-container > .stats-section, .home-container > .home-band, .home-container > .about-band, .home-container > .home-leadership-band, .home-container > .home-contact-band {
  z-index: 1;
  position: relative;
}

.hero {
  background-color: var(--theme-bg);
  --hero-scroll: 0;
  z-index: 1;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100svh;
  display: flex;
  position: relative;
  overflow: hidden;
}

.hero-video {
  width: auto;
  min-width: 100%;
  height: auto;
  min-height: 100%;
  transform: translateX(-50%) translateY(calc(-50% + var(--hero-scroll) * 60px))
    scale(calc(1.06 + var(--hero-scroll) * .06));
  object-fit: cover;
  z-index: 0;
  transition: transform .1s linear;
  position: absolute;
  top: 50%;
  left: 50%;
}

.hero-overlay {
  background: var(--theme-hero-overlay);
  width: 100%;
  height: 100%;
  opacity: calc(.85 + var(--hero-scroll) * .15);
  z-index: 1;
  position: absolute;
  top: 0;
  left: 0;
}

.hero-vignette {
  z-index: 1;
  pointer-events: none;
  background: radial-gradient(70% 60%, #0000 30%, #0000008c 100%), linear-gradient(#0003 0%, #0000 35%, #00000073 100%);
  position: absolute;
  inset: 0;
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.hero-text-section {
  transform: translate(-50%, calc(-50% - var(--hero-scroll) * 50px));
  z-index: 2;
  text-align: center;
  width: 100%;
  opacity: calc(1 - var(--hero-scroll) * 1.4);
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
  display: flex;
  position: absolute;
  top: 85%;
  left: 50%;
}

.hero-title {
  color: #fff;
  letter-spacing: .02em;
  margin: 0 0 10px;
  font-size: 2.75rem;
  font-weight: 600;
  line-height: 1.15;
  animation: 1.2s cubic-bezier(.22, 1, .36, 1) .3s both heroTitleReveal;
}

@keyframes heroTitleReveal {
  from {
    opacity: 0;
    letter-spacing: .12em;
    transform: translateY(24px);
  }

  to {
    opacity: 1;
    letter-spacing: .02em;
    transform: translateY(0);
  }
}

.hero-text-section h2 {
  animation: 1s cubic-bezier(.22, 1, .36, 1) .7s both fadeInUp;
}

.typewriter-text {
  color: #fff;
  font-weight: 600;
}

.hero-text-section h2 {
  font-family: var(--font-body), var(--font-body-fallback);
  color: #fff;
  margin: 0;
  font-size: 1.5rem;
  font-weight: 400;
}

.cursor {
  animation: 1s step-end infinite blink;
}

@keyframes blink {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: 0;
  }
}

.media-grid {
  grid-template-columns: repeat(1, 1fr);
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  display: grid;
}

@media (min-width: 768px) {
  .media-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .media-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (min-width: 1440px) {
  .media-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.grid-item {
  aspect-ratio: 16 / 9;
  cursor: pointer;
  background-color: var(--theme-bg);
  width: 100%;
  position: relative;
  overflow: hidden;
}

.grid-item img, .grid-item video {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: 0;
  left: 0;
}

.grid-item video {
  opacity: 0;
  z-index: 1;
  transition: opacity .3s;
}

.grid-item:hover video, .grid-item.playing video {
  opacity: 1;
}

.stats-section {
  z-index: 3;
  width: 100%;
  min-height: 220px;
  padding: 80px 20px;
}

.stats-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
}

.stat-item {
  text-align: center;
  flex-direction: column;
  align-items: center;
  transition: transform .7s cubic-bezier(.22, 1, .36, 1);
  display: flex;
  transform: translateY(12px);
}

.stats-grid.is-animated .stat-item {
  transform: translateY(0);
}

.stat-number {
  color: var(--theme-accent);
  letter-spacing: .01em;
  font-size: 2.75rem;
  font-weight: 700;
  line-height: 1.1;
}

.stat-label {
  color: var(--theme-muted);
  margin-top: 10px;
  font-size: .95rem;
  font-weight: 400;
}

@media (max-width: 768px) {
  .stats-grid {
    gap: 40px 24px;
  }

  .stat-number {
    font-size: 2.25rem;
  }
}

.about-section {
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 60px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 100px 20px;
  display: grid;
  position: relative;
}

.about-band {
  width: 100%;
}

.about-curve {
  opacity: .5;
  pointer-events: none;
  width: 45%;
  max-width: 480px;
  height: auto;
  position: absolute;
  top: 0;
  right: 0;
}

.about-curve path {
  stroke-dasharray: 700;
  stroke-dashoffset: 700px;
  transition: stroke-dashoffset 2.2s cubic-bezier(.22, 1, .36, 1);
}

.about-curve.is-drawn path {
  stroke-dashoffset: 0;
}

.about-text-wrap {
  display: block;
}

.about-heading {
  text-align: center;
  flex-direction: column;
  align-items: center;
  display: flex;
}

.about-heading h2 {
  color: var(--theme-accent);
  letter-spacing: .01em;
  margin: 0 0 24px;
  font-size: 2.75rem;
  font-weight: 600;
}

.about-cta {
  border: 1px solid var(--theme-accent);
  color: var(--theme-text);
  border-radius: 999px;
  padding: 10px 24px;
  font-size: .9rem;
  text-decoration: none;
  transition: background-color .25s, color .25s;
  display: inline-block;
}

.about-cta:hover {
  background-color: var(--theme-accent);
  color: var(--theme-bg);
}

.about-text {
  color: var(--theme-muted);
  margin: 0;
  font-size: 1rem;
  line-height: 1.7;
}

@media (max-width: 768px) {
  .about-section {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 60px 20px;
  }

  .about-heading h2 {
    font-size: 2.25rem;
  }

  .about-curve {
    opacity: .35;
    width: 60%;
  }
}

.home-section-header {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 48px;
}

.home-section-eyebrow {
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--theme-accent);
  margin: 0 0 12px;
  font-size: .8rem;
  display: inline-block;
  position: relative;
}

.home-section-eyebrow:after {
  content: "";
  background: var(--theme-accent);
  width: 0;
  height: 1px;
  transition: width .6s cubic-bezier(.22, 1, .36, 1) .2s;
  position: absolute;
  bottom: -6px;
  left: 50%;
  transform: translateX(-50%);
}

.scroll-reveal.is-visible .home-section-eyebrow:after, .home-section-header:not(.scroll-reveal) .home-section-eyebrow:after {
  width: 32px;
}

.home-section-title {
  color: var(--theme-text);
  letter-spacing: .01em;
  margin: 0 0 16px;
  font-size: 2.5rem;
  font-weight: 600;
}

.home-section-desc {
  color: var(--theme-muted);
  margin: 0;
  font-size: 1rem;
  line-height: 1.7;
}

.home-section-cta-wrap {
  text-align: center;
  margin-top: 48px;
}

.home-section-cta {
  border: 1px solid var(--theme-accent);
  color: var(--theme-text);
  letter-spacing: .02em;
  border-radius: 999px;
  padding: 12px 32px;
  font-size: .9rem;
  text-decoration: none;
  transition: background-color .25s, color .25s;
  display: inline-block;
}

.home-section-cta:hover {
  background-color: var(--theme-accent);
  color: var(--theme-bg);
}

.home-projects, .home-upcoming-projects {
  width: 100%;
  padding: 100px 0;
}

.home-projects-filters {
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-bottom: 40px;
  padding: 0 16px;
  display: flex;
}

.home-projects-filter-btn {
  border: 1px solid var(--theme-accent);
  color: var(--theme-text);
  letter-spacing: .02em;
  cursor: pointer;
  background-color: #0000;
  border-radius: 999px;
  padding: 10px 24px;
  font-size: .85rem;
  font-weight: 500;
  text-decoration: none;
  transition: background-color .25s, color .25s, border-color .25s;
  display: inline-block;
}

.home-projects-filter-btn:hover, .home-projects-filter-btn.is-active {
  background-color: var(--theme-accent);
  color: var(--theme-bg);
  border-color: var(--theme-accent);
}

.home-projects-carousel {
  width: 100%;
  padding: 0 16px;
}

.home-projects-scroll-wrap {
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
  min-width: 0;
  position: relative;
  overflow: auto hidden;
}

.home-projects-scroll-wrap::-webkit-scrollbar {
  display: none;
}

.home-projects-track {
  gap: 24px;
  width: max-content;
  padding: 4px 4px 8px;
  display: flex;
}

.home-project-card {
  border: 1px solid var(--theme-accent-12);
  background: var(--theme-surface-raised);
  width: 320px;
  max-width: 80vw;
  box-shadow: 0 4px 20px var(--theme-shadow-soft);
  cursor: pointer;
  text-align: left;
  color: inherit;
  border-radius: 14px;
  flex-direction: column;
  flex: none;
  padding: 0;
  transition: border-color .25s, box-shadow .25s, transform .25s;
  display: flex;
  overflow: hidden;
}

.home-project-card:hover {
  border-color: var(--theme-accent-30);
  box-shadow: 0 16px 40px var(--theme-shadow);
  transform: translateY(-4px);
}

.home-project-card-image-wrap {
  aspect-ratio: 4 / 3;
  background: var(--theme-surface-alt);
  width: 100%;
  position: relative;
  overflow: hidden;
}

.home-project-card-image {
  object-fit: cover;
  transition: transform .5s;
}

.home-project-card:hover .home-project-card-image {
  transform: scale(1.05);
}

.home-project-card-status {
  z-index: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--theme-bg);
  background: var(--theme-accent);
  border-radius: 4px;
  padding: .35rem .75rem;
  font-size: .65rem;
  font-weight: 600;
  position: absolute;
  top: 1rem;
  right: 1rem;
}

.home-project-card-body {
  flex-direction: column;
  align-items: flex-start;
  gap: .35rem;
  padding: 1.25rem 1.2rem 1.4rem;
  display: flex;
}

.home-project-card-name {
  color: var(--theme-text);
  letter-spacing: .01em;
  margin: 0;
  font-size: 1.2rem;
  font-weight: 600;
}

.home-project-card-location {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--theme-muted);
  margin: 0;
  font-size: .72rem;
  font-weight: 600;
}

.home-project-card-units {
  color: var(--theme-accent);
  margin: .15rem 0 0;
  font-size: .9rem;
  font-weight: 500;
}

.home-project-card-link {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--theme-accent);
  opacity: 0;
  margin-top: .6rem;
  font-size: .7rem;
  font-weight: 600;
  transition: opacity .25s, transform .25s;
  transform: translateY(4px);
}

.home-project-card:hover .home-project-card-link {
  opacity: 1;
  transform: translateY(0);
}

.home-upcoming-wrap {
  outline: none;
  width: 100%;
  margin: 0 auto;
  padding: 0 16px;
  position: relative;
  overflow: hidden;
}

.home-upcoming-stage {
  aspect-ratio: 2.53968;
  width: 100%;
  height: auto;
  position: relative;
}

.home-upcoming-card {
  aspect-ratio: 16 / 9;
  will-change: transform;
  width: 70%;
  height: auto;
  transition: transform .6s cubic-bezier(.22, 1, .36, 1), opacity .45s, filter .45s;
  position: absolute;
  top: 50%;
  left: 15%;
  transform: translateY(-50%);
}

.home-upcoming-card.is-active {
  z-index: 3;
  opacity: 1;
  filter: none;
  transform: translateY(-50%)scale(1);
}

.home-upcoming-card.is-prev, .home-upcoming-card.is-next {
  z-index: 2;
  opacity: .55;
  filter: saturate(.6);
}

.home-upcoming-card.is-prev {
  cursor: pointer;
  transform: translateY(-50%)translateX(-100%)scale(.92);
}

.home-upcoming-card.is-next {
  cursor: pointer;
  transform: translateY(-50%)translateX(100%)scale(.92);
}

.home-upcoming-card.is-far-left, .home-upcoming-card.is-far-right {
  z-index: 1;
  opacity: 0;
  pointer-events: none;
}

.home-upcoming-card.is-far-left {
  transform: translateY(-50%)translateX(-200%)scale(.85);
}

.home-upcoming-card.is-far-right {
  transform: translateY(-50%)translateX(200%)scale(.85);
}

.home-upcoming-card-button {
  border: 1px solid var(--theme-border);
  background: var(--theme-surface-alt);
  width: 100%;
  height: 100%;
  box-shadow: 0 30px 80px var(--theme-shadow);
  cursor: pointer;
  color: inherit;
  text-align: left;
  border-radius: 24px;
  padding: 0;
  display: block;
  position: relative;
  overflow: hidden;
}

.home-upcoming-card-button:focus-visible {
  outline: 2px solid var(--theme-accent);
  outline-offset: 3px;
}

.home-upcoming-card-image-wrap {
  background: var(--theme-surface-alt);
  position: absolute;
  inset: 0;
}

.home-upcoming-card-image {
  object-fit: cover;
  transition: transform .8s;
}

.home-upcoming-card.is-active:hover .home-upcoming-card-image {
  transform: scale(1.06);
}

.home-upcoming-card-overlay {
  background: linear-gradient(#00000014 0%, #00000047 48%, #000000c7 100%);
  position: absolute;
  inset: 0;
}

.home-upcoming-card-status {
  z-index: 2;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--theme-bg);
  background: var(--theme-accent);
  border-radius: 999px;
  padding: .4rem .9rem;
  font-size: .65rem;
  font-weight: 600;
  position: absolute;
  top: 24px;
  right: 24px;
  box-shadow: 0 4px 16px #0000004d;
}

.home-upcoming-card-body {
  z-index: 2;
  flex-direction: column;
  align-items: flex-start;
  gap: .4rem;
  padding: 40px;
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.home-upcoming-card-location {
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--theme-on-image-muted);
  margin: 0;
  font-size: .72rem;
  font-weight: 900;
}

.home-upcoming-card-name {
  color: var(--theme-on-image-text);
  text-shadow: var(--theme-on-image-shadow);
  margin: 0;
  font-size: 2rem;
  font-weight: 600;
  line-height: 1.15;
}

.home-upcoming-card-units {
  color: var(--theme-on-image-muted);
  margin: .2rem 0 0;
  font-size: .95rem;
  font-weight: 500;
}

.home-upcoming-card-link {
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--theme-on-image-text);
  align-items: center;
  gap: .5rem;
  margin-top: .9rem;
  font-size: .72rem;
  font-weight: 600;
  transition: gap .25s;
  display: inline-flex;
}

.home-upcoming-card-link svg {
  width: 1.1rem;
  height: 1.1rem;
}

.home-upcoming-card.is-active:hover .home-upcoming-card-link {
  gap: .75rem;
}

.home-upcoming-arrow {
  z-index: 5;
  border: 1px solid var(--theme-border-strong);
  background: var(--theme-overlay);
  width: 52px;
  height: 52px;
  color: var(--theme-accent);
  cursor: pointer;
  box-shadow: 0 8px 24px var(--theme-shadow-soft);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  transition: background-color .25s, color .25s, border-color .25s, transform .25s;
  display: flex;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.home-upcoming-arrow:hover {
  background: var(--theme-accent);
  color: var(--theme-bg);
  border-color: var(--theme-accent);
}

.home-upcoming-arrow:active {
  transform: translateY(-50%)scale(.94);
}

.home-upcoming-arrow svg {
  width: 1.3rem;
  height: 1.3rem;
}

.home-upcoming-arrow-prev {
  left: 4px;
}

.home-upcoming-arrow-next {
  right: 4px;
}

.home-upcoming-counter {
  text-align: center;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--theme-muted);
  margin: 28px 0 0;
  font-size: .78rem;
  font-weight: 600;
}

.home-upcoming-counter span {
  color: var(--theme-accent);
}

.home-upcoming-projects {
  --accent-rgb: 255, 214, 10;
  color: #fff;
  background-color: #050505;
}

.home-upcoming-projects .home-section-eyebrow {
  color: #ffd60a;
}

.home-upcoming-projects .home-section-eyebrow:after {
  background: #ffd60a;
}

.home-upcoming-projects .home-section-title {
  color: #fff;
}

.home-upcoming-projects .home-section-desc {
  color: #ffffffc7;
}

.home-upcoming-projects .home-upcoming-card-button {
  background: #0f0f0f;
  border-color: #ffd60a47;
  box-shadow: 0 30px 80px #000000a6;
}

.home-upcoming-projects .home-upcoming-card-button:focus-visible {
  outline-color: #ffd60a;
}

.home-upcoming-projects .home-upcoming-card-image-wrap {
  background: #0f0f0f;
}

.home-upcoming-projects .home-upcoming-card-status {
  color: #0a0a0a;
  background: #ffd60a;
}

.home-upcoming-projects .home-upcoming-card-location, .home-upcoming-projects .home-upcoming-card-units {
  color: #ffffffc7;
}

.home-upcoming-projects .home-upcoming-card-name {
  color: #fff;
}

.home-upcoming-projects .home-upcoming-card-link {
  color: #ffd60a;
}

.home-upcoming-projects .home-upcoming-arrow {
  color: #ffd60a;
  background: #05050599;
  border-color: #ffd60a73;
  box-shadow: 0 8px 24px #0000008c;
}

.home-upcoming-projects .home-upcoming-arrow:hover {
  color: #0a0a0a;
  background: #ffd60a;
  border-color: #ffd60a;
}

.home-upcoming-projects .home-upcoming-counter {
  color: #ffffffc7;
}

.home-upcoming-projects .home-upcoming-counter span {
  color: #ffd60a;
}

@media (min-width: 1024px) {
  .home-upcoming-projects .home-upcoming-card-button {
    overflow: visible;
  }

  .home-upcoming-projects .home-upcoming-card-image-wrap, .home-upcoming-projects .home-upcoming-card-overlay {
    border-radius: 24px;
    overflow: hidden;
  }

  .home-upcoming-projects .home-upcoming-card-body {
    gap: .5rem;
    width: clamp(300px, 46%, 460px);
    padding: 30px 34px;
    inset: 50% auto auto clamp(-180px, -12%, -80px);
    transform: translateY(-50%);
  }

  .home-upcoming-projects .home-upcoming-card-name {
    font-size: 1.75rem;
  }
}

@media (max-width: 768px) {
  .home-upcoming-stage {
    aspect-ratio: 2.2792;
  }

  .home-upcoming-card {
    width: 78%;
    left: 11%;
  }

  .home-upcoming-card-name {
    font-size: 1.5rem;
  }

  .home-upcoming-card-location, .home-upcoming-card-units {
    display: none;
  }

  .home-upcoming-card-body {
    gap: .2rem;
    padding: 24px;
  }

  .home-upcoming-arrow {
    width: 44px;
    height: 44px;
  }

  .home-upcoming-arrow-prev {
    left: 0;
  }

  .home-upcoming-arrow-next {
    right: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .ambient-bg__mesh, .ambient-bg__orb {
    animation: none;
  }

  .scroll-reveal {
    opacity: 1;
    transition: none;
    transform: none;
  }

  .hero-video {
    animation: none;
    transform: translateX(-50%)translateY(-50%);
  }

  .hero-text-section, .hero-title, .hero-text-section h2 {
    opacity: 1;
    animation: none;
    transform: translate(-50%, -50%);
  }

  .stats-grid.is-animated .stat-item, .stat-item {
    transition: none;
    transform: none;
  }

  .about-curve path {
    stroke-dashoffset: 0;
    transition: none;
  }

  .home-upcoming-card, .home-upcoming-card-image {
    transition: none;
  }

  .testimonial-track {
    animation: none;
  }

  .testimonial-marquee {
    overflow-x: auto;
  }
}

.home-leadership {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 100px 20px;
}

.home-leadership-band {
  width: 100%;
}

.home-leadership-images-grid {
  grid-template-columns: 1fr;
  gap: 24px;
  display: grid;
}

@media (min-width: 640px) {
  .home-leadership-images-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .home-leadership-images-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.home-leadership-images-grid .scroll-reveal {
  width: 100%;
  display: block;
}

.home-leadership-image-wrap {
  aspect-ratio: 3 / 4;
  border: 1px solid var(--theme-accent-12);
  border-radius: 14px;
  width: 100%;
  transition: transform .5s cubic-bezier(.22, 1, .36, 1), box-shadow .5s;
  position: relative;
  overflow: hidden;
}

.scroll-reveal.is-visible .home-leadership-image-wrap:hover {
  box-shadow: 0 20px 48px var(--theme-shadow);
  transform: translateY(-6px);
}

.home-leadership-image {
  object-fit: cover;
  object-position: top;
}

.home-leadership-card {
  background: var(--theme-surface-raised);
  border: 1px solid var(--theme-border);
  box-shadow: 0 4px 20px var(--theme-shadow-soft);
  border-radius: 14px;
  transition: border-color .4s, box-shadow .4s, transform .4s cubic-bezier(.22, 1, .36, 1);
  overflow: hidden;
}

.home-leadership-card:hover {
  border-color: var(--theme-accent-30);
  box-shadow: 0 20px 48px var(--theme-shadow);
  transform: translateY(-6px);
}

.home-leadership-card .home-leadership-image-wrap {
  aspect-ratio: 4 / 5;
  border: none;
  border-radius: 0;
  transition: none;
}

.home-leadership-card .home-leadership-image-wrap:hover {
  box-shadow: none;
  transform: none;
}

.home-leadership-card:hover .home-leadership-image {
  transform: scale(1.04);
}

.home-leadership-image {
  transition: transform .6s cubic-bezier(.22, 1, .36, 1);
}

.home-leadership-card-body {
  padding: 1.25rem 1.35rem 1.5rem;
}

.home-leadership-name {
  font-family: var(--font-heading), var(--font-heading-fallback);
  color: var(--theme-text);
  letter-spacing: .02em;
  margin: 0 0 .35rem;
  font-size: 1.25rem;
  font-weight: 500;
}

.home-leadership-role {
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--theme-accent);
  margin: 0 0 .75rem;
  font-size: .72rem;
  font-weight: 600;
}

.home-leadership-bio {
  color: var(--theme-muted);
  margin: 0;
  font-size: .9rem;
  line-height: 1.55;
}

.home-testimonials {
  width: 100%;
  padding: 100px 0;
  overflow: hidden;
}

.testimonial-marquee {
  width: 100%;
  position: relative;
  overflow: hidden;
  -webkit-mask-image: linear-gradient(to right, #0000 0, #000 8% 92%, #0000 100%);
  mask-image: linear-gradient(to right, #0000 0, #000 8% 92%, #0000 100%);
}

.testimonial-track {
  gap: 28px;
  width: max-content;
  padding: 0 14px;
  animation: 40s linear infinite testimonial-scroll;
  display: flex;
}

.testimonial-marquee:hover .testimonial-track {
  animation-play-state: paused;
}

@keyframes testimonial-scroll {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-50%);
  }
}

.testimonial-card {
  background-color: var(--theme-surface);
  border: 1px solid var(--theme-accent-12);
  border-radius: 14px;
  flex-direction: column;
  flex: none;
  width: 360px;
  max-width: 80vw;
  padding: 32px 28px;
  display: flex;
}

.testimonial-quote-mark {
  color: var(--theme-accent);
  margin-bottom: 12px;
  font-family: Georgia, serif;
  font-size: 3rem;
  line-height: .6;
}

.testimonial-quote {
  color: var(--theme-text-secondary);
  flex: 1;
  margin: 0 0 24px;
  font-size: 1rem;
  line-height: 1.7;
}

.testimonial-author {
  flex-direction: column;
  gap: 2px;
  display: flex;
}

.testimonial-name {
  color: var(--theme-text);
  font-size: 1rem;
  font-weight: 600;
}

.testimonial-detail {
  color: var(--theme-accent);
  font-size: .85rem;
}

.home-contact {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  padding: 100px 20px;
}

.home-contact-band {
  width: 100%;
}

.home-contact-form-wrap {
  justify-content: center;
  display: flex;
}

@media (max-width: 768px) {
  .home-section-title {
    font-size: 2rem;
  }

  .home-projects-filters {
    gap: 8px;
  }

  .home-projects-filter-btn {
    padding: 8px 18px;
    font-size: .78rem;
  }
}

/* [project]/src/components/Navbar.css [app-client] (css) */
.header {
  z-index: 100;
  background: none;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 1.5rem 1.5rem 1.5rem .5rem;
  transition: transform .35s;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  transform: translateY(0);
}

.header--hidden {
  transform: translateY(-100%);
}

.logo a {
  z-index: 101;
  text-decoration: none;
  display: block;
  position: relative;
}

.logo-image {
  border-radius: 10px;
  width: auto;
  height: 88px;
  display: block;
}

.desktop-nav {
  z-index: 101;
  align-items: center;
  gap: 2rem;
  margin-left: auto;
  margin-right: 2rem;
  display: flex;
  position: relative;
}

.desktop-nav-item {
  align-items: center;
  display: flex;
}

.desktop-nav-link {
  font-family: var(--font-heading), var(--font-heading-fallback);
  letter-spacing: .02em;
  color: #fff;
  white-space: nowrap;
  text-shadow: 0 0 4px #000, 0 0 4px #000;
  align-items: center;
  gap: .4rem;
  font-size: 1.3rem;
  font-weight: 900;
  text-decoration: none;
  transition: color .3s;
  display: inline-flex;
}

.desktop-nav-link:hover {
  color: #ffffffb3;
}

.header--mega-open {
  background: var(--theme-bg);
  border-bottom: 1px solid var(--theme-border);
}

.header--mega-open .desktop-nav-link {
  color: var(--theme-text);
  text-shadow: none;
}

.header--mega-open .desktop-nav-link:hover, .header--mega-open .desktop-nav-link.is-active {
  color: var(--theme-accent);
}

.header--mega-open .hamburger .bar {
  background-color: var(--theme-hamburger);
}

.desktop-nav-caret {
  border-top: 5px solid;
  border-left: 4px solid #0000;
  border-right: 4px solid #0000;
  width: 0;
  height: 0;
  transition: transform .25s;
}

.desktop-nav-caret.open {
  transform: rotate(180deg);
}

.mega-menu {
  background: var(--theme-bg);
  width: 100%;
  box-shadow: 0 24px 48px var(--theme-shadow);
  z-index: 99;
  opacity: 0;
  visibility: hidden;
  padding-top: 120px;
  transition: opacity .25s, transform .25s, visibility .25s;
  position: fixed;
  top: 0;
  left: 0;
  transform: translateY(-12px);
}

.mega-menu.open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.mega-menu-inner {
  grid-template-columns: 260px 1fr;
  gap: 2.5rem;
  max-width: 1280px;
  margin: 0 auto;
  padding: 2.5rem 2.5rem 3rem;
  display: grid;
}

.mega-menu-heading {
  font-family: var(--font-heading), var(--font-heading-fallback);
  color: var(--theme-accent);
  margin: 0 0 1.25rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.mega-menu-locations {
  border-right: 1px solid var(--theme-border);
  padding-right: 2rem;
}

.mega-menu-city-list {
  flex-direction: column;
  gap: .75rem;
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
}

.mega-menu-city {
  cursor: pointer;
  font-family: var(--font-body), var(--font-body-fallback);
  color: var(--theme-text);
  text-align: left;
  background: none;
  border: none;
  padding: 0;
  font-size: 1.15rem;
  font-weight: 500;
  transition: color .2s;
}

.mega-menu-city:hover, .mega-menu-city.active {
  color: var(--theme-accent);
}

.mega-menu-projects-head {
  justify-content: space-between;
  align-items: baseline;
  display: flex;
}

.mega-menu-viewall {
  font-family: var(--font-body), var(--font-body-fallback);
  color: var(--theme-text);
  text-underline-offset: 4px;
  font-size: .95rem;
  font-weight: 600;
  text-decoration: underline;
}

.mega-menu-viewall:hover {
  color: var(--theme-accent);
}

.mega-menu-grid {
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  display: grid;
}

.mega-menu-card {
  background: var(--theme-surface-raised);
  border: 1px solid var(--theme-border);
  border-radius: 6px;
  flex-direction: column;
  text-decoration: none;
  transition: transform .25s, box-shadow .25s;
  display: flex;
  overflow: hidden;
}

.mega-menu-card:hover {
  box-shadow: 0 12px 24px var(--theme-shadow);
  transform: translateY(-4px);
}

.mega-menu-card-image {
  aspect-ratio: 16 / 11;
  background: var(--theme-surface);
  width: 100%;
  position: relative;
}

.mega-menu-card-img {
  object-fit: cover;
}

.mega-menu-card-body {
  padding: 1rem 1.1rem 1.25rem;
}

.mega-menu-card-name {
  font-family: var(--font-heading), var(--font-heading-fallback);
  color: var(--theme-text);
  margin: 0 0 .35rem;
  font-size: 1.2rem;
  font-weight: 700;
}

.mega-menu-card-location {
  color: var(--theme-muted);
  margin: 0 0 .6rem;
  font-size: .9rem;
}

.mega-menu-card-units {
  color: var(--theme-accent);
  margin: 0;
  font-size: .9rem;
  font-weight: 600;
}

.nav-link--mobile, .nav-link--has-children, .nav-submenu {
  display: none;
}

.hamburger {
  cursor: pointer;
  z-index: 101;
  background: none;
  border: none;
  flex-direction: column;
  justify-content: space-between;
  width: 32px;
  height: 22px;
  padding: 0;
  display: flex;
}

.hamburger:focus {
  outline: none;
}

.hamburger {
  filter: drop-shadow(0 1px 2px #00000080);
}

.header--mega-open .hamburger {
  filter: none;
}

.hamburger .bar {
  background-color: #fff;
  border-radius: 10px;
  width: 100%;
  height: 2px;
  transition: all .3s;
}

.hamburger.active .bar {
  background-color: var(--theme-hamburger);
}

.hamburger.active .bar:first-child {
  transform: translateY(10px)rotate(45deg);
}

.hamburger.active .bar:nth-child(2) {
  opacity: 0;
}

.hamburger.active .bar:nth-child(3) {
  transform: translateY(-10px)rotate(-45deg);
}

.nav-overlay {
  background-color: var(--theme-overlay);
  opacity: 0;
  visibility: hidden;
  z-index: 100;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  transition: opacity .4s, visibility .4s, background-color .3s;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
}

.nav-overlay.open {
  opacity: 1;
  visibility: visible;
}

.nav-menu {
  flex-direction: column;
  align-items: center;
  gap: 2.5rem;
  display: flex;
}

.nav-link {
  font-family: var(--font-heading), var(--font-heading-fallback);
  letter-spacing: .02em;
  color: var(--theme-nav-link);
  opacity: 0;
  transform: translateX(var(--direction, -100px));
  font-size: 3.5rem;
  font-weight: 600;
  text-decoration: none;
  transition: opacity .5s cubic-bezier(.25, 1, .5, 1), transform .5s cubic-bezier(.25, 1, .5, 1), color .3s;
}

.nav-overlay.open .nav-link {
  opacity: 1;
  transition-delay: calc(var(--animation-order) * .1s + .2s), 
                    calc(var(--animation-order) * .1s + .2s), 
                    0s;
  transform: translateX(0);
}

.nav-overlay.open .nav-link:hover {
  color: var(--theme-nav-link-hover);
  transition-duration: .3s, .3s, .3s;
  transition-delay: 0s, 0s, 0s;
  transform: scale(1.05);
}

.nav-link--has-children {
  cursor: pointer;
  font-family: var(--font-heading), var(--font-heading-fallback);
  letter-spacing: .02em;
  color: var(--theme-nav-link);
  background: none;
  border: none;
  align-items: baseline;
  gap: .5rem;
  padding: 0;
  font-size: 3.5rem;
  font-weight: 600;
  text-decoration: none;
}

.nav-caret {
  vertical-align: middle;
  border-top: 6px solid;
  border-left: 5px solid #0000;
  border-right: 5px solid #0000;
  width: 0;
  height: 0;
  margin-left: .75rem;
  transition: transform .25s;
  display: inline-block;
}

.nav-caret.open {
  transform: rotate(180deg);
}

.nav-submenu {
  opacity: 0;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  max-height: 0;
  padding-top: 0;
  transition: max-height .35s, opacity .35s;
  display: none;
  overflow: hidden;
}

.nav-submenu.open {
  opacity: 1;
  max-height: 400px;
  display: flex;
}

.nav-submenu .nav-link--sub {
  letter-spacing: .04em;
  opacity: 0;
  font-size: 1rem;
  font-weight: 400;
  transition: opacity .3s, transform .3s, color .2s;
  transform: translateX(30px);
}

.nav-overlay.open .nav-submenu .nav-link--sub {
  opacity: 1;
  transform: translateX(0);
}

.nav-submenu .nav-link--sub:hover {
  color: var(--theme-accent);
  transition-duration: .3s, .3s, .3s;
  transition-delay: 0s, 0s, 0s;
  transform: scale(1.05);
}

@media (max-width: 768px) {
  .header {
    padding: 1rem 1.5rem;
  }

  .logo-image {
    height: 36px;
  }

  .nav-link, .nav-link--has-children {
    font-size: 2.5rem;
  }

  .desktop-nav, .mega-menu {
    display: none;
  }

  .hamburger .bar {
    background-color: var(--theme-hamburger);
  }

  .nav-link--desktop {
    display: none;
  }

  .nav-link--mobile {
    display: block;
  }

  .nav-link--has-children {
    display: flex;
  }
}

/* [project]/src/components/FloatingContactBar.css [app-client] (css) */
.fab-contact {
  z-index: 90;
  box-shadow: 0 10px 28px var(--theme-shadow);
  opacity: 0;
  background: #fff;
  border-radius: 999px;
  align-items: stretch;
  transition: transform .5s cubic-bezier(.22, 1, .36, 1), opacity .5s;
  display: flex;
  position: fixed;
  bottom: 1.5rem;
  right: 1.5rem;
  overflow: hidden;
  transform: translateX(calc(100% + 2rem));
}

.fab-contact--visible {
  opacity: 1;
  transform: translateX(0);
}

.fab-item {
  color: inherit;
  font-family: var(--font-body), var(--font-body-fallback);
  letter-spacing: .01em;
  white-space: nowrap;
  align-items: center;
  gap: .55rem;
  padding: .7rem 1.2rem;
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .25s;
  display: flex;
}

.fab-item + .fab-item {
  box-shadow: inset 1px 0 #0000001f;
}

.fab-item:hover, .fab-item:focus-visible {
  background: #0000001a;
  outline: none;
}

.fab-icon {
  justify-content: center;
  align-items: center;
  width: 22px;
  height: 22px;
  display: flex;
}

.fab-icon svg {
  width: 22px;
  height: 22px;
  display: block;
}

@media (max-width: 768px) {
  .fab-contact {
    bottom: 1rem;
    right: 1rem;
  }

  .fab-item {
    gap: .4rem;
    padding: .6rem .95rem;
    font-size: .9rem;
  }

  .fab-label {
    display: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .fab-contact {
    transition-duration: 1ms;
  }
}

/* [project]/src/components/SplashScreen.css [app-client] (css) */
.splash-screen {
  z-index: 9999;
  background-color: #000;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100dvh;
  transition: opacity .8s;
  display: flex;
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
}

.splash-screen.fade-out {
  opacity: 0;
  pointer-events: none;
}

.splash-image {
  object-fit: cover;
  object-position: center;
  width: 100%;
  height: 100%;
  display: block;
}

/* [project]/src/lib/fontheading_37923b60.module.css [app-client] (css) */
@font-face {
  font-family: fontHeading;
  src: url("../media/seasons_regular-s.p.129qsjzjjmp2z.woff2") format("woff2");
  font-display: swap;
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: fontHeading;
  src: url("../media/seasons_bold-s.p.0ipm7rbkxgny_.woff2") format("woff2");
  font-display: swap;
  font-weight: 700;
  font-style: normal;
}

@font-face {
  font-family: fontHeading Fallback;
  src: local(Arial);
  ascent-override: 99.54%;
  descent-override: 19.91%;
  line-gap-override: 0.0%;
  size-adjust: 100.46%;
}

.fontheading_37923b60-module__qadypW__className {
  font-family: fontHeading, fontHeading Fallback;
}

.fontheading_37923b60-module__qadypW__variable {
  --font-heading: "fontHeading", "fontHeading Fallback";
}

/* [next]/internal/font/google/hanken_grotesk_a8260def.module.css [app-client] (css) */
@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../media/91bd2e40df15814e-s.0eq-h7p0~f2-i.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../media/a63431c4ac64ea8b-s.0-m28h~k~95g~.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../media/8b4ed0a90d903ab5-s.18283yqfiehau.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../media/c47649aa31f9e140-s.p.11uo_35nso9mn.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/91bd2e40df15814e-s.0eq-h7p0~f2-i.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/a63431c4ac64ea8b-s.0-m28h~k~95g~.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/8b4ed0a90d903ab5-s.18283yqfiehau.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/c47649aa31f9e140-s.p.11uo_35nso9mn.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/91bd2e40df15814e-s.0eq-h7p0~f2-i.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/a63431c4ac64ea8b-s.0-m28h~k~95g~.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/8b4ed0a90d903ab5-s.18283yqfiehau.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/c47649aa31f9e140-s.p.11uo_35nso9mn.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/91bd2e40df15814e-s.0eq-h7p0~f2-i.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/a63431c4ac64ea8b-s.0-m28h~k~95g~.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/8b4ed0a90d903ab5-s.18283yqfiehau.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/c47649aa31f9e140-s.p.11uo_35nso9mn.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/91bd2e40df15814e-s.0eq-h7p0~f2-i.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/a63431c4ac64ea8b-s.0-m28h~k~95g~.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/8b4ed0a90d903ab5-s.18283yqfiehau.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Hanken Grotesk;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/c47649aa31f9e140-s.p.11uo_35nso9mn.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Hanken Grotesk Fallback;
  src: local(Arial);
  ascent-override: 99.07%;
  descent-override: 30.02%;
  line-gap-override: 0.0%;
  size-adjust: 100.94%;
}

.hanken_grotesk_a8260def-module__vZ5DQW__className {
  font-family: Hanken Grotesk, Hanken Grotesk Fallback;
  font-style: normal;
}

.hanken_grotesk_a8260def-module__vZ5DQW__variable {
  --font-body: "Hanken Grotesk", "Hanken Grotesk Fallback";
}

/*# sourceMappingURL=%5Broot-of-the-server%5D__0m8jdsz._.css.map*/