/* 0.9: smooth frosted glass at every interface scale. */
:root {
  --glass-rim: rgba(255, 255, 255, .95);
  --glass-cut: rgba(80, 124, 135, .34);
  --glass-light: rgba(255, 255, 255, .62);
  --glass-depth: rgba(35, 76, 86, .13);
}

/* Broad, unpatterned colour fields give the frost something to soften. */
.hero { background: linear-gradient(118deg, #E8F2F1 0%, #D3E8EA 46%, #ECF2F2 100%); }
.hero-panel {
  background: rgba(246,251,250,.70);
  border: 1px solid var(--glass-rim);
  box-shadow: 0 24px 65px rgba(47, 83, 92, .13);
  -webkit-backdrop-filter: blur(28px);
  backdrop-filter: blur(28px);
}
.hero-panel::before { content: none; }
.hero-panel > * { position: relative; z-index: 1; }
.hero-object {
  background: rgba(248,252,251,.58);
  border-color: var(--glass-rim);
  box-shadow: 0 28px 65px rgba(47, 83, 92, .13);
  -webkit-backdrop-filter: blur(22px);
  backdrop-filter: blur(22px);
}
.object-stamp {
  width: max-content;
  max-width: calc(100% - 36px);
  margin: 18px 0 0 18px;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.96);
  border-radius: 10px;
  background: rgba(242,250,249,.77);
  box-shadow: 0 7px 18px rgba(44,83,93,.09);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.hero-object figcaption {
  border-top-color: rgba(255,255,255,.76);
  background: rgba(230,243,244,.48);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}

.manifesto::before {
  background: radial-gradient(ellipse at 75% 65%, rgba(174,213,220,.62), transparent 62%),
              radial-gradient(ellipse at 34% 34%, rgba(219,214,236,.34), transparent 55%);
}
.manifesto-copy,
.studio-copy,
.contact-panel {
  background: rgba(246,251,250,.72);
  border: 1px solid var(--glass-rim);
  box-shadow: 0 22px 55px rgba(45,80,88,.13);
  -webkit-backdrop-filter: blur(30px);
  backdrop-filter: blur(30px);
}
.manifesto-copy::after,
.studio-copy::after,
.contact-panel::after { content: none; }
.contact-panel::before { content: none; }
.manifesto-copy > *, .studio-copy > *, .contact-panel > * { position: relative; z-index: 1; }

.services {
  background: linear-gradient(125deg, #CBE3E7 0%, #EAF3F2 48%, #D8E7EC 100%);
}
.service-card {
  border: 1px solid var(--glass-rim);
  background: rgba(248,252,251,.65);
  box-shadow: 0 20px 42px rgba(42,81,91,.11);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
}
.service-card:nth-child(2) {
  background: rgba(244,251,250,.60);
  -webkit-backdrop-filter: blur(30px);
  backdrop-filter: blur(30px);
}
.service-card:nth-child(3) {
  background: rgba(248,252,251,.82);
  -webkit-backdrop-filter: blur(36px);
  backdrop-filter: blur(36px);
}
.service-card::before { content: none; }
.service-card > :not(.service-arrow) { position: relative; z-index: 1; }

.studies-copy {
  background: linear-gradient(140deg, rgba(38,72,82,.69), rgba(17,43,52,.58));
  border: 1px solid rgba(214,245,250,.34);
  box-shadow: 0 24px 58px rgba(0,0,0,.17), inset 1px 1px 0 rgba(255,255,255,.14);
  -webkit-backdrop-filter: blur(30px) saturate(1.12);
  backdrop-filter: blur(30px) saturate(1.12);
}
.study-image figcaption {
  background: rgba(29,58,68,.71);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
}
.approach { isolation: isolate; }
.approach::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 15% 0 4%;
  background: linear-gradient(130deg, rgba(196,224,228,.55), rgba(226,221,239,.3) 50%, rgba(188,219,224,.57));
  border-radius: 36px;
}
.approach-card,
.approach-card:nth-child(2),
.approach-card:nth-child(3) {
  border: 1px solid var(--glass-rim);
  background: rgba(248,252,251,.67);
  box-shadow: 0 19px 42px rgba(45,80,88,.1);
  -webkit-backdrop-filter: blur(26px);
  backdrop-filter: blur(26px);
}
.approach-card:nth-child(2) { background: rgba(248,252,251,.58); }
.approach-card:nth-child(3) { background: rgba(248,252,251,.78); }
.approach-card::before { content: none; }
.approach-card > * { position: relative; z-index: 1; }

.studio { background: linear-gradient(110deg, #E4F0F0, #F4F8F7 58%, #DCECEE); }
.studio-marker {
  background: rgba(236,246,247,.67);
  border: 1px solid var(--glass-rim);
  box-shadow: 0 22px 54px rgba(44,81,89,.12);
  -webkit-backdrop-filter: blur(26px);
  backdrop-filter: blur(26px);
}
.studio-marker::before { content: none; }
.studio-marker > * { position: relative; z-index: 1; }
.contact { background: linear-gradient(125deg, #B8D9DE, #E6F2F1 57%, #C7E2E5); }

/* Controls are small frosted panes, without lensing or convex highlights. */
.menu-trigger,
.header-contact,
.service-arrow,
.text-cta span,
.menu-bottom a {
  -webkit-backdrop-filter: blur(var(--component-frost-control-blur));
  backdrop-filter: blur(var(--component-frost-control-blur));
}
.menu-trigger,
.header-contact {
  position: relative;
  border: 1px solid var(--component-frost-control-border);
  background: var(--component-frost-control-fill);
  box-shadow: var(--component-frost-control-shadow);
}
.nav-disclosure[open] .menu-trigger { background: rgba(233,245,244,.88); }
.menu-panel {
  background: rgba(234,245,244,.8);
  border-color: rgba(255,255,255,.98);
  box-shadow: 0 32px 80px rgba(28,51,57,.17);
  -webkit-backdrop-filter: blur(38px);
  backdrop-filter: blur(38px);
}
.menu-panel::before { content: none; }
.service-arrow,
.text-cta span {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 37px;
  height: 37px;
  border-radius: 10px;
  color: #215763;
  border: 1px solid var(--component-frost-control-border);
  background: var(--component-frost-control-fill);
  box-shadow: var(--component-frost-control-shadow);
  transition: transform .22s ease;
}
.service-arrow { width: 40px; height: 40px; }
.text-cta:hover span,
.text-cta:focus-visible span,
.service-card:hover .service-arrow { transform: translate(2px,-2px); }
.studies .text-cta span { color: #214F5A; }
.menu-bottom a { padding: 9px 12px; border: 1px solid rgba(255,255,255,.8); border-radius: 12px; background: rgba(241,251,250,.7); box-shadow: 0 5px 14px rgba(31,78,89,.08); }
.wordmark-orb { background: #80B7BF; border: 1px solid #4A8590; box-shadow: none; }

@media (max-width: 580px) {
  .object-stamp { margin: 12px 0 0 12px; padding: 8px 11px; }
  .menu-panel { background: rgba(234,245,244,.91); }
  .approach::before { inset: 9% 0 2%; }
}
@media (prefers-reduced-motion: reduce) {
  .service-arrow, .text-cta span { transition: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .hero-panel,.manifesto-copy,.service-card,.approach-card,.studio-copy,.contact-panel { background: #EDF6F5 !important; }
  .menu-panel { background: #EDF6F5; }
  .studies-copy { background: #23414A; }
}
@media print {
  .hero-panel,.manifesto-copy,.service-card,.approach-card,.studio-copy,.contact-panel { background: #fff !important; box-shadow: none; }
}
