/* Astro Updates shared tokens and components: kind colours, content blocks, video, reactions and switches.
   Loaded by the public release pages and by the client panel, so both render releases the same way.
   Kind colours meet WCAG AA in both themes. */
:root[data-nova] {
  --au-added:#15803d;--au-added-bg:#e9f7ee;
  --au-improved:#2448c0;--au-improved-bg:#edf2ff;
  --au-fixed:#0f766e;--au-fixed-bg:#e5f6f3;
  --au-security:#6d28d9;--au-security-bg:#f2edff;
  --au-breaking:#c2410c;--au-breaking-bg:#fff0e6;
}
:root[data-nova][data-nova-theme=dark] {
  --au-added:#6ee7a0;--au-added-bg:#163628;
  --au-improved:#a9bdff;--au-improved-bg:#1d2c50;
  --au-fixed:#5eead4;--au-fixed-bg:#113634;
  --au-security:#cbb8ff;--au-security-bg:#2a2250;
  --au-breaking:#fdba74;--au-breaking-bg:#41261a;
}
[data-kind=added] {--au-kind:var(--au-added);--au-kind-bg:var(--au-added-bg)}
[data-kind=improved] {--au-kind:var(--au-improved);--au-kind-bg:var(--au-improved-bg)}
[data-kind=fixed] {--au-kind:var(--au-fixed);--au-kind-bg:var(--au-fixed-bg)}
[data-kind=security] {--au-kind:var(--au-security);--au-kind-bg:var(--au-security-bg)}
[data-kind=breaking] {--au-kind:var(--au-breaking);--au-kind-bg:var(--au-breaking-bg)}

/* Content blocks and video */
.au-blocks {display:grid;gap:22px;max-width:78ch;margin:4px 0 30px}
.au-block {margin:0}
.au-block-text> :first-child {margin-top:0}.au-block-text> :last-child {margin-bottom:0}
.au-block-heading {margin:14px 0 0;font-size:24px;line-height:1.35;letter-spacing:-.4px;scroll-margin-top:calc(var(--nova-header-height,100px) + 24px)}
h3.au-block-heading {font-size:19px}
.au-block-image img,.au-gallery-grid img {display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--nova-line)}
.au-block-image.is-wide {margin-inline:-24px}
.au-media-caption {margin:8px 0 0;font-size:12.5px;line-height:1.6;color:var(--nova-slate);text-align:center}
.au-gallery-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.au-gallery-grid img {aspect-ratio:4/3;object-fit:cover;transition:transform .25s}
.au-gallery-grid a:hover img {transform:scale(1.02)}
.au-video {position:relative;border-radius:18px;overflow:hidden;background:#0b1328;border:1px solid var(--nova-line)}
.au-video video {display:block;width:100%;height:auto;max-height:560px;background:#0b1328}
.au-embed {aspect-ratio:16/9}
/* Nova sizes media with ".nova img/iframe {height:auto}"; these selectors outrank it. */
.au-video.au-embed>:is(img,iframe) {position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.au-embed-play {position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;width:100%;border:0;background:linear-gradient(180deg,transparent 30%,rgba(5,10,25,.55));color:#fff;font:inherit;font-size:14px;font-weight:650;text-shadow:0 1px 3px rgba(0,0,0,.65);cursor:pointer}
.au-play-icon {position:relative;width:68px;height:68px;border-radius:50%;background:rgba(255,255,255,.18);box-shadow:0 0 0 1px rgba(255,255,255,.4),0 12px 30px rgba(0,0,0,.35);backdrop-filter:blur(6px);transition:transform .2s}
.au-play-icon::after {content:'';position:absolute;left:27px;top:21px;border-left:19px solid #fff;border-top:13px solid transparent;border-bottom:13px solid transparent}
.au-embed-play:hover .au-play-icon {transform:scale(1.07)}
.au-embed-play:focus-visible {outline:3px solid #fff;outline-offset:-6px}
.au-embed-note {position:absolute;left:12px;right:12px;bottom:10px;z-index:1;font-size:11px;color:rgba(255,255,255,.85);text-align:center;pointer-events:none}
.au-embed-note a {pointer-events:auto;color:#fff;text-decoration:underline}
.au-embed.is-playing .au-embed-note,.au-embed.is-playing .au-embed-play,.au-embed.is-playing>img {display:none}
.au-video-toggle {position:absolute;right:12px;bottom:12px;display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:rgba(5,10,25,.62);color:#fff;cursor:pointer}
.au-callout {display:flex;gap:14px;padding:16px 18px;border-radius:16px;border:1px solid color-mix(in srgb,var(--au-tone) 30%,var(--nova-line));background:color-mix(in srgb,var(--au-tone) 8%,var(--nova-paper))}
.au-callout[data-tone=info] {--au-tone:var(--au-improved)}
.au-callout[data-tone=success] {--au-tone:var(--au-added)}
.au-callout[data-tone=warning] {--au-tone:var(--au-breaking)}
.au-callout[data-tone=tip] {--au-tone:var(--au-security)}
.au-callout-icon {display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:11px;background:color-mix(in srgb,var(--au-tone) 15%,var(--nova-paper));color:var(--au-tone)}
.au-callout p {margin:0;font-size:14.5px;line-height:1.75;color:var(--nova-ink)}
.au-callout .au-callout-title {margin-bottom:2px;font-weight:700}
.au-steps {padding:18px 20px;border:1px solid var(--nova-line);border-radius:18px;background:var(--nova-paper)}
.au-steps-title {margin:0 0 12px;font-weight:700}
.au-steps ol {display:grid;gap:14px;list-style:none;margin:0;padding:0}
.au-steps li {position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:12px;align-items:start;font-size:14.5px;line-height:1.7}
.au-steps li:not(:last-child)::after {content:'';position:absolute;left:14px;top:32px;bottom:-14px;width:2px;background:var(--nova-line)}
.au-step-number {position:relative;z-index:1;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--nova-signal);color:var(--nova-paper);font-size:13px;font-weight:700}
.au-compare-stage {position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--nova-line);background:var(--nova-surface-tint);touch-action:pan-y}
.au-compare-stage img {display:block;width:100%;height:auto}
.au-compare-before {position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--au-split)) 0 0)}
.au-compare .au-compare-before img {width:100%;height:100%;object-fit:cover}
.au-compare-handle {position:absolute;top:0;bottom:0;left:var(--au-split);width:3px;margin-left:-1.5px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.15);pointer-events:none}
.au-compare-handle::after {content:'';position:absolute;top:50%;left:50%;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.au-compare-handle::before {content:'';position:absolute;z-index:1;top:50%;left:50%;width:14px;height:8px;margin:-4px 0 0 -7px;border-left:2px solid #142442;border-right:2px solid #142442}
.au-compare-label {position:absolute;top:12px;padding:4px 10px;border-radius:999px;background:rgba(5,10,25,.62);color:#fff;font-size:11.5px;font-weight:650;pointer-events:none}
.au-compare-label.is-before {left:12px}.au-compare-label.is-after {right:12px}
.au-compare-range {position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.au-compare-stage:focus-within {outline:3px solid var(--nova-focus-ring);outline-offset:3px}
.au-block-button {display:flex}
.au-button-secondary {display:inline-flex;align-items:center;min-height:44px;padding:11px 18px;border:1px solid var(--nova-line);border-radius:999px;background:var(--nova-paper);color:var(--nova-ink)!important;font-size:13px;font-weight:650}
.au-button-secondary:hover {border-color:var(--nova-signal);color:var(--nova-signal)!important}
.au-code {position:relative}
.au-code pre {margin:0;padding:18px 54px 18px 20px;overflow:auto;border-radius:16px;background:#0b1328;color:#e6edff;font-size:13px;line-height:1.75}
.au-code-copy {position:absolute;top:10px;right:10px;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,255,255,.18);border-radius:10px;background:rgba(255,255,255,.08);color:#e6edff;cursor:pointer}
.au-quote {margin:0;padding:6px 0 6px 20px;border-inline-start:3px solid var(--nova-signal)}
.au-quote p {margin:0;font-size:18px;line-height:1.7;font-style:italic}
.au-quote cite {display:block;margin-top:8px;font-size:13px;color:var(--nova-slate);font-style:normal}
.au-divider {position:relative;height:1px;margin:10px 0;border:0;background:linear-gradient(90deg,transparent,var(--nova-line),transparent);overflow:visible}
.au-divider::after {content:'';position:absolute;left:50%;top:-4px;width:9px;height:9px;margin-left:-4.5px;border-radius:50%;background:var(--nova-signal);box-shadow:0 0 0 5px color-mix(in srgb,var(--nova-signal) 14%,transparent)}
.au-embed-backdrop {position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(110,140,255,.45),transparent 60%),linear-gradient(135deg,#0f1b3d,#1d2c5a)}
.au-video-toggle .au-when-paused,.au-video-toggle[aria-pressed=true] .au-when-playing {display:none}
.au-video-toggle[aria-pressed=true] .au-when-paused {display:block}
.au-code-copy.is-done {border-color:#6ee7a0;color:#6ee7a0}

/* Reactions and switches */
.au-reaction-summary {display:inline-flex;flex-wrap:wrap;gap:6px;font-size:12.5px;color:var(--nova-slate)}
.au-reaction-summary span {padding:2px 8px;border-radius:999px;background:var(--nova-surface-tint)}
.au-reactions {display:flex;flex-wrap:wrap;gap:8px}
.au-reaction {display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 14px;border:1px solid var(--nova-line);border-radius:999px;background:var(--nova-paper);color:var(--nova-ink);font:inherit;font-size:14px;cursor:pointer;transition:border-color .18s,background .18s,transform .18s}
.au-reaction:hover {border-color:var(--nova-signal);transform:translateY(-1px)}
.au-reaction[aria-pressed=true] {border-color:var(--nova-signal);background:color-mix(in srgb,var(--nova-signal) 12%,var(--nova-paper))}
.au-reaction-emoji {font-size:18px;line-height:1}
.au-reaction b {font-size:13px;font-variant-numeric:tabular-nums}
.au-reaction.is-pop .au-reaction-emoji {animation:au-pop .35s ease}
@keyframes au-pop {50% {transform:scale(1.35)}}
.au-switch {position:relative;flex-shrink:0;width:42px;height:24px;border-radius:999px;background:var(--nova-line);transition:background .2s}
.au-switch::after {content:'';position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:transform .2s}
[aria-checked=true]>.au-switch {background:var(--nova-signal)}
[aria-checked=true]>.au-switch::after {transform:translateX(18px)}

@media (prefers-reduced-motion:reduce) {
  .au-reaction,.au-play-icon,.au-gallery-grid img,.au-switch,.au-switch::after {transition:none}
  .au-reaction:hover,.au-embed-play:hover .au-play-icon,.au-gallery-grid a:hover img {transform:none}
  .au-reaction.is-pop .au-reaction-emoji {animation:none}
}
@media (max-width:767px) {
  .au-block-image.is-wide {margin-inline:0}
  .au-quote p {font-size:16px}
  .au-play-icon {width:56px;height:56px}
  .au-play-icon::after {left:22px;top:17px;border-left-width:16px;border-top-width:11px;border-bottom-width:11px}
}
