/* nav-compact.css — migration-owned header presentation layer (R-navfix+).
   Locale-blind. Sections: compact tier (>=1200px, sealed-fit overflow only),
   pill single-line guard, ultra-tight pill query, wide-screen anchor (D). */
@media (min-width: 1200px) {
  .site-header[data-nav-compact="true"] .header-inner {
    padding-left: 24px;
    padding-right: 24px;
    gap: 12px;
  }
  .site-header[data-nav-compact="true"] .desktop-nav {
    position: static;
    left: auto;
    top: auto;
    visibility: visible;
    pointer-events: auto;
    font-size: 0.875rem;
    gap: 10px;
  }
  .site-header[data-nav-compact="true"] .mobile-tools {
    display: none;
  }
  /* Compact pill keeps words (dot + kicker + time); only the long title
     yields. Link is forced back to flex: the sealed continuum grid would
     otherwise starve kicker/time tracks to zero in tight leftovers. */
  .site-header[data-nav-compact="true"] .nav-gathering-link {
    display: flex;
    align-items: center;
    gap: 8px;
    overflow: hidden;
    /* Sealed continuum reserves a 38px beacon gutter for the status dot;
       the dot is hidden in compact, so reclaim the gutter for words. */
    padding-left: 8px;
    padding-right: 4px;
  }
  .site-header[data-nav-compact="true"] .nav-gathering-link .nav-gathering-title,
  .site-header[data-nav-compact="true"] .nav-gathering-link .status-dot {
    display: none; /* title→tooltip/aria; dot→space for kicker+time words */
  }
  .site-header[data-nav-compact="true"] .nav-gathering-link .nav-gathering-kicker {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
/* B: pill single-line guard (ALL modes, no viewport gate). Legacy fix for
   CJK vertical char-wrap in tight pills (production ja/ne symptom): time
   never wraps, tight containers clip instead of stacking characters.
   Words are never removed — title keeps its own ellipsis. */
.site-header .nav-gathering {
  overflow: hidden;
  container-type: inline-size; /* enables C below; flex sizing unaffected */
}
/* C: ultra-tight compact pills (<110px: es/it class) drop the date, keep
   the kicker words with ellipsis. Wider pills keep kicker+time. */
@container (max-width: 110px) {
  .site-header[data-nav-compact="true"] .nav-gathering-link time {
    display: none;
  }
}
.site-header .nav-gathering-link time {
  white-space: nowrap;
}
html:not(.continuum-large-text) body:not(.continuum-large-text) .site-header .nav-gathering-link .nav-gathering-kicker {
  white-space: nowrap; /* tight full-mode pills clip, never char-wrap */
}
.continuum-large-text .site-header .nav-gathering-link .nav-gathering-kicker {
  white-space: normal; /* large-text accommodation always wins */
}
/* D: wide-screen anchor. Sealed continuum caps header content at 1320px
   (padding:(100vw-1320px)/2), leaving tools mid-screen on wide monitors.
   Cap the centering gutter at 24px: seal behavior preserved below 1368px,
   full-bleed right-anchored tools above. Nav fit policy re-measures
   automatically (more room → same or more inline nav, never overflow:
   the sealed parked rule still guards). */
.site-header.continuum-header .header-inner {
  padding: 6px max(16px, min(24px, calc((100vw - 1320px) / 2)));
}

/* quality-priority mobile type floor: this migration-owned layer follows
   the sealed legacy navigation bundle; never rewrite content-addressed archives. */
@media (max-width:1199px) {
 html:not(.continuum-large-text) body:not(.continuum-large-text) .site-header.continuum-header .nav-gathering-kicker,
 html:not(.continuum-large-text) body:not(.continuum-large-text) .site-header.continuum-header .nav-gathering-link time {font-size:.75rem}
}

/* Height-changing header animation races native scroll anchoring and link focus.
   Keep compact-state layout atomic; opacity still supplies the visual transition. */
.site-header .nav-gathering{display:grid;grid-template-rows:1fr;transition:opacity 240ms ease}
.site-header .nav-gathering>*{overflow:hidden;min-height:0}
html[data-compact-nav] .site-header .nav-gathering{grid-template-rows:0fr;opacity:0;margin-block:0}
@media(prefers-reduced-motion:reduce){.site-header .nav-gathering{transition:none}}
/* Native disclosure focus must settle before a departure captures the reading
   point. Explicit JS smooth navigation remains available on this AI page. */
/* Filter lists also hand focus and Back to native instant scrolling. */
html:has(main .service-explorer){scroll-behavior:auto}
html:has(main #capabilities){scroll-behavior:auto}
/* Essential text paint v1: keep live copy above decorative sweeps; no text hiding or persistent GPU promotion. */
.site-header.continuum-header .mobile-tools .menu-trigger .menu-label{position:relative;z-index:2;width:auto;height:auto;clip-path:none;overflow:visible;color:inherit;-webkit-text-fill-color:currentColor}
/* Essential dates and registration never depend on a reveal observer. */
html:not([data-yl-motion="off"]) main .yl-anniversary-notice[data-yl-anniversary]{opacity:1;transform:none;translate:none;filter:none;content-visibility:visible;contain-intrinsic-size:none;transition:none}
.yl-anniversary-notice>.yl-anniversary-date,.yl-anniversary-notice>.yl-anniversary-title,.yl-anniversary-notice .yl-anniversary-copy{position:relative;z-index:2;-webkit-text-fill-color:currentColor}
.yl-anniversary-notice .yl-anniversary-register,.yl-anniversary-notice .yl-anniversary-details{position:relative;isolation:isolate}
.yl-anniversary-notice .yl-anniversary-register{background:transparent}
.yl-anniversary-notice .yl-anniversary-register::before{content:"";position:absolute;inset:0;border-radius:inherit;background:#efcf8f;z-index:0;pointer-events:none}
.yl-anniversary-notice .yl-anniversary-register:hover{background:transparent}
.yl-anniversary-notice .yl-anniversary-register:hover::before{background:#ffe0a6}
.yl-anniversary-notice .yl-finish-foil{z-index:1}
.yl-anniversary-notice .yl-anniversary-copy{display:inline-flex;align-items:center;gap:6px;min-width:0}
@media(prefers-reduced-motion:no-preference){.yl-anniversary-notice .yl-anniversary-register::before{transition:background-color .16s ease}}
@media(forced-colors:active){.yl-anniversary-notice .yl-anniversary-register::before{background:ButtonFace}.yl-anniversary-notice .yl-anniversary-copy{color:LinkText}.yl-anniversary-notice .yl-finish-foil{display:none}}
/* Essential text paint v1: end. */
