/* Tinyslide theme: warm paper + deep navy + candle gold. Follows the device's light/dark setting. */
:root{
  --bg:#faf6ef; --bg2:#f3ecdf; --surface:#ffffff; --ink:#1d2b40; --muted:#667087; --line:#e6ddcb;
  --primary:#25406b; --primary-hover:#1c3355; --on-primary:#ffffff;
  --accent:#c98d2b; --accent-soft:#f8ecd3; --accent-ink:#7a5212;
  --ok:#e5f2e9; --ok-ink:#1f6b3a; --warn:#fcefd0; --warn-ink:#80550a; --bad:#fbe4df; --bad-ink:#9d2a1a;
  --shadow:0 1px 2px rgba(29,43,64,.06),0 10px 30px rgba(29,43,64,.09);
  --radius:18px;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0e1523; --bg2:#121c2f; --surface:#17223a; --ink:#edf0f6; --muted:#9ba8be; --line:#26334d;
    --primary:#86abe8; --primary-hover:#a3c0f0; --on-primary:#0e1523;
    --accent:#e4b058; --accent-soft:#2c2513; --accent-ink:#f0c978;
    --ok:#15301f; --ok-ink:#8fd6a5; --warn:#33290f; --warn-ink:#f0c565; --bad:#3a1b18; --bad-ink:#f3a89d;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.35);
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.5}
a{color:var(--primary)}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.01em;margin:0}

/* ---------- site chrome ---------- */
.page{min-height:100vh;background:
  radial-gradient(900px 380px at 50% -120px,var(--accent-soft),transparent 70%),var(--bg)}
.wrap{max-width:780px;margin:0 auto;padding:0 20px 56px}
.top{display:flex;align-items:center;gap:10px;padding:22px 0 8px}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:22px;font-weight:600;color:var(--ink);text-decoration:none}
.brand svg{width:34px;height:34px;flex:none}
.hero{text-align:center;padding:34px 0 12px}
.hero h1{font-size:clamp(30px,6vw,46px);line-height:1.12}
.hero p{color:var(--muted);font-size:clamp(16px,2.6vw,19px);max-width:540px;margin:14px auto 0}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0 8px;padding:0;list-style:none;counter-reset:s}
.steps li{text-align:left;counter-increment:s;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 14px 14px 52px;position:relative;font-size:14px;color:var(--muted)}
.steps li b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
.steps li::before{content:counter(s);position:absolute;left:14px;top:14px;width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent-ink);font-weight:700;display:grid;place-items:center;font-family:var(--serif)}
@media(max-width:600px){.steps{grid-template-columns:1fr}}

/* ---------- cards & buttons ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin:18px 0}
.panel{display:none}
.drop{display:block;border:2px dashed var(--line);border-radius:14px;padding:34px 18px;text-align:center;cursor:pointer;transition:.15s;background:var(--bg)}
.drop:hover,.drop.over{border-color:var(--accent);background:var(--accent-soft)}
.drop input{display:none}
.drop .ico{width:46px;height:46px;margin:0 auto 8px;color:var(--accent)}
.drop strong{display:block;font-family:var(--serif);font-size:20px}
.drop span{color:var(--muted);font-size:14px}
#fname{margin:10px 0 0;font-size:14px;color:var(--ink);min-height:1.2em;word-break:break-word}
.row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:16px}
button,.btn{font:inherit;font-weight:600;border:0;border-radius:12px;padding:12px 20px;cursor:pointer;background:var(--primary);color:var(--on-primary);transition:.12s}
button:hover{background:var(--primary-hover)}
button:active{transform:translateY(1px)}
button:disabled{opacity:.55;cursor:wait}
button.alt{background:transparent;color:var(--primary);box-shadow:inset 0 0 0 1.5px var(--line)}
button.alt:hover{box-shadow:inset 0 0 0 1.5px var(--primary);background:transparent}
button.small{padding:7px 12px;font-size:13px;border-radius:9px}
.muted,.sub{color:var(--muted)}
#msg{margin:14px 0 0;color:var(--muted);text-align:center;font-size:15px}
#err{color:var(--bad-ink);text-align:center;margin:8px 0 0;font-weight:600}
progress{display:block;width:100%;height:10px;margin-top:14px;border:0;border-radius:99px;overflow:hidden;background:var(--bg2);accent-color:var(--accent)}
progress::-webkit-progress-bar{background:var(--bg2)}
progress::-webkit-progress-value{background:var(--accent);border-radius:99px}
progress::-moz-progress-bar{background:var(--accent)}
details{margin-top:16px;font-size:14px;color:var(--muted)}
summary{cursor:pointer;font-weight:600;color:var(--primary)}
details p{margin:8px 0 0}
.note{background:var(--warn);color:var(--warn-ink);border-radius:12px;padding:12px 14px;margin:14px 0 0;font-size:14px;display:none}

/* ---------- slide grid & fonts ---------- */
.head-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:14px}
.head-row h2{font-size:24px}
#grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
#grid a{position:relative;display:block;border-radius:10px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.15);aspect-ratio:16/9;background:var(--bg2)}
#grid img{width:100%;height:100%;object-fit:cover;display:block}
#grid span{position:absolute;left:6px;bottom:6px;background:rgba(14,21,35,.75);color:#fff;font-size:11px;font-weight:700;padding:1px 7px;border-radius:99px}
.fonts{list-style:none;padding:0;margin:8px 0}
.fonts li{padding:6px 11px;border-radius:9px;margin:4px 0;font-size:14px}
.ok{background:var(--ok);color:var(--ok-ink)}.substituted{background:var(--warn);color:var(--warn-ink)}.missing{background:var(--bad);color:var(--bad-ink)}
#warn{display:none;background:var(--warn);color:var(--warn-ink);border-radius:12px;padding:14px;margin:12px 0;font-size:14px}
#warn input{margin:8px 0}

/* ---------- share panel ---------- */
.share{text-align:center}
.share .label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.codebig{font-family:var(--serif);font-size:clamp(40px,10vw,64px);font-weight:700;color:var(--primary);margin:4px 0 14px;letter-spacing:.02em}
.qrbox{display:inline-block;background:#fff;padding:14px;border-radius:16px;box-shadow:var(--shadow)}
#qr{width:210px;height:210px;display:block;image-rendering:pixelated}
.linkrow{display:flex;align-items:center;gap:10px;text-align:left;background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin:12px 0 0}
.linkrow .t{flex:1;min-width:0}
.linkrow small{display:block;color:var(--muted);font-weight:600;font-size:12px}
.linkrow a{font-size:14px;word-break:break-all}
.linkrow.private{border-color:var(--accent);background:var(--accent-soft)}
footer{text-align:center;color:var(--muted);font-size:13px;margin-top:30px}

/* App touches: install + resume cards, phone-first sizing. */
html{touch-action:manipulation}
button,.btn{min-height:46px}
.btn{display:inline-flex;align-items:center;text-decoration:none}
.resume,.install{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin:14px 0 0}
.resume{border-color:var(--accent);background:var(--accent-soft)}
.resume-code{font-family:var(--serif);font-weight:700;font-size:26px;color:var(--primary);line-height:1.1}
.resume button.small{min-height:40px;min-width:40px}
.install .t{display:flex;flex-direction:column;font-size:14px;color:var(--muted)}
.install .t b{color:var(--ink);font-size:16px;font-family:var(--serif)}
.page{padding-top:env(safe-area-inset-top)}
.wrap{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(56px,env(safe-area-inset-bottom))}
@media(max-width:480px){
  .card{padding:16px;border-radius:16px}
  .row{flex-direction:column}.row button,.row .btn{width:100%;justify-content:center}
  .hero{padding-top:18px}
  .drop{padding:30px 14px}
}

/* ---------- home hero: sunrise ---------- */
.ha{position:relative;overflow:hidden;color:#fff;background:linear-gradient(to bottom,transparent 72%,#0e1523),radial-gradient(900px 480px at 74% 58%,#3a5a8f 0%,#25406b 40%,#0e1523 80%);padding-top:env(safe-area-inset-top)}
.ha-rays{position:absolute;right:-180px;top:50%;width:760px;height:760px;transform:translateY(-50%);pointer-events:none;background:repeating-conic-gradient(from 0deg,rgba(228,176,88,.22) 0 4deg,transparent 4deg 15deg);-webkit-mask:radial-gradient(circle,#000 8%,transparent 66%);mask:radial-gradient(circle,#000 8%,transparent 66%);animation:ha-spin 90s linear infinite}
@keyframes ha-spin{to{transform:translateY(-50%) rotate(360deg)}}
.ha-in{position:relative;max-width:1040px;margin:0 auto;padding:18px max(20px,env(safe-area-inset-right)) 54px max(20px,env(safe-area-inset-left))}
.ha-brand{color:#fff}
.ha-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:12px;align-items:center;padding-top:34px}
.ha-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#e4b058}
.ha-eyebrow::before{content:"";width:26px;height:2px;background:#e4b058}
.ha h1{font-size:clamp(36px,6.4vw,64px);line-height:1.04;margin:14px 0 16px;letter-spacing:-.02em;color:#fff}
.ha h1 em{font-style:normal;color:#e4b058}
.ha-text p{font-size:clamp(16px,2.6vw,19px);color:#c3cde0;max-width:460px;margin:0 0 24px;line-height:1.5}
.ha-cta{display:flex;flex-wrap:wrap;gap:12px}
.ha-pri{font-size:17px;padding:15px 24px;border-radius:14px;color:#1b1405;background:linear-gradient(180deg,#e4b058,#c98d2b);box-shadow:0 10px 30px rgba(201,141,43,.45)}
.ha-pri:hover{background:linear-gradient(180deg,#efbd68,#d79a35)}
.ha-sec{display:inline-flex;align-items:center;font-weight:700;color:#fff;text-decoration:none;padding:15px 22px;border-radius:14px;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}
.ha-sec:hover{box-shadow:inset 0 0 0 1.5px #fff}
.ha-trust{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin:30px 0 0;padding:0;color:#9fb0cc;font-size:14px}
.ha-trust li::before{content:"✓";color:#e4b058;margin-right:7px;font-weight:700}
.ha-art{position:relative;display:grid;place-items:center;z-index:1}
.ha-art .ph{transform:rotate(5deg)}
.ha-qr{position:absolute;left:-26px;bottom:26px;background:#fff;border-radius:16px;padding:10px;width:116px;box-shadow:0 18px 40px rgba(0,0,0,.45);transform:rotate(-7deg);text-align:center}
.ha-qr img{display:block;width:100%;height:auto;image-rendering:pixelated}
.ha-qr b{display:block;margin-top:6px;font:700 11px var(--serif);color:#0e1523;line-height:1.2}
/* the animated phone */
.ph{width:210px;height:430px;border-radius:34px;background:#0b1220;padding:9px;position:relative;box-shadow:0 30px 60px rgba(0,0,0,.45),inset 0 0 0 2px #26334d;flex:none}
.ph::before{content:"";position:absolute;top:14px;left:50%;width:62px;height:16px;border-radius:99px;background:#05080f;transform:translateX(-50%);z-index:3}
.ph-screen{width:100%;height:100%;border-radius:26px;overflow:hidden;background:#0b1220;color:#edf0f6;display:flex;flex-direction:column}
.ph-bar{display:flex;align-items:center;gap:6px;padding:30px 12px 6px;font-size:11px;font-weight:700}
.ph-pill{margin-left:auto;font-family:var(--serif);color:#e4b058;background:#17223a;border:1px solid #26334d;border-radius:99px;padding:2px 9px}
.ph-live{color:#8fd6a5;letter-spacing:.08em;display:flex;align-items:center;gap:5px}
.ph-live::before{content:"";width:7px;height:7px;border-radius:50%;background:#3ddc84;animation:ha-pulse 2s infinite}
@keyframes ha-pulse{70%{box-shadow:0 0 0 7px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}
.ph-stage{flex:1;display:grid;place-items:center;padding:0 8px}
.ph-deck{position:relative;width:100%;aspect-ratio:16/9;border-radius:8px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.5)}
.ph .sl{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-weight:700;font-size:19px;color:#fff;opacity:0;transform:scale(1.04);transition:opacity .45s,transform .45s}
.ph .sl:nth-child(1){background:linear-gradient(135deg,#25406b,#3e5f94)}
.ph .sl:nth-child(2){background:linear-gradient(135deg,#0f4c5c,#1f7a8c)}
.ph .sl:nth-child(3){background:linear-gradient(135deg,#3b2f7a,#5a4bb0)}
.ph .sl:nth-child(4){background:linear-gradient(135deg,#1f5f4a,#2f8f6f)}
.ph .sl svg{position:absolute;inset:0;width:100%;height:100%;font-family:var(--sans)}
.ph .sl text{fill:#fff}
.ph .sl .s-xl{font:700 13px var(--serif)}
.ph .sl .s-md{font:700 9px var(--sans)}
.ph .sl .s-b{font:600 7.6px var(--sans)}
.ph .sl .s-sm{font:700 5px var(--sans);letter-spacing:.2em;fill:#e4b058}
.ph .sl .s-xs{font:600 5.5px var(--sans);fill:#fff;fill-opacity:.75}
.ph .sl .s-gold{font:700 12px var(--serif);fill:#e4b058}
.ph-pos{position:relative;height:36px;padding-top:8px;text-align:center;font-size:11px;color:#9ba8be;font-weight:600}
.ph-pos span{position:absolute;left:0;right:0;opacity:0}
.ha[data-s='0'] .sl:nth-child(1),.ha[data-s='1'] .sl:nth-child(2),.ha[data-s='2'] .sl:nth-child(3),.ha[data-s='3'] .sl:nth-child(4){opacity:1;transform:none}
.ha[data-s='0'] .ph-pos span:nth-child(1),.ha[data-s='1'] .ph-pos span:nth-child(2),.ha[data-s='2'] .ph-pos span:nth-child(3),.ha[data-s='3'] .ph-pos span:nth-child(4){opacity:1}
@media (prefers-reduced-motion:reduce){.ha-rays,.ph-live::before{animation:none}.ph .sl{transition:none}}
/* sections below the hero */
.how{margin:34px 0 8px}
.how h2{font-size:26px;text-align:center;margin-bottom:6px}
#upanchor{scroll-margin-top:12px}
.wrap>.card:first-of-type{margin-top:-26px;position:relative}
@media(max-width:820px){
  .ha-grid{grid-template-columns:1fr;padding-top:22px;gap:30px}
  .ha-text{text-align:left}
  .ha-cta{flex-direction:column}.ha-cta>*{width:100%;justify-content:center;text-align:center}
  .ha-rays{right:-380px;opacity:.8}
  .ha-art{margin-top:6px}
  .ha-art .ph{width:190px;height:390px}
  .ha-qr{left:calc(50% - 150px);bottom:20px}
  .ha-in{padding-bottom:42px}
}

.resume .row{flex-direction:row!important;flex-wrap:nowrap}.resume .row .btn{width:auto!important}.resume .row button.small{width:auto!important;padding:8px 12px}

/* ---------- home page: one continuous sunrise theme (always dark) ---------- */
.page.dark{
  --bg:#0b1220; --bg2:#101a2e; --surface:#141f36; --ink:#edf0f6; --muted:#9fb0cc; --line:rgba(255,255,255,.12);
  --primary:#e4b058; --primary-hover:#f0c36e; --on-primary:#1b1405;
  --accent:#e4b058; --accent-soft:rgba(228,176,88,.14); --accent-ink:#f0c978;
  --ok:#15301f; --ok-ink:#8fd6a5; --warn:#33290f; --warn-ink:#f0c565; --bad:#3a1b18; --bad-ink:#f3a89d;
  --shadow:0 18px 44px rgba(0,0,0,.45);
  color:var(--ink);background:#0e1523;
  background-image:radial-gradient(700px 420px at 12% 38%,rgba(58,90,143,.28),transparent 70%),radial-gradient(640px 420px at 100% 78%,rgba(228,176,88,.10),transparent 70%);
}
.page.dark .card{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.02)),var(--surface);border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.07)}
.page.dark button:not(.alt):not(.small),.page.dark .btn{background:linear-gradient(180deg,#e4b058,#c98d2b);color:#1b1405;font-weight:700;box-shadow:0 8px 22px rgba(201,141,43,.32)}
.page.dark button:not(.alt):not(.small):hover,.page.dark .btn:hover{background:linear-gradient(180deg,#efbd68,#d79a35)}
.page.dark button.small:not(.alt){background:var(--primary);color:#1b1405}
.page.dark button.alt{color:var(--ink);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.3)}
.page.dark button.alt:hover{box-shadow:inset 0 0 0 1.5px #e4b058;color:#f0c978}
.page.dark .ha-pri{box-shadow:0 10px 30px rgba(201,141,43,.45)}
.page.dark .drop{border:2px dashed rgba(228,176,88,.5);background:rgba(255,255,255,.03)}
.page.dark .drop:hover,.page.dark .drop.over{border-color:#e4b058;background:rgba(228,176,88,.10);box-shadow:0 0 0 4px rgba(228,176,88,.12)}
.page.dark .drop strong{color:#fff}
.page.dark .drop .ico{color:#e4b058}
.page.dark .steps li{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.1);color:var(--muted)}
.page.dark .steps li b{color:#fff}
.page.dark .steps li::before{background:linear-gradient(180deg,#e4b058,#c98d2b);color:#1b1405}
.page.dark .how h2{color:#fff}
.page.dark progress{background:rgba(255,255,255,.1)}
.page.dark progress::-webkit-progress-bar{background:rgba(255,255,255,.1)}
.page.dark #grid a{box-shadow:0 2px 10px rgba(0,0,0,.45)}
.page.dark .linkrow{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12)}
.page.dark .linkrow.private{border-color:rgba(228,176,88,.7);background:rgba(228,176,88,.10)}
.page.dark .codebig{color:#e4b058;text-shadow:0 0 30px rgba(228,176,88,.35)}
.page.dark .share .label{color:var(--muted)}
.page.dark .qrbox{box-shadow:0 14px 40px rgba(0,0,0,.5)}
.page.dark .resume{border-color:rgba(228,176,88,.7);background:rgba(228,176,88,.12)}
.page.dark .resume-code{color:#f0c978}
.page.dark .install .t b{color:#fff}
.page.dark input[type=file]{color:var(--muted)}
.page.dark details{color:var(--muted)}
.page.dark footer{color:#7f8da8}
.page.dark .top .brand{color:#fff}
.page.dark #err{color:#f3a89d}

.ha-uses{margin:14px 0 0!important;font-size:14px!important;color:#9fb0cc!important;max-width:none!important}

/* live viewer count on the share screen */
.share .watch{display:flex;width:max-content;max-width:100%;align-items:center;gap:8px;margin:-6px auto 16px;padding:6px 14px;border-radius:99px;font-size:14px;font-weight:700;color:var(--muted);background:rgba(255,255,255,.06);border:1px solid var(--line);font-variant-numeric:tabular-nums}
.share .watch::before{content:"";width:9px;height:9px;border-radius:50%;background:#556178}
.share .watch.has{color:#8fd6a5;border-color:rgba(61,220,132,.4);background:rgba(61,220,132,.08)}
.share .watch.has::before{background:#3ddc84}
.share .watch.bump::before{animation:wbump 1s}
@keyframes wbump{0%{box-shadow:0 0 0 0 rgba(61,220,132,.8)}100%{box-shadow:0 0 0 12px rgba(61,220,132,0)}}

/* ---------- presenter view section ---------- */
.pv{display:grid;grid-template-columns:1fr 1.15fr;gap:34px;align-items:center;margin:46px 0 14px;padding:8px 0}
.pv-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:#e4b058}
.pv-eyebrow::before{content:"";width:26px;height:2px;background:#e4b058}
.pv h2{font-size:clamp(26px,4.4vw,38px);line-height:1.1;margin:12px 0 12px;color:#fff;letter-spacing:-.01em}
.pv-copy>p{color:var(--muted);font-size:17px;line-height:1.55;margin:0 0 18px}
.pv-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.pv-list li{position:relative;padding-left:30px;color:var(--muted);font-size:15px;line-height:1.5}
.pv-list li::before{content:"";position:absolute;left:0;top:3px;width:18px;height:18px;border-radius:50%;background:linear-gradient(180deg,#e4b058,#c98d2b)}
.pv-list li::after{content:"";position:absolute;left:6px;top:8px;width:6px;height:3px;border-left:2px solid #1b1405;border-bottom:2px solid #1b1405;transform:rotate(-45deg)}
.pv-list b{color:#fff}
.pv-phones{display:flex;gap:22px;justify-content:center;align-items:flex-start}
.pv-fig{margin:0;flex:none;width:224px}
.pv-fig:nth-child(1){transform:translateY(16px) rotate(-2.5deg)}.pv-fig:nth-child(2){transform:rotate(2.5deg)}
.pv-fig figcaption{margin-top:14px;text-align:center;font-size:12.5px;line-height:1.4;color:var(--muted)}
.pv-phone{width:224px;height:460px;border-radius:36px;background:#0b1220;padding:9px;position:relative;box-shadow:0 26px 54px rgba(0,0,0,.5),inset 0 0 0 2px #26334d}
.pv-phone::before{content:"";position:absolute;top:14px;left:50%;width:62px;height:16px;border-radius:99px;background:#05080f;transform:translateX(-50%);z-index:4}
.pv-screen{width:100%;height:100%;border-radius:28px;overflow:hidden;background:#0b1220;color:#edf0f6;position:relative;display:flex;flex-direction:column;font-family:var(--sans)}
.pv-hd{display:flex;align-items:center;gap:6px;padding:30px 11px 4px;font-size:9px;font-weight:700;white-space:nowrap}
.pv-watch{margin-right:auto;display:flex;align-items:center;gap:5px;color:#8fd6a5}.pv-watch::before{content:"";width:7px;height:7px;border-radius:50%;background:#3ddc84}
.pv-timer{color:#f0c978;font-variant-numeric:tabular-nums}
.pv-code{font-family:var(--serif);color:#e4b058;background:#17223a;border:1px solid #26334d;border-radius:99px;padding:2px 7px;font-size:9px}
.pv-top{display:flex;align-items:center;justify-content:space-between;padding:2px 12px 0}
.pv-top small{font-size:9px;color:#9ba8be;margin-right:3px}.pv-top b{font:700 22px var(--serif)}.pv-top b i{font:600 10px var(--sans);color:#9ba8be;font-style:normal}
.pv-chip{display:inline-flex;align-items:center;gap:5px;border-radius:99px;padding:5px 10px;font:700 10px var(--sans);color:#cdd6e6;background:#17223a;box-shadow:inset 0 0 0 1px #26334d;line-height:1}
.pv-chip.has::before{content:"";width:6px;height:6px;border-radius:50%;background:#e4b058}
.pv-prog{height:3px;background:#17223a;margin:7px 12px;border-radius:9px;overflow:hidden}.pv-prog i{display:block;width:33%;height:100%;background:#e4b058}
.pv-slide{flex:1;display:grid;place-items:center;padding:0 12px}
.pv-slide svg,.pv-mini svg{display:block;width:100%;aspect-ratio:16/9;border-radius:7px;box-shadow:0 8px 22px rgba(0,0,0,.5)}
.pv-btns{display:flex;gap:8px;padding:10px 12px 14px;align-items:stretch}
.pv-btns span{display:grid;place-items:center;border-radius:15px;font:700 14px var(--serif)}
.pv-back{flex:.55;height:68px;background:#17223a;color:#cdd6e6;box-shadow:inset 0 0 0 1px #26334d}
.pv-next{flex:1;height:68px;background:linear-gradient(180deg,#e4b058,#c98d2b);color:#1b1405!important;font-size:20px!important;box-shadow:0 8px 20px rgba(201,141,43,.35)}
.pv-btns.open .pv-back,.pv-btns.open .pv-next{height:52px;font-size:12px}.pv-btns.open .pv-next{font-size:15px!important}
.pv-drawer{flex:1;min-height:0;margin:4px 6px 0;background:#101a2e;border-radius:18px 18px 0 0;border-top:1px solid #26334d;box-shadow:0 -10px 24px rgba(0,0,0,.4);padding:7px 9px 0;overflow:hidden}
.pv-grab{width:36px;height:4px;border-radius:3px;background:#3a4a68;margin:0 auto 7px}
.pv-bar{display:flex;align-items:center;justify-content:space-between;gap:6px}.pv-file{font:700 10px var(--sans);color:#cdd6e6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-tools{display:flex;align-items:center;gap:4px;margin:7px 0 8px;font:600 10px var(--sans);color:#9ba8be}.pv-tools .pv-chip{padding:4px 7px}.pv-tools em{font-style:normal;margin:0 2px}
.pv-page{background:#fff;border-radius:5px;padding:10px 11px 12px;color:#2b3447;box-shadow:0 5px 14px rgba(0,0,0,.3);margin-bottom:8px}
.pv-page.dim{opacity:.82}
.pv-page h5{margin:0 0 6px;font:700 8px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:#7a5212}
.pv-page u{display:block;height:8px;width:46%;border-radius:3px;background:#2b3447;margin:0 0 7px;text-decoration:none}
.pv-page i{display:block;height:4px;border-radius:3px;background:#d6dae3;margin:5px 0}
.pv-page i.s{width:68%}.pv-page i.m{width:86%}.pv-page i.h{background:#f3dca2;height:7px}
.pv-mini{position:relative;flex:0 0 84px;align-self:center}
.pv-mini small{display:block;font:700 7px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#9ba8be;margin:0 0 3px 1px}
.pv-mini svg{border:1px solid #2a3a5a;border-radius:5px}
.pv-mini em{position:absolute;right:3px;bottom:3px;font:700 8px var(--sans);font-style:normal;background:rgba(8,12,22,.8);padding:1px 5px;border-radius:99px}
@media(max-width:860px){
  .pv{grid-template-columns:1fr;gap:26px;margin-top:38px}
  .pv-phones{overflow-x:auto;justify-content:flex-start;padding:10px 4px 18px;scroll-snap-type:x mandatory;gap:18px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .pv-phones::-webkit-scrollbar{display:none}
  .pv-fig{scroll-snap-align:center;transform:none!important}
  .pv-phones{margin:0 -20px;padding-left:max(20px,calc(50% - 112px));padding-right:max(20px,calc(50% - 112px))}
}

.pv-btns.open{gap:6px}.pv-btns.open .pv-back{flex:.9}.pv-btns.open .pv-mini{flex:0 0 76px}

/* ---------- join a slideshow ---------- */
.ha-how{display:inline-block;margin-top:14px;color:#9fb0cc;font-size:14px;text-decoration:none;font-weight:600}.ha-how:hover{color:#e4b058}
.ha-cta .alt{color:#fff}
.joincard{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;margin:14px 0 0}
.joincard .t{display:flex;flex-direction:column;font-size:14px;color:var(--muted)}.joincard .t b{color:#fff;font:700 17px var(--serif)}
.join{position:fixed;inset:0;z-index:60;background:#0b1220;color:#edf0f6;display:flex;flex-direction:column;align-items:center;gap:12px;padding:max(14px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));overflow:auto}
.join[hidden]{display:none}
.join-top{width:100%;max-width:460px;display:flex;align-items:center;justify-content:space-between}.join-top b{font:700 21px var(--serif)}
.join-cam{position:relative;width:min(100%,420px);aspect-ratio:1;border-radius:22px;overflow:hidden;background:#000;box-shadow:0 18px 50px rgba(0,0,0,.55);flex:none}
.join-cam video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.join-frame{position:absolute;inset:14%;pointer-events:none}
.join-frame i{position:absolute;width:34px;height:34px;border:4px solid #e4b058;filter:drop-shadow(0 0 6px rgba(0,0,0,.6))}
.join-frame i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-radius:10px 0 0 0}
.join-frame i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-radius:0 10px 0 0}
.join-frame i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-radius:0 0 0 10px}
.join-frame i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-radius:0 0 10px 0}
.join-state{position:absolute;left:0;right:0;bottom:12px;text-align:center;font:700 14px var(--sans);text-shadow:0 2px 8px rgba(0,0,0,.8)}
.join-hint{margin:0;color:#9fb0cc;font-size:15px;text-align:center;max-width:340px}
.join-or{width:100%;max-width:420px;display:flex;align-items:center;gap:12px;color:#7f8da8;font-size:13px;margin-top:6px}
.join-or::before,.join-or::after{content:"";flex:1;height:1px;background:rgba(255,255,255,.14)}
#jform{display:flex;gap:10px;width:100%;max-width:420px}
#jcode{flex:1;min-width:0;height:50px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font:700 20px var(--serif);letter-spacing:.06em;text-transform:uppercase;padding:0 14px;outline:none}
#jcode:focus{border-color:#e4b058;box-shadow:0 0 0 3px rgba(228,176,88,.2)}
#jcode::placeholder{color:#6d7b95;text-transform:none;letter-spacing:0;font-weight:600}
#jform button{min-width:88px}
#jerr{margin:0;min-height:1.3em;color:#f3a89d;font-weight:600;text-align:center;font-size:14px;max-width:420px}
@media(max-width:480px){.ha-cta .alt{width:100%}}

/* ---------- host sign-in ---------- */
.hostbar{font-size:13px;color:var(--muted);text-align:right;margin:-4px 0 10px}.hostbar b{color:var(--ink)}
.linkbtn{background:none!important;border:0;box-shadow:none!important;color:var(--primary)!important;font:600 13px var(--sans);padding:0 0 0 6px;min-height:0;cursor:pointer;text-decoration:underline}
.auth-lead{margin:6px 0 4px;color:#9fb0cc;font-size:15px;line-height:1.5;text-align:center;max-width:380px}
.auth-form{display:flex;gap:10px;width:100%;max-width:420px}.auth-form.col{flex-direction:column;align-items:stretch}
.ain{flex:1;min-width:0;height:50px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;font:600 17px var(--sans);padding:0 14px;outline:none}
.ain:focus{border-color:#e4b058;box-shadow:0 0 0 3px rgba(228,176,88,.2)}
.ain::placeholder{color:#6d7b95;font-weight:500}
.ain.code{font:700 24px var(--serif);letter-spacing:.3em;text-align:center}.ain.code::placeholder{letter-spacing:0;font:600 15px var(--sans)}
.auth-form button[type=submit]{min-width:104px}
.auth-sent{margin:0 0 4px;color:#cdd6e6;font-size:15px;text-align:center;line-height:1.45}
.auth-links{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
#aerr{margin:0;min-height:1.3em;color:#f3a89d;font-weight:600;text-align:center;font-size:14px;max-width:420px}
.auth-fine{margin:6px 0 0;color:#7f8da8;font-size:12.5px;text-align:center}

.auth-form[hidden],.join[hidden]{display:none!important}
