.am-app, .am-app * { box-sizing: border-box; }
.am-app { --am-ink: #14233b; --am-muted: #45556d; --am-accent: #1d4ed8; background: #ffffff; color: var(--am-ink); border-radius: 24px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; padding: clamp(24px, 4vw, 56px); max-width: 1280px; margin: 24px auto; line-height: 1.4; color-scheme: light; }
.am-app:fullscreen { overflow-y: auto; max-width: none; border-radius: 0; margin: 0; }
.am-app button { font: inherit; cursor: pointer; border: 0; border-radius: 10px; text-transform: none; letter-spacing: normal; box-shadow: none; line-height: 1.4; transition: background .15s, transform .15s; }
.am-app button:hover:not(:disabled) { transform: translateY(-2px); }
.am-app button:focus-visible { outline: 3px solid var(--am-accent); outline-offset: 4px; }
.am-app button:disabled { opacity: .35; cursor: default; }
.am-app [hidden] { display: none !important; }
/* Hide only the floating badge on meter pages; CAPTCHA forms and challenges still work.
   :has also handles badges injected after the presentation has loaded. */
body:has(.am-app > .am-captcha-notice) .grecaptcha-badge { visibility: hidden !important; }
.am-app > .am-captcha-notice { display: none; }
body:has(.grecaptcha-badge) .am-app > .am-captcha-notice { display: block; margin: 16px 0 0; color: #45556d; font-size: 12px; line-height: 1.5; }
.am-header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; padding-bottom: 24px; border-bottom: 5px solid transparent; border-image: linear-gradient(90deg, #21b6d2, #3974ed, #9465dc, #f07e8f, #ffc645) 1; }
.am-brand { display: flex; align-items: center; font-size: clamp(56px, 6.4vw, 80px); font-weight: 800; letter-spacing: -0.8px; }
.am-brand-light { font-weight: 650; color: #2eaecb; }
.am-logo { display: block; flex-shrink: 0; width: 2.29em; height: 1.2em; transform: translateY(-0.12em); margin-right: 18px; background: url("rise-logo.png") center / contain no-repeat; }
.am-brand-name { white-space: nowrap; }
.am-app .am-quiet { background: transparent; color: #263d5b; padding: 12px 14px; font-size: 14px; }
.am-topline { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 36px; font-size: 11px; letter-spacing: 1.6px; font-weight: 700; color: var(--am-muted); }
.am-pill { color: var(--am-accent); background: #e3f8fc; border: 1px solid #65c4d7; border-radius: 30px; padding: 7px 12px; }
.am-app .am-question { color: var(--am-ink); font-family: inherit; font-size: clamp(30px, 4.2vw, 54px); line-height: 1.12; letter-spacing: -1.7px; font-weight: 750; max-width: 900px; margin: 25px 0 14px; overflow-wrap: anywhere; }
.am-instruction { color: var(--am-muted); font-size: 18px; margin: 0 0 32px; }
.am-layout { display: grid; grid-template-columns: minmax(0, 1fr) 290px; gap: 28px; align-items: start; }
.am-options { display: grid; gap: 12px; }
.am-option { display: flex; align-items: center; gap: 18px; min-height: 91px; padding: 20px; border: 2px solid var(--option-color, #007b98); border-radius: 18px; background: var(--option-bg, #e5f8fc); transition: border-color .2s, background .2s; }
.am-option-letter { display: grid; place-items: center; background: var(--option-color, #007b98); width: 48px; height: 48px; flex-shrink: 0; border-radius: 10px; font-weight: 700; color: #ffffff; }
.am-option:nth-child(4n + 1) { --option-color: #007b98; --option-bg: #e5f8fc; }
.am-option:nth-child(4n + 2) { --option-color: #7143bc; --option-bg: #f1eafe; }
.am-option:nth-child(4n + 3) { --option-color: #b63367; --option-bg: #ffeaf1; }
.am-option:nth-child(4n + 4) { --option-color: #a65000; --option-bg: #fff0d8; }
.am-option-label { font-size: clamp(22px, 2.5vw, 32px); font-weight: 650; overflow-wrap: anywhere; }
.am-option-score { margin-left: auto; font-size: 24px; font-weight: 750; color: var(--am-accent); }
.am-option.am-active { background: #ffdf68; border-color: #735000; box-shadow: inset 0 0 0 2px #735000; }
.am-active .am-option-letter { background: #14233b; color: #fff; }
.am-winner .am-option-letter { background: #17643b; color: #fff; }
.am-option.am-winner { border-color: #17643b; background: #d8f3dc; box-shadow: inset 0 0 0 2px #17643b; }
.am-winner .am-option-score { color: #17643b; }
.am-meter-panel { border: 2px solid #6ac8dc; border-radius: 22px; padding: 24px; background: linear-gradient(160deg, #e3f8fc, #f0eaff); text-align: center; }
.am-meter-heading { font-size: 11px; letter-spacing: 1.6px; font-weight: 750; display: flex; align-items: center; justify-content: center; gap: 8px; }
.am-meter-choice, .am-countdown, .am-count-in, .am-spotlight-stop { display: none; }
.am-live-dot { width: 7px; height: 7px; border-radius: 50%; background: #69798c; }
.am-live { background: var(--am-accent); box-shadow: 0 0 0 3px #cbd9ff; }
.am-dial { --energy: 0%; width: 172px; height: 172px; margin: 26px auto; padding: 11px; border-radius: 50%; background: conic-gradient(from 220deg, #007b98 var(--energy), #cbd4ef 0); box-shadow: 0 0 0 7px #ffffff; transition: background .1s; }
.am-dial-inner { display: flex; flex-direction: column; justify-content: center; align-items: center; height: 100%; border-radius: 50%; background: #ffffff; }
.am-level { font-size: 54px; line-height: 1.1; font-weight: 750; font-variant-numeric: tabular-nums; }
.am-dial-inner span { font-size: 11px; letter-spacing: 1.8px; color: var(--am-muted); margin-top: 8px; }
.am-meter-track { height: 12px; border-radius: 10px; background: #c3cfe0; overflow: hidden; }
.am-meter-fill { height: 100%; width: 0; background: linear-gradient(90deg, #007b98, #7143bc, #b63367); transition: width .08s; }
.am-meter-labels { display: flex; justify-content: space-between; color: var(--am-muted); font-size: 11px; margin-top: 8px; }
.am-meter-note { color: var(--am-muted); font-size: 12px; margin: 20px 0 0; }
.am-status { border-left: 6px solid #6ac8dc; border-radius: 0 16px 16px 0; background: linear-gradient(160deg, #e3f8fc, #f0eaff); padding: 16px 20px; margin: 32px 0; overflow-wrap: anywhere; }
.am-status-label { display: block; color: var(--am-accent); font-size: 12px; letter-spacing: 1.8px; font-weight: 750; margin-bottom: 7px; }
.am-status-text { font-size: clamp(19px, 2.3vw, 27px); font-weight: 650; }
.am-controls { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.am-app .am-primary { background: var(--am-accent); color: #ffffff; padding: 16px 24px; font-weight: 750; }
.am-footer { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 36px; padding-top: 20px; border-top: 1px solid #bac5d3; color: #45556d; font-size: 11px; }
.am-cheering .am-layout { grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
.am-cheering .am-options { gap: 8px; }
.am-cheering .am-option { min-height: 62px; padding: 12px; gap: 10px; border-radius: 12px; }
.am-cheering .am-option-letter { width: 32px; height: 32px; border-radius: 8px; }
.am-cheering .am-option-label { font-size: clamp(16px, 1.7vw, 22px); }
.am-cheering .am-option-score { font-size: 14px; }
.am-cheering .am-meter-heading { font-size: 16px; }
.am-cheering .am-meter-choice { display: block; margin: 12px 0 4px; font-size: clamp(20px, 2.2vw, 30px); font-weight: 750; overflow-wrap: anywhere; }
.am-cheering .am-countdown { display: block; margin: 0; font-size: 18px; color: #1d4ed8; font-weight: 750; }
.am-cheering .am-dial { width: min(100%, 300px); height: auto; aspect-ratio: 1; padding: 16px; }
.am-cheering .am-level { font-size: clamp(72px, 7vw, 110px); }
.am-cheering .am-dial-inner span { font-size: 14px; }
.am-cheering::before { content: ""; position: fixed; inset: 0; background: rgba(4, 9, 20, .97); z-index: 2147483000; }
.am-cheering .am-meter-panel { position: fixed; z-index: 2147483001; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(780px, 94vw); max-height: 94vh; max-height: 94dvh; overflow-y: auto; padding: clamp(18px, 3vh, 36px); box-shadow: 0 0 90px #37b7d533; }
.am-cheering .am-dial { width: min(42vh, 360px); max-width: 100%; margin: 22px auto; }
.am-cheering .am-level { font-size: clamp(80px, 14vh, 140px); }
.am-cheering .am-spotlight-stop { display: inline-block; margin-top: 12px; }
.am-cheering .am-meter-note { margin-top: 12px; }
.am-cheering .am-count-in { height: min(42vh, 360px); margin: 22px auto; align-items: center; justify-content: center; font-size: clamp(100px, 30vh, 280px); font-weight: 800; line-height: 1; color: #1d4ed8; }
.am-counting .am-count-in { display: flex; }
.am-counting .am-dial, .am-counting .am-meter-track, .am-counting .am-meter-labels { display: none; }
.am-results .am-next { margin-left: auto; font-size: 20px; padding: 18px 30px; }
.am-mic-settings { margin-top: 24px; padding: 18px; border: 1px solid #b8cfe2; border-radius: 14px; font-size: 14px; }
.am-mic-settings summary { cursor: pointer; font-weight: 700; }
.am-mic-settings label { display: block; margin-top: 16px; font-weight: 650; }
.am-mic-settings select, .am-mic-settings input { display: block; width: 100%; padding: 10px; margin-top: 8px; border: 1px solid #7489a4; border-radius: 8px; background: #fff; color: #14233b; font: inherit; }
.am-pair-controls p { margin: 14px 0; }
.am-phone-screen { max-width: 620px; margin: auto; text-align: center; }
.am-phone-screen h1 { font-size: 32px; color: #14233b; }
.am-phone-screen p { margin: 20px 0; }
.am-phone-level { display: block; font-size: 100px; color: #007b98; }
/* Keep the presentation balanced on projectors and wide fullscreen displays. */
:is(.am-app:fullscreen, .am-presentation-page .am-app) > .am-mount {
  max-width: 1560px;
  margin-inline: auto;
}
@media (min-width: 1000px) {
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-layout {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
    gap: 32px;
  }
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-meter-heading { font-size: 16px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-dial {
    width: min(100%, clamp(220px, 26vh, 360px));
    height: auto;
    aspect-ratio: 1;
    padding: 16px;
    margin: 24px auto;
  }
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-level { font-size: clamp(80px, 10vh, 120px); }
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-dial-inner span,
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-meter-labels,
  :is(.am-app:fullscreen, .am-presentation-page .am-app):not(.am-cheering) .am-meter-note { font-size: 14px; }
}
@media (min-width: 1000px) and (max-height: 1100px) {
  :is(.am-app:fullscreen, .am-presentation-page .am-app) { padding: 32px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app) .am-header { padding-bottom: 18px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app) .am-brand { font-size: 64px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app) .am-topline { margin-top: 20px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app) .am-question { font-size: 44px; margin: 18px 0 12px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app) .am-instruction { margin-bottom: 20px; }
  :is(.am-app:fullscreen, .am-presentation-page .am-app) .am-status { margin: 20px 0; }
}
@media (max-width: 700px) {
  .am-layout { grid-template-columns: 1fr; }
  .am-meter-panel { padding: 20px; }
  .am-dial { width: 120px; height: 120px; margin: 16px auto; }
  .am-level { font-size: 38px; }
  .am-brand { font-size: 44px; letter-spacing: -0.5px; }
  .am-logo { margin-right: 10px; }
  .am-brand { flex-wrap: wrap; gap: 6px; min-width: 0; }
  .am-brand-name { display: flex; flex-wrap: wrap; white-space: normal; }
  .am-app .am-fullscreen { font-size: 12px; padding: 4px; }
  .am-controls { justify-content: center; }
  .am-start.am-primary { order: -1; width: 100%; }
  .am-results .am-next { order: -1; width: 100%; margin-left: 0; }
  .am-cheering .am-layout { grid-template-columns: minmax(0, 1fr); }
  .am-cheering .am-meter-panel { grid-row: 1; }
  .am-cheering .am-dial { max-width: 260px; }
}
@media (prefers-reduced-motion: reduce) { .am-app * { transition: none !important; } }

.am-app .am-pair-code { font-size: clamp(32px, 5vw, 56px); font-weight: 900; letter-spacing: .1em; color: #176b86; margin: 16px 0; }
.am-app .am-pair-code:empty { display: none; }
.am-app .am-code-entry { padding: 24px; background: linear-gradient(120deg, #e1f8ff, #f0e7ff); border-radius: 20px; margin: 24px 0; }
.am-app .am-code-entry label { display: block; font-weight: 700; }
.am-app .am-code-input { display: block; width: 100%; box-sizing: border-box; font-size: 32px; letter-spacing: .12em; padding: 14px; border: 2px solid #239bb8; border-radius: 12px; margin: 12px 0 18px; color: #19233c; background: #fff; }
.am-app .am-phone-screen button { margin: 6px; }

.am-logo.am-logo-custom { background: none; }
.am-header-logo { display: block; width: 100%; height: 100%; object-fit: contain; }
.am-answer-column { min-width: 0; }
.am-sponsor { margin-top: 24px; padding: 20px; border: 1px solid #d5e0ea; border-radius: 18px; background: #fff; text-align: center; }
.am-sponsor .am-sponsor-label { margin: 0 0 14px; font-size: 13px; font-weight: 750; letter-spacing: 2px; color: #45556d; }
.am-sponsor-logo { display: block; width: min(100%, 340px); height: 100px; margin: 0 auto; object-fit: contain; }
