
  :root{
    --page:#EEF2F7;
    --card:#FFFFFF;
    --navy:#31334b;
    --blue:#4898c8;
    --ink:#31334b;
    --muted:#8A90A6;
    --faint:#AEB4C6;
    --rule:#E3E8F0;
    --tint:#F4F7FB;
    --amber:#C98A2E;
    --green:#3F9E7C;
    --ink-rgb:49,51,75;
    --accent-rgb:72,152,200;
    --surface:#F7F8FA;
    --deep:#141110;
    --maxw:1280px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html,body{height:100%}
  body{
    background:var(--page);color:var(--ink);
    font-family:"Inter",system-ui,sans-serif;
    overflow:hidden;-webkit-font-smoothing:antialiased;
  }

  .stage{position:fixed;inset:18px;background:var(--card);border-radius:10px;
    box-shadow:0 1px 3px rgba(var(--ink-rgb),.06),0 12px 32px rgba(var(--ink-rgb),.07);
    overflow:hidden}

  .ctx{position:absolute;top:22px;right:28px;z-index:4;
    font-size:11px;color:var(--muted);letter-spacing:.02em}
  .mark{position:absolute;top:26px;left:28px;z-index:4;height:15px;transition:opacity .3s}
  .mark img{height:100%;display:block}
  .mark.hide{opacity:0}

  .slide{
    position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;
    padding:clamp(48px,5vw,84px) clamp(32px,5vw,80px) 84px;
    opacity:0;transform:translateY(10px);
    transition:opacity .38s ease,transform .38s ease;pointer-events:none;
    justify-content:safe center;overflow-y:auto;overflow-x:hidden;
  }
  .slide.active{opacity:1;transform:none;pointer-events:auto}
  .notes{display:none}
  .wrap{max-width:var(--maxw);width:100%;margin-inline:auto}

  .eyebrow{font-size:11.5px;font-weight:600;letter-spacing:.16em;
    text-transform:uppercase;color:var(--muted);margin-bottom:14px}

  h1{font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(34px,4.8vw,60px);line-height:1.04;letter-spacing:-.022em;color:var(--navy)}
  h2{font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(30px,4.2vw,56px);line-height:1.05;letter-spacing:-.022em;color:var(--navy)}
  .accent{color:var(--blue)}
  .subtitle{color:var(--muted);font-size:clamp(15px,1.6vw,19px);line-height:1.45;margin-top:16px}

  /* status chips */
  .chip{display:inline-flex;align-items:center;gap:7px;font-size:11px;font-weight:600;
    letter-spacing:.12em;text-transform:uppercase;padding:5px 10px;border-radius:3px;
    border:1px solid;vertical-align:middle}
  .chip .cd{width:5px;height:5px;border-radius:50%}
  .chip.live{color:var(--green);background:rgba(63,158,124,.10);border-color:rgba(63,158,124,.30)}
  .chip.live .cd{background:var(--green)}
  .chip.works{color:var(--amber);background:rgba(201,138,46,.10);border-color:rgba(201,138,46,.30)}
  .chip.works .cd{background:var(--amber)}
  .chip.early{color:var(--blue);background:rgba(var(--accent-rgb),.10);border-color:rgba(var(--accent-rgb),.30)}
  .chip.early .cd{background:var(--blue)}
  .eyerow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
  .eyerow .eyebrow{margin-bottom:0}

  /* Pattern A / B: numbered + bullet stacks */
  .stack{list-style:none;margin-top:clamp(22px,3.2vh,34px);
    display:flex;flex-direction:column;gap:clamp(15px,2.2vh,24px)}
  .stack li{position:relative;padding-left:38px}
  .stack.num li{counter-increment:s}
  .stack.num{counter-reset:s}
  .stack.num li::before{
    content:counter(s);position:absolute;left:0;top:-1px;
    width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;
    font-family:"Inter",sans-serif;font-weight:600;font-size:12px;
    display:flex;align-items:center;justify-content:center;
  }
  .stack.dot li::before{content:"";position:absolute;left:8px;top:.62em;
    width:6px;height:6px;border-radius:50%;background:var(--blue)}
  .stack .stmt{font-family:"Poppins",sans-serif;font-weight:500;
    font-size:clamp(16px,1.75vw,21px);line-height:1.3;color:var(--ink);
    letter-spacing:-.012em}
  .stack .subline{display:block;margin-top:6px;color:var(--muted);
    font-size:clamp(13px,1.35vw,15.5px);line-height:1.45}

  /* Pattern D: text + visual */
  .split{display:grid;grid-template-columns:minmax(0,41fr) minmax(0,59fr);
    gap:clamp(28px,3.6vw,56px);align-items:center;
    max-width:var(--maxw);width:100%;margin-inline:auto}
  .split.hero{grid-template-columns:minmax(0,52fr) minmax(0,48fr)}

  .visual{width:100%;aspect-ratio:16/10;background:var(--tint);
    border:1.5px dashed var(--rule);border-radius:8px;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:11px;text-align:center;padding:30px}
  .visual .vlabel{font-size:10.5px;font-weight:600;letter-spacing:.16em;
    text-transform:uppercase;color:var(--blue)}
  .visual .vdesc{color:var(--muted);font-size:clamp(12.5px,1.3vw,15px);
    line-height:1.45;max-width:42ch}
  .visual .vicon{width:30px;height:30px;color:var(--faint)}
  img.visual{aspect-ratio:auto;border:1px solid var(--rule);border-style:solid;
    padding:0;object-fit:cover;display:block}
  .caption{margin-top:10px;font-size:12.5px;color:var(--muted);text-align:center}

  .heromark{width:min(100%,380px);display:block;margin-bottom:44px}
  .highlight{margin-top:clamp(20px,3vh,28px);background:rgba(var(--accent-rgb),.08);
    border:1px solid rgba(var(--accent-rgb),.28);border-left:3px solid var(--blue);
    border-radius:7px;padding:clamp(15px,1.9vw,21px) clamp(17px,2.1vw,24px)}
  .highlight .hstmt{font-family:"Poppins",sans-serif;font-weight:600;color:var(--blue);
    font-size:clamp(16px,1.75vw,21px);line-height:1.25;letter-spacing:-.012em}
  .highlight .hsub{display:block;margin-top:7px;color:var(--muted);font-weight:400;
    font-family:"Inter",sans-serif;font-size:clamp(13px,1.35vw,15.5px);line-height:1.45}
  .appdiagram{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    grid-template-rows:auto minmax(0,1fr);gap:clamp(10px,1.4vw,20px);
    align-items:center;justify-items:center;width:100%}
  .adlabel{grid-row:1;font-size:10.5px;font-weight:600;letter-spacing:.16em;
    text-transform:uppercase;color:var(--muted);align-self:end;padding-bottom:4px}
  .adlabel.t1{grid-column:1}
  .adlabel.t2{grid-column:3}
  .adstack{grid-row:2;display:flex;flex-direction:column;gap:clamp(9px,1.3vh,14px);
    width:100%;max-width:250px}
  .adbox{background:var(--card);border:1px solid var(--rule);border-radius:9px;
    padding:clamp(11px,1.5vh,16px) 14px;text-align:center;
    font-family:"Poppins",sans-serif;font-weight:600;color:var(--ink);
    font-size:clamp(13px,1.4vw,16px);letter-spacing:-.01em}
  .adarrow{grid-row:2;color:var(--blue);font-size:clamp(19px,2.2vw,26px);line-height:1}
  .adphone{grid-row:2;width:100%;max-width:215px;max-height:50vh;object-fit:contain;
    display:block;filter:drop-shadow(0 10px 24px rgba(var(--ink-rgb),.16))}
    .titleblock{width:fit-content;max-width:100%;margin-inline:auto;text-align:left;
    padding:0 clamp(20px,4vw,64px)}
  .monitor{width:100%;max-width:600px;margin-inline:auto;display:flex;flex-direction:column;align-items:center}
  .mscreen{width:100%;background:var(--navy);border-radius:13px;
    padding:clamp(7px,.9vw,11px);box-shadow:0 16px 38px rgba(var(--ink-rgb),.20)}
  .mscreen img{width:100%;display:block;border-radius:5px;background:#fff}
  .mneck{width:clamp(34px,4.2vw,54px);height:clamp(9px,1.3vh,15px);background:var(--navy);opacity:.9}
  .mbase{width:clamp(96px,12vw,150px);height:8px;border-radius:3px;background:var(--navy);opacity:.9}
  .monitor + .caption{margin-top:16px}
  .productwrap{display:flex;align-items:center;justify-content:center;width:100%}
  .productshot{max-height:64vh;max-width:min(100%,380px);object-fit:contain;display:block}
  .phonepair{display:flex;gap:clamp(14px,2.2vw,30px);justify-content:center;
    align-items:flex-start;width:100%;flex-wrap:wrap}
  .phone{display:flex;flex-direction:column;align-items:center;gap:11px}
  .pscreen{background:var(--navy);border-radius:clamp(17px,1.9vw,25px);
    padding:clamp(5px,.55vw,8px);box-shadow:0 12px 28px rgba(var(--ink-rgb),.18)}
  .pscreen img{display:block;height:min(54vh,540px);width:auto;
    aspect-ratio:393/852;object-fit:cover;object-position:top center;
    border-radius:clamp(13px,1.5vw,19px);background:#fff}
  .pcap{font-size:12.5px;color:var(--muted);text-align:center;
    max-width:100%;line-height:1.35;white-space:nowrap}
  .center{text-align:center;max-width:var(--maxw);width:100%;margin-inline:auto}
  .center .eyebrow{margin-bottom:20px}

  /* Pattern C: today -> tomorrow */
  .tt{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(14px,2vw,26px);
    align-items:center;margin-top:clamp(20px,3vh,30px)}
  .ttp{background:var(--tint);border:1px solid var(--rule);border-radius:8px;
    padding:clamp(16px,2vw,24px)}
  .ttp h4{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);margin-bottom:12px}
  .ttp ul{list-style:none;display:flex;flex-direction:column;gap:7px}
  .ttp li{font-size:clamp(13px,1.4vw,16px);line-height:1.35;color:var(--muted)}
  .ttp.now li{color:var(--ink);font-family:"Poppins",sans-serif;font-weight:500}
  .ttarrow{color:var(--blue);font-size:22px;line-height:1}

  /* footer */
  .rail{position:absolute;left:0;right:0;bottom:0;height:62px;z-index:4;
    display:flex;align-items:center;justify-content:space-between;
    padding:0 clamp(24px,4vw,40px);border-top:1px solid var(--rule);background:var(--card)}
  .rail .hint{font-size:10.5px;color:var(--faint);letter-spacing:.1em;text-transform:uppercase}
  .track{display:flex;align-items:center;gap:0}
  .track button{border:none;background:transparent;cursor:pointer;padding:0 9px;height:20px;
    display:flex;align-items:center}
  .track .pip{width:7px;height:7px;border-radius:50%;background:var(--faint);transition:.24s}
  .track button.active .pip{width:26px;border-radius:4px;background:var(--blue)}
  .nav{display:flex;align-items:center;gap:8px}
  .nav button{background:#fff;border:1px solid var(--rule);color:var(--ink);
    font-size:13px;width:32px;height:28px;border-radius:5px;cursor:pointer;transition:.2s}
  .nav button:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
  .nav button:disabled{opacity:.35;cursor:default}
  .counter{font-size:11.5px;font-weight:500;color:var(--muted);min-width:56px;text-align:center}

  #rehearse{position:absolute;left:0;right:0;bottom:62px;z-index:5;display:none;
    max-height:46%;overflow:auto;background:#FFFBF3;border-top:2px solid var(--amber);
    padding:18px clamp(24px,4vw,40px)}
  #rehearse.on{display:block}
  #rehearse .rw{font-size:10.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
    color:var(--amber);margin-bottom:10px}
  #rehearse .rbody{font-size:14.5px;line-height:1.6;max-width:100ch}
  #rehearse .rbody p+p{margin-top:9px}
  #rehearse .rbody b{color:var(--blue)}

  @media (max-width:900px){
    .split,.split.hero{grid-template-columns:1fr;gap:clamp(18px,3vh,30px)}
    .tt{grid-template-columns:1fr}
    .ttarrow{transform:rotate(90deg);text-align:center}
    .slide{padding:64px clamp(24px,5vw,48px) 78px}
    h1{font-size:clamp(30px,7vw,44px)}
    h2{font-size:clamp(25px,6vw,38px)}
    .appdiagram{max-width:480px;margin-inline:auto}
    .adphone{max-height:32vh;max-width:150px}
    .adbox{padding:10px 12px}
    .monitor{max-width:min(100%,460px)}
    .productshot{max-height:34vh;max-width:200px;margin-inline:auto}
    .pscreen img{height:min(30vh,300px)}
    .pcap{font-size:11.5px}
    .titleblock{padding-inline:0}
  }
  /* portrait or short windows: keep everything on one screen */
  @media (max-aspect-ratio:9/10){
    .adphone{max-height:26vh}
    .productshot{max-height:26vh;max-width:170px}
    .pscreen img{height:min(26vh,270px)}
    .monitor{max-width:min(100%,400px)}
    .stack{margin-top:clamp(14px,2vh,22px);gap:clamp(10px,1.5vh,15px)}
    .highlight{margin-top:16px;padding:13px 16px}
  }
  @media (max-height:620px){
    .adphone,.productshot{max-height:38vh}
    .pscreen img{height:38vh}
    .slide{padding-top:56px;padding-bottom:70px}
  }
  @media (prefers-reduced-motion:reduce){.slide{transition:none}}
  :focus-visible{outline:2px solid var(--blue);outline-offset:3px}

  /* === Ask Walter additions === */
  .duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,44px);
    margin-top:clamp(20px,3vh,34px);max-width:var(--maxw);width:100%;margin-inline:auto}
  .acard{background:var(--tint);border:1px solid var(--rule);border-radius:12px;
    padding:clamp(20px,2.4vw,34px);display:flex;flex-direction:column;gap:clamp(14px,2vh,22px);
    min-height:clamp(240px,36vh,430px)}
  .ahead{display:flex;align-items:center;gap:clamp(16px,1.8vw,26px)}
  .ahead img{width:clamp(96px,9.5vw,150px);height:auto;border-radius:50%;
    box-shadow:0 8px 26px rgba(var(--ink-rgb),.16)}
  .aname{font-family:"Poppins",sans-serif;font-weight:600;color:var(--navy);
    font-size:clamp(24px,2.5vw,34px);letter-spacing:-.018em}
  .arole{font-size:clamp(11px,1.05vw,14px);font-weight:600;letter-spacing:.13em;
    text-transform:uppercase;color:var(--blue);margin-top:4px}
  .acard ul{list-style:none;display:flex;flex-direction:column;gap:clamp(10px,1.6vh,16px)}
  .acard li{position:relative;padding-left:26px;color:var(--ink);
    font-size:clamp(14px,1.5vw,18px);line-height:1.42}
  .acard li::before{content:"";position:absolute;left:6px;top:.58em;
    width:6px;height:6px;border-radius:50%;background:var(--blue)}
  .acard .where{margin-top:auto;padding-top:14px;border-top:1px solid var(--rule);
    font-size:clamp(12px,1.2vw,15px);color:var(--muted);letter-spacing:.02em}

  /* chat step-through */
  .chatwrap{display:flex;flex-direction:column;gap:0;min-width:0;
    filter:drop-shadow(0 10px 28px rgba(var(--ink-rgb),.10))}
  .chathead{display:flex;align-items:center;gap:10px;background:var(--card);
    border:1px solid var(--rule);border-bottom:1px solid var(--rule);
    border-radius:12px 12px 0 0;padding:10px 16px}
  .chathead img{width:32px;height:32px;border-radius:50%}
  .chathead .cn{font-family:"Poppins",sans-serif;font-weight:600;font-size:14.5px;color:var(--navy)}
  .chathead .cs{font-size:11px;color:var(--muted);margin-left:auto;display:flex;align-items:center;gap:6px;
    letter-spacing:.08em;text-transform:uppercase}
  .chathead .cdot{width:7px;height:7px;border-radius:50%;background:var(--green)}
  .chatbox{border-top:none;border-bottom:none}
  .chatinput{display:flex;align-items:center;gap:12px;background:var(--card);
    border:1px solid var(--rule);border-top:1px solid var(--rule);
    border-radius:0 0 12px 12px;padding:10px 14px}
  .chatinput .fake{flex:1;background:var(--tint);border:1px solid var(--rule);
    border-radius:999px;padding:8px 16px;color:var(--faint);font-size:13px}
  .typing{display:none}
  .typing.show{display:flex;animation:pop .3s ease}
  .typing.u{align-self:flex-end}
  .typing .tbt{background:var(--tint);border:1px solid var(--rule);border-radius:12px;
    border-bottom-left-radius:4px;padding:13px 15px;display:flex;gap:5px;align-items:center}
  .typing.u .tbt{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.3);
    border-bottom-left-radius:12px;border-bottom-right-radius:4px}
  .typing .td{width:7px;height:7px;border-radius:50%;background:var(--faint);
    animation:tblink 1.2s infinite}
  .typing .td:nth-child(2){animation-delay:.2s}
  .typing .td:nth-child(3){animation-delay:.4s}
  @keyframes tblink{0%,60%,100%{opacity:.35;transform:none}30%{opacity:1;transform:translateY(-3px)}}
  .chatbox{background:var(--card);border:1px solid var(--rule);border-radius:0;
    padding:clamp(12px,1.5vw,18px);height:min(46vh,470px);overflow-y:auto;
    display:flex;flex-direction:column;gap:10px;box-shadow:0 6px 22px rgba(var(--ink-rgb),.08);
    cursor:pointer}
  .bubble{display:flex;gap:9px;align-items:flex-end;max-width:88%}
  .bubble .av{width:26px;height:26px;border-radius:50%;flex:none;object-fit:cover}
  .bubble .cav{width:26px;height:26px;border-radius:50%;flex:none;background:var(--navy);
    color:#fff;font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center}
  .bubble .bt{border-radius:12px;padding:9px 13px;font-size:clamp(12px,1.25vw,14.5px);
    line-height:1.42;white-space:pre-line}
  .bubble.w .bt{background:var(--tint);border:1px solid var(--rule);color:var(--ink);
    border-bottom-left-radius:4px}
  .bubble.u{align-self:flex-end;flex-direction:row-reverse}
  .bubble.u .bt{background:var(--blue);color:#fff;border-bottom-right-radius:4px}
  .bubble .bt b{font-weight:600}
  .step{display:none}
  .step.on{display:flex;animation:pop .3s ease}
  .outcome.step.on{display:block}
  .smarker{display:none!important}
  @keyframes pop{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  .outcome{align-self:center;background:rgba(63,158,124,.10);border:1px solid rgba(63,158,124,.32);
    border-radius:8px;padding:12px 18px;text-align:center;max-width:100%}
  .outcome .ot{font-family:"Poppins",sans-serif;font-weight:600;color:var(--green);
    font-size:clamp(14px,1.6vw,19px)}
  .outcome .os{font-size:12.5px;color:var(--muted);margin-top:3px}
  .stephint{font-size:10.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
    color:var(--faint);text-align:center}
  .stephint b{color:var(--blue);font-weight:600}

  /* placement grid */
  .placegrid{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;
    gap:clamp(14px,1.8vw,24px);margin-top:clamp(18px,2.8vh,32px);max-width:var(--maxw);width:100%;margin-inline:auto}
  .pcard{background:var(--tint);border:1px solid var(--rule);border-radius:12px;
    padding:clamp(16px,2vw,26px);display:flex;gap:clamp(16px,1.8vw,24px);align-items:flex-start;
    min-height:clamp(120px,17vh,200px)}
  .pcard img{width:clamp(56px,5.4vw,84px);height:clamp(56px,5.4vw,84px);border-radius:50%;flex:none;margin-top:2px}
  .pcard .pt{font-family:"Poppins",sans-serif;font-weight:600;color:var(--navy);
    font-size:clamp(18px,1.85vw,24px);letter-spacing:-.014em}
  .pcard .pu{font-size:clamp(12px,1.2vw,15px);color:var(--blue);font-weight:600;letter-spacing:.03em;margin-top:2px}
  .pcard .pd{font-size:clamp(13px,1.35vw,16px);color:var(--muted);line-height:1.45;margin-top:9px}
  .pcard .chip{margin-top:10px}
  .pcard.step{display:flex}
  .pcard.step>img,.pcard.step>div{transition:opacity .5s ease,transform .5s ease}
  .pcard.step:not(.on)>img,.pcard.step:not(.on)>div{opacity:0;transform:translateY(8px)}

  /* reach-us animated scene */
  .scene{position:relative;width:100%;height:clamp(300px,48vh,520px);
    background:var(--tint);border:1px solid var(--rule);border-radius:14px;
    overflow:hidden;cursor:pointer}
  .snode{position:absolute;bottom:18%;display:flex;flex-direction:column;align-items:center;
    gap:10px;transition:all .65s cubic-bezier(.4,0,.2,1);width:clamp(110px,12vw,170px)}
  .snode .face{width:clamp(84px,9vw,140px);height:clamp(84px,9vw,140px);border-radius:50%;
    transition:all .65s cubic-bezier(.4,0,.2,1);box-shadow:0 8px 24px rgba(var(--ink-rgb),.16)}
  .snode img.face{object-fit:cover;background:#fff}
  .snode .yv{background:var(--navy);color:#fff;display:flex;align-items:center;
    justify-content:center}
  .snode .yv svg{width:54%;height:54%}
  .snode .hv{background:#fff;border:2px solid var(--blue);color:var(--blue);
    display:flex;align-items:center;justify-content:center}
  .snode .hv svg{width:58%;height:58%}
  .snode .nm{font-family:"Poppins",sans-serif;font-weight:600;color:var(--navy);
    font-size:clamp(13px,1.4vw,18px);white-space:nowrap;transition:opacity .5s}
  .sc-cust{left:6%}
  .sc-walter{left:auto;right:10%}
  .sc-agent{left:auto;right:-30%;opacity:0}
  /* state 1: agent in, walter benched right */
  .scene[data-state="1"] .sc-walter{right:-2%;transform:scale(.62);opacity:.42;filter:grayscale(.35)}
  .scene[data-state="1"] .sc-agent{right:16%;opacity:1}
  /* state 2: walter back, agent benched */
  .scene[data-state="2"] .sc-walter{right:13%;transform:none;opacity:1;filter:none}
  .scene[data-state="2"] .sc-agent{right:-6%;opacity:.38;transform:scale(.58)}

  /* cartoon blah-blah bubbles between the two active speakers */
  .blah{position:absolute;top:16%;left:32%;width:36%;height:38%;pointer-events:none;
    transition:all .65s cubic-bezier(.4,0,.2,1)}
  .scene[data-state="1"] .blah{left:30%}
  .bb{position:absolute;background:#fff;border:1.5px solid var(--rule);border-radius:14px;
    padding:9px 13px;opacity:0;box-shadow:0 4px 12px rgba(var(--ink-rgb),.10)}
  .grib{font-style:normal;font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(15px,1.7vw,22px);letter-spacing:.06em;color:var(--muted);display:block}
  .bb.r .grib{color:var(--blue)}
  .bb.l{left:0;top:6%;border-bottom-left-radius:4px}
  .bb.r{right:0;top:38%;border-bottom-right-radius:4px;background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.3)}
  .bb.l2{left:8%;top:70%;border-bottom-left-radius:4px}
  .bb.l{animation:chat 5.2s infinite}
  .bb.r{animation:chat 5.2s infinite 1.7s}
  .bb.l2{animation:chat 5.2s infinite 3.4s}
  @keyframes chat{0%{opacity:0;transform:translateY(8px) scale(.92)}
    8%{opacity:1;transform:none}55%{opacity:1}70%{opacity:0;transform:translateY(-4px)}100%{opacity:0}}

  /* ping badge walter -> team */
  .ping{position:absolute;top:9%;right:7%;display:flex;align-items:center;gap:8px;
    background:#fff;border:1px solid rgba(201,138,46,.45);border-radius:999px;
    padding:7px 14px;font-size:clamp(11px,1.1vw,13.5px);font-weight:600;color:var(--amber);
    opacity:0;transform:translateY(-8px);transition:all .5s ease .25s;box-shadow:0 4px 14px rgba(var(--ink-rgb),.10)}
  .ping .pd2{width:8px;height:8px;border-radius:50%;background:var(--amber);animation:pulse 1.4s infinite}
  @keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,138,46,.45)}55%{box-shadow:0 0 0 7px rgba(201,138,46,0)}}
  .scene[data-state="1"] .ping{opacity:1;transform:none}
  .scene[data-state="2"] .ping{opacity:0}

  .scaption{position:absolute;left:0;right:0;bottom:0;padding:12px 18px;text-align:center;
    background:linear-gradient(to top,rgba(255,255,255,.92),rgba(255,255,255,0));
    font-family:"Poppins",sans-serif;font-weight:500;color:var(--navy);
    font-size:clamp(13px,1.4vw,17px)}
  .scaption span{display:none}
  .scene[data-state="0"] .scaption .c0{display:inline}
  .scene[data-state="1"] .scaption .c1{display:inline}
  .scene[data-state="2"] .scaption .c2{display:inline}

  @media (max-width:900px){
    .duo,.placegrid{grid-template-columns:1fr}
    .acard{min-height:0}
    .chatbox{height:44vh}
    .scene{height:300px}
  }
  /* ===== Aero Club brand ===== */
  .mark{height:54px}
  .heromark{width:min(100%,300px);margin-bottom:30px}
  .heromark.small{width:min(100%,190px);margin-bottom:24px}
  .titleblock{display:flex;flex-direction:column;align-items:flex-start}
  .signin{margin-top:26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--faint);font-weight:600}
  .chip.good{color:var(--green);background:rgba(63,158,124,.10);border-color:rgba(63,158,124,.30)}
  .chip.good .cd{background:var(--green)}
  .chip.warn{color:var(--amber);background:rgba(201,138,46,.10);border-color:rgba(201,138,46,.30)}
  .chip.warn .cd{background:var(--amber)}
  .chip.bad{color:var(--blue);background:rgba(var(--accent-rgb),.09);border-color:rgba(var(--accent-rgb),.30)}
  .chip.bad .cd{background:var(--blue)}
  .rubric{margin-top:clamp(20px,3vh,30px)}
  .rubric .stmt{font-size:clamp(19px,2.2vw,27px);font-weight:600}
  .routestrip{display:flex;flex-direction:column;gap:20px}
  .rleg{background:var(--tint);border:1px solid var(--rule);border-radius:9px;padding:15px 17px 17px}
  .rlbl{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);display:block;margin-bottom:12px}
  .rnodes{display:flex;align-items:flex-start}
  .rnode{display:flex;flex-direction:column;align-items:center;gap:3px;flex:none;
    font-family:"Poppins",sans-serif;font-weight:600;font-size:clamp(12px,1.35vw,16px);
    color:var(--ink);text-align:center;min-width:62px}
  .rnode em{font-style:normal;font-size:10.5px;font-weight:500;color:var(--muted)}
  .rnode.hot{color:var(--blue)}
  .rnode.tbd,.rnode.tbd em{color:var(--faint)}
  .rline{flex:1;height:2px;background:var(--rule);margin-top:9px;min-width:14px;position:relative}
  .rline::after{content:"";position:absolute;right:-1px;top:-3px;
    border-left:6px solid var(--rule);border-top:4px solid transparent;border-bottom:4px solid transparent}
  .wxbox{background:var(--tint);border:1px solid var(--rule);border-radius:10px;
    padding:clamp(16px,2vw,24px);display:flex;flex-direction:column;gap:12px}
  .wxlbl{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
  .wxrow{display:flex;align-items:center;gap:13px}
  .wxn{font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(38px,5.4vw,68px);line-height:.95;letter-spacing:-.03em;color:var(--ink)}
  .wxn.alarm{color:var(--blue)}
  .wxu{font-size:clamp(11px,1.2vw,13.5px);font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--muted);line-height:1.25}
  /* route map slide */
  .maprow{display:grid;grid-template-columns:minmax(0,1fr) clamp(212px,19vw,286px);
    gap:clamp(16px,2.2vw,30px);
    align-items:center;max-width:var(--maxw);width:100%;margin:clamp(8px,1.4vh,16px) auto 0}
  .mapwrap{min-width:0}
  .mapwrap svg{display:block;width:100%;height:auto;max-height:56vh}
  .mapstats{display:flex;flex-direction:column;gap:clamp(11px,1.5vh,19px);flex:none}
  .ms{border-left:3px solid var(--blue);padding-left:13px}
  .ms .msv{display:block;font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(24px,2.9vw,40px);line-height:1;letter-spacing:-.025em;color:var(--ink);
    font-variant-numeric:tabular-nums}
  .ms .msl{display:block;margin-top:5px;font-size:clamp(11px,1.1vw,13px);font-weight:500;
    letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}
  .gsproof{margin-top:13px;font-size:clamp(12.5px,1.3vw,15px);line-height:1.45;color:var(--ink)}
  .gsproof b{color:var(--blue);font-weight:600}
  .gsproof span{color:var(--muted)}
  @media (max-width:900px){ .maprow{grid-template-columns:1fr}
    .mapstats{flex-direction:row;flex-wrap:wrap} }
  /* story slides: map + narrative */
  .storyrow{display:grid;grid-template-columns:minmax(0,50fr) minmax(0,50fr);
    gap:clamp(18px,2.6vw,38px);align-items:center;max-width:var(--maxw);width:100%;
    margin:clamp(10px,1.6vh,20px) auto 0}
  .storymap{min-width:0}
  .storymap svg{display:block;width:100%;height:auto;max-height:52vh}
  .storybody{min-width:0;display:flex;flex-direction:column;gap:clamp(11px,1.5vh,17px)}
  .stack.tight li{margin-top:clamp(9px,1.2vh,15px)}
  .stack.tight li:first-child{margin-top:0}
  .stack.tight .stmt{font-size:clamp(15px,1.55vw,20px)}
  .stack.tight .subline{font-size:clamp(12px,1.2vw,14.5px)}
  .wxinline .wxrow{display:flex;align-items:center;gap:11px}
  .wxinline .wxn{font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(30px,3.6vw,52px);line-height:.95;letter-spacing:-.03em;color:var(--ink)}
  .wxinline .wxn.alarm{color:var(--blue);margin-left:14px}
  .wxinline .wxu{font-size:clamp(10px,1vw,12px);font-weight:600;letter-spacing:.09em;
    text-transform:uppercase;color:var(--muted);line-height:1.25}
  .storybody .highlight{padding:clamp(12px,1.5vw,18px) clamp(14px,1.7vw,20px)}
  .storybody .hstmt{font-size:clamp(15px,1.6vw,21px)}
  .storybody .hsub{font-size:clamp(12px,1.2vw,14px)}
  @media (max-width:900px){ .storyrow{grid-template-columns:1fr} }
  /* about-me slide */
  .role{margin-top:clamp(10px,1.4vh,16px);font-size:clamp(16px,1.75vw,23px);
    font-weight:500;color:var(--muted);letter-spacing:-.005em}
  .biorow{display:grid;grid-template-columns:minmax(0,47fr) minmax(0,53fr);
    gap:clamp(24px,4vw,64px);align-items:center;max-width:var(--maxw);width:100%;margin:0 auto}
  .biocol{min-width:0}
  .biostats{flex-direction:row;gap:clamp(20px,2.8vw,42px);margin-top:clamp(20px,3vh,32px)}
  .biolist{min-width:0;margin-top:clamp(20px,3vh,32px)}
  .biolbl{display:block;font-size:10.5px;font-weight:700;letter-spacing:.16em;
    text-transform:uppercase;color:var(--muted);margin-bottom:clamp(12px,1.6vh,18px)}
  .biophoto{min-width:0}
  .biophoto img{width:100%;height:auto;display:block;border-radius:10px;
    box-shadow:0 18px 44px rgba(var(--ink-rgb),.20),0 4px 10px rgba(var(--ink-rgb),.10)}
  @media (max-width:900px){ .biorow{grid-template-columns:1fr;gap:26px} }
  /* trip map readout + draggable plane */
  .mapside{display:flex;flex-direction:column;gap:clamp(16px,2.4vh,26px);min-width:0}
  .readout{border-top:1px solid var(--rule);padding-top:clamp(13px,1.8vh,19px)}
  .rorow{display:flex;gap:clamp(16px,2.2vw,30px);align-items:flex-end}
  .ro{display:flex;flex-direction:column}
  .rov{font-family:"Poppins",sans-serif;font-weight:600;font-size:clamp(23px,2.7vw,38px);
    line-height:1;letter-spacing:-.025em;color:var(--ink);font-variant-numeric:tabular-nums;
    display:inline-block;min-width:6.4ch}
  .rov.accent{color:var(--blue)}
  .rol{margin-top:5px;font-size:clamp(10px,1vw,12px);font-weight:600;letter-spacing:.09em;
    text-transform:uppercase;color:var(--muted)}
  .spark{width:100%;height:clamp(38px,5.6vh,62px);margin-top:clamp(10px,1.4vh,15px);display:block}
  .roleg{margin-top:8px;font-size:clamp(11px,1.1vw,13px);font-weight:500;color:var(--muted)}
  #routeSvg{touch-action:none}
  .rofoot{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:8px}
  .rohint{font-size:clamp(9px,.85vw,10.5px);font-weight:600;letter-spacing:.1em;
    text-transform:uppercase;color:var(--faint);white-space:nowrap}
  .roleg{margin-top:0;font-variant-numeric:tabular-nums}
  /* METAR block */
  .metarbox{background:var(--tint);border:1px solid var(--rule);border-left:3px solid var(--blue);
    border-radius:8px;padding:clamp(12px,1.5vw,17px) clamp(13px,1.7vw,19px)}
  .metartxt{font-family:ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
    font-size:clamp(11px,1.18vw,14.5px);line-height:1.5;color:var(--muted);
    letter-spacing:-.01em;word-spacing:-.02em}
  .metartxt b{color:var(--blue);font-weight:700}
  .metarwhy{display:flex;flex-wrap:wrap;gap:6px 9px;margin-top:10px}
  .metarwhy span{font-size:clamp(10px,1.02vw,12.5px);font-weight:600;letter-spacing:.03em;
    color:var(--ink);background:#FFF;border:1px solid var(--rule);border-radius:99px;
    padding:3px 10px;white-space:nowrap}
  /* photo beside text */
  .photorow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(13px,1.8vw,22px);
    align-items:start}
  .photo{width:clamp(96px,11vw,158px);height:auto;border-radius:8px;display:block;
    border:1px solid var(--rule)}
  /* full-bleed photo slide */
  .slide.bleed{padding:0;justify-content:center}
  .slide.bleed .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
  .slide.bleed .bgshade{position:absolute;inset:0;z-index:1;
    background:linear-gradient(100deg,rgba(var(--ink-rgb),.90) 0%,rgba(var(--ink-rgb),.72) 46%,rgba(var(--ink-rgb),.30) 100%)}
  .slide.bleed .over{position:relative;z-index:2;padding:0 clamp(34px,6vw,104px)}
  .light,h2.light,.stack.light .stmt{color:#FFFFFF !important}
  .eyebrow.light{color:rgba(255,255,255,.72)}
  .stack.light .dot::before,.stack.light li::before{background:var(--blue)}
  .signin.light{color:rgba(255,255,255,.55)}
  .stage:has(.slide.bleed.active) .ctx{color:rgba(255,255,255,.55)}
  /* inline video */
  .vid{width:100%;display:block;border-radius:9px;background:var(--deep);
    max-height:52vh;object-fit:contain;border:1px solid var(--rule)}
  .vid.short{max-height:26vh}
  .vidcap{margin-top:9px;font-size:clamp(11px,1.1vw,13px);font-weight:600;
    letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
  .vid{max-width:min(100%,560px);margin-inline:auto}
  .vid.short{max-width:min(100%,420px);margin-inline:0}
  /* approach-chart readout */
  .apread{display:flex;align-items:flex-end;gap:clamp(16px,2.2vw,30px);
    margin-top:clamp(10px,1.4vh,15px);flex-wrap:wrap}
  .apread .rov{font-family:"Poppins",sans-serif;font-weight:600;
    font-size:clamp(20px,2.4vw,34px);line-height:1;letter-spacing:-.025em;color:var(--ink);
    font-variant-numeric:tabular-nums;display:inline-block;min-width:6.4ch}
  .apread .rov.accent{color:var(--blue)}
  .apread .rol{margin-top:4px;font-size:clamp(9px,.95vw,11.5px);font-weight:600;
    letter-spacing:.09em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
  .apread .ro{min-width:0}
  .apread .rol b{display:inline-block;min-width:2.9ch;text-align:right;
    font-variant-numeric:tabular-nums}
  .fuelgrp{min-width:11.5em}
  .aphint{font-size:clamp(10px,1vw,12px);font-weight:500;color:var(--faint);
    margin-left:auto;align-self:center;text-align:right;max-width:16em;line-height:1.35}
  .storymap svg{touch-action:none}
  .apread .ro.ghost .rov{color:var(--faint);
    -webkit-text-stroke:0;font-weight:600}
  .apread .ro.ghost .rol{color:var(--faint)}
  /* slide 6: two charts + narrative */
  .tworow{display:grid;grid-template-columns:minmax(0,36fr) minmax(0,21fr) minmax(0,43fr);
    gap:clamp(14px,1.9vw,28px);align-items:start;max-width:var(--maxw);width:100%;
    margin:clamp(8px,1.2vh,15px) auto 0}
  .chartcol{min-width:0;display:flex;flex-direction:column}
  /* equal-height chart boxes so both readouts sit on the same baseline */
  .chartbox{height:clamp(250px,40vh,382px);display:flex;align-items:center;justify-content:center;
    background:var(--surface);border-radius:6px;overflow:hidden}
  .chartbox svg{max-height:100%;max-width:100%;width:auto;height:auto;display:block}
  .charttitle{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);margin-bottom:7px;line-height:1.35;
    height:1.35em;display:grid;align-items:end}
  .tworow .apread{gap:clamp(11px,1.5vw,22px);margin-top:11px}
  .tworow .apread .rov{font-size:clamp(17px,1.9vw,27px)}
  .tworow .storybody{gap:clamp(8px,1.1vh,13px)}
  .metarbox.compact{padding:clamp(9px,1.1vw,13px) clamp(11px,1.3vw,15px)}
  .metarbox.compact .metartxt{font-size:clamp(9.5px,1vw,12px);line-height:1.45}
  .chartnote{margin-top:9px;font-size:clamp(10.5px,1.05vw,12.5px);line-height:1.4;color:var(--muted)}
  .chartnote em{font-style:normal;color:var(--blue);font-weight:700}
  @media (max-width:1000px){ .tworow{grid-template-columns:1fr} }
  /* overview slide: bullets + snapshot stack */
  .ovrow{display:grid;grid-template-columns:minmax(0,46fr) minmax(0,54fr);
    gap:clamp(20px,3vw,52px);align-items:center;max-width:var(--maxw);width:100%;margin:0 auto}
  .photostack{position:relative;height:clamp(340px,60vh,560px);min-width:0}
  .photostack .ps{position:absolute;height:auto;
    border:9px solid #fff;border-radius:3px;
    box-shadow:0 14px 34px rgba(var(--ink-rgb),.22),0 3px 8px rgba(var(--ink-rgb),.12);
    transition:transform .28s cubic-bezier(.22,.9,.3,1), box-shadow .28s ease}
  .photostack .p1{width:clamp(148px,20vw,250px);left:0%;top:10%;transform:rotate(-6deg);z-index:1}
  .photostack .p2{width:clamp(140px,19vw,236px);left:25%;top:30%;transform:rotate(4deg);z-index:2}
  .photostack .p3{width:clamp(210px,28vw,352px);left:44%;top:2%;transform:rotate(-2.5deg);z-index:3}
  .photostack .ps:hover{transform:rotate(0deg) scale(1.25);z-index:9;
    box-shadow:0 26px 60px rgba(var(--ink-rgb),.30),0 6px 14px rgba(var(--ink-rgb),.16)}
  @media (max-width:900px){ .ovrow{grid-template-columns:1fr} }
  .charttitle em{font-style:normal;color:var(--blue);font-weight:700}
  /* click-to-zoom photo + lightbox */
  .photozoom{position:relative;padding:0;border:0;background:none;cursor:zoom-in;display:block;
    line-height:0;border-radius:8px}
  .photozoom .photo{transition:transform .22s ease, box-shadow .22s ease}
  .photozoom:hover .photo{transform:scale(1.03);box-shadow:0 10px 26px rgba(var(--ink-rgb),.20)}
  .zbadge{position:absolute;right:6px;bottom:6px;display:inline-flex;align-items:center;gap:4px;
    background:rgba(var(--ink-rgb),.78);color:#fff;font-family:Inter,sans-serif;font-size:10px;
    font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:4px 7px;border-radius:99px;
    line-height:1;pointer-events:none}
  .lb[hidden]{display:none !important}
  .lb{position:fixed;inset:0;z-index:99;display:flex;align-items:center;justify-content:center;
    background:rgba(var(--ink-rgb),.93);opacity:0;pointer-events:none;
    transition:opacity .22s ease;cursor:zoom-out;padding:4vh 4vw}
  .lb.on{opacity:1;pointer-events:auto}
  .lb figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:16px;max-height:92vh}
  .lb img{max-height:78vh;max-width:92vw;width:auto;border-radius:8px;display:block;
    box-shadow:0 30px 80px rgba(0,0,0,.55);transform:scale(.96);transition:transform .28s cubic-bezier(.2,.9,.3,1)}
  .lb.on img{transform:scale(1)}
  .lb figcaption{font-family:Inter,sans-serif;font-size:clamp(13px,1.4vw,17px);color:rgba(255,255,255,.9);
    text-align:center;line-height:1.5}
  .lb figcaption b{color:#fff;font-weight:600}
  .lb figcaption span{display:block;margin-top:0;font-size:11px;letter-spacing:.1em;
    text-transform:uppercase;color:rgba(255,255,255,.45)}
  /* fuel gauge on the diversion map */
  .apread.wide{flex-wrap:wrap;row-gap:12px}
  .fuelgrp{display:flex;align-items:flex-end;gap:10px}
  .tanks{display:flex;gap:4px;align-items:flex-end}
  .tank{width:13px;height:38px;border:1.6px solid var(--faint);border-radius:3px;
    display:flex;align-items:flex-end;overflow:hidden;background:#fff}
  .tank i{display:block;width:100%;height:100%;background:var(--ink);opacity:.42;
    transition:height .18s linear, background .3s ease}
  .tank i.low{background:var(--blue);opacity:1}
  .apread .rol b{color:var(--ink);font-weight:700}
  .fuelgrp{position:relative}
  .projtag{position:absolute;left:0;top:-15px;font-size:9.5px;font-weight:700;
    letter-spacing:.14em;text-transform:uppercase;color:var(--blue);white-space:nowrap;
    opacity:0;transition:opacity .18s ease;pointer-events:none}
  .apread.projected .projtag{opacity:1}
  .apread.projected .rov[data-f=fuel]{color:var(--blue)}
  .apread .rov[data-f=fuel]{min-width:5.2ch}

/* ---- trip map: rail button + pop-up overlay ---- */
.rail .hint.tripbtn[hidden]{display:none !important}
.rail .hint.tripbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line,var(--rule));
  background:#FFFFFF;border-radius:100px;padding:5px 12px 5px 10px;cursor:pointer;
  font-family:inherit;font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--muted,var(--muted));transition:color .16s ease,border-color .16s ease,box-shadow .16s ease}
.rail .hint.tripbtn svg{opacity:.75;transition:opacity .16s ease,transform .16s ease}
.rail .hint.tripbtn:hover{color:var(--blue);border-color:var(--blue);box-shadow:0 1px 8px rgba(var(--accent-rgb),.14)}
.rail .hint.tripbtn:hover svg{opacity:1;transform:translateY(-1px)}
.rail .hint.tripbtn:active{transform:translateY(1px)}

.tripov[hidden]{display:none !important}
.tripov{position:fixed;inset:0;z-index:97;display:flex;align-items:center;justify-content:center;
  background:rgba(var(--ink-rgb),.55);backdrop-filter:blur(3px);padding:2.4vh 2vw;
  opacity:0;pointer-events:none;transition:opacity .2s ease}
.tripov.on{opacity:1;pointer-events:auto}
.tripbox{width:min(1500px,96vw);max-height:94vh;background:#FFFFFF;border-radius:12px;
  box-shadow:0 24px 70px rgba(0,0,0,.34);display:flex;flex-direction:column;overflow:hidden;
  transform:translateY(10px) scale(.99);transition:transform .22s cubic-bezier(.2,.7,.3,1)}
.tripov.on .tripbox{transform:none}
.triphead{display:flex;align-items:baseline;gap:14px;padding:15px 20px 11px;border-bottom:1px solid var(--page)}
.tripttl{font-family:Poppins,sans-serif;font-weight:600;font-size:15px;color:var(--ink,var(--ink))}
.triphint{font-size:11px;color:var(--faint,var(--faint));letter-spacing:.04em}
.tripx{margin-left:auto;border:0;background:none;font-size:26px;line-height:1;color:var(--faint,var(--faint));
  cursor:pointer;padding:0 2px;transition:color .16s ease}
.tripx:hover{color:var(--blue)}
.tripslot{padding:6px 20px 20px;overflow:auto}
.tripslot .maprow{grid-template-columns:minmax(0,1fr) clamp(230px,20vw,310px)}
.tripslot .mapwrap{max-height:76vh}
.tripslot .mapwrap svg{max-height:76vh}

/* ---- slide 2: two-photo stack (Angel Flight + photography) ---- */
.photostack.bio{height:clamp(320px,56vh,520px)}
.biorow{max-width:min(1580px,92vw);grid-template-columns:minmax(0,48fr) minmax(0,52fr)}
.biostats{gap:clamp(12px,1.8vw,30px)}
.photostack.bio{height:clamp(340px,60vh,600px)}
/* Rio Vista fills the column, straight and dominant */
.photostack.bio .b2{width:calc(100% - 46px);left:-2%;top:19%;transform:none;z-index:1}
/* Angel Flight stays small, tilted, overhanging the bottom-right corner */
.photostack.bio .b1{width:clamp(170px,15vw,270px);left:64%;top:75%;transform:rotate(-5deg);z-index:3}
/* slide-3 style pop on hover, scaled to each photo's size */
.photostack.bio .b2:hover{transform:scale(1.06);z-index:9}
.photostack.bio .b1:hover{transform:rotate(0deg) scale(1.35);z-index:9}
.newtag{display:inline-block;vertical-align:middle;margin-left:8px;padding:2px 8px;border-radius:99px;
  background:rgba(var(--accent-rgb),.10);color:var(--blue);font-family:Inter,sans-serif;font-size:10px;
  font-weight:700;letter-spacing:.11em;text-transform:uppercase;line-height:1.5}
/* four stat tiles on the bio slide: keep every label on one line */
.biostats{gap:clamp(14px,2vw,30px)}
.biostats .msl{white-space:nowrap;font-size:clamp(9.5px,.78vw,11px)}

/* ---- ADM 101 checklist (slide 5) ---- */
.admbox{margin-top:clamp(16px,2.4vh,26px);border-top:1px solid var(--rule);
  padding-top:clamp(13px,1.8vh,18px)}
.admlbl{display:inline-block;font-family:Poppins,sans-serif;font-size:10.5px;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;color:var(--blue);margin-bottom:clamp(10px,1.5vh,15px)}
.admgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(9px,1.3vh,14px) clamp(16px,2vw,30px)}
.admi{position:relative;padding-left:20px;font-size:clamp(13px,1.25vw,17px);font-weight:500;
  line-height:1.3;color:var(--ink)}
.admi::before{content:"";position:absolute;left:0;top:.36em;width:11px;height:6px;
  border-left:2px solid var(--blue);border-bottom:2px solid var(--blue);
  transform:rotate(-45deg);border-radius:1px}
@media (max-width:900px){ .admgrid{grid-template-columns:1fr} }
@media (max-width:1500px){
  .biostats{gap:clamp(10px,1.4vw,24px)}
  .biostats .msl{font-size:9px;letter-spacing:.05em}
}
/* statements with no bullet graphic */
.stack.bare li{padding-left:0}
.stack.bare li::before{content:none}
/* press headline quoted under a statement */
.stack .subline.hline{font-style:italic;color:var(--ink);opacity:.82;
  border-left:2px solid var(--blue);padding-left:11px;margin-top:9px}

/* ---- cover / holding slide ---- */
.bgshade.cover{background:linear-gradient(180deg,rgba(var(--ink-rgb),.62) 0%,rgba(var(--ink-rgb),.78) 100%)}
.coverblock{display:flex;flex-direction:column;align-items:center;text-align:center;width:100%}
.coverplate{background:#FFFFFF;border-radius:14px;padding:clamp(20px,2.6vw,32px) clamp(28px,3.6vw,46px);
  box-shadow:0 18px 50px rgba(0,0,0,.34)}
.coverplate img{display:block;width:min(64vw,340px);height:auto}
h2.covertitle{margin-top:clamp(26px,3.6vh,42px);letter-spacing:-.02em}
.coverdate{margin-top:10px;font-size:clamp(13px,1.4vw,18px);font-weight:500;color:rgba(255,255,255,.78)}
.coverblock .signin{margin-top:clamp(22px,3vh,34px)}

/* ---- meter.me web theme (from deck.skill themes/meter-me.json, projector-safe accent) ---- */
:root{
  --page:#EEF2F7; --card:#FFFFFF;
  --ink:#31334B; --ink-rgb:49,51,75;
  --blue:#3A83B4; --accent-rgb:58,131,180;
  --muted:#8A90A6; --faint:#AEB4C6;
  --rule:#E3E8F0; --tint:#F4F7FB;
  --surface:#F7F9FC; --deep:#14161F;
  /* brand Avenir via Typekit (brand.css --mm-font); deck display/body both ride it */
  --font-display:'avenir-lt-pro','Avenir Next','Avenir','Nunito Sans','Segoe UI',system-ui,-apple-system,sans-serif;
  --font-body:'avenir-lt-pro','Avenir Next','Avenir','Nunito Sans','Segoe UI',system-ui,-apple-system,sans-serif;
}

/* ---- training additions (web-hosted deck, not single-file) ---- */
html.mm-locked .stage,html.mm-locked .rail{visibility:hidden}
#mmGate{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  background:var(--deep);font-family:var(--font-body)}
#mmGate[hidden]{display:none !important}
#mmGate .gcard{background:var(--card);border-radius:16px;padding:40px 44px;width:380px;max-width:90vw;
  text-align:center;box-shadow:0 20px 60px rgba(0,0,0,.35)}
#mmGate .gbrand{font-size:22px;font-weight:800;color:var(--ink)}
#mmGate .gbrand span{color:var(--blue)}
#mmGate .gsub{font-size:14px;color:var(--muted);margin:8px 0 20px}
#mmGate .gerr{color:#DC2626;font-size:13px;font-weight:600;margin-top:12px;min-height:16px}
#mmGate .gwait{font-size:13px;color:var(--muted)}
.trainhome{position:fixed;top:14px;left:16px;z-index:40;font-family:var(--font-body);font-size:12.5px;
  font-weight:600;color:var(--muted);text-decoration:none;background:rgba(255,255,255,.82);
  border:1px solid var(--rule);border-radius:999px;padding:6px 12px}
.trainhome:hover{color:var(--blue);border-color:var(--blue)}

/* ================= mm2 design layer (ported from the approved Claude Design canvas) ================
   Chapter decks v2: navy covers/closers, bone content slides, photo panels with
   gradient labels, ask-the-room chips. Slides opt in with <section class="slide mm2">. */
.slide.mm2{background:transparent}
body.mm2deck .mark{display:none}
.mm2s{position:absolute;inset:0;display:flex;flex-direction:column;padding:3.4vw 4.5vw 84px;background:#F7F4E8}
.mm2s.white{background:#FFFFFF}
.mm2s.navy{background:#2F334E}
.mm2-head{display:flex;align-items:baseline;justify-content:space-between;gap:2vw;flex:0 0 auto}
.mm2-head .mm2-t{max-width:82%}
.mm2-kick{font-size:clamp(10px,0.95vw,14px);font-weight:800;letter-spacing:0.26em;color:#3A83B4;margin-bottom:0.8vw;text-transform:uppercase}
.navy .mm2-kick{color:#BCE5FF}
.mm2-t{font-family:var(--font-display);font-size:clamp(26px,3.7vw,54px);font-weight:900;letter-spacing:-0.015em;color:#2F334E;line-height:1.02;margin:0}
.navy .mm2-t{color:#FFFFFF}
.mm2-wm{font-size:clamp(12px,1.1vw,16px);font-weight:700;color:#8A90A6;white-space:nowrap}
.mm2-wm b{color:#2F334E;font-weight:700}
.mm2-wm span{color:#4898C8}
.navy .mm2-wm b{color:#FFFFFF}
.mm2-grid{flex:1 1 auto;min-height:0;display:grid;grid-auto-rows:minmax(0,1fr);gap:1.6vw;margin-top:2.2vw}
.mm2-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mm2-grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mm2-ph{position:relative;border-radius:10px;overflow:hidden;min-height:0}
.mm2-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.mm2-ph .plb{position:absolute;left:0;right:0;bottom:0;padding:2vw 1.3vw 1vw;
  background:linear-gradient(to top,rgba(20,22,31,.72),rgba(20,22,31,0))}
.mm2-ph .plb span{font-size:clamp(10px,0.9vw,13px);font-weight:800;letter-spacing:0.2em;color:#FFFFFF}
.mm2-lede{flex:0 0 auto;margin-top:1.7vw;font-size:clamp(14px,1.45vw,21px);font-weight:600;color:#6B7280}
.navy .mm2-lede{color:#AEB4C6}
.mm2-ask{margin-top:1.6vw;display:flex;align-items:center;gap:1vw;flex:0 0 auto}
.mm2-ask .chip{display:inline-flex;align-items:center;gap:0.6vw;border:1.5px solid #3A83B4;border-radius:999px;padding:0.55vw 1.2vw;white-space:nowrap}
.mm2-ask .chip svg{width:clamp(12px,1.05vw,16px);height:clamp(12px,1.05vw,16px)}
.mm2-ask .chip b{font-size:clamp(10px,0.95vw,14px);font-weight:800;letter-spacing:0.06em;color:#3A83B4}
.mm2-ask .q{font-size:clamp(13px,1.15vw,16px);font-weight:600;color:#6B7280}
/* cover */
.mm2-cover{position:absolute;inset:0;background:#2F334E;display:flex;overflow:hidden}
.mm2-cover .col{position:relative;flex:1 1 auto;display:flex;flex-direction:column;padding:3.4vw 4.5vw 84px;z-index:2}
.mm2-cover .brandrow{display:flex;align-items:baseline;gap:1.3vw}
.mm2-cover .brand{font-size:clamp(20px,2.2vw,32px);font-weight:900;letter-spacing:-0.01em;color:#FFFFFF}
.mm2-cover .brand span{color:#4898C8}
.mm2-cover .brandtag{font-size:clamp(9px,0.85vw,13px);font-weight:700;letter-spacing:0.28em;color:#8A90A6}
.mm2-cover .grow{flex:1 1 auto}
.mm2-cover .num{font-family:var(--font-display);font-size:clamp(90px,12vw,190px);font-weight:900;line-height:0.8;color:rgba(188,229,255,0.10);letter-spacing:-0.04em;margin-left:-0.5vw}
.mm2-cover .titleblock2{margin-top:clamp(-70px,-6.5vw,-46px);position:relative}
.mm2-cover .ck{font-size:clamp(10px,1vw,15px);font-weight:800;letter-spacing:0.26em;color:#BCE5FF;margin-bottom:1vw}
.mm2-cover h1{font-family:var(--font-display);font-size:clamp(30px,4.2vw,62px);font-weight:900;line-height:1.04;letter-spacing:-0.015em;color:#FFFFFF;max-width:52vw;margin:0}
.mm2-cover h1 span{color:#4898C8}
.mm2-cover .sub{margin-top:1.5vw;font-size:clamp(14px,1.4vw,20px);font-weight:600;color:#AEB4C6;max-width:38vw}
.mm2-cover .side{position:relative;flex:0 0 33%;border-left:1px solid rgba(188,229,255,0.18)}
.mm2-cover .side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:82% center;filter:brightness(0.72)}
.mm2-contour{position:absolute;left:-3vw;bottom:-5vw;width:52vw;opacity:0.14;z-index:1}
/* copy stack (owner slide) */
.mm2-bigline{font-family:var(--font-display);font-size:clamp(19px,2.2vw,32px);font-weight:900;color:#2F334E;margin:0 0 1.3vw}
.mm2-copycol{display:flex;flex-direction:column;justify-content:center}
.mm2-copycol .mm2-lede + .mm2-bigline{margin-top:1.8vw}
/* quotes (navy) */
.mm2-qgrid{flex:1 1 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3vw;margin-top:2.8vw;align-items:start;align-content:center}
.mm2-q .mark2{font-family:var(--font-display);font-size:clamp(38px,4.6vw,66px);font-weight:900;color:rgba(188,229,255,0.25);line-height:0.6;margin-bottom:1.2vw}
.mm2-q .qt{font-size:clamp(14px,1.5vw,22px);font-weight:700;color:#FFFFFF;line-height:1.45}
.mm2-q .qa{font-size:clamp(11px,1vw,14px);font-weight:700;color:#8A90A6;margin-top:1.2vw}
/* closer */
.mm2-closer{position:absolute;inset:0;background:#2F334E;display:flex;align-items:center;justify-content:center;overflow:hidden}
.mm2-closer .inner{text-align:center;max-width:62vw;position:relative;z-index:2}
.mm2-closer .big{font-family:var(--font-display);font-size:clamp(30px,3.9vw,56px);font-weight:900;color:#FFFFFF;line-height:1.15;letter-spacing:-0.015em}
.mm2-closer .next{margin-top:2vw;font-size:clamp(10px,1.05vw,15px);font-weight:800;letter-spacing:0.24em;color:#BCE5FF}

/* mm2 additions for chapter 2 */
.mm2-ph.fit{background:#FFFFFF;border:1px solid rgba(47,51,78,0.08)}
.mm2-ph.fit img{object-fit:contain;padding:1.2vw}
.mm2-ph.fit .plb{background:none}
.mm2-ph.fit .plb span{color:#6B7280}
.mm2-rule{margin:3vw auto 0;max-width:56vw;background:rgba(188,229,255,0.07);border:1px solid rgba(188,229,255,0.22);border-radius:14px;padding:2.2vw 2.6vw;text-align:center}
.mm2-rule .rt{font-family:var(--font-display);font-size:clamp(18px,2.1vw,31px);font-weight:800;line-height:1.5;color:#FFFFFF}
.mm2-rule .rt b{color:#BCE5FF;font-weight:900}
.mm2-rulechips{display:flex;gap:1vw;justify-content:center;margin-top:1.6vw;flex-wrap:wrap}
.mm2-rulechips span{border:1px solid rgba(188,229,255,0.35);border-radius:999px;padding:0.45vw 1.1vw;font-size:clamp(10px,0.95vw,14px);font-weight:700;letter-spacing:0.06em;color:#BCE5FF}
.mm2-centercol{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:center}
.mm2-foot{flex:0 0 auto;margin-top:1.6vw;text-align:center;font-size:clamp(12px,1.1vw,16px);font-weight:600;color:#8A90A6}

/* mm2 chrome consolidation: one identity line, bottom left */
body.mm2deck .trainhome{display:none}
body.mm2deck .ctx{display:none}
.railhome{display:inline-flex;align-items:center;margin-right:10px;color:#8A90A6;vertical-align:-3px}
.railhome svg{width:15px;height:15px}
.railhome:hover{color:#3A83B4}

/* ch2 rework: floating sensor words, device composite, x-ray scene */
.mm2s{overflow:hidden}
.mm2s > *{position:relative;z-index:1}
.mm2-float{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.mm2-float span{position:absolute;font-family:var(--font-display);font-weight:900;font-size:clamp(44px,6.5vw,100px);color:rgba(47,51,78,0.06);white-space:nowrap;animation:mmdrift var(--dur,26s) ease-in-out infinite alternate}
@keyframes mmdrift{from{transform:translate(0,0)}to{transform:translate(2.6vw,-1.8vw)}}
.mm2-ph.pt img{object-position:center top}
.mm2-devices{position:relative;min-height:0}
.mm2-laptop{position:absolute;right:0;top:4%;width:88%}
.mm2-laptop .scr{border:9px solid #1b1e2e;border-bottom-width:12px;border-radius:12px 12px 4px 4px;background:#fff;overflow:hidden}
.mm2-laptop .scr img{width:100%;display:block}
.mm2-laptop .base{height:11px;background:linear-gradient(#dde1e9,#a9afbf);border-radius:0 0 12px 12px;margin:0 -5%}
.mm2-phone{position:absolute;left:0;bottom:2%;width:31%;border:7px solid #1b1e2e;border-radius:24px;overflow:hidden;background:#fff;box-shadow:0 16px 38px rgba(20,22,31,0.35)}
.mm2-phone img{width:100%;display:block}
.mm2-scene{position:relative;flex:1 1 auto;min-height:0;border-radius:10px;overflow:hidden;background:#0D1B36}
.mm2-scene img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.mm2-scene .rulecard{position:absolute;left:1.8vw;top:1.8vw;max-width:27vw;background:rgba(35,38,60,0.85);border:1px solid rgba(188,229,255,0.25);border-radius:12px;padding:1.3vw 1.7vw}
.mm2-scene .rulecard .rt{font-family:var(--font-display);font-size:clamp(13px,1.35vw,20px);font-weight:800;line-height:1.5;color:#FFFFFF}
.mm2-scene .rulecard .rt b{color:#BCE5FF;font-weight:900}
.mm2-closer .bgart{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0.22;z-index:1}

/* ch2 finish: bare product panel, animated x-ray cycle, support icons, platform chips */
.mm2-ph.bare{background:none;border:none;border-radius:0}
.mm2-ph.bare img{object-fit:contain}
.mm2-ph.bare .plb{background:none}
.mm2-ph.bare .plb span{color:#6B7280}
.mm2-scene{display:flex;justify-content:center}
.mm2-xwrap{position:relative;height:100%;aspect-ratio:1600/1067;max-width:100%;margin:0 auto}
.mm2-xwrap > img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.xov{position:absolute;background:#0D1B36;opacity:0.9}
.xov.tankdrop{left:76.9%;width:9.8%;top:13.9%;height:0;animation:xtank 20s linear infinite}
.xov.welldrop{left:14.0%;width:2.9%;top:80.4%;height:0;animation:xwell 20s linear infinite}
@keyframes xtank{0%{height:0}22%{height:5.6%}40%{height:5.6%}70%{height:0}100%{height:0}}
@keyframes xwell{0%,32%{height:0}56%{height:5%}76%{height:5%}96%{height:0}100%{height:0}}
.xflow{position:absolute;inset:0;width:100%;height:100%}
.xflow polyline{fill:none;stroke:#BCE5FF;stroke-width:7;stroke-linecap:round;stroke-dasharray:30 46;opacity:0;animation:xdash 1.1s linear infinite,xgate 20s linear infinite}
@keyframes xdash{to{stroke-dashoffset:-76}}
@keyframes xgate{0%,30%{opacity:0}36%{opacity:0.95}64%{opacity:0.95}72%,100%{opacity:0}}
.mm2-scene .rulecard{animation:xcard 20s linear infinite}
@keyframes xcard{0%,18%{box-shadow:none}23%,29%{box-shadow:0 0 0 2px rgba(188,229,255,0.85)}35%,100%{box-shadow:none}}
@media (prefers-reduced-motion:reduce){.xov,.xflow polyline,.mm2-scene .rulecard{animation:none}}
.mm2-q .ic{height:clamp(40px,4.6vw,66px);display:flex;align-items:center;margin-bottom:1.2vw}
.mm2-q .ic svg,.mm2-q .ic img{height:100%;width:auto}
.mm2-q .ic img{border-radius:50%}
.mm2-closer .pillars,.mm2-cover .pillars{margin-top:2.4vw;display:flex;gap:1vw;justify-content:center;flex-wrap:wrap}
.mm2-closer .pillars span,.mm2-cover .pillars span{border:1px solid rgba(188,229,255,0.35);border-radius:999px;padding:0.5vw 1.2vw;font-size:clamp(10px,1vw,15px);font-weight:800;letter-spacing:0.1em;color:#BCE5FF}

/* real water animation: drawn water inside empty vessels */
.xwater{position:absolute;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;background:rgba(11,22,45,0.55)}
.xwater .fill{width:100%;background:linear-gradient(180deg,#9FD1F2 0%,#5E9BD8 18%,#4F8FD4 100%);border-top:2px solid #C9E6FA;height:60%}
.xwater.tank .fill{animation:wtank 20s ease-in-out infinite}
.xwater.well .fill{animation:wwell 20s ease-in-out infinite}
@keyframes wtank{0%{height:62%}22%{height:34%}32%{height:34%}68%{height:80%}100%{height:62%}}
@keyframes wwell{0%,30%{height:26%}55%{height:14%}75%{height:14%}96%{height:26%}100%{height:26%}}
@media (prefers-reduced-motion:reduce){.xwater .fill{animation:none}}

/* toolbag: truck + revealed tool sections */
.toolwrap{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:0.62fr 2fr;gap:1.6vw;margin-top:1.6vw}
.toolcol{display:flex;flex-direction:column;min-height:0;gap:1.4vw}
.toolsec{background:#FFFFFF;border:1px solid rgba(47,51,78,0.08);border-radius:12px;padding:1vw 1.2vw;flex:1 1 auto;min-height:0}
.toolsec.step.on{display:block;animation:pop .3s ease}
.toolsec .tlbl{font-size:clamp(10px,0.95vw,14px);font-weight:800;letter-spacing:0.22em;color:#3A83B4;margin-bottom:0.7vw}
.toolsec .tlbl span{color:#8A90A6;font-weight:700;letter-spacing:0.04em;text-transform:none;margin-left:0.8vw}
.tgrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0.4vw 0.8vw}
.tgrid.c10{grid-template-columns:repeat(5,minmax(0,1fr))}
.titem{display:flex;flex-direction:column;align-items:center;text-align:center;gap:0.2vw}
.titem img{width:100%;max-width:clamp(48px,5.6vw,84px);aspect-ratio:1;object-fit:contain}
.titem span{font-size:clamp(9px,0.78vw,12px);font-weight:700;color:#2F334E;line-height:1.15}

/* ch3 exercise framing */
.tlbl2{font-size:clamp(10px,0.95vw,14px);font-weight:800;letter-spacing:0.24em;color:#3A83B4}
.okell{position:absolute;inset:0;overflow:hidden}
.okell .bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.okell .scrim{position:absolute;inset:0;background:linear-gradient(100deg,rgba(24,27,44,0.87) 0%,rgba(24,27,44,0.62) 46%,rgba(24,27,44,0.12) 100%)}
.okell-inner{position:absolute;left:4.5vw;top:3.4vw;max-width:44vw}
.oksteps{margin:2vw 0 0;padding:0;list-style:none;counter-reset:ok}
.oksteps li{counter-increment:ok;display:flex;align-items:baseline;gap:1vw;font-family:var(--font-display);font-size:clamp(16px,1.9vw,28px);font-weight:800;color:#FFFFFF;margin-bottom:1.2vw}
.oksteps li::before{content:counter(ok);flex:0 0 auto;width:1.9em;height:1.9em;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid #BCE5FF;border-radius:50%;font-size:0.62em;color:#BCE5FF;font-weight:800;transform:translateY(-0.15em)}
.okell-laptop{position:absolute;right:3vw;bottom:70px;width:30vw}
