/* Access Aerial games — Where in NEPA? and Catch Big Boy. Scoped to .aag. */
.aag {
  --g-black: #0B0B0C;
  --g-char: #1A1B1E;
  --g-char2: #232529;
  --g-line: #33363B;
  --g-hivis: #E6EE2E;
  --g-crimson: #D8103F;
  --g-silver: #B9BCC1;
  --g-white: #FFFFFF;
  --g-ok: #3ED07A;
  --g-bad: #FF5A6E;
  --g-head: 'Saira Condensed', 'Barlow Condensed', 'Arial Narrow', sans-serif;
  --g-body: 'Barlow', 'Helvetica Neue', Arial, sans-serif;
  position: relative;
  max-width: 920px;
  margin: 0 auto;
  color: var(--g-white);
  font-family: var(--g-body);
  font-size: 16px;
  line-height: 1.45;
  background: var(--g-char);
  border: 1px solid var(--g-line);
  border-radius: 10px;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
.aag:focus { outline: none; }
.aag *, .aag *::before, .aag *::after { box-sizing: border-box; }
.aag [hidden] { display: none !important; }
.aag h3, .aag h4 { font-family: var(--g-head); font-weight: 800; letter-spacing: .01em; line-height: 1.05; margin: 0; text-transform: uppercase; }
.aag p { margin: 0; }
.aag button { font: inherit; cursor: pointer; }
.aag a { color: var(--g-hivis); }
.aag a.aag-btn { color: var(--g-black); }
.aag a.aag-btn--ghost { color: var(--g-hivis); }

.aag-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .45em;
  min-height: 46px; padding: 0 20px;
  border-radius: 6px; border: 2px solid var(--g-hivis);
  background: var(--g-hivis); color: var(--g-black);
  font-family: var(--g-head) !important; font-weight: 800; font-size: 19px; letter-spacing: .03em; text-transform: uppercase;
  text-decoration: none; transition: filter .15s ease, background .15s ease;
}
.aag-btn:hover { filter: brightness(1.08); }
.aag-btn--ghost:hover { background: rgba(230,238,46,.1); }
.aag-btn:focus-visible, .aag-opt:focus-visible, .aag-chip:focus-visible { outline: 3px solid var(--g-white); outline-offset: 2px; }
.aag-btn--ghost { background: transparent; color: var(--g-hivis); }
.aag-btn--sm { min-height: 38px; font-size: 16px; padding: 0 14px; }
.aag-row { display: flex; flex-wrap: wrap; gap: 10px; }

.aag-kicker { font-family: var(--g-head); font-weight: 700; font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--g-hivis); }
.aag-muted { color: var(--g-silver); }
.aag-stripe { height: 6px; background: repeating-linear-gradient(-45deg, var(--g-hivis) 0 12px, var(--g-black) 12px 24px); }

/* ---------- Start / end panels ---------- */
.aag-panel { padding: 26px 24px 28px; display: grid; gap: 16px; }
.aag-panel h3 { font-size: clamp(34px, 6vw, 52px); }
.aag-panel h3 em { font-style: normal; color: var(--g-hivis); }
.aag-panel__lead { font-size: 17px; max-width: 46ch; }
.aag .aag-rules { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.aag .aag-rules li { display: flex; gap: 10px; align-items: baseline; }
.aag .aag-rules li::before { content: ''; flex: 0 0 9px; height: 9px; background: var(--g-hivis); transform: translateY(-1px) rotate(45deg); }
.aag-best { font-size: 14px; color: var(--g-silver); }
.aag-best b { color: var(--g-white); }
.aag-hero-img { position: relative; aspect-ratio: 16 / 7; background: #000 center / cover no-repeat; }
.aag-hero-img::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(11,11,12,0) 40%, rgba(26,27,30,1) 100%); }
.aag-corners { position: absolute; inset: 12px; pointer-events: none; z-index: 2; }
.aag-corners i { position: absolute; width: 22px; height: 22px; border: 0 solid rgba(255,255,255,.85); }
.aag-corners i:nth-child(1) { left: 0; top: 0; border-left-width: 2px; border-top-width: 2px; }
.aag-corners i:nth-child(2) { right: 0; top: 0; border-right-width: 2px; border-top-width: 2px; }
.aag-corners i:nth-child(3) { left: 0; bottom: 0; border-left-width: 2px; border-bottom-width: 2px; }
.aag-corners i:nth-child(4) { right: 0; bottom: 0; border-right-width: 2px; border-bottom-width: 2px; }

.aag-score-big { font-family: var(--g-head); font-weight: 800; font-size: clamp(56px, 12vw, 92px); line-height: .9; color: var(--g-hivis); }
.aag-score-big small { font-size: .38em; color: var(--g-silver); margin-left: 6px; }
.aag-rating { font-family: var(--g-head); font-weight: 700; font-size: 26px; text-transform: uppercase; }
.aag-badge { display: inline-block; padding: 3px 9px; border-radius: 4px; background: var(--g-crimson); color: #fff; font-family: var(--g-head); font-weight: 700; font-size: 14px; letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; }
.aag-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.aag-stat { background: var(--g-char2); border: 1px solid var(--g-line); border-radius: 6px; padding: 10px 12px; }
.aag-stat span { display: block; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--g-silver); }
.aag-stat b { font-family: var(--g-head); font-size: 28px; font-weight: 800; }
.aag-cta { border-top: 1px solid var(--g-line); padding-top: 16px; display: grid; gap: 12px; }
.aag-cta p { color: var(--g-silver); }
.aag-toast-share { font-size: 14px; color: var(--g-hivis); min-height: 1.2em; }

/* ---------- Where in NEPA? ---------- */
.aag-bar { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 16px; background: var(--g-black); border-bottom: 1px solid var(--g-line); font-family: var(--g-head); font-weight: 700; font-size: 18px; letter-spacing: .04em; text-transform: uppercase; }
.aag-bar b { color: var(--g-hivis); font-weight: 800; }
.aag-view { position: relative; aspect-ratio: 16 / 10; background: #000; overflow: hidden; }
.aag-view > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; will-change: transform; user-select: none; -webkit-user-drag: none; }
.aag-view > img.is-reveal { transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.aag-hud { position: absolute; inset: 0; pointer-events: none; font-family: var(--g-head); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; text-shadow: 0 1px 3px rgba(0,0,0,.8); }
.aag-hud__tl { position: absolute; z-index: 2; left: 22px; top: 20px; display: flex; align-items: center; gap: 8px; font-size: 15px; }
.aag-rec { width: 10px; height: 10px; border-radius: 50%; background: var(--g-crimson); box-shadow: 0 0 0 2px rgba(0,0,0,.35); animation: aag-blink 1s steps(2) infinite; }
@keyframes aag-blink { 50% { opacity: .2; } }
.aag-hud__alt { position: absolute; right: 22px; top: 22px; bottom: 26px; width: 54px; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.aag-alt-read { font-size: 22px; line-height: 1; color: var(--g-hivis); white-space: nowrap; }
.aag-alt-read small { font-size: 12px; color: #fff; margin-left: 2px; }
.aag-alt-bar { position: relative; flex: 1; margin-top: 8px; width: 8px; background: rgba(255,255,255,.18); border-radius: 4px; }
.aag-alt-bar i { position: absolute; left: 0; right: 0; bottom: 0; border-radius: 4px; background: var(--g-hivis); }
.aag-alt-bar::before { content: '400'; position: absolute; right: 14px; top: 0; font-size: 11px; color: #fff; }
.aag-hud__pts { position: absolute; left: 22px; bottom: 18px; font-size: 15px; }
.aag-hud__pts b { font-size: 24px; color: var(--g-hivis); }
.aag-cross { position: absolute; left: 50%; top: 50%; width: 34px; height: 34px; transform: translate(-50%,-50%); }
.aag-cross::before, .aag-cross::after { content: ''; position: absolute; background: rgba(255,255,255,.7); }
.aag-cross::before { left: 50%; top: 0; bottom: 0; width: 2px; margin-left: -1px; }
.aag-cross::after { top: 50%; left: 0; right: 0; height: 2px; margin-top: -1px; }
.aag-flash { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); padding: 10px 18px; border-radius: 6px; font-family: var(--g-head); font-weight: 800; font-size: clamp(26px, 5vw, 40px); text-transform: uppercase; letter-spacing: .02em; background: rgba(11,11,12,.82); border: 2px solid currentColor; animation: aag-pop .35s cubic-bezier(.2,1.4,.4,1); white-space: nowrap; }
.aag-flash.is-ok { color: var(--g-ok); }
.aag-flash.is-bad { color: var(--g-bad); }
@keyframes aag-pop { from { transform: translate(-50%,-50%) scale(.6); opacity: 0; } }

.aag-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 14px 16px 16px; }
.aag-opt {
  min-height: 58px; padding: 10px 12px; border-radius: 6px; text-align: left;
  border: 1px solid var(--g-line); background: var(--g-char2); color: #fff;
  display: flex; align-items: center; gap: 10px; font-weight: 600; font-size: 16px; line-height: 1.2;
  transition: border-color .15s ease, background .15s ease;
}
.aag-opt:hover:not(:disabled) { border-color: var(--g-hivis); }
.aag-opt kbd { flex: 0 0 26px; height: 26px; display: grid; place-items: center; border-radius: 4px; background: var(--g-black); color: var(--g-hivis); font-family: var(--g-head); font-size: 15px; font-weight: 800; }
.aag-opt small { display: block; font-weight: 400; font-size: 13px; color: var(--g-silver); }
.aag-opt:disabled { cursor: default; opacity: .55; }
.aag-opt.is-right { opacity: 1; border-color: var(--g-ok); background: rgba(62,208,122,.14); }
.aag-opt.is-wrong { opacity: 1; border-color: var(--g-bad); background: rgba(255,90,110,.14); }

.aag-result { display: grid; grid-template-columns: 1fr 200px; gap: 16px; padding: 4px 16px 18px; align-items: start; }
.aag-result h4 { font-size: 28px; }
.aag-result__where { color: var(--g-hivis); font-weight: 600; margin-top: 2px; }
.aag-result__fact { margin-top: 8px; color: #E4E6E9; }
.aag-result .aag-btn { margin-top: 14px; }
.aag-map { width: 100%; height: auto; display: block; background: #121316; border: 1px solid var(--g-line); border-radius: 6px; }
.aag-map text { font-family: var(--g-body); font-size: 10px; fill: #9a9ea6; }
.aag-map .pin-ring { animation: aag-ring 1.4s ease-out infinite; transform-box: fill-box; transform-origin: center; }
@keyframes aag-ring { from { transform: scale(.4); opacity: 1; } to { transform: scale(2.2); opacity: 0; } }
.aag-map-cap { font-size: 11px; color: var(--g-silver); margin-top: 4px; }

/* ---------- Catch Big Boy ---------- */
.aag-stage { position: relative; aspect-ratio: 16 / 9; background: #9cc9ea; overflow: hidden; }
.aag-stage canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: none; cursor: grab; }
.aag-stage canvas:active { cursor: grabbing; }
.aag-menu { border-top: 1px solid var(--g-line); }
.aag-menu .aag-panel { padding-top: 22px; }
.aag-menu .aag-panel h3 { font-size: clamp(30px, 5vw, 46px); }
.aag-countwrap { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; z-index: 2; }
.aag-count { font-family: var(--g-head); font-weight: 800; font-size: clamp(80px, 18vw, 160px); color: var(--g-hivis); text-shadow: 0 3px 0 #000; }
.aag-under { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0; border-top: 1px solid var(--g-line); background: var(--g-black); }
.aag-monitor { position: relative; aspect-ratio: 16 / 9; background: #000; border-right: 1px solid var(--g-line); }
.aag-monitor canvas { width: 100%; height: 100%; display: block; }
.aag-monitor__tag { display: none; position: absolute; left: 8px; bottom: 6px; font-family: var(--g-head); font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--g-silver); }
.aag-side { padding: 12px 14px; display: grid; gap: 10px; align-content: start; }
.aag-side .aag-stats { grid-template-columns: 1fr 1fr; }
.aag-side .aag-stat b { font-size: 24px; }
.aag-chip { min-height: 42px; padding: 0 12px; border-radius: 6px; border: 1px solid var(--g-line); background: var(--g-char2); color: #fff; font-family: var(--g-head); font-weight: 700; font-size: 16px; letter-spacing: .05em; text-transform: uppercase; }
.aag-chip[aria-pressed="true"] { border-color: var(--g-hivis); color: var(--g-black); background: var(--g-hivis); }
.aag-help { font-size: 13px; color: var(--g-silver); }
.aag-video { width: 100%; aspect-ratio: 16 / 9; background: #000; border-radius: 6px; display: block; }

@media (max-width: 700px) {
  .aag { border-radius: 0; border-left: 0; border-right: 0; }
  .aag-panel { padding: 20px 16px 22px; }
  .aag-opts { grid-template-columns: 1fr; gap: 8px; padding: 12px; }
  .aag-opt { min-height: 50px; }
  .aag-result { grid-template-columns: 1fr; padding: 2px 14px 16px; }
  .aag-result .aag-map { max-width: 240px; }
  .aag-hud__alt { width: 44px; }
  .aag-alt-read { font-size: 18px; }
  .aag-under { grid-template-columns: 1fr; }
  .aag-monitor { border-right: 0; border-bottom: 1px solid var(--g-line); }
  .aag-side { padding: 10px 12px; }
  .aag-side .aag-stats { display: none; }
  .aag-side .aag-help { display: none; }
  .aag-side .aag-row { display: grid; grid-template-columns: 1fr 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .aag-rec, .aag-map .pin-ring { animation: none; }
  .aag-view > img.is-reveal { transition: none; }
}

/* Inside a theme page: give the games more width than body text, and keep prose list/heading styles out. */
.aa-prose--page:has(.aa-game) { max-width: 960px; }
.aa-prose .aag ul, .aa-prose .aag li { list-style: none; padding-left: 0; }
.aa-prose .aag h3 { margin-top: 0; }
.aa-prose > .aa-game { margin-top: 1.4em; margin-bottom: 1.6em; }
.aa-prose .aag { margin-left: 0; margin-right: 0; }

/* ---------- v0.21.1: trivia rounds, challenge banner ---------- */
.aag-view.is-trivia > img { filter: brightness(.32) saturate(.8) blur(2px); }
.aag-q { position: absolute; inset: 0; display: grid; align-content: center; justify-items: start; gap: 10px; padding: 48px clamp(20px, 6%, 64px) 56px; z-index: 1; }
.aag-q__text { font-family: var(--g-head); font-weight: 800; font-size: clamp(26px, 4.6vw, 46px); line-height: 1.08; text-transform: none; max-width: 22ch; text-wrap: balance; text-shadow: 0 2px 10px rgba(0,0,0,.6); }
.aag-alt-bar.is-clock i { background: var(--g-crimson); }
.aag-alt-bar.is-clock::before { content: ''; }
.aag-challenge { padding: 10px 14px; border-radius: 6px; border: 1px solid var(--g-hivis); background: rgba(230,238,46,.08); color: #fff; }
.aag-challenge b { color: var(--g-hivis); }
.aag-challenge.is-won { border-color: var(--g-ok); background: rgba(62,208,122,.1); }
.aag-result__you { margin-top: 4px; color: var(--g-bad); font-size: 15px; }
.aag-result.is-trivia { grid-template-columns: 1fr; }
.aag-side2 { min-width: 0; }

/* ---------- Full screen (Play / Fly opens it) ---------- */
html.aag-lock, html.aag-lock body { overflow: hidden !important; }
.aag-exit { display: none; }
.aag--full .aag-exit {
  display: inline-flex; align-items: center; gap: 6px;
  position: fixed; z-index: 5;
  top: calc(env(safe-area-inset-top, 0px) + 12px); right: calc(env(safe-area-inset-right, 0px) + 12px);
  min-height: 40px; padding: 0 14px; border-radius: 6px;
  border: 1px solid rgba(255,255,255,.35); background: rgba(11,11,12,.78); color: #fff;
  font-family: var(--g-head); font-weight: 700; font-size: 16px; letter-spacing: .06em; text-transform: uppercase;
}
.aag--full .aag-exit:focus-visible { outline: 3px solid var(--g-hivis); outline-offset: 2px; }
.aag.aag--full {
  position: fixed; inset: 0; z-index: 2147483000;
  max-width: none; width: auto; margin: 0 !important;
  border: 0; border-radius: 0;
  background: var(--g-black);
  overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
  padding: env(safe-area-inset-top, 0px) env(safe-area-inset-right, 0px) env(safe-area-inset-bottom, 0px) env(safe-area-inset-left, 0px);
}
.aag--full .aag-start, .aag--full .aag-end { max-width: 820px; margin: 0 auto; }
.aag--full .aag-hero-img { max-height: 38vh; }
.aag--full .aag-bar { padding-right: 112px; min-height: 64px; }

/* Where in NEPA? full screen: photo fills the screen, answers below (phones) or beside it (wide screens) */
.aag--full .aag-play:not([hidden]) { display: flex; flex-direction: column; min-height: calc(100% - 6px); }
.aag--full .aag-view { aspect-ratio: auto; flex: 1 1 auto; min-height: 38vh; max-height: 62vh; }
.aag--full .aag-side2 { flex: 0 0 auto; }
@media (min-width: 960px) and (min-aspect-ratio: 5/4) {
  .aag--full .aag-play:not([hidden]) {
    display: grid; grid-template-columns: minmax(0, 1fr) 400px; grid-template-rows: auto minmax(0, 1fr);
    height: calc(100% - 6px); min-height: 0;
  }
  .aag--full .aag-play > .aag-bar { grid-column: 1 / -1; }
  .aag--full .aag-view { max-height: none; min-height: 0; height: 100%; }
  .aag--full .aag-side2 { overflow-y: auto; border-left: 1px solid var(--g-line); background: var(--g-char); }
  .aag--full .aag-opts { grid-template-columns: 1fr; padding: 16px; }
  .aag--full .aag-opt { min-height: 64px; font-size: 17px; }
  .aag--full .aag-result { grid-template-columns: 1fr; padding: 18px 16px; }
  .aag--full .aag-result .aag-map { max-width: 300px; }
}

/* Catch Big Boy full screen: the scene as big as fits with the controls under it */
.aag--full.aag--bigboy { display: flex; flex-direction: column; align-items: center; }
.aag--full.aag--bigboy > .aag-stripe { align-self: stretch; }
.aag--full.aag--bigboy { --under: 196px; }
.aag--full.aag--bigboy > .aag-stage,
.aag--full.aag--bigboy > .aag-under,
.aag--full.aag--bigboy > .aag-menu { width: min(100%, max(calc((100dvh - var(--under) - 12px) * 1.7778), 520px)); flex: 0 0 auto; }
.aag--full .aag-under { grid-template-columns: auto minmax(0, 1fr); height: var(--under); }
.aag--full .aag-monitor { height: var(--under); width: auto; aspect-ratio: 16 / 9; }
.aag-rotate { display: none; }
@media (max-height: 520px) {
  .aag--full.aag--bigboy { --under: 62px; }
  .aag--full .aag-monitor, .aag--full .aag-side .aag-stats, .aag--full .aag-side .aag-help { display: none; }
  .aag--full .aag-under { grid-template-columns: 1fr; }
  .aag--full .aag-side { padding: 8px 12px; }
  .aag--full .aag-side .aag-row { display: flex; }
}
@media (max-width: 700px) and (orientation: portrait) {
  .aag--full.aag--bigboy { justify-content: center; }
  .aag--full.aag--bigboy > .aag-under { height: auto; grid-template-columns: 1fr; }
  .aag--full.aag--bigboy .aag-monitor { width: 100%; height: auto; }
  .aag--full .aag-rotate { display: block; text-align: center; color: var(--g-silver); font-size: 14px; padding: 6px 16px 14px; }
}
.aag--full.aag--bigboy > .aag-menu .aag-panel { max-width: 820px; }

@media (max-width: 700px) {
  .aag--full .aag-bar { padding-right: 104px; font-size: 16px; }
  .aag--full .aag-exit { min-height: 36px; padding: 0 10px; font-size: 14px; }
  .aag--full .aag-view { min-height: 34vh; max-height: 46vh; }
  .aag-q { padding: 40px 18px 44px; }
}
.aag--full .aag-side .aag-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.aag--full .aag-side .aag-help { display: none; }
@media (max-height: 520px) and (orientation: landscape) {
  .aag--full .aag-play:not([hidden]) {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 40%); grid-template-rows: auto minmax(0, 1fr);
    height: calc(100% - 6px); min-height: 0;
  }
  .aag--full .aag-play > .aag-bar { grid-column: 1 / -1; min-height: 48px; padding-top: 6px; padding-bottom: 6px; }
  .aag--full .aag-view { max-height: none; min-height: 0; height: 100%; }
  .aag--full .aag-side2 { overflow-y: auto; }
  .aag--full .aag-opts { grid-template-columns: 1fr; gap: 6px; padding: 8px; }
  .aag--full .aag-opt { min-height: 44px; }
  .aag--full .aag-result { grid-template-columns: 1fr; }
  .aag--full .aag-result__map { display: none; }
  .aag--full .aag-exit { top: calc(env(safe-area-inset-top, 0px) + 8px); min-height: 34px; }
}
.aag--full .aag-end .aag-panel, .aag--full .aag-start .aag-panel { padding-top: 64px; }
.aag--full .aag-start .aag-hero-img + .aag-panel { padding-top: 22px; }
/* v0.21.2: trivia about the photo on screen: show the photo, question at the bottom */
.aag-view.is-trivia.is-see > img { filter: brightness(.7); }
.aag-view.is-see .aag-q { align-content: end; background: linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,.82) 100%); }

/* ---------- v0.21.3: the question drone ---------- */
.aag-rig {
  position: absolute; z-index: 2; left: 50%; top: 12px;
  width: min(76%, 640px);
  display: flex; flex-direction: column; align-items: center;
  transform: translateX(-50%);
  pointer-events: none;
}
.aag-drone { width: clamp(104px, 13vw, 156px); filter: drop-shadow(0 0 1px rgba(0,0,0,.9)) drop-shadow(0 10px 10px rgba(0,0,0,.55)); animation: aag-bob 2.4s ease-in-out infinite; }
.aag-view:not(.is-trivia) .aag-drone { width: clamp(80px, 10vw, 120px); }
.aag-drone__fx svg { display: block; width: 100%; height: auto; transform: scale(calc(1 - var(--alt, 0) * .5)); transform-origin: 50% 20%; transition: transform .25s linear; }
.aag-rotor { transform-box: fill-box; transform-origin: center; animation: aag-spin .11s linear infinite alternate; }
.aag-rotor--b { animation-delay: -.05s; }
.aag-led { animation: aag-led 1.2s steps(2) infinite; }
.aag-led--g { animation-delay: -.6s; }
@keyframes aag-spin { from { transform: scaleX(1); opacity: .9; } to { transform: scaleX(.3); opacity: .45; } }
@keyframes aag-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes aag-led { 50% { opacity: .25; } }

/* fly in from the left, out to the right */
.aag-rig.is-in { animation: aag-flyin .95s cubic-bezier(.22,.8,.25,1) both; }
.aag-rig.is-out { animation: aag-flyout .34s cubic-bezier(.5,0,.9,.4) both; }
@keyframes aag-flyin {
  0% { transform: translate(calc(-50% - 75vw), -40px) rotate(-14deg); }
  70% { transform: translate(calc(-50% + 14px), 4px) rotate(5deg); }
  100% { transform: translate(-50%, 0) rotate(0); }
}
@keyframes aag-flyout { to { transform: translate(calc(-50% + 75vw), -60px) rotate(14deg); } }

/* right answer: a quick flip; wrong: a wobble */
.aag-drone__fx.is-yay { animation: aag-yay .85s cubic-bezier(.3,.7,.3,1); }
.aag-drone__fx.is-oops { animation: aag-oops .6s ease-in-out; }
.aag-drone__fx.is-yay .aag-led--r { fill: #3ED07A; }
.aag-drone__fx.is-oops .aag-led--g { fill: #ff4d5e; }
@keyframes aag-yay { 0% { transform: none; } 35% { transform: translateY(-18px) rotate(170deg); } 70% { transform: translateY(-6px) rotate(350deg); } 100% { transform: rotate(360deg); } }
@keyframes aag-oops { 0%, 100% { transform: none; } 20% { transform: translateX(-9px) rotate(-12deg); } 45% { transform: translateX(8px) rotate(10deg); } 70% { transform: translateX(-5px) rotate(-6deg); } }

/* trivia: the drone carries the question card on two tethers */
.aag-tether { width: 30%; max-width: 190px; height: 40px; margin-top: -22px; border-left: 2px solid #f2f3f5; border-right: 2px solid #f2f3f5; filter: drop-shadow(0 0 1px rgba(0,0,0,.9)); }
.aag-rig .aag-q {
  position: relative; inset: auto; z-index: auto;
  display: grid; justify-items: center; gap: 6px; text-align: center;
  width: 100%; padding: 14px 18px 16px;
  background: rgba(11,11,12,.86); border: 1px solid var(--g-hivis); border-radius: 8px;
  box-shadow: 0 10px 24px rgba(0,0,0,.45);
  transform-origin: 50% -20px; animation: aag-swing 3s ease-in-out infinite;
}
.aag-rig .aag-q .aag-kicker { margin: 0; }
.aag-rig .aag-q__text { font-size: clamp(20px, 3.3vw, 34px); max-width: 26ch; margin: 0 auto; text-shadow: none; }
.aag-view.is-see .aag-rig .aag-q { background: rgba(11,11,12,.82); }
@keyframes aag-swing { 0%, 100% { transform: rotate(-.6deg); } 50% { transform: rotate(.6deg); } }
/* keep the HUD readable under the rig on short views */
.aag-view.is-trivia .aag-cross { display: none; }

@media (max-width: 700px) {
  .aag-rig { top: 8px; width: 74%; }
  .aag-rig .aag-q { padding: 10px 12px 12px; }
  .aag-rig .aag-q__text { font-size: clamp(18px, 5.2vw, 24px); }
  .aag--full .aag-view.is-trivia { min-height: 44vh; }
}
@media (prefers-reduced-motion: reduce) {
  .aag-drone, .aag-rotor, .aag-led, .aag-rig.is-in, .aag-rig.is-out, .aag-drone__fx.is-yay, .aag-drone__fx.is-oops, .aag-rig .aag-q { animation: none; }
}
.aag-flash { z-index: 4; }

/* ---------- v0.21.4: the Access Aerial drone mark ---------- */
.aag-rig { --dw: clamp(140px, 17vw, 210px); }
.aag-view:not(.is-trivia) .aag-rig { --dw: clamp(104px, 12vw, 160px); }
.aag-drone, .aag-view:not(.is-trivia) .aag-drone { width: var(--dw); filter: drop-shadow(0 0 1px rgba(0,0,0,.7)) drop-shadow(0 10px 12px rgba(0,0,0,.55)); }
.aag-drone__fx { position: relative; transform-origin: 50% 40%; }
.aag-drone__fx .aag-mark { display: block; width: 100%; height: auto; transform: scale(calc(1 - var(--alt, 0) * .5)); transform-origin: 50% 20%; transition: transform .25s linear; user-select: none; -webkit-user-drag: none; }
/* sweeps over the logo's rotor discs (round, squashed to the disc's perspective) */
.aag-blade { position: absolute; aspect-ratio: 1; transform: translate(-50%, -50%) scale(calc(1 - var(--alt, 0) * .5)) scaleY(.3); pointer-events: none; }
.aag-blade i { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(rgba(255,255,255,.75) 0deg 7deg, rgba(255,255,255,0) 40deg 180deg, rgba(255,255,255,.6) 180deg 187deg, rgba(255,255,255,0) 220deg); animation: aag-blade .16s linear infinite; }
.aag-blade--rev i { animation-direction: reverse; }
@keyframes aag-blade { to { transform: rotate(360deg); } }
.aag-tether { width: calc(var(--dw) * .44); max-width: none; height: 34px; margin-top: -16px; }
@media (max-width: 700px) {
  .aag-rig { --dw: clamp(124px, 38vw, 160px); }
  .aag-view:not(.is-trivia) .aag-rig { --dw: clamp(92px, 26vw, 120px); }
}
@media (prefers-reduced-motion: reduce) { .aag-blade i { animation: none; opacity: .4; } }
