:root{
  --navy:#14213d; --navy2:#1d2f55; --ember:#e4572e; --ember-d:#c4411c;
  --bg:#f4f5f8; --card:#fff; --ink:#1b2236; --mute:#5d667c; --line:#d9dce5;
  --ok:#1f8a4c; --blue:#1f5fbf; --blue-d:#164a96; --live:#1f9d55; --live-d:#157a40;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
.topbar{background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;padding:10px 20px}
.brand{font-weight:700;letter-spacing:.02em}
.brand span{font-weight:400;opacity:.7;margin-left:10px;padding-left:10px;border-left:1px solid #ffffff55}
.tdgname{opacity:.85;font-size:14px}
.shell{display:flex;min-height:calc(100vh - 86px)}
.side{width:250px;flex:none;background:var(--card);border-right:1px solid var(--line);padding:18px 14px}
.side h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.side ol{list-style:none;margin:0 0 14px;padding:0}
.side li{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:6px;font-size:14px;color:var(--mute)}
.side li .dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--line);flex:none}
.side li.done{color:var(--ink)} .side li.done .dot{background:var(--ok);border-color:var(--ok)}
.side li.now{background:#eef1f8;color:var(--ink);font-weight:600} .side li.now .dot{border-color:var(--ember);background:#fff}
.stage{flex:1;min-width:0;padding:26px 30px;max-width:1700px}
.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:26px 30px;box-shadow:0 1px 2px #0001}
h1{margin:0 0 4px;font-size:28px} h2{margin:0 0 12px;font-size:22px} h3{margin:0 0 8px}
.sub{color:var(--mute);margin:0 0 18px}
p{margin:0 0 12px}
.btn{appearance:none;border:0;background:var(--ember);color:#fff;font:inherit;font-weight:600;padding:11px 22px;border-radius:8px;cursor:pointer}
.btn:hover{background:var(--ember-d)} .btn:disabled{background:#c7cad4;cursor:not-allowed}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--line)} .btn.ghost:hover{background:#f0f2f7}
.btn.small{padding:6px 12px;font-size:14px}
.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.right{margin-left:auto}
.note{font-size:13px;color:var(--mute)}
.callout{background:#fff6f2;border-left:4px solid var(--ember);padding:12px 16px;border-radius:6px;margin:14px 0}
label.check{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:15px}
label.check input{margin-top:4px;width:18px;height:18px}

/* arrival */
.video-wrap{position:relative;background:#000;border-radius:10px;overflow:hidden}
.video-wrap video{display:block;width:100%;max-height:68vh;object-fit:contain}
.clock{position:absolute;top:14px;right:14px;background:#000b;color:#fff;border-radius:10px;padding:8px 16px;min-width:92px;text-align:center}
.clock b{font:700 34px/1 ui-monospace,Consolas,monospace;display:block}
.clock small{font-size:11px;letter-spacing:.1em;text-transform:uppercase;opacity:.8}
.clock.low b{color:#ffb347}
.bar{height:6px;background:#ffffff33;border-radius:3px;margin-top:6px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--ember);width:100%}
.credit{font-size:12px;color:var(--mute);margin-top:6px}

/* decision */
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}
.split figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px}
.split img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;display:block;cursor:zoom-in;background:#fafafa}
.rl{display:grid;grid-template-columns:minmax(0,2fr) minmax(360px,1fr);gap:20px;align-items:start}
.rl .split{grid-template-columns:1fr;margin-bottom:0}
.rl .pics{display:grid;gap:14px}
.rl .rside{position:sticky;top:52px}
.split.small img{height:240px;aspect-ratio:auto}
.split:has(figure:only-child){grid-template-columns:minmax(0,900px)}
.split figcaption{font-size:12px;color:var(--mute);text-align:center;margin-top:4px}
.radio{background:var(--navy);color:#fff;border-radius:10px;padding:18px 22px}
.radio .cue{display:inline-block;background:var(--ember);color:#fff;font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:3px 10px;border-radius:4px;margin-bottom:8px}
.radio h3{color:#fff;margin:0 0 4px}
.radio p{color:#d7def0}
textarea{width:100%;min-height:130px;border:2px solid var(--line);border-radius:8px;padding:12px;font:inherit;resize:vertical;color:var(--ink)}
.radio textarea{border-color:#ffffff33}
.interim{min-height:22px;font-style:italic;color:#ffffff;font-size:14px;margin:4px 0}
.card .interim{color:var(--mute)}
.microw{display:flex;align-items:center;gap:12px;margin:8px 0 0}
.microw .mstatus{flex:1;min-width:0;font-size:14px}
.btns{display:flex;gap:12px;margin:8px 0 0}
.btns .mic,.btns .btn{flex:1 1 0;max-width:240px;min-height:54px;font-size:17px;border-radius:10px;white-space:nowrap}
.mic{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:0;padding:10px 14px;border:0;background:var(--blue);color:#fff;font:inherit;font-size:18px;font-weight:700;cursor:pointer;box-shadow:0 3px 0 var(--blue-d),0 5px 12px #0003}
.btns .btn{box-shadow:0 3px 0 var(--ember-d),0 5px 12px #0003}
.mic:hover{background:#2a6fd6}
.mic:active,.btns .btn:active{transform:translateY(2px)}
.mic .led{width:14px;height:14px;border-radius:50%;background:#ffffffaa;flex:none}
.mic.live{background:var(--live);box-shadow:0 3px 0 var(--live-d),0 0 0 0 #1f9d5588;animation:livepulse 1.2s infinite}
.mic.live .led{background:#fff}
@keyframes livepulse{50%{box-shadow:0 3px 0 var(--live-d),0 0 0 10px #1f9d5500}}
.picks{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pick{appearance:none;text-align:left;background:#fff;border:2px solid var(--line);border-radius:12px;padding:22px;font:inherit;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:8px}
.pick b{font-size:22px}
.pick span{color:var(--mute);font-size:15px}
.pick:hover{border-color:var(--navy2)}
.pick.sel{border-color:var(--ember);background:#fff6f2;box-shadow:0 0 0 3px #e4572e33}
.tips{margin:0;padding-left:20px}.tips li{margin-bottom:6px}
.yours{background:#eef1f8;border:1px solid #1d2f55;border-left:4px solid var(--navy2);border-radius:6px;padding:12px 16px;margin:0 0 16px;white-space:pre-wrap}
.yours .who{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin-bottom:4px}
.radio .btn.ghost{background:transparent;color:#fff;border-color:#ffffff55}.radio .btn.ghost:hover{background:#ffffff1a}
.status,.mstatus{font-size:13px;color:#ffffff}
.card .status,.card .mstatus{color:var(--mute)}
.card .radio .status,.card .radio .mstatus,.card .radio .interim{color:#ffffff}
.qbox{margin-bottom:18px}
.qbox .q{font-weight:600;margin-bottom:6px;font-size:18px}

/* compare */
.cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.resp{border:1px solid var(--line);border-radius:8px;padding:12px 14px;margin-bottom:10px;background:#fff;white-space:pre-wrap}
.resp.you{border-color:var(--navy2);background:#eef1f8}
.resp .who{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin-bottom:4px}
.resp .lab{font-size:12px;font-weight:600;color:var(--mute);margin:8px 0 2px}
.resp .who + .lab{margin-top:0}
.loading{font-style:italic}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.plans figure{margin:0;border:1px solid var(--line);border-radius:8px;padding:8px;background:#fff}
.plans img{width:100%;cursor:zoom-in}
.plans figcaption{text-align:center;font-size:13px;color:var(--mute)}
.lightbox{position:fixed;inset:0;background:#000d;display:flex;align-items:center;justify-content:center;z-index:9;cursor:zoom-out}
.lightbox img{max-width:96vw;max-height:94vh;background:#fff}

/* CO-1: four answer controls. The microphone is the biggest. */
.btns.four{flex-wrap:wrap}
.btns.four .mic{flex:2 1 220px;max-width:none;min-height:62px;font-size:19px}
.btns.four .ctl,.btns.four .btn{flex:1 1 110px;max-width:none;min-height:62px}
.ctl{appearance:none;border:2px solid #fff;background:#fff;color:var(--navy);font:inherit;font-size:17px;font-weight:700;padding:10px 14px;border-radius:10px;cursor:pointer;white-space:nowrap;box-shadow:0 3px 0 #c7cad4,0 5px 12px #0003}
.ctl:hover{background:#eef1f8}
.ctl:active{transform:translateY(2px)}
.card .qbox .ctl{border-color:var(--line)}
.mic:focus-visible,.ctl:focus-visible,.btn:focus-visible,.enlarge:focus-visible{outline:3px solid #ffb347;outline-offset:2px}

/* CO-1: Enlarge buttons on pictures and the video */
.zwrap{position:relative}
.enlarge{appearance:none;position:absolute;right:10px;bottom:10px;border:0;background:#000b;color:#fff;font:inherit;font-size:14px;font-weight:700;padding:7px 12px;border-radius:8px;cursor:pointer;z-index:2}
.enlarge:hover{background:#000e}
.video-wrap .enlarge{bottom:14px;right:14px}
.video-wrap:fullscreen{border-radius:0;display:flex;align-items:center}
.video-wrap:fullscreen video,.video-wrap.big video{max-height:100vh;height:100%}
.video-wrap.big{position:fixed;inset:0;z-index:20;border-radius:0;display:flex;align-items:center}
.lbclose{position:fixed;top:14px;right:14px}

/* CO-1: About you */
label.field{display:flex;flex-direction:column;gap:4px;margin:0 0 16px;max-width:460px;font-weight:600}
label.field select{font:inherit;font-weight:400;padding:10px;border:2px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}

@media (max-width:1100px){
  .rl{grid-template-columns:1fr}
  .rl .rside{position:static}
}
@media (max-width:900px){
  .side{display:none}
  .stage{padding:16px}
  .split,.cols,.plans,.picks{grid-template-columns:1fr}
  .split.small img{height:220px}
}

/* CO-1: map engine (icon colors live in map.js, not here) */
.mapslot{margin-bottom:14px}
.tdgm{position:relative}
.tdgmap{position:relative;width:100%;aspect-ratio:1400/787;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.tdgmap img,.split .tdgmap img,.split.small .tdgmap img{display:block;width:100%;height:100%;aspect-ratio:1400/787;object-fit:fill;cursor:default;background:#fff;user-select:none;-webkit-user-drag:none}
.tdgmap svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.tdgmap svg.edit{touch-action:none;user-select:none}
.tdgm.big{position:fixed;inset:0;z-index:50;background:#fff;padding:12px 16px;overflow:auto}
.tdgm.big .tdgmap{width:min(100%,calc((100vh - 170px) * 1.7789));margin:0 auto}
.tdgm.big .mapbar{max-width:1500px;margin:0 auto 8px}
.tdgm.big .enlarge{position:fixed;right:10px;bottom:10px;z-index:60}   /* Close sits at the same screen corner as every other Enlarge and Close */
body.mapbig-open{overflow:hidden}
.tdgm.thumb .tdgmap{border-radius:4px}
.mapbar{display:grid;gap:6px;margin-bottom:8px}
.maprow{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.maplab{font-size:13px;font-weight:700;color:var(--mute);margin-left:6px}
.maprow .maplab:first-child{margin-left:0}
.mchip,.mbtn{appearance:none;font:inherit;font-size:14px;font-weight:600;padding:7px 12px;border-radius:8px;border:2px solid var(--line);background:#fff;color:var(--navy);cursor:pointer;min-height:38px}
.mchip:hover,.mbtn:hover{background:#eef1f8}
.mchip:disabled,.mbtn:disabled{opacity:.4;cursor:default;background:#fff}
.mbtn.on{background:var(--blue);border-color:var(--blue);color:#fff}
.mchip:focus-visible,.mbtn:focus-visible{outline:3px solid #ffb347;outline-offset:2px}
.mapmsg{font-size:13px;color:var(--mute);min-height:18px}
.mapnarrow{background:#fff6f2;border-left:4px solid var(--ember);padding:14px 16px;border-radius:6px;font-weight:600}
@media (max-width:759px){.mapslot{display:block}}

/* Intake tap buttons (single choice) */
.intakeh{margin:22px 0 4px}
.tapq{margin:0 0 16px}
.tapl{font-weight:700;margin-bottom:6px}
.tapgrid{display:flex;flex-wrap:wrap;gap:10px}
.tapgrid.one .tap{flex:1 1 100%;text-align:left}
.tap{appearance:none;background:#fff;border:2px solid var(--line);border-radius:10px;padding:11px 16px;min-height:46px;font:inherit;color:var(--ink);cursor:pointer;text-align:center}
.tap:hover{border-color:var(--navy2)}
.tap.sel{border-color:var(--ember);background:#fff6f2;box-shadow:0 0 0 3px #e4572e33;font-weight:600}
.tap:focus-visible{outline:3px solid #ffb347;outline-offset:2px}

/* Two mic boxes on DP1 */
.rside .radio + .radio{margin-top:14px}
.rl .rside.multi{position:static}

@media (max-width:640px){.tap{flex:1 1 100%}}

/* v3: layered consent */
.consent{margin:0 0 10px}
.linkbtn{appearance:none;background:none;border:0;padding:11px 6px;font:inherit;color:var(--blue-d);text-decoration:underline;cursor:pointer;min-height:46px}
.linkbtn:focus-visible{outline:3px solid #ffb347;outline-offset:2px}
.consentfull{margin-top:10px}
.consentfull[hidden]{display:none}

/* Send status line (findings 2 and 15): shown only while answers are waiting to be sent or one was refused. */
#sendstat { position: fixed; left: 52px; right: 12px; bottom: 12px; z-index: 50; background: #14213d; color: #ffffff; border: 2px solid #e4572e; border-radius: 8px; padding: 10px 14px; font-size: 15px; line-height: 1.35; }
#sendstat[hidden] { display: none; }

/* Fire red bands (D-162 revised 2026-11-04, Phil): a top band for the sponsor and a left band for Ignition Point Training, both fixed and always on screen, so the
   length of a page never hides them. No motion, no pop-ups. Full-screen views (enlarged pictures, maps, the 360) sit above them. */
:root{--band:#a61e22}
body{padding:40px 0 0 40px}
.band{position:fixed;background:var(--band);color:#ffffff;z-index:5;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;letter-spacing:.02em;line-height:1.1}
.band a{color:#ffffff;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.band img{max-height:30px;max-width:100%}
.band-top{top:0;left:0;right:0;height:40px;padding:0 12px;text-align:center}
.band-left{top:40px;left:0;bottom:0;width:40px}
.band-left span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap}
