/* Highlight Review • Original logo red-dot animation — no layout-shifting JS. */
.hrb-brand-logo{position:relative;isolation:isolate}
.hrb-brand-logo>.hrb-red-dot{display:none;pointer-events:none;position:absolute;z-index:2;
 left:var(--hrb-dot-x,53.55%);top:var(--hrb-dot-y,54.63%);
 width:calc(4.75% * var(--hrb-dot-scale,1));aspect-ratio:1;border-radius:50%;
 background:#ed1d26;transform:translate(-50%,-50%);box-shadow:0 0 0 1px rgba(237,29,38,.02)}
.hrb-brand-logo>.hrb-red-dot::before,
.hrb-dot-target::after,.hrbn-dot::after,.hrnav-live-dot::after,.hrb-unread-dot::after{
 content:"";position:absolute;inset:0;border-radius:50%;background:currentColor;
 opacity:0;pointer-events:none}
.hrb-brand-logo>.hrb-red-dot::before{color:#ed1d26}
:root.hrb-red-dot-enabled .hrb-brand-logo>.hrb-red-dot{display:block}
:root.hrb-red-dot-enabled.hrb-dot-style-pulse .hrb-brand-logo>.hrb-red-dot::before{animation:hrb-record-pulse var(--hrb-dot-duration,1600ms) ease-out infinite}
:root.hrb-red-dot-enabled.hrb-dot-style-glow .hrb-brand-logo>.hrb-red-dot::before{animation:hrb-record-glow var(--hrb-dot-duration,1600ms) ease-in-out infinite}
/* Footer is deliberately static, even if the logo shortcode is used inside it. */
.hrb-editorial-footer .hrb-brand-logo>.hrb-red-dot,.hrb-splash .hrb-brand-logo>.hrb-red-dot{display:none!important}
/* Mobile and desktop can be independently disabled in Branding Studio. */
@media(min-width:981px){:root:not(.hrb-dot-desktop) .hrb-brand-logo>.hrb-red-dot{display:none!important}}
@media(max-width:980px){:root:not(.hrb-dot-mobile) .hrb-brand-logo>.hrb-red-dot{display:none!important}}
/* An active LIVE label already supplies the dot; don't add any if there is no live story. */
.hrnav-live-dot,.hrbn-dot,.hrb-unread-dot{position:relative;display:inline-block;flex:none;isolation:isolate}
:root.hrb-red-dot-enabled.hrb-dot-live.hrb-dot-style-pulse .hrnav-live-dot::after{animation:hrb-record-pulse var(--hrb-dot-duration,1600ms) ease-out infinite}
:root.hrb-red-dot-enabled.hrb-dot-live.hrb-dot-style-glow .hrnav-live-dot::after{animation:hrb-record-glow var(--hrb-dot-duration,1600ms) ease-in-out infinite}
/* Breaking label has a red background, so its recording indicator remains white for contrast. */
:root.hrb-red-dot-enabled.hrb-dot-breaking .hrbn-dot{position:relative}
:root.hrb-red-dot-enabled.hrb-dot-breaking.hrb-dot-style-pulse .hrbn-dot::after{animation:hrb-record-pulse var(--hrb-dot-duration,1600ms) ease-out infinite}
:root.hrb-red-dot-enabled.hrb-dot-breaking.hrb-dot-style-glow .hrbn-dot::after{animation:hrb-record-glow var(--hrb-dot-duration,1600ms) ease-in-out infinite}
/* Unread account alerts pulse once on load or on an actual new-notification event. */
.hrb-unread-dot{width:8px;height:8px;border-radius:50%;background:#ed1d26;color:#ed1d26;vertical-align:middle;margin-inline-start:5px}
:root.hrb-red-dot-enabled.hrb-dot-notifications.hrb-dot-style-pulse .hrb-unread-dot::after,
:root.hrb-red-dot-enabled.hrb-dot-notifications.hrb-dot-style-glow .hrb-unread-dot::after{animation:hrb-record-notification 2200ms ease-out 1}
:root.hrb-red-dot-enabled.hrb-dot-notifications .hrb-unread-dot.hrb-new-notification::after{animation:hrb-record-notification 2200ms ease-out 1}
@keyframes hrb-record-pulse{0%{opacity:var(--hrb-dot-glow,.24);transform:scale(1)}75%,100%{opacity:0;transform:scale(2.4)}}
@keyframes hrb-record-glow{0%,100%{opacity:.10;transform:scale(1.22)}50%{opacity:var(--hrb-dot-glow,.24);transform:scale(1.7)}}
@keyframes hrb-record-notification{0%,40%{opacity:var(--hrb-dot-glow,.24);transform:scale(1)}65%,100%{opacity:0;transform:scale(2.6)}}
@media(prefers-reduced-motion:reduce){.hrb-red-dot::before,.hrbn-dot::after,.hrnav-live-dot::after,.hrb-unread-dot::after{animation:none!important;opacity:0!important}}
/* Keep the official image and overlay in the same geometry in Header Studio.
   The shipped logo aspect ratio is 1600:572; these only apply when the overlay exists. */
.hrnav-shell.hrnav-editorial .hrnav-brand .hrb-brand-logo.hrb-dot-official:has(>.hrb-red-dot){
 width:min(100%,var(--hrb-logo-width,170px),168px);height:auto;aspect-ratio:1600/572;flex:none}
.hrnav-shell.hrnav-editorial .hrnav-brand .hrb-brand-logo.hrb-dot-official:has(>.hrb-red-dot)>img{
 width:100%!important;height:auto!important;max-height:none!important;object-fit:contain!important}
.hrnav-shell.hrnav-editorial.hrnav-scrolled .hrnav-brand .hrb-brand-logo.hrb-dot-official:has(>.hrb-red-dot){max-width:123px}
@media(max-width:980px){
 .hrnav-shell.hrnav-editorial .hrnav-brand .hrb-brand-logo.hrb-dot-official:has(>.hrb-red-dot),
 .hrnav-shell.hrnav-editorial.hrnav-scrolled .hrnav-brand .hrb-brand-logo.hrb-dot-official:has(>.hrb-red-dot){width:min(100%,155px);max-width:155px;aspect-ratio:1600/572}
}
/* Never animate on print, including printing an article. */
@media print{.hrb-red-dot::before,.hrbn-dot::after,.hrnav-live-dot::after,.hrb-unread-dot::after{animation:none!important}}

/* Honor an individual reader's accessibility setting as well as OS reduced motion. */
:root[data-reader-motion="reduce"] .hrb-red-dot::before,
:root[data-reader-motion="reduce"] .hrbn-dot::after,
:root[data-reader-motion="reduce"] .hrnav-live-dot::after,
:root[data-reader-motion="reduce"] .hrb-unread-dot::after{animation:none!important;opacity:0!important}

/* Reader account's independent dark-mode preference overrides the public theme default. */
:root[data-reader-theme="dark"] .hrc-reader-root .hrb-logo-auto .hrb-logo-light{display:none}
:root[data-reader-theme="dark"] .hrc-reader-root .hrb-logo-auto .hrb-logo-dark{display:block}
:root[data-reader-theme="dark"] .hrc-reader-root .hrb-red-dot::before,
:root[data-hr-theme="dark"] .hrb-red-dot::before{filter:brightness(.75)}
