/* Targeted overrides: preserve existing tokens, sizing and spacing. */
/* Named motion contracts: semantic-border-animation, infinity-animation,
   chip-marquee, chip-edge-mask, theme-transition and intro-animation. */
#q,#q:hover,#q:focus,#q:focus-visible,#q:active{appearance:none!important;-webkit-appearance:none!important;border:0!important;border-color:transparent!important;outline:none!important;outline-color:transparent!important;box-shadow:none!important;background:transparent!important;-webkit-tap-highlight-color:transparent!important;--tw-ring-shadow:0 0 #0000!important;--tw-ring-offset-shadow:0 0 #0000!important;--tw-ring-color:transparent!important}
.searchShell.keyboard-focus{outline:1px solid rgba(85,189,247,.42);outline-offset:3px}
.stage.utilities-compact{margin-block-start:var(--utility-extra,0px)}
.utilityStack.compact{position:static;inset:auto;transform:none;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:center;margin:12px auto 0;max-width:100%}
.utilityStack.compact .utilityText,.utilityStack.compact .cookieOpenButton{display:inline}
.utilityStack.compact .utilityCommand{max-width:100%}
.utilityStack.compact .utilityText{overflow-wrap:anywhere}
.chipsViewport.marquee-active{overflow:hidden}
.marqueeWindow{
  max-width:100%;
  overflow:hidden;
  margin-inline:auto;
  position:relative;
  /* chip-edge-mask: the pill is already fully transparent when it reaches
     the physical clipping edge, so no text or border can appear amputated. */
  --chip-fade-1:2%;
  --chip-fade-2:5%;
  --chip-fade-3:9%;
  --chip-fade-4:13%;
  --chip-fade-full:17%;
  mask-image:linear-gradient(to right,
    transparent 0%,
    rgba(0,0,0,.04) var(--chip-fade-1),
    rgba(0,0,0,.15) var(--chip-fade-2),
    rgba(0,0,0,.38) var(--chip-fade-3),
    rgba(0,0,0,.70) var(--chip-fade-4),
    #000 var(--chip-fade-full),
    #000 calc(100% - var(--chip-fade-full)),
    rgba(0,0,0,.70) calc(100% - var(--chip-fade-4)),
    rgba(0,0,0,.38) calc(100% - var(--chip-fade-3)),
    rgba(0,0,0,.15) calc(100% - var(--chip-fade-2)),
    rgba(0,0,0,.04) calc(100% - var(--chip-fade-1)),
    transparent 100%
  );
  -webkit-mask-image:linear-gradient(to right,
    transparent 0%,
    rgba(0,0,0,.04) var(--chip-fade-1),
    rgba(0,0,0,.15) var(--chip-fade-2),
    rgba(0,0,0,.38) var(--chip-fade-3),
    rgba(0,0,0,.70) var(--chip-fade-4),
    #000 var(--chip-fade-full),
    #000 calc(100% - var(--chip-fade-full)),
    rgba(0,0,0,.70) calc(100% - var(--chip-fade-4)),
    rgba(0,0,0,.38) calc(100% - var(--chip-fade-3)),
    rgba(0,0,0,.15) calc(100% - var(--chip-fade-2)),
    rgba(0,0,0,.04) calc(100% - var(--chip-fade-1)),
    transparent 100%
  );
  mask-repeat:no-repeat;
  -webkit-mask-repeat:no-repeat;
  mask-size:100% 100%;
  -webkit-mask-size:100% 100%;
}
@media(max-width:680px){
  .marqueeWindow{
    --chip-fade-1:1.5%;
    --chip-fade-2:4%;
    --chip-fade-3:7%;
    --chip-fade-4:10%;
    --chip-fade-full:13%;
  }
}
.marqueeTrack{display:flex;width:max-content;gap:8px;will-change:transform}
.marqueeTrack .chips{width:max-content;flex-wrap:nowrap;justify-content:flex-start;padding-inline:0;flex-shrink:0}
.marqueeTrack [data-copy]{user-select:none}
@media(prefers-reduced-motion:reduce){.marqueeWindow{width:100%!important;mask-image:none;-webkit-mask-image:none;overflow-x:auto}.marqueeTrack{width:100%;transform:none!important;display:block}.marqueeTrack .chips{width:auto;justify-content:center}.marqueeTrack [data-copy]{display:none!important}}
@media(max-width:680px) and (prefers-reduced-motion:reduce){.marqueeTrack .chips{width:max-content;justify-content:flex-start;padding-inline:2px}}

/* Programmatic dialog focus is used for focus trapping, but the dialog shell itself
   must never show a native browser ring. Interactive descendants retain their own
   accessible focus treatment. */
.infoCard:focus,.infoCard:focus-visible,.infoCard:active,[role="dialog"].infoCard:focus,[role="dialog"].infoCard:focus-visible{outline:none!important;outline-color:transparent!important;box-shadow:0 30px 100px rgba(0,0,0,.42),inset 0 1px rgba(255,255,255,.04)!important}
html.theme-light body .infoCard:focus,html.theme-light body .infoCard:focus-visible{outline:none!important;outline-color:transparent!important}

/* Semantic feedback reuses the language toast visual grammar. */
.languageToast.semanticFeedback{max-width:min(760px,calc(100vw - 32px));text-align:center;line-height:1.45;white-space:normal}
.languageToast.semanticFeedback.offtopic,.languageToast.semanticFeedback.contact{border-color:rgba(255,255,255,.14)}
.languageToast.semanticFeedback.security{border-radius:18px;padding:12px 16px;border-color:rgba(232,125,128,.28);color:#f6eded;background:rgba(30,23,23,.95)}
html.theme-light .languageToast.semanticFeedback.security{background:rgba(255,250,249,.96);color:#653c3e;border-color:rgba(184,79,83,.22)}


/* Compact Eyebrow: a restrained, localized prompt above the semantic bar. */
.semanticGreeting{min-height:36px;margin:0 0 13px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none}
.semanticGreetingEyebrow{display:none!important}
.semanticGreetingLine{margin-top:0;font-size:clamp(18px,2.25vw,24px);font-weight:620;line-height:1.12;letter-spacing:-.032em;color:rgba(246,249,247,.95);opacity:1;transform:translateY(0);transition:opacity .22s ease,transform .22s ease}
.semanticGreetingLine.is-changing{opacity:0;transform:translateY(4px)}
html.theme-light .semanticGreetingLine{color:rgba(25,35,30,.92)}
@media(max-width:680px){.semanticGreeting{min-height:32px;margin-bottom:10px}.semanticGreetingLine{font-size:18px}}
@media(prefers-reduced-motion:reduce){.semanticGreetingLine{transition:none!important}}
