/* 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 {
  --shell-gutter:4.2vw;
  min-height:100vh;
  padding:0 var(--shell-gutter);
  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:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:34px;
  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)
}

.opening-facts .metric-fact.tone-positive strong { color:#72d9a5 }
.opening-facts .metric-fact.tone-warning strong { color:#efbe68 }
.opening-facts .metric-fact.tone-danger strong { color:#f06f6f }

.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-option-list {
  position:relative
}

.poll-choice {
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:24px;
  border-bottom:1px solid var(--line);
  padding:26px 0 26px clamp(24px,2.4vw,40px)
}

.poll-choice>* {
  position:relative;
  z-index:1
}

/* Parked option-by-option ping-pong treatment. Reapply the
   poll-choice-wave-parked class to restore it for comparison. */
.poll-choice-wave-parked .poll-choice:before,
.poll-choice-wave-parked .poll-choice:after {
  content:"";
  position:absolute;
  z-index:0;
  inset:1px 0;
  opacity:0;
  pointer-events:none;
  background:#fff1c9;
  will-change:opacity;
  animation-duration:var(--wave-duration);
  animation-timing-function:linear;
  animation-iteration-count:infinite
}

.poll-choice-wave-parked .poll-choice:before {
  animation-delay:var(--wave-down-delay)
}

.poll-choice-wave-parked .poll-choice:after {
  animation-delay:var(--wave-up-delay)
}

.poll-choice-wave-parked .poll-choice-wave-end:after {
  display:none
}

.poll-choice-wave-parked.poll-wave-2 .poll-choice:before,.poll-choice-wave-parked.poll-wave-2 .poll-choice:after { animation-name:poll-choice-step-2 }
.poll-choice-wave-parked.poll-wave-3 .poll-choice:before,.poll-choice-wave-parked.poll-wave-3 .poll-choice:after { animation-name:poll-choice-step-3 }
.poll-choice-wave-parked.poll-wave-4 .poll-choice:before,.poll-choice-wave-parked.poll-wave-4 .poll-choice:after { animation-name:poll-choice-step-4 }
.poll-choice-wave-parked.poll-wave-5 .poll-choice:before,.poll-choice-wave-parked.poll-wave-5 .poll-choice:after { animation-name:poll-choice-step-5 }

@keyframes poll-choice-step-2 {
  0% { opacity:0 }
  42% { opacity:.24 }
  100% { opacity:0 }
}

@keyframes poll-choice-step-3 {
  0% { opacity:0 }
  21% { opacity:.24 }
  50%,100% { opacity:0 }
}

@keyframes poll-choice-step-4 {
  0% { opacity:0 }
  14% { opacity:.24 }
  33.5%,100% { opacity:0 }
}

@keyframes poll-choice-step-5 {
  0% { opacity:0 }
  10.5% { opacity:.24 }
  25%,100% { opacity:0 }
}

.poll-tessellation {
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  opacity:0;
  will-change:opacity;
  animation:poll-tessellation-enter 1.15s ease-out forwards
}

@keyframes poll-tessellation-enter {
  0% { opacity:0 }
  35% { opacity:.12 }
  100% { opacity:1 }
}

.poll-stage {
  position:relative;
  isolation:isolate;
  flex:1;
  display:flex;
  flex-direction:column;
  background:var(--accent);
  margin-inline:calc(-1 * var(--shell-gutter));
  padding-inline:var(--shell-gutter)
}

.poll-stage>.chapter-strip,.poll-stage>.public-main {
  position:relative;
  z-index:1
}

.poll-stage>.public-main {
  flex:1
}

.poll-tessellation i {
  position:absolute;
  inset:-14%;
  opacity:.045;
  background-image:conic-gradient(from 45deg,var(--tile-colour) 0 25%,transparent 0 50%,var(--tile-colour) 0 75%,transparent 0);
  background-size:var(--tile-size) var(--tile-size);
  -webkit-mask-image:radial-gradient(ellipse at var(--focus),#000 0 34%,transparent 72%);
  mask-image:radial-gradient(ellipse at var(--focus),#000 0 34%,transparent 72%);
  will-change:opacity,transform;
  animation:poll-tessellation-breathe var(--tile-duration) ease-in-out var(--tile-delay) infinite
}

.poll-tessellation i:nth-child(1) {
  --tile-size:94px;
  --tile-duration:7.2s;
  --tile-delay:-2.1s;
  --tile-peak:.34;
  --tile-colour:#ffe5b2;
  --focus:22% 28%;
  filter:none
}

.poll-tessellation i:nth-child(2) {
  --tile-size:137px;
  --tile-duration:8.6s;
  --tile-delay:-5.8s;
  --tile-peak:.29;
  --tile-colour:#f7cf8d;
  --focus:78% 35%;
  filter:none
}

.poll-tessellation i:nth-child(3) {
  --tile-size:71px;
  --tile-duration:6.6s;
  --tile-delay:-4.6s;
  --tile-peak:.27;
  --tile-colour:#c88b3d;
  --focus:38% 78%;
  filter:none
}

.poll-tessellation i:nth-child(4) {
  --tile-size:181px;
  --tile-duration:10.2s;
  --tile-delay:-7.4s;
  --tile-peak:.24;
  --tile-colour:#fff0c9;
  --focus:84% 82%;
  filter:none
}

@keyframes poll-tessellation-breathe {
  0%,100% { opacity:.045; transform:translate3d(-5px,3px,0) }
  22% { opacity:.13; transform:translate3d(0,-1px,0) }
  48% { opacity:var(--tile-peak); transform:translate3d(6px,-3px,0) }
  72% { opacity:.16; transform:translate3d(9px,4px,0) }
  88% { opacity:.07; transform:translate3d(3px,7px,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:transparent
}

.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 {
  background:var(--accent)
}

.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
}

.outcome-card .outcome-decision-message {
  display:block;
  width:max-content;
  max-width:100%;
  margin:0 0 24px;
  padding:7px 10px;
  border:1px solid var(--line);
  color:#d8e0e3;
  font:11px Consolas,monospace;
  letter-spacing:.6px;
  text-transform:uppercase
}

.outcome-card .outcome-decision-message.decision-confirmed {
  color:var(--green);
  border-color:#8bc5ad70
}

.outcome-card .outcome-decision-message.decision-notSelected {
  color:var(--accent);
  border-color:#e6b76a55
}

.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
}

@media(min-width:1600px) {
  .public-shell {
    --shell-gutter: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 33px clamp(28px,2.6vw,44px)
  }

  .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; }
.persistent-game { position:fixed; inset:0; z-index:1; background:#07191a; }
.persistent-game[hidden] { display:block; visibility:hidden; pointer-events:none; }
.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; }
