/* ============================================================
   A4.5 Solution: Exposure Hunting. Page-local styles, namespace eh-.
     eh-run      the Run console (hero), animated in CSS, gated by JS
     eh-stat     the single statistic strip
     eh-morning  scattered notes against one crisp card
     eh-tiers    present versus reachable
     eh-launch   the launch panel
     eh-paper    the Report as a document
   Tone is risk only: exposure red for reachable, closed green for
   closed. Teal is Unizo. Dashed means absent. No counts in figures.
   ============================================================ */
.eh-line { margin: var(--space-6) 0 0; max-width: var(--measure-lg); }
.eh-line a, .eh-link { color: var(--accent-text); }
.eh-link { display: inline-flex; align-items: center; gap: 8px; margin-top: var(--space-6); font-weight: var(--fw-semibold); font-size: var(--text-md); text-decoration: none; border-bottom: 2px solid color-mix(in srgb, var(--accent) 40%, transparent); padding-bottom: 2px; }
.eh-link i { width: 17px; height: 17px; }

/* 1 hero */
.eh-hero .uw-h1 { max-width: none; margin-bottom: 0; }
.eh-hero__split { margin-top: var(--space-8); align-items: start; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
.eh-hero .uw-lead { margin-top: 0; }
.eh-hero .uw-cta { margin-top: calc(var(--text-lg) * var(--lh-relaxed)); }
@media (max-width: 1023.98px) { .eh-hero .uw-h1 br { display: none; } .eh-hero__split { grid-template-columns: minmax(0, 1fr); } }
.eh-run { max-width: 640px; }
.eh-run__head { text-transform: none; letter-spacing: var(--ls-wide); }
.eh-run__head b { font-weight: var(--fw-medium); letter-spacing: var(--ls-wider); text-transform: uppercase; }
.eh-run__log { margin: 0; padding: var(--space-4) var(--space-5) 0; list-style: none; display: grid; gap: var(--space-3); }
.eh-run__line { font-family: var(--font-mono); font-size: var(--text-sm); color: var(--g-ink-2); }
.eh-run__line--done { color: var(--g-ink); }
.eh-run__k { display: block; font-family: var(--font-mono); font-size: 12px; letter-spacing: var(--ls-wider); text-transform: uppercase; color: var(--g-ink-3); margin-bottom: var(--space-2); }
.eh-chips { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.eh-chip { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; padding: 5px 12px; border: 1px solid var(--g-line); border-radius: var(--radius-pill); font-family: var(--font-mono); font-size: 13px; color: var(--g-ink); background: var(--g-surface); transition: border-color .4s, color .4s; }
.eh-chip__s { font-size: 12px; color: var(--g-ink-3); }
.eh-chip__s--reach { font-weight: var(--fw-medium); letter-spacing: var(--ls-wide); text-transform: uppercase; color: var(--g-exposure); }
.eh-chip__c { font-size: 12px; color: var(--g-ink-2); flex-basis: 100%; }
.eh-chip[data-asset="edge"] { border-color: color-mix(in srgb, var(--g-exposure) 60%, var(--g-line)); }
.eh-run__foot { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--g-ink-3); }
/* The markup renders the finished hunt. The animation is an enhancement: the
   script adds .is-anim to hide the steps only once it has taken control and
   the card is in view, then .is-on to play them back in. Anything that stops
   the script, including no script at all, leaves the finished state on screen. */
.eh-run.is-anim .eh-step { opacity: 0; transition: opacity .35s ease; }
.eh-run.is-anim:not(.is-qualified) .eh-chip__s,
.eh-run.is-anim:not(.is-qualified) .eh-chip__c { display: none; }
.eh-run.is-anim:not(.is-qualified) .eh-chip[data-asset="edge"] { border-color: var(--g-line); }
.eh-run.is-anim.is-on .eh-step { opacity: 1; }
.eh-run.is-anim.is-on [data-step="1"] { transition-delay: .3s; }
.eh-run.is-anim.is-on [data-step="2"] { transition-delay: 1s; }
.eh-run.is-anim.is-on [data-step="3"] { transition-delay: 1.4s; }
.eh-run.is-anim.is-on [data-step="4"] { transition-delay: 1.8s; }
.eh-run.is-anim.is-on [data-step="5"] { transition-delay: 2.2s; }
.eh-run.is-anim.is-on [data-step="6"] { transition-delay: 2.6s; }
.eh-run.is-anim.is-on [data-step="7"] { transition-delay: 3.4s; }
.eh-run.is-anim.is-on [data-step="8"] { transition-delay: 4.2s; }
.eh-run.is-anim.is-on [data-step="9"] { transition-delay: 5s; }

/* 1b stat */
.eh-stat { text-align: center; max-width: var(--measure-md); margin-inline: auto; }
.eh-stat__n { display: block; font-family: var(--font-sans); font-weight: var(--fw-semibold); font-size: var(--fluid-2xl); line-height: 1; letter-spacing: var(--ls-tighter); color: var(--text-primary); }
.eh-stat__l { margin: var(--space-3) 0 0; font-size: var(--text-md); line-height: var(--lh-relaxed); color: var(--text-secondary); }
.eh-stat__s { margin: var(--space-2) 0 0; font-family: var(--font-mono); font-size: var(--text-xs); letter-spacing: var(--ls-wide); color: var(--text-tertiary); }
.eh-stat__s a { color: inherit; }
.eh-band--stat { padding-block: var(--space-12); }

/* 2 the morning */
.eh-morning { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr) max-content; gap: var(--space-6); align-items: center; }
.eh-nw { white-space: nowrap; }
.eh-notes { margin: 0; padding: var(--space-4) 0; list-style: none; display: grid; gap: 6px; }
.eh-note { display: grid; gap: 4px; padding: var(--space-3) var(--space-4); background: #FFFFFF; border: 1px solid rgba(10,13,18,.12); box-shadow: 0 1px 2px rgba(10,13,18,.06); transform: rotate(var(--r)); }
.eh-note__t { font-family: var(--font-sans); font-size: 15px; line-height: 1.35; color: var(--text-tertiary); }
.eh-note__s { font-family: var(--font-mono); font-size: 12px; letter-spacing: var(--ls-wider); text-transform: uppercase; color: var(--text-tertiary); opacity: .8; }
/* g-record sets container-type: inline-size, which contains the inline axis and
   makes the card's intrinsic width collapse to its padding. This card carries one
   nowrap line and no container queries, so the containment is turned off. */
.eh-launchcard { container-type: normal; width: max-content; max-width: 100%; border-color: rgba(10,13,18,.28); box-shadow: 0 8px 24px rgba(10,13,18,.10); }
.eh-launchcard__h { font-size: 15px; letter-spacing: var(--ls-wide); text-transform: none; color: var(--g-ink); white-space: nowrap; }
.eh-launchcard__h b { font-weight: var(--fw-medium); letter-spacing: var(--ls-wider); text-transform: uppercase; }
.eh-launchcard__h::before { display: none; }   /* one launch indicator, not the record dot as well */
@media (max-width: 360px) { .eh-launchcard__h { font-size: 13px; } }
.eh-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: var(--accent-text); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent); margin-inline-end: 4px; }

/* 2b two ways to hunt */
.eh-two { --eh-ink: #566073; --eh-closed: #0f6e4a; margin-top: var(--space-10); display: grid; }
.eh-two__panels { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); }
.eh-two__panel { display: grid; align-content: start; gap: var(--space-2); padding: var(--space-5) var(--space-6) var(--space-6); background: #FFFFFF; border: 1px solid rgba(10,13,18,.22); border-radius: var(--radius-lg); }
.eh-two__k { font-family: var(--font-mono); font-size: 12px; font-weight: var(--fw-medium); letter-spacing: var(--ls-wider); text-transform: uppercase; color: var(--text-tertiary); }
.eh-two__t { margin: 0; font-family: var(--font-sans); font-size: 20px; line-height: 1.25; font-weight: var(--fw-semibold); letter-spacing: var(--ls-tight); color: var(--text-primary); }
.eh-two__l { margin: 0; font-family: var(--font-sans); font-size: 16px; line-height: var(--lh-normal); color: var(--text-secondary); }
.eh-two__mark { margin-top: var(--space-3); display: flex; align-items: center; min-height: 46px; }
.eh-two__tok { display: inline-block; padding: 5px 12px; border: 1px solid rgba(10,13,18,.22); border-radius: var(--radius-pill); font-family: var(--font-mono); font-size: 13px; color: var(--text-primary); }
.eh-two__glyph { width: 46px; height: 46px; }
.eh-two__glyph rect { fill: none; stroke: var(--eh-ink); stroke-width: 2.5; }
/* both capabilities drop into one bus and enter the track once, at its start */
.eh-two__conn { position: relative; height: 52px; }
.eh-two__conn span { position: absolute; background: var(--eh-ink); }
.eh-two__drop { inset-block-start: 0; width: 2px; height: 22px; }
.eh-two__drop--a { inset-inline-start: calc(25% - 1px); }
.eh-two__drop--b { inset-inline-start: calc(75% - 1px); }
.eh-two__bus { inset-block-start: 20px; inset-inline-start: 3%; width: calc(72% + 1px); height: 2px; }
.eh-two__in { inset-block-start: 20px; inset-inline-start: 3%; width: 2px; height: 27px; }
.eh-two__in::after { content: ""; position: absolute; inset-inline-start: -6px; inset-block-start: 27px; border-block-start: 11px solid var(--eh-ink); border-inline: 7px solid transparent; }
.eh-two__track { position: relative; margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.eh-two__track::before { content: ""; position: absolute; inset-inline: 3% 87.5%; inset-block-start: 6px; height: 2px; background: var(--eh-ink); }
.eh-two__stage { position: relative; min-width: 0; padding-block-start: 26px; text-align: center; font-family: var(--font-sans); font-size: 16px; line-height: 1.3; color: var(--text-primary); }
.eh-two__stage::before { content: ""; position: absolute; z-index: 1; inset-inline-start: calc(50% - 7px); inset-block-start: 0; width: 14px; height: 14px; box-sizing: border-box; border-radius: 50%; background: var(--eh-ink); }
.eh-two__stage:not(:last-child)::after { content: ""; position: absolute; inset-inline-start: calc(50% + 7px); inset-inline-end: calc(-50% + 7px); inset-block-start: 6px; height: 2px; background: var(--eh-ink); }
.eh-two__stage--closed { color: var(--eh-closed); font-weight: var(--fw-medium); }
.eh-two__stage--closed::before { background: var(--eh-closed); }
@media (max-width: 760px) {
  .eh-two__panels { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .eh-two__conn { height: 50px; }
  .eh-two__drop--a { inset-inline-start: 40px; }
  .eh-two__drop--b { inset-inline-start: 120px; }
  .eh-two__bus { inset-inline-start: 6px; width: 116px; }
  .eh-two__in { inset-inline-start: 6px; height: 22px; }
  .eh-two__in::after { inset-block-start: 22px; }
  .eh-two__track::before { display: none; }
  .eh-two__track { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .eh-two__stage { padding-block-start: 0; padding-inline-start: 28px; padding-block-end: var(--space-4); text-align: start; }
  .eh-two__stage:last-child { padding-block-end: 0; }
  .eh-two__stage::before { inset-inline-start: 0; inset-block-start: 3px; }
  .eh-two__stage:not(:last-child)::after { inset-inline: 6px auto; inset-block: 17px 0; width: 2px; height: auto; }
}

/* 3 present versus reachable */
.eh-tiers { margin: var(--space-10) 0 0; display: grid; gap: var(--space-6); }
.eh-tier__k { display: block; margin-bottom: var(--space-3); font-family: var(--font-mono); font-size: 12px; font-weight: var(--fw-medium); letter-spacing: var(--ls-wider); text-transform: uppercase; color: var(--text-tertiary); }
.eh-tier--reach .eh-tier__k { color: var(--g-exposure, #E23B4C); }
.eh-tier__row { margin: 0; padding: 0; list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-4); }
.eh-tier__chip { position: relative; min-width: 0; padding: 10px 14px; border: 1px solid rgba(10,13,18,.28); border-radius: var(--radius-pill); font-family: var(--font-mono); font-size: 13px; color: var(--text-primary); text-align: center; background: #FFFFFF; }
.eh-tier__chip small { display: block; margin-top: 4px; font-size: 12px; color: var(--text-tertiary); }
.eh-tier__chip--edge::after { content: ""; position: absolute; left: 50%; top: 100%; width: 2px; height: var(--space-6); background: #E23B4C; }
.eh-tier--reach { padding-top: var(--space-2); }
.eh-tier--reach .g-path { margin-top: 0; }
@media (max-width: 760px) {
  .eh-tier__row { grid-template-columns: minmax(0, 1fr); gap: var(--space-2); }
  .eh-tier__chip { text-align: left; }
  .eh-tier__chip--edge::after { left: 22px; }
}

/* 4 policy */
.eh-policy { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-10); align-items: center; }
.eh-launch { margin: 0; }
.eh-launch__panel { padding: var(--space-5) var(--space-6); background: #FFFFFF; border: 1px solid rgba(10,13,18,.18); border-radius: var(--radius-lg); box-shadow: 0 1px 2px rgba(10,13,18,.06); display: grid; gap: var(--space-4); }
.eh-launch__t { margin: 0; font-family: var(--font-mono); font-size: 13px; letter-spacing: var(--ls-wide); color: var(--text-primary); }
.eh-launch__t b { font-weight: var(--fw-medium); }
.eh-launch__l { margin: 0; font-family: var(--font-sans); font-size: 14px; font-weight: var(--fw-medium); color: var(--text-secondary); }
.eh-seg { display: grid; gap: 4px; padding: 4px; border: 1px solid rgba(10,13,18,.18); border-radius: 10px; background: #F4F6F9; }
.eh-seg__o { padding: 8px 12px; border-radius: 7px; font-family: var(--font-sans); font-size: 14px; color: var(--text-secondary); }
.eh-seg__o.is-on { background: #FFFFFF; color: var(--text-primary); font-weight: var(--fw-medium); box-shadow: 0 1px 2px rgba(10,13,18,.10); border: 1px solid rgba(10,13,18,.12); }
.eh-launch__b { justify-self: start; padding: 10px 18px; border-radius: var(--radius-pill); background: var(--accent-text); color: #FFFFFF; font-family: var(--font-sans); font-size: 14px; font-weight: var(--fw-semibold); }
@media (max-width: 900px) { .eh-policy { grid-template-columns: minmax(0, 1fr); } .eh-policy > figure { order: 2; } }

/* 5 statement */
.eh-statement { border-bottom: 0; }
.eh-statement p { color: #E4E8EE; }
.eh-statement em { color: var(--accent-text); }

/* 6 report */
.eh-report { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-10); align-items: center; }
.eh-paper { margin: 0; background: #FFFFFF; padding: var(--space-6) var(--space-7); box-shadow: 0 1px 2px rgba(10,13,18,.08), 0 18px 40px rgba(10,13,18,.14); border: 1px solid rgba(10,13,18,.06); }
.eh-paper__h { padding-block-end: var(--space-3); border-block-end: 2px solid var(--text-primary); font-family: var(--font-sans); font-size: 18px; font-weight: 700; color: var(--text-primary); }
.eh-paper__id { font-family: var(--font-mono); font-size: 13px; font-weight: 500; letter-spacing: .06em; }
.eh-paper__rows { margin: 0; display: grid; gap: var(--space-4); padding-top: var(--space-4); }
.eh-paper__rows dt { font-family: var(--font-mono); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--text-secondary); }
.eh-paper__rows dd { margin: 3px 0 0; font-size: 16px; color: var(--text-primary); overflow-wrap: anywhere; }
.eh-paper__foot { margin: var(--space-5) 0 0; font-family: var(--font-mono); font-size: 12px; color: var(--text-tertiary); }
@media (max-width: 900px) { .eh-report { grid-template-columns: minmax(0, 1fr); } .eh-morning { grid-template-columns: minmax(0, 1fr); } }
