/* =============================================================================
   AURORA GLASS — component treatments
   GENERATED by tools/build-components-css.mjs from audit/redesign-brief.json.
   Do not hand-edit: change the brief or the generator and re-run.

   Source of the selector lists: a 10-agent pass over the built markup and the
   original CSS, one agent per class family, 23 glass surfaces identified.

   Structural constraints honoured (from the mapping's own warnings):
     · .dc-pill / .dc-visit__row / .bw-manifesto__value are hairline ROWS, not cards
     · .ethc-house stays bare; .ha-nap is not glass
     · media frames paint on the RIM only — inner images stay full-bleed cover
     · nothing here sets position/display, so display:contents and absolutely
       positioned inset media keep working
   ========================================================================== */

/* ---------------------------------------------------- GLASS SURFACES (27) */
.et-cat,
.et-review,
.et-frame,
.dc-rel,
.dc-visit,
.dc-relhub,
.ethc-why__row,
.ethc-hero__badge,
.tib-hero__chip,
.tib-creed__badge,
.ha-cond,
.od-close__info,
.ct-route,
.ia-panel,
.ia-panel--warm,
.ia-link,
.ia-link--warm,
.ia-portrait__badge,
.ia-callout,
.ia-heads,
.bw-toc,
.bw-legal__callout,
.bw-team__member,
.bw-timeline__entry,
.bw-toc__title,
.et-svc,
.ia-portrait {
  position: relative;
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-brd);
  border-radius: var(--r-lg);
  box-shadow: var(--glass-shadow), var(--glass-edge);
  transition: transform var(--t-mid) var(--ease),
              box-shadow var(--t-mid) var(--ease),
              border-color var(--t-mid) var(--ease),
              background-color var(--t-mid) var(--ease);
}

/* pointer-tracked specular highlight */
.et-cat::after,
.et-review::after,
.et-frame::after,
.dc-rel::after,
.dc-visit::after,
.dc-relhub::after,
.ethc-why__row::after,
.ethc-hero__badge::after,
.tib-hero__chip::after,
.tib-creed__badge::after,
.ha-cond::after,
.od-close__info::after,
.ct-route::after,
.ia-panel::after,
.ia-panel--warm::after,
.ia-link::after,
.ia-link--warm::after,
.ia-portrait__badge::after,
.ia-callout::after,
.ia-heads::after,
.bw-toc::after,
.bw-legal__callout::after,
.bw-team__member::after,
.bw-timeline__entry::after,
.bw-toc__title::after,
.et-svc::after,
.ia-portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  opacity: 0;
  transition: opacity var(--t-mid) var(--ease);
  background: radial-gradient(20rem 20rem at var(--mx, 50%) var(--my, 0%), color-mix(in srgb, var(--c-1) 50%, transparent), transparent 60%);
}
.et-cat:hover::after,
.et-review:hover::after,
.et-frame:hover::after,
.dc-rel:hover::after,
.dc-visit:hover::after,
.dc-relhub:hover::after,
.ethc-why__row:hover::after,
.ethc-hero__badge:hover::after,
.tib-hero__chip:hover::after,
.tib-creed__badge:hover::after,
.ha-cond:hover::after,
.od-close__info:hover::after,
.ct-route:hover::after,
.ia-panel:hover::after,
.ia-panel--warm:hover::after,
.ia-link:hover::after,
.ia-link--warm:hover::after,
.ia-portrait__badge:hover::after,
.ia-callout:hover::after,
.ia-heads:hover::after,
.bw-toc:hover::after,
.bw-legal__callout:hover::after,
.bw-team__member:hover::after,
.bw-timeline__entry:hover::after,
.bw-toc__title:hover::after,
.et-svc:hover::after,
.ia-portrait:hover::after { opacity: 1; }

.et-cat:hover,
.et-review:hover,
.et-frame:hover,
.dc-rel:hover,
.dc-visit:hover,
.dc-relhub:hover,
.ethc-why__row:hover,
.ethc-hero__badge:hover,
.tib-hero__chip:hover,
.tib-creed__badge:hover,
.ha-cond:hover,
.od-close__info:hover,
.ct-route:hover,
.ia-panel:hover,
.ia-panel--warm:hover,
.ia-link:hover,
.ia-link--warm:hover,
.ia-portrait__badge:hover,
.ia-callout:hover,
.ia-heads:hover,
.bw-toc:hover,
.bw-legal__callout:hover,
.bw-team__member:hover,
.bw-timeline__entry:hover,
.bw-toc__title:hover,
.et-svc:hover,
.ia-portrait:hover {
  transform: translateY(-6px);
  box-shadow: var(--glass-lift), var(--glass-edge);
  border-color: color-mix(in srgb, var(--g-teal-lit) 45%, transparent);
  background: var(--glass-bg-2);
}

/* dark-band variants */
.surface-dark .et-cat,
.surface-dark .et-review,
.surface-dark .et-frame,
.surface-dark .dc-rel,
.surface-dark .dc-visit,
.surface-dark .dc-relhub,
.surface-dark .ethc-why__row,
.surface-dark .ethc-hero__badge,
.surface-dark .tib-hero__chip,
.surface-dark .tib-creed__badge,
.surface-dark .ha-cond,
.surface-dark .od-close__info,
.surface-dark .ct-route,
.surface-dark .ia-panel,
.surface-dark .ia-panel--warm,
.surface-dark .ia-link,
.surface-dark .ia-link--warm,
.surface-dark .ia-portrait__badge,
.surface-dark .ia-callout,
.surface-dark .ia-heads,
.surface-dark .bw-toc,
.surface-dark .bw-legal__callout,
.surface-dark .bw-team__member,
.surface-dark .bw-timeline__entry,
.surface-dark .bw-toc__title,
.surface-dark .et-svc,
.surface-dark .ia-portrait {
  background: var(--glassd-bg);
  border-color: var(--glassd-brd);
  box-shadow: 0 24px 56px -26px color-mix(in srgb, var(--c-3) 60%, transparent), var(--glassd-edge);
}
.surface-dark .et-cat:hover,
.surface-dark .et-review:hover,
.surface-dark .et-frame:hover,
.surface-dark .dc-rel:hover,
.surface-dark .dc-visit:hover,
.surface-dark .dc-relhub:hover,
.surface-dark .ethc-why__row:hover,
.surface-dark .ethc-hero__badge:hover,
.surface-dark .tib-hero__chip:hover,
.surface-dark .tib-creed__badge:hover,
.surface-dark .ha-cond:hover,
.surface-dark .od-close__info:hover,
.surface-dark .ct-route:hover,
.surface-dark .ia-panel:hover,
.surface-dark .ia-panel--warm:hover,
.surface-dark .ia-link:hover,
.surface-dark .ia-link--warm:hover,
.surface-dark .ia-portrait__badge:hover,
.surface-dark .ia-callout:hover,
.surface-dark .ia-heads:hover,
.surface-dark .bw-toc:hover,
.surface-dark .bw-legal__callout:hover,
.surface-dark .bw-team__member:hover,
.surface-dark .bw-timeline__entry:hover,
.surface-dark .bw-toc__title:hover,
.surface-dark .et-svc:hover,
.surface-dark .ia-portrait:hover {
  border-color: color-mix(in srgb, var(--g-teal-lit) 55%, transparent);
  background: color-mix(in srgb, var(--c-3) 68%, transparent);
}

/* ------------------------------------------------------ MEDIA FRAMES (16) */
.dc-frame,
.ethc-hero__media,
.ethc-close__media,
.ethc-house__logo,
.tib-hero__media,
.tib-creed__portrait,
.ha-hero__stage,
.ha-media,
.od-media,
.od-media--tall,
.od-proof__media,
.ct-map__frame,
.ia-hero__media,
.ia-media,
.ia-portrait,
.bw-founder__portrait {
  border-radius: var(--r-xl);
  overflow: hidden;
  border: 1px solid var(--glass-brd);
  box-shadow: var(--glass-shadow);
  isolation: isolate;
}
.dc-frame::after,
.ethc-hero__media::after,
.ethc-close__media::after,
.ethc-house__logo::after,
.tib-hero__media::after,
.tib-creed__portrait::after,
.ha-hero__stage::after,
.ha-media::after,
.od-media::after,
.od-media--tall::after,
.od-proof__media::after,
.ct-map__frame::after,
.ia-hero__media::after,
.ia-media::after,
.ia-portrait::after,
.bw-founder__portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c-1) 50%, transparent),
              inset 0 -70px 90px -70px color-mix(in srgb, var(--c-3) 55%, transparent);
  transition: box-shadow var(--t-mid) var(--ease);
}
.dc-frame:hover::after,
.ethc-hero__media:hover::after,
.ethc-close__media:hover::after,
.ethc-house__logo:hover::after,
.tib-hero__media:hover::after,
.tib-creed__portrait:hover::after,
.ha-hero__stage:hover::after,
.ha-media:hover::after,
.od-media:hover::after,
.od-media--tall:hover::after,
.od-proof__media:hover::after,
.ct-map__frame:hover::after,
.ia-hero__media:hover::after,
.ia-media:hover::after,
.ia-portrait:hover::after,
.bw-founder__portrait:hover::after {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--g-teal-lit) 55%, transparent),
              inset 0 -70px 90px -70px color-mix(in srgb, var(--c-3) 35%, transparent);
}
/* inner images: full-bleed cover, slow zoom. Position is layout.css's job. */
.et-media-img,
.et-cat__scene,
.dc-frame__img,
.od-media__img,
.dc-frame img,
.ethc-hero__media img,
.ethc-close__media img,
.ethc-house__logo img,
.tib-hero__media img,
.tib-creed__portrait img,
.ha-hero__stage img,
.ha-media img,
.od-media img,
.od-media--tall img,
.od-proof__media img,
.ct-map__frame img,
.ia-hero__media img,
.ia-media img,
.ia-portrait img,
.bw-founder__portrait img {
  transition: transform 1.1s var(--ease), filter var(--t-slow) var(--ease);
  will-change: transform;
}
.dc-frame:hover img,
.ethc-hero__media:hover img,
.ethc-close__media:hover img,
.ethc-house__logo:hover img,
.tib-hero__media:hover img,
.tib-creed__portrait:hover img,
.ha-hero__stage:hover img,
.ha-media:hover img,
.od-media:hover img,
.od-media--tall:hover img,
.od-proof__media:hover img,
.ct-map__frame:hover img,
.ia-hero__media:hover img,
.ia-media:hover img,
.ia-portrait:hover img,
.bw-founder__portrait:hover img { transform: scale(1.055); }

/* ------------------------------------------------------- CTA / GO LINKS (13) */
.et-golink,
.et-cat__arrow,
.dc-rel__go,
.dc-visit__phone,
.ethc-herocall,
.tib-herocall,
.ha-cond__go,
.ha-nap__phone,
.ha-hero__call,
.od-close__links,
.ct-map__dir,
.ct-route__go,
.ia-link__go {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-19);
  font-weight: 620;
  font-size: var(--fs-19);
  color: var(--g-teal);
  transition: color var(--t-mid) var(--ease), gap var(--t-mid) var(--ease);
}
.et-golink:hover,
.et-cat__arrow:hover,
.dc-rel__go:hover,
.dc-visit__phone:hover,
.ethc-herocall:hover,
.tib-herocall:hover,
.ha-cond__go:hover,
.ha-nap__phone:hover,
.ha-hero__call:hover,
.od-close__links:hover,
.ct-map__dir:hover,
.ct-route__go:hover,
.ia-link__go:hover { color: var(--g-teal-deep); gap: var(--sp-30); }
.et-golink svg,
.et-cat__arrow svg,
.dc-rel__go svg,
.dc-visit__phone svg,
.ethc-herocall svg,
.tib-herocall svg,
.ha-cond__go svg,
.ha-nap__phone svg,
.ha-hero__call svg,
.od-close__links svg,
.ct-map__dir svg,
.ct-route__go svg,
.ia-link__go svg { transition: transform var(--t-mid) var(--ease); }
.et-golink:hover svg,
.et-cat__arrow:hover svg,
.dc-rel__go:hover svg,
.dc-visit__phone:hover svg,
.ethc-herocall:hover svg,
.tib-herocall:hover svg,
.ha-cond__go:hover svg,
.ha-nap__phone:hover svg,
.ha-hero__call:hover svg,
.od-close__links:hover svg,
.ct-map__dir:hover svg,
.ct-route__go:hover svg,
.ia-link__go:hover svg { transform: translateX(4px); }
.surface-dark .et-golink,
.surface-dark .et-cat__arrow,
.surface-dark .dc-rel__go,
.surface-dark .dc-visit__phone,
.surface-dark .ethc-herocall,
.surface-dark .tib-herocall,
.surface-dark .ha-cond__go,
.surface-dark .ha-nap__phone,
.surface-dark .ha-hero__call,
.surface-dark .od-close__links,
.surface-dark .ct-map__dir,
.surface-dark .ct-route__go,
.surface-dark .ia-link__go { color: var(--g-gold-lit); }
.surface-dark .et-golink:hover,
.surface-dark .et-cat__arrow:hover,
.surface-dark .dc-rel__go:hover,
.surface-dark .dc-visit__phone:hover,
.surface-dark .ethc-herocall:hover,
.surface-dark .tib-herocall:hover,
.surface-dark .ha-cond__go:hover,
.surface-dark .ha-nap__phone:hover,
.surface-dark .ha-hero__call:hover,
.surface-dark .od-close__links:hover,
.surface-dark .ct-map__dir:hover,
.surface-dark .ct-route__go:hover,
.surface-dark .ia-link__go:hover { color: var(--c-1); }

/* --------------------------------------------------------- PILLS / CHIPS (8) */
.et-pill,
.et-dot,
.ethc-plan,
.ethc-menu__chip,
.ethc-point,
.tib-point,
.tib-chip,
.ct-find__tag {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding: 9px var(--sp-39);
  font-size: 13.5px;
  font-weight: 600;
  color: var(--g-teal-deep);
  background: color-mix(in srgb, var(--c-1) 60%, transparent);
  -webkit-backdrop-filter: blur(12px) saturate(160%);
  backdrop-filter: blur(12px) saturate(160%);
  border: 1px solid color-mix(in srgb, var(--c-2) 18%, transparent);
  border-radius: var(--r-pill);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--c-1) 85%, transparent);
  transition: transform var(--t-fast) var(--ease),
              border-color var(--t-mid) var(--ease),
              background-color var(--t-mid) var(--ease);
}
.et-pill:hover,
.et-dot:hover,
.ethc-plan:hover,
.ethc-menu__chip:hover,
.ethc-point:hover,
.tib-point:hover,
.tib-chip:hover,
.ct-find__tag:hover {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--g-teal-lit) 50%, transparent);
  background: color-mix(in srgb, var(--c-1) 84%, transparent);
}
.et-pill svg,
.et-dot svg,
.ethc-plan svg,
.ethc-menu__chip svg,
.ethc-point svg,
.tib-point svg,
.tib-chip svg,
.ct-find__tag svg { width: 17px; height: 17px; flex: none; color: var(--g-teal); }
.surface-dark .et-pill,
.surface-dark .et-dot,
.surface-dark .ethc-plan,
.surface-dark .ethc-menu__chip,
.surface-dark .ethc-point,
.surface-dark .tib-point,
.surface-dark .tib-chip,
.surface-dark .ct-find__tag {
  color: var(--g-on-dark);
  background: color-mix(in srgb, var(--c-1) 9%, transparent);
  border-color: color-mix(in srgb, var(--c-1) 18%, transparent);
  box-shadow: inset 0 1px 0 color-mix(in srgb, var(--c-1) 14%, transparent);
}
.surface-dark .et-pill svg,
.surface-dark .et-dot svg,
.surface-dark .ethc-plan svg,
.surface-dark .ethc-menu__chip svg,
.surface-dark .ethc-point svg,
.surface-dark .tib-point svg,
.surface-dark .tib-chip svg,
.surface-dark .ct-find__tag svg { color: var(--g-gold-lit); }

/* -------------------------------------------------------- HAIRLINE ROWS (11) */
.dc-visit__row,
.dc-pill,
.ha-nap__row,
.tib-collection__head,
.od-facts,
.ct-hours__row,
.ct-hours__list,
.bw-toc__item,
.bw-toc__link,
.bw-timeline__entry,
.bw-manifesto__value {
  border-bottom: 1px solid color-mix(in srgb, var(--c-3) 9%, transparent);
  transition: padding-inline-start var(--t-mid) var(--ease),
              border-color var(--t-mid) var(--ease),
              background-color var(--t-mid) var(--ease);
}
.dc-visit__row:hover,
.dc-pill:hover,
.ha-nap__row:hover,
.tib-collection__head:hover,
.od-facts:hover,
.ct-hours__row:hover,
.ct-hours__list:hover,
.bw-toc__item:hover,
.bw-toc__link:hover,
.bw-timeline__entry:hover,
.bw-manifesto__value:hover {
  padding-inline-start: 8px;
  border-color: color-mix(in srgb, var(--g-teal-lit) 42%, transparent);
}
.surface-dark .dc-visit__row,
.surface-dark .dc-pill,
.surface-dark .ha-nap__row,
.surface-dark .tib-collection__head,
.surface-dark .od-facts,
.surface-dark .ct-hours__row,
.surface-dark .ct-hours__list,
.surface-dark .bw-toc__item,
.surface-dark .bw-toc__link,
.surface-dark .bw-timeline__entry,
.surface-dark .bw-manifesto__value { border-color: color-mix(in srgb, var(--c-1) 10%, transparent); }

/* ----------------------------------------------------------- ACCORDIONS (3) */
.dc-faq__item,
.dc-faq__ic,
.dc-faq__a {
  background: var(--glass-bg);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
  border: 1px solid var(--glass-brd);
  border-radius: var(--r-lg);
  box-shadow: var(--glass-edge);
  transition: box-shadow var(--t-mid) var(--ease), border-color var(--t-mid) var(--ease);
}
.dc-faq__item:hover,
.dc-faq__ic:hover,
.dc-faq__a:hover {
  border-color: color-mix(in srgb, var(--g-teal-lit) 40%, transparent);
  box-shadow: var(--glass-shadow), var(--glass-edge);
}

/* ---------------------------------------------------------------- STATS (9) */
.dc-proof__k,
.ethc-stat,
.ethc-stat__k,
.ethc-hero__stat,
.ethc-hero__k,
.ia-stat,
.ia-stat__k,
.ia-stat__suf,
.bw-timeline__year {
  font-variant-numeric: tabular-nums;
}
.dc-proof__k,
.ethc-stat__k,
.ethc-hero__k,
.ia-stat__k,
.bw-timeline__year {
  font-family: var(--font-display);
  font-size: clamp(30px, 3.6vw, 46px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.035em;
  background: var(--grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* -------------------------------------------------------------- EYEBROWS (10) */
.et-eyebrow,
.dc-pill__n,
.ethc-why__tag,
.tib-collection__num,
.ha-ins__lead,
.ha-hero__eyebrow,
.od-quote__role,
.ia-callout__k,
.bw-toc__title,
.bw-manifesto__idx {
  font-family: 'Space Mono', ui-monospace, monospace;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--g-teal);
}
.surface-dark .et-eyebrow,
.surface-dark .dc-pill__n,
.surface-dark .ethc-why__tag,
.surface-dark .tib-collection__num,
.surface-dark .ha-ins__lead,
.surface-dark .ha-hero__eyebrow,
.surface-dark .od-quote__role,
.surface-dark .ia-callout__k,
.surface-dark .bw-toc__title,
.surface-dark .bw-manifesto__idx { color: var(--g-gold-lit); }

/* ------------------------------------------------- ON-DARK TEXT COLOUR (51) */
.surface-dark .et-reveal,
.surface-dark .et-eyebrow,
.surface-dark .et-band,
.surface-dark .et-band--seam,
.surface-dark .et-h2,
.surface-dark .et-pill,
.surface-dark .et-lede,
.surface-dark .et-media-img,
.surface-dark .et-wash,
.surface-dark .et-golink,
.surface-dark .et-chips,
.surface-dark .et-sec-head,
.surface-dark .dc-frame,
.surface-dark .dc-frame__img,
.surface-dark .dc-frame__edge,
.surface-dark .dc-prose,
.surface-dark .dc-lead,
.surface-dark .ethc-stance__q,
.surface-dark .tib-creed,
.surface-dark .tib-creed__q,
.surface-dark .tib-creed__portrait,
.surface-dark .tib-creed__badge,
.surface-dark .ha-hero,
.surface-dark .ha-hero__stage,
.surface-dark .ha-hero__scrim,
.surface-dark .ha-hero__inner,
.surface-dark .ha-hero__eyebrow,
.surface-dark .ha-hero__h,
.surface-dark .ha-hero__sub,
.surface-dark .ha-hero__cta,
.surface-dark .ha-hero__call,
.surface-dark .ha-trust,
.surface-dark .od-creed,
.surface-dark .od-wedge,
.surface-dark .od-quote,
.surface-dark .od-quote__q,
.surface-dark .od-quote__mark,
.surface-dark .od-quote__cite,
.surface-dark .od-quote__name,
.surface-dark .od-quote__role,
.surface-dark .od-quote__after,
.surface-dark .bw-manifesto,
.surface-dark .bw-manifesto__lead,
.surface-dark .bw-manifesto__value,
.surface-dark .bw-manifesto__idx,
.surface-dark .bw-manifesto__line,
.surface-dark .bw-manifesto__support,
.surface-dark .rw-s3,
.surface-dark .rw-s4,
.surface-dark .rw-s5,
.surface-dark .rw-s10 {
  color: var(--g-on-dark);
}
