/* presentation.css: packaged locally; no CDN or font downloads. */
:root {
  color-scheme:dark;
  --bg:#101519;
  --panel:#181f24;
  --line:#30393e;
  --text:#f1f0e9;
  --muted:#a5b0b5;
  --accent:#e6b76a;
  --green:#8bc5ad;
  --red:#e49486;
  font-family:'Segoe UI',Arial,sans-serif;
  font-size:16px
}

* {
  box-sizing:border-box
}

body {
  margin:0;
  background:var(--bg);
  color:var(--text)
}

button,a,input,select {
  font:inherit
}

button,a,select,input {
  outline-offset:5px
}

button {
  cursor:pointer
}

button:disabled {
  cursor:default;
  opacity:.4
}

a {
  color:inherit
}

button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible {
  outline:2px solid var(--accent)
}

.public-shell {
  min-height:100vh;
  padding:0 4.2vw;
  display:flex;
  flex-direction:column;
  background:radial-gradient(ellipse at 78% 42%,#202a2d50,transparent 52%)
}

.public-header {
  height:116px;
  display:flex;
  align-items:center;
  gap:28px;
  border-bottom:1px solid var(--line)
}

.brand {
  display:flex;
  align-items:center;
  gap:17px;
  letter-spacing:2px;
  font-size:13px;
  line-height:1.55
}

.brand strong {
  font-weight:650;
  font-size:17px;
  letter-spacing:3.2px
}

.brand-mark {
  font-size:36px;
  letter-spacing:-10px;
  padding-right:12px;
  color:var(--accent);
  font-weight:300
}

.brand-mark span {
  font-size:28px
}

.case-label {
  border-left:1px solid var(--line);
  margin-left:auto;
  padding-left:32px;
  font-size:17px
}

.case-label span {
  display:block;
  margin-top:8px;
  font:12px Consolas,monospace;
  letter-spacing:2px;
  color:var(--muted)
}

.session-label {
  margin-left:48px;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:1.5px;
  color:var(--muted);
  display:flex;
  align-items:center;
  gap:10px
}

.live-dot {
  display:inline-block;
  width:7px;
  height:7px;
  flex-shrink:0;
  background:var(--accent);
  border-radius:50%
}

.chapter-strip {
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:32px
}

.chapter-strip>div {
  padding:23px 0 18px;
  color:#849198;
  border-top:2px solid transparent;
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:1.7px
}

.chapter-strip>div span {
  margin-right:16px;
  font-family:Consolas,monospace
}

.chapter-strip .active {
  color:var(--accent);
  border-top-color:var(--accent)
}

.chapter-strip .complete {
  color:#c4ccce
}

.public-main {
  flex:1;
  display:grid;
  grid-template-columns:1.08fr 1fr;
  align-items:center;
  gap:6vw;
  padding:48px 0 60px;
  min-height:540px
}

.eyebrow {
  font:13px Consolas,monospace;
  letter-spacing:2px;
  text-transform:uppercase;
  color:var(--accent);
  display:flex;
  align-items:center;
  gap:14px;
  margin-bottom:27px
}

.eyebrow>span {
  width:26px;
  height:1px;
  background:var(--accent)
}

h1 {
  font-size:clamp(46px,4.5vw,86px);
  line-height:1.07;
  letter-spacing:-3px;
  font-weight:450;
  margin:0 0 28px
}

.scene-body {
  font-size:clamp(19px,1.55vw,28px);
  color:var(--muted);
  line-height:1.55;
  max-width:680px;
  margin:0
}

.kicker {
  text-transform:uppercase;
  letter-spacing:1.8px;
  font:12px Consolas,monospace;
  color:var(--muted)
}

.opening-facts {
  display:flex;
  gap:66px;
  margin-top:52px
}

.opening-facts strong {
  display:block;
  font-size:42px;
  font-weight:400;
  margin-top:8px;
  letter-spacing:-1px
}

.opening-facts>div:first-child strong {
  color:var(--accent)
}

.incident-orbit {
  aspect-ratio:1;
  position:relative;
  max-width:510px;
  margin:auto;
  display:grid;
  place-items:center;
  background:linear-gradient(#59636815 1px,transparent 1px),linear-gradient(90deg,#59636815 1px,transparent 1px);
  background-size:42px 42px;
  border:1px solid #3a444a50
}

.orbit-ring {
  position:absolute;
  inset:11%;
  border:1px solid #69747750;
  border-radius:50%
}

.orbit-ring:before {
  content:'';
  position:absolute;
  inset:12%;
  border:1px dashed #69747750;
  border-radius:50%
}

.orbit-cross {
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent calc(50% - .5px),#5e686d60 50%,transparent calc(50% + .5px)),linear-gradient(transparent calc(50% - .5px),#5e686d60 50%,transparent calc(50% + .5px))
}

.orbit-content {
  position:relative;
  text-align:center;
  background:#151c20;
  padding:20px
}

.orbit-content>strong {
  display:block;
  font:clamp(70px,7.2vw,132px)/1.2 Consolas,monospace;
  letter-spacing:-10px;
  font-weight:400
}

.tag {
  display:inline-block;
  border:1px solid var(--line);
  padding:7px 10px;
  color:var(--muted);
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px
}

.orbit-content .tag {
  color:var(--accent);
  border-color:#e6b76a50;
  margin-top:10px
}

.orbit-note {
  position:absolute;
  bottom:17px;
  font:11px Consolas,monospace;
  letter-spacing:2px;
  color:#97a4a9
}

.public-footer {
  display:flex;
  gap:40px;
  align-items:center;
  border-top:1px solid var(--line);
  padding:27px 0
}

.objective strong {
  display:block;
  font-size:19px;
  font-weight:400;
  margin-top:10px
}

.budget {
  margin-left:auto;
  min-width:220px;
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:15px 24px
}

.budget strong {
  font-size:28px;
  font-weight:450;
  letter-spacing:-1px
}

.budget-line {
  grid-column:1/-1;
  background:var(--line);
  height:3px
}

.budget-line i {
  height:3px;
  display:block;
  background:var(--accent)
}

.public-baseline {
  display:flex;
  justify-content:space-between;
  border-top:1px solid #252e33;
  padding:15px 0 20px;
  font:11px Consolas,monospace;
  letter-spacing:1px;
  color:#849198
}

.asset-card {
  border:1px solid #4a514c;
  background:linear-gradient(140deg,#28302c70,#181f24);
  padding:32px
}

.asset-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px
}

.asset-card h3 {
  font-size:25px;
  font-weight:400;
  margin:32px 0 20px
}

.asset-value {
  font-size:68px;
  font-weight:350;
  letter-spacing:-3px;
  color:var(--accent);
  margin-bottom:8px
}

.asset-properties {
  margin-top:32px
}

.asset-properties>div {
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:17px 0;
  font-size:17px
}

.asset-properties>div:last-child {
  padding-bottom:0
}

.asset-properties span {
  color:var(--muted)
}

.asset-properties strong {
  font-weight:500
}

.brief-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  border:1px solid var(--line)
}

.brief-facts>div {
  padding:35px;
  border:1px solid #30393e60
}

.brief-facts strong {
  display:block;
  font-size:29px;
  font-weight:400;
  margin-top:15px
}

.poll-choices {
  border-top:1px solid var(--line)
}

.poll-choice {
  display:flex;
  align-items:center;
  gap:24px;
  border-bottom:1px solid var(--line);
  padding:26px 0
}

.poll-choice>span {
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid #e6b76a70;
  color:var(--accent);
  font:23px Consolas,monospace;
  flex-shrink:0
}

.poll-choice h3 {
  font-size:23px;
  font-weight:500;
  margin:0 0 8px
}

.poll-choice p {
  color:var(--muted);
  font-size:17px;
  line-height:1.4;
  margin:0
}

.poll-footer {
  font-size:13px;
  display:flex;
  align-items:center;
  gap:10px;
  color:var(--muted);
  padding-top:23px
}

.poll-footer strong {
  margin-left:auto;
  color:var(--accent);
  font-size:27px;
  font-weight:400
}

.poll-footer small {
  display:block;
  font-size:11px;
  color:var(--muted);
  margin-top:5px
}

/* Poll cues break out of the restrained War Room palette as a clear audience
   participation moment. Full-bleed shadows colour the centre without changing
   the layout width used by ordinary cues. */
.poll-cue {
  --poll-ink:#17201d;
  --poll-muted:#3d4843
}

.poll-cue .chapter-strip,.poll-cue .public-main {
  color:var(--poll-ink);
  background:var(--accent);
  box-shadow:0 0 0 100vmax var(--accent);
  clip-path:inset(0 -100vmax)
}

.poll-cue .chapter-strip>div {
  color:#50564c;
  border-top-color:transparent
}

.poll-cue .chapter-strip .complete {
  color:#39413b
}

.poll-cue .chapter-strip .active {
  color:var(--poll-ink);
  border-top-color:var(--poll-ink);
  font-weight:700
}

.poll-cue .eyebrow,.poll-cue .scene-body,.poll-cue .kicker,
.poll-cue .poll-choice p,.poll-cue .poll-footer {
  color:var(--poll-muted)
}

.poll-cue .eyebrow>span {
  background:var(--poll-ink)
}

.poll-cue .eyebrow,.poll-cue .poll-choice>span,
.poll-cue .poll-footer strong,.poll-cue .join-instructions strong {
  color:var(--poll-ink)
}

.poll-cue .poll-choices,.poll-cue .poll-choice {
  border-color:#17201d55
}

.poll-cue .poll-choice>span {
  border:2px solid var(--poll-ink);
  background:#fff4d344;
  font-weight:700
}

.poll-cue .poll-qr {
  display:inline-grid;
  justify-items:left;
  gap:8px;
  margin:0 0 22px
}

.poll-cue .poll-qr img {
  display:block;
  width:clamp(150px,12vw,220px);
  aspect-ratio:1;
  border:7px solid #fff;
  border-radius:10px;
  box-shadow:0 10px 24px #17201d38
}

.poll-cue .poll-qr figcaption {
  color:var(--poll-ink);
  font:700 11px Consolas,monospace;
  letter-spacing:1.8px;
  text-transform:uppercase
}

.outcome-card {
  padding:38px;
  border:1px solid var(--line);
  border-top:3px solid var(--accent);
  background:var(--panel)
}

.outcome-symbol {
  font-size:57px;
  margin-bottom:32px;
  color:var(--accent)
}

.outcome-cost {
  display:block;
  font-size:64px;
  letter-spacing:-3px;
  font-weight:350;
  margin:10px 0 26px
}

.outcome-card h3 {
  font-size:28px;
  font-weight:450;
  margin:0 0 10px
}

.outcome-card p {
  font-size:19px;
  color:var(--muted);
  margin:0
}

.success {
  border-color:#8bc5ad70
}

.success .outcome-symbol {
  color:var(--green)
}

.danger {
  border-color:#e4948670
}

.danger .outcome-symbol {
  color:var(--red)
}

.tone-success .eyebrow {
  color:var(--green)
}

.tone-danger .eyebrow {
  color:var(--red)
}

.cue-11-dashboard .public-main {
  display:block
}

.cue-11-dashboard h1 {
  font-size:clamp(42px,3.5vw,64px)
}

.cue-11-dashboard .scene-body {
  display:none
}

.dashboard-stats {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:30px;
  border-block:1px solid var(--line);
  padding:25px 0;
  margin-top:30px
}

.dashboard-stats strong {
  display:block;
  font-size:48px;
  font-weight:400;
  margin-top:9px;
  letter-spacing:-2px
}

.dashboard-stats>div:last-child strong {
  color:var(--accent)
}

.dashboard-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:60px;
  margin-top:30px
}

.section-label {
  text-transform:uppercase;
  font-size:12px;
  letter-spacing:2px;
  color:var(--muted);
  display:flex;
  justify-content:space-between;
  margin-bottom:15px
}

.register-row {
  display:flex;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid var(--line);
  padding:20px 0;
  font-size:19px
}

.register-row small {
  display:block;
  color:var(--muted);
  font-size:14px;
  margin-top:8px
}

.register-row strong {
  font-weight:500
}

.evidence-row {
  padding:14px 0;
  border-top:1px solid var(--line);
  font-size:17px
}

.evidence-status {
  font-size:15px;
  color:var(--accent)
}

.triad {
  display:flex;
  gap:18px;
  color:var(--muted);
  margin-top:20px;
  font-size:17px
}

.triad b {
  color:var(--accent);
  font-weight:400
}

.cue-12-closing .public-main {
  display:block;
  align-content:center
}

.cue-12-closing h1 {
  font-size:clamp(43px,5.5vw,100px)
}

.cue-12-closing .scene-body {
  color:var(--accent);
  max-width:none;
  margin-top:40px
}

.muted {
  color:var(--muted)
}

.load-fallback {
  padding:10vw
}

.public-main {
  animation:reveal .3s ease-out
}

@keyframes reveal {
  from {
    opacity:0;
    transform:translateY(5px)
  }

  to {
    opacity:1;
    transform:translateY(0)
  }

}

@media(prefers-reduced-motion:reduce) {
  *,*:before {
    animation:none!important;
    transition:none!important
  }

}

@media(min-width:1600px) {
  .public-shell {
    padding:0 5vw
  }

  .public-header {
    height:132px
  }

  .public-main {
    padding:60px 0
  }

  .kicker,.eyebrow {
    font-size:15px
  }

  .chapter-strip>div {
    font-size:14px
  }

  .public-footer {
    padding:35px 0
  }

  .public-baseline {
    font-size:12px
  }

  .asset-card {
    padding:42px
  }

  .asset-properties>div {
    font-size:21px;
    padding:21px 0
  }

  .poll-choice {
    padding:33px 0
  }

  .poll-choice h3 {
    font-size:28px
  }

  .poll-choice p {
    font-size:21px
  }

  .objective strong {
    font-size:23px
  }

}

@media(max-width:1050px) {
  .session-label {
    display:none
  }

  .public-main {
    gap:4vw;
    min-height:500px;
    padding:35px 0
  }

  h1 {
    font-size:48px;
    letter-spacing:-2px
  }

  .chapter-strip {
    gap:15px
  }

  .chapter-strip>div {
    font-size:10px;
    letter-spacing:1px
  }

  .asset-card {
    padding:22px
  }

  .asset-heading {
    display:block
  }

  .asset-heading .tag {
    margin-top:12px
  }

  .asset-value {
    font-size:52px
  }

  .asset-properties>div {
    font-size:15px
  }

  .poll-choice h3 {
    font-size:20px
  }

  .poll-choice p {
    font-size:16px
  }

  .budget {
    min-width:180px
  }

  .budget .kicker {
    max-width:90px;
    line-height:1.5
  }

}

@media(max-width:700px) {
  .public-header {
    height:94px
  }

  .brand {
    font-size:10px
  }

  .brand strong {
    font-size:13px
  }

  .case-label {
    font-size:12px;
    padding-left:15px
  }

  .case-label span {
    font-size:10px
  }

  .chapter-strip {
    grid-template-columns:1fr 1fr;
    gap:0 20px
  }

  .chapter-strip>div {
    padding:14px 0
  }

  .public-main {
    grid-template-columns:1fr;
    padding:36px 0;
    gap:35px
  }

  h1 {
    font-size:43px
  }

  .scene-body {
    font-size:19px
  }

  .incident-orbit {
    width:80%;
    max-width:350px
  }

  .opening-facts {
    margin-top:28px
  }

  .public-footer {
    align-items:flex-start;
    gap:25px;
    flex-direction:column
  }

  .budget {
    margin:0;
    width:100%
  }

  .budget .kicker {
    max-width:none
  }

  .public-baseline {
    font-size:10px;
    gap:20px;
    line-height:1.7
  }

  .dashboard-stats {
    gap:12px
  }

  .dashboard-stats strong {
    font-size:31px
  }

  .dashboard-stats .kicker {
    font-size:10px
  }

  .dashboard-grid {
    grid-template-columns:1fr;
    gap:30px
  }

  .cue-12-closing h1 {
    font-size:36px;
    letter-spacing:-1px
  }

  .triad {
    gap:12px
  }

}


/* Image and HTML cues occupy the available slide canvas. */
.media-main { display: block; padding: 20px 36px; }
.media-main .scene-copy { display: none; }
.media-main .scene-detail { width: 100%; height: 100%; max-width: none; }
.slide-media { width: 100%; height: 100%; border: 0; object-fit: contain; display: block; }
.game-frame { background: #07191a; }
.scene-game { position: relative; width: 100vw; height: 100vh; min-height: 100vh; padding: 0; overflow: hidden; }
.scene-game .public-header, .scene-game .chapter-strip,
.scene-game .public-footer, .scene-game .public-baseline { display: none; }
.scene-game .media-main, .scene-game .scene-detail, .scene-game .game-frame {
  position: absolute; inset: 0; width: 100%; height: 100%; min-height: 420px; padding: 0;
}
.game-preview { width: 100%; height: 100%; display: grid; place-content: center; gap: 18px; text-align: center; background: linear-gradient(#103b34, #07191a); color: #f8da72; }
.game-preview strong { font: 900 72px/1 monospace; text-shadow: 5px 5px #8e3f22; }
.game-preview span { color: #d8f4d0; font: 22px monospace; }
