@font-face{font-family:'Inter Display WM';src:url('../assets/fonts/InterDisplay-Black-wm.woff2') format('woff2');font-weight:900;font-display:swap}
:root{
  --navy:#0B1020; --deep:#101A3A; --violet:#1A1440;
  --text:#D9E1EF; --muted:#8FA3C7; --pale:#AFF9FD; --soft:#7CE0FF; --amber:#FFB85C;
  --glass:rgba(16,26,58,.55); --line:rgba(175,249,253,.25);
  --ease:cubic-bezier(.22,.8,.3,1); --dur:420ms;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  --sal:env(safe-area-inset-left,0px); --sar:env(safe-area-inset-right,0px);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;overflow:hidden;background:var(--navy)}
body{font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:disabled{cursor:default}
#stage{position:fixed;inset:0;overflow:hidden;background:linear-gradient(135deg,#0B1020 0%,#101A3A 55%,#1A1440 100%)}
.bg-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(175,249,253,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(175,249,253,.045) 1px,transparent 1px);background-size:40px 40px}
.bg-streak{position:absolute;inset:0;pointer-events:none;background:url(../assets/streak.jpg) center 40%/cover no-repeat;mix-blend-mode:screen;opacity:.7;transform:translateY(8vh);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%);mask-image:linear-gradient(to bottom,transparent 0,#000 22%)}
.bg-glow{position:absolute;left:-10%;top:-20%;width:70vw;height:70vw;max-width:900px;max-height:900px;background:radial-gradient(circle,rgba(124,224,255,.22) 0%,rgba(124,224,255,0) 62%);pointer-events:none}
#globe{position:absolute;inset:0;transition:opacity var(--dur) var(--ease);touch-action:none}
#globe canvas{display:block}
body.open #globe{opacity:.6}
body.flat #globe,body.flat #labels{display:none}

/* scene */
#scene{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity var(--dur) var(--ease)}
body.open #scene{opacity:1}
.scene-city{position:absolute;left:4vw;bottom:8vh;font-weight:900;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(48px,7vw,130px);line-height:.95;color:rgba(175,249,253,.08);max-width:46vw;word-break:break-word}
.scene-horizon{position:absolute;left:0;right:0;bottom:0;height:42%;background:radial-gradient(ellipse 70% 100% at 50% 100%,rgba(124,224,255,.16),rgba(167,139,250,.06) 45%,transparent 72%);border-top:0}
.scene-horizon::before{content:"";position:absolute;left:8%;right:8%;top:44%;height:1px;background:linear-gradient(90deg,transparent,rgba(175,249,253,.35),transparent)}

#labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.lbl{position:absolute;left:0;top:0;padding:3px 8px;border-radius:6px;font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#F4FDFF;background:rgba(11,16,32,.55);border:1px solid var(--line);white-space:nowrap;opacity:0;will-change:transform}
.lbl.watched{color:var(--muted)}
body.open .lbl{display:none}

#ui{position:absolute;inset:0;pointer-events:none}
#ui>*{pointer-events:auto}

/* brand */
.brand{position:absolute;left:calc(32px + var(--sal));top:calc(28px + var(--sat));pointer-events:none}
.wordmark{font-family:'Inter Display WM','Inter',sans-serif;font-weight:900;text-transform:uppercase;font-size:40px;line-height:.95;letter-spacing:-.02em;color:#fff;font-feature-settings:'kern'}
.wordmark .l{display:block}
.wordmark b{color:var(--pale);font-weight:900}
.eyebrow{font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.brand .eyebrow{margin-top:10px}
.formula{margin-top:12px;color:#fff;font-weight:800;font-size:clamp(15px,1.3vw,19px);line-height:1.15;letter-spacing:-.01em;white-space:nowrap}

/* me */
.me{position:absolute;right:calc(32px + var(--sar));top:calc(28px + var(--sat));display:flex;align-items:center;gap:20px;transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}
body.open .me{opacity:0;transform:translateY(-10px);pointer-events:none}
.me-text{text-align:right}
.me-hello{font-weight:800;font-size:16px;letter-spacing:.16em;text-transform:uppercase;color:#fff}
.me-city{margin-top:6px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--amber)}
.me-city::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--amber);margin-right:8px;vertical-align:1px;box-shadow:0 0 8px var(--amber)}
.ring{display:flex;align-items:center;gap:12px;padding:8px 16px 8px 8px;border-radius:40px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.ring svg{flex:none}
.ring-bg{fill:none;stroke:rgba(175,249,253,.16);stroke-width:5}
.ring-fg{fill:none;stroke:var(--pale);stroke-width:5;stroke-linecap:round;stroke-dasharray:169.6;stroke-dashoffset:169.6;transition:stroke-dashoffset 700ms var(--ease)}
.ring-txt{display:flex;flex-direction:column;line-height:1.2}
.ring-txt b{font-weight:900;font-size:20px;color:#fff}
.ring-txt span{font-size:10px;font-weight:600;letter-spacing:.16em;color:var(--muted)}
.ring-txt i{font-style:normal}

/* list */
.list{position:absolute;left:calc(32px + var(--sal));top:236px;bottom:64px;width:360px;display:flex;flex-direction:column;border-radius:20px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);overflow:hidden;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}
body.open .list{transform:translateX(-120%);opacity:0;pointer-events:none}
.grab{display:none}
.tabs{display:flex;gap:6px;padding:14px 14px 0}
.tab{flex:1;min-height:36px;padding:0 6px;border-radius:10px;font-size:11px;font-weight:800;letter-spacing:.16em;color:var(--muted);border:1px solid transparent;display:flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap}
.tab.on{color:#0B1020;background:var(--pale)}
.tab:disabled{opacity:.7;border-color:rgba(175,249,253,.12)}
.tab em,.chip-soon{font-style:normal;font-size:8px;font-weight:800;letter-spacing:.14em;padding:2px 5px;border-radius:5px;background:rgba(124,224,255,.14);color:var(--soft)}
.list-title{padding:16px 18px 8px;font-size:11px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}
.rows{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 8px 10px;overscroll-behavior:contain}
.rows::-webkit-scrollbar{width:6px}
.rows::-webkit-scrollbar-thumb{background:rgba(175,249,253,.2);border-radius:3px}
.row{display:flex;align-items:center;gap:12px;width:100%;min-height:64px;padding:8px 10px;border-radius:14px;text-align:left;border:1px solid transparent;transition:background 200ms,border-color 200ms;opacity:0;transform:translateX(-14px);animation:rowin 480ms var(--ease) forwards;animation-delay:calc(var(--i) * 55ms + 150ms)}
@keyframes rowin{to{opacity:1;transform:none}}
.row:hover,.row.hov,.row:focus-visible{background:rgba(124,224,255,.09);border-color:var(--line);outline:none}
.av{flex:none;width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#1c2b5e,#2a2470);border:1px solid rgba(11,16,32,.6);box-shadow:0 0 12px rgba(124,224,255,.14);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;letter-spacing:.06em;color:var(--pale);background-size:cover;background-position:center;overflow:hidden}
.av.multi{font-size:11px}
.row-main{flex:1;min-width:0}
.row-name{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-title{margin-top:3px;font-size:13px;font-weight:600;line-height:1.3;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.row-city{margin-top:3px;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.row-state{flex:none;width:28px;display:flex;align-items:center;justify-content:center}
.row-state svg{width:22px;height:22px}
.row.watched .row-title{color:#b9c6df}
.row.watched .av{opacity:.7}

.hint{position:absolute;left:0;right:0;text-align:center;pointer-events:none;bottom:calc(70px + var(--sab));font-size:11px;font-weight:600;letter-spacing:.22em;color:var(--muted);transition:opacity var(--dur) var(--ease)}
body.open .hint,body.flat .hint{opacity:0}

/* plate */
.plate{position:absolute;right:calc(24px + var(--sar));top:calc(24px + var(--sat));max-height:calc(100% - 48px - var(--sab) - var(--sat));width:min(46vw,760px);display:flex;flex-direction:column;border-radius:24px;background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:0 20px 80px rgba(0,0,0,.35);transform:translateX(110%);opacity:0;visibility:hidden;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease),visibility 0s linear var(--dur);overflow:hidden}
body.open .plate{transform:none;opacity:1;visibility:visible;transition-delay:0s}
.plate-top{flex:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 10px 22px}
.plate-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 22px 22px}
.btn{min-height:44px;padding:0 20px;border-radius:12px;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#fff;border:1px solid var(--line);background:rgba(124,224,255,.08);transition:background 200ms,opacity 200ms}
.btn:hover{background:rgba(124,224,255,.18)}
.btn.primary{background:var(--pale);color:#0B1020;border-color:var(--pale)}
.btn.primary:hover{background:#fff}
.btn:disabled{opacity:.35;pointer-events:none}
.btn.ghost{background:transparent}

.video{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#070B18;border:1px solid var(--line)}
.video iframe,.video #ytp{position:absolute;inset:0;width:100%;height:100%;border:0}
.poster{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:14px;overflow:hidden;background:linear-gradient(135deg,#101A3A,#1A1440)}
.poster .bgimg{position:absolute;inset:-20px;background-size:cover;background-position:center;filter:blur(18px) saturate(1.1);opacity:.55;transform:scale(1.1)}
.poster .shade{position:absolute;inset:0;background:radial-gradient(circle,rgba(11,16,32,.1),rgba(11,16,32,.65))}
.poster>*:not(.bgimg):not(.shade){position:relative}
.playbtn{width:84px;height:84px;border-radius:50%;background:rgba(175,249,253,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 10px rgba(175,249,253,.18),0 0 40px rgba(124,224,255,.5);transition:transform 200ms}
.poster:hover .playbtn{transform:scale(1.06)}
.playbtn svg{width:32px;height:32px;margin-left:4px}
button.poster{width:100%;height:100%}
.poster-lbl{font-size:11px;font-weight:800;letter-spacing:.22em;color:#fff}
.soon-av{width:84px;height:84px;font-size:26px}
.soon-t{font-weight:900;font-size:clamp(14px,1.6vw,20px);letter-spacing:.18em;color:#fff;text-align:center;padding:0 16px}

.p-title{margin-top:20px;font-weight:800;font-size:clamp(20px,2vw,28px);line-height:1.2;color:#fff}
.p-speakers{margin-top:16px;display:flex;flex-direction:column;gap:12px}
.spk{display:flex;align-items:center;gap:14px}
.spk .av{width:52px;height:52px}
.spk-name{font-weight:800;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:#fff}
.spk-role{margin-top:3px;font-size:13px;font-weight:400;line-height:1.35;color:var(--text)}
.chips{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:7px 12px;border-radius:20px;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--pale);border:1px solid var(--line);background:rgba(124,224,255,.07)}
.p-nav{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap}

/* flat fallback */
body.flat .list{left:0;right:0;margin:0 auto;width:min(640px,calc(100% - 32px));top:236px}
body.flat .hint{display:none}

/* phone */
@media (max-width:899px){
  #globe,#labels{top:112px;bottom:auto;height:40vh;height:40dvh}
  body.flat #globe{display:none}
  .brand{left:calc(16px + var(--sal));top:calc(14px + var(--sat))}
  .wordmark{font-size:21px}
  .brand .eyebrow{font-size:8px;margin-top:6px;letter-spacing:.18em}
  .formula{font-size:10.5px;margin-top:7px;white-space:normal;max-width:150px;line-height:1.2}
  .me{right:calc(14px + var(--sar));top:calc(14px + var(--sat));gap:0;flex-direction:column;align-items:flex-end}
  .me-text{display:flex;flex-direction:row;gap:8px;align-items:baseline}
  .me-hello{font-size:11px;letter-spacing:.12em}
  .me-city{display:none}
  .ring{margin-top:8px;padding:5px 12px 5px 5px;gap:8px}
  .ring svg{width:34px;height:34px}
  .ring-txt{flex-direction:row;align-items:baseline;gap:5px}
  .ring-txt b{font-size:15px}
  .ring-txt span{font-size:9px}
  .hint{left:0;right:0;text-align:center;bottom:auto;top:calc(45vh + 40px);top:calc(45dvh + 40px);font-size:10px;pointer-events:none}
  .list{--peek:calc(55vh - 96px);--peek:calc(55dvh - 96px);left:0;right:0;top:auto;bottom:0;width:auto;height:85vh;height:85dvh;border-radius:22px 22px 0 0;border-bottom:0;transform:translateY(calc(100% - var(--peek) - var(--sab)));transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease);padding-bottom:var(--sab)}
  .list.up{transform:none}
  body.open .list{transform:translateY(110%);opacity:0}
  .grab{display:flex;flex:none;justify-content:center;align-items:center;height:44px;margin-bottom:-6px;cursor:pointer;touch-action:none}
  .grab i{display:block;width:44px;height:5px;border-radius:3px;background:rgba(175,249,253,.4)}
  .tabs{padding:4px 12px 0}
  .list-title{padding-top:0}
  .rows{padding-bottom:calc(10px + var(--sab))}
  .list:not(.up) .rows{overflow:hidden}
  .plate{left:0;right:0;top:auto;bottom:0;width:auto;height:72vh;height:72dvh;max-height:none;border-radius:22px 22px 0 0;border-bottom:0;transform:translateY(105%)}
  .plate-top{padding:8px 12px 8px 16px}
  .plate-body{padding:0 16px calc(20px + var(--sab))}
  .p-title{font-size:19px;margin-top:16px}
  .btn{flex:1}
  .scene-city{font-size:12vw;max-width:92vw;bottom:auto;top:15vh;left:5vw}
  .plate-top .btn{flex:none}
  body.flat .list{transform:none;top:calc(120px + var(--sat));bottom:0;height:auto;width:auto;left:0;right:0;margin:0;border-radius:22px 22px 0 0}
  body.flat.open .list{transform:translateY(110%)}
  body.flat .grab{display:none}
  body.flat .list:not(.up) .rows{overflow-y:auto}
}


@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:1ms!important;transition-delay:0s!important;animation-duration:1ms!important;animation-delay:0s!important}
}

.poster .bgimg.yt{filter:none;transform:none;opacity:1;background-size:cover;background-position:center}

.chip-soon.up{background:rgba(167,139,250,.2);color:#D9CCFF}
.soon-when{position:relative;margin-top:-4px;font-size:12px;font-weight:800;letter-spacing:.18em;color:var(--pale);text-align:center}
.soon-join{position:relative;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.poster .soon-av{width:64px;height:64px}
.soon-join{height:44px;min-height:44px;flex:none;padding:0 22px}

.tip{position:absolute;left:0;top:0;z-index:30;width:330px;max-width:calc(100vw - 24px);display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:rgba(13,21,48,.9);border:1px solid rgba(175,249,253,.3);box-shadow:0 14px 40px rgba(0,0,0,.45);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:none;opacity:0;visibility:hidden;transition:opacity .12s ease}
.tip.on{opacity:1;visibility:visible}
#ui>.tip,.tip *{pointer-events:none}   /* the card never catches the pointer: the label or point under it stays hoverable and clickable */
.tip .av{width:48px;height:48px}
.tip-main{min-width:0}
.tip-state{font-size:9px;font-weight:800;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}
.tip-state.live{color:var(--pale)}
.tip-state.up{color:#D9CCFF}
.tip-title{margin-top:4px;font-size:14px;font-weight:700;line-height:1.25;color:#fff;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tip-name{margin-top:5px;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--soft)}
body.open .tip{display:none}

.lbl.day{color:#FFE2B0;border-color:rgba(255,184,92,.55)}
.tab.on{background:#FFD08A}
/* 12.11 (слово Антона): бегущий блик на выбранном дне, слева направо, период 3 с */
.tab.on{position:relative;overflow:hidden;isolation:isolate}
.tab.on::after{content:'';position:absolute;top:0;bottom:0;left:0;width:60%;z-index:1;pointer-events:none;
  background:linear-gradient(100deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.7) 50%,rgba(255,255,255,0) 100%);
  transform:translateX(-110%);animation:tabSheen 3s ease-in-out infinite}
@keyframes tabSheen{0%{transform:translateX(-110%)}55%,100%{transform:translateX(180%)}}
@media (prefers-reduced-motion:reduce){.tab.on::after{animation:none;opacity:0}}


/* ---- library additions (12.11): personal shelf, outcomes, next screen, notice ---- */
.foryou{flex:none;border-bottom:1px solid var(--line)}
.fy-title{color:var(--pale);padding-bottom:4px}
.fy-rows{padding:0 8px 8px}
.outcomes{margin-top:18px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:rgba(124,224,255,.06)}
.out-h{font-size:10px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--pale)}
.out-l{margin-top:10px;list-style:none;display:flex;flex-direction:column;gap:9px}
.out-l li{position:relative;padding-left:20px;font-size:14px;line-height:1.4;color:var(--text)}
.out-l li::before{content:"";position:absolute;left:2px;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--pale);box-shadow:0 0 8px rgba(124,224,255,.7)}
.video{margin-top:18px}
.p-title{margin-top:16px}
.p-speakers{margin-top:2px}
.chips{margin-top:16px}
.plate.np{width:min(40vw,520px)}
body.open .plate.np{transform:translateX(110%);opacity:0;visibility:hidden}
body.nxt #plate{transform:translateX(110%);opacity:0;visibility:hidden}
body.nxt #nextPlate,body.nt #notice{transform:none;opacity:1;visibility:visible;transition-delay:0s}
.next-card{display:flex;flex-direction:column;align-items:flex-start;gap:14px;width:100%;text-align:left;padding:18px;border-radius:16px;border:1px solid var(--line);background:rgba(124,224,255,.07);transition:background 200ms}
.next-card:hover{background:rgba(124,224,255,.14)}
.next-card .spk{display:flex;align-items:center;gap:14px}
.next-card .spk>span:last-child{display:block}
.next-card .spk-name,.next-card .spk-role{display:block}
.next-card .p-title{display:block;margin-top:0}
.next-go{display:inline-flex;align-items:center;justify-content:center;height:44px;padding:0 22px;pointer-events:none}
.notice-p{margin-top:14px;font-size:15px;line-height:1.5;color:var(--text)}
@media (max-width:899px){
  .plate.np{height:auto;max-height:70dvh;width:auto}
  body.open .plate.np,body.nxt #plate{transform:translateY(105%)}
  body.nxt #nextPlate,body.nt #notice{transform:none}
  .me-text .me-city{display:inline-block;font-size:10px;letter-spacing:.14em}
  .me-text .me-city::before{display:none}
}
@media (max-width:899px){body:has(.list.up) .hint{display:none}}

/* ---- door (12.11): in place of the video in public mode ---- */
.video.door-on{aspect-ratio:auto;overflow:visible;background:none;border:0;border-radius:0}
.door{padding:20px 18px 18px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(16,26,58,.85),rgba(26,20,64,.8));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.door-about{margin-bottom:12px;font-size:12px;font-weight:600;line-height:1.4;color:var(--amber)}
.door-h{font-weight:800;font-size:18px;line-height:1.25;color:#fff}
.door-p{margin-top:8px;font-size:14px;line-height:1.5;color:var(--text)}
.door-main{margin-top:16px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.door-wa{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;letter-spacing:.1em}
.door-alt{font-size:13px;font-weight:500;color:var(--soft);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(124,224,255,.4);padding:6px 2px}
.door-alt:hover{color:var(--pale)}
.door-form{margin-top:16px}
.door-l{display:block;margin:0 0 6px;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.door-in{width:100%;min-height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line);background:rgba(7,11,24,.6);color:#fff;font:inherit;font-size:15px}
.door-in:focus{outline:2px solid var(--soft);outline-offset:1px}
.door-in[readonly]{opacity:.7}
.door-help{margin-top:8px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.door-note{margin-top:14px;font-size:14px;line-height:1.45;color:var(--text)}
.door-two{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.door-consent{display:flex;gap:10px;align-items:flex-start;margin-top:14px;font-size:12.5px;line-height:1.45;color:var(--muted)}
.door-consent input{margin-top:2px;width:16px;height:16px;flex:none;accent-color:#29F0FF}
.door-consent a{color:var(--soft)}
.door-err{min-height:0;margin-top:10px;font-size:13px;line-height:1.4;color:var(--amber)}
.door-row{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap}
.door-ok{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;color:#fff}
.door-ok svg{width:26px;height:26px;flex:none}
.door-done .door-alt{display:inline-block;margin-top:10px}
.door [hidden]{display:none!important}
@media (max-width:899px){.door-two{grid-template-columns:1fr}}
.ring[hidden]{display:none}


/* ---- panel modes (13.11): ONE panel, Start here / For you (3 talks, gold touch) or one day's recordings; tabs at the bottom ---- */
.tabs{order:10;padding:12px 14px 14px;gap:6px;border-top:1px solid var(--line)}
.tab{font-size:10px;letter-spacing:.1em;border-color:rgba(175,249,253,.2);background:rgba(124,224,255,.05);transition:background 200ms,border-color 200ms,color 200ms}
.tab:not(.on):not(:disabled):not(.tab-start):hover{border-color:rgba(255,208,138,.55);color:#FFE2B0}
.tab.tab-start{flex:1.9}
.tab.on{border-color:#FFD08A}
.list.mode-start .rows,.list.mode-start .list-title,.list.mode-day .foryou{display:none}
.list.mode-start .foryou{flex:none;display:flex;flex-direction:column;border-bottom:0}
.list.mode-start .fy-title{display:none}
@media (max-width:899px){
  .grab{order:-2}
  .tabs{order:-1;padding:4px 12px 8px;border-top:0}
}



/* ---- compact / full panel height (13.11) ---- */
.list{transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease),height 460ms var(--ease)}
.list.sized{overflow:hidden}
@media (min-width:900px){.list.sized{bottom:auto}}
@media (max-width:899px){.list.sized{top:auto}.list.mode-start{transform:none}}

/* ---- entry door (13.11): public visitors see only this glass panel over the live portal ---- */
.entry{position:absolute;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(7,11,24,.16);-webkit-backdrop-filter:blur(4px) brightness(.8);backdrop-filter:blur(4px) brightness(.8)}
.entry[hidden]{display:none}
.entry-panel{width:min(520px,100%);max-height:100%;overflow-y:auto;padding:26px 26px 24px;border-radius:24px;background:linear-gradient(145deg,rgba(40,60,120,.34),rgba(16,26,58,.3));border:1px solid rgba(175,249,253,.3);-webkit-backdrop-filter:blur(18px) saturate(1.25);backdrop-filter:blur(18px) saturate(1.25);box-shadow:0 20px 60px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.14)}
.entry .door{padding:0;border:0;background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
.entry .door-h{font-size:24px}
.entry .door-p{font-size:15px}
.entry .door-main .btn{align-self:stretch}
@media (max-width:899px){.entry-panel{padding:22px 18px 20px}.entry .door-h{font-size:21px}}

.door-eye{margin-bottom:14px}
.door-eye .wordmark{font-size:26px}
.door-eye .formula{margin-top:8px;font-size:14.5px;white-space:normal}
.door-eye+.door-about{margin-top:0}

/* For you / Start here cards: same rows as the day list, gold speaker name, light warm glow on hover only */
.list.mode-start .fy-rows{flex:none;padding:12px 8px 8px}
.foryou .row-name{color:#FFD08A}

/* FOR YOU / START HERE tab: ordinary glass tab with a gold outline and gold text, never the filled gold */
.tab.tab-start,.tab.tab-start.on{background:rgba(124,224,255,.06);color:#FFD08A;border-color:rgba(255,208,138,.65)}
.tab.tab-start.on{background:rgba(255,208,138,.1);border-color:#FFD08A}
.tab.tab-start.on::after{display:none}
.tab.tab-start:hover{background:rgba(255,208,138,.1)}
/* 13.11 owner: FOR YOU in a play of gold and white: gradient text, gradient outline, both drifting slowly */
.tab.tab-start,.tab.tab-start.on{position:relative;border-color:transparent;isolation:isolate}
.tab.tab-start::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(115deg,#FFD08A 0%,#FFF6E4 22%,#E9B65C 45%,#FFFFFF 62%,#FFD08A 80%,#F4C978 100%);background-size:220% 100%;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:goldPlay 6s ease-in-out infinite alternate}
.tab-gold{color:transparent;background:linear-gradient(115deg,#FFD08A 0%,#FFF6E4 25%,#F0BE6A 48%,#FFFFFF 66%,#FFD08A 84%,#F4C978 100%);background-size:220% 100%;
  -webkit-background-clip:text;background-clip:text;animation:goldPlay 6s ease-in-out infinite alternate}
@keyframes goldPlay{0%{background-position:0% 0}100%{background-position:100% 0}}
@media (prefers-reduced-motion:reduce){.tab.tab-start::before,.tab-gold{animation:none}}
/* the door's one consent line (both paths), quiet */
.door-legal{margin:16px 0 0;font-size:11.5px;line-height:1.45;color:var(--muted);text-align:center}
.door-legal a{color:var(--soft)}
.door-form .door-legal,.door-legal.door-consent{text-align:left;display:block}
/* card order: video first (13.11) */
.plate-body>.video{margin-top:6px}
.p-speakers{margin-top:10px}

/* partner marks strip (same order and proportions as the summit site footer, about 70% size) */
.pmarks{display:flex;align-items:center;justify-content:center;gap:36px;pointer-events:none}
.pmarks .pm-rule{width:1px;height:31px;background:rgba(255,255,255,.22);flex:none}
.pmarks .pm-gma{height:36px;display:block;opacity:.95;flex:none}
.pmarks .pm-unh{height:30px;display:block;opacity:.95;flex:none}
.pmarks .pm-lce{display:flex;align-items:center;gap:10px}
.pmarks .pm-lce img{height:38px;display:block}
.pmarks .pm-lce-t{display:flex;flex-direction:column;line-height:1.1}
.pmarks .pm-lce-t span{font-size:15.5px;font-weight:600;letter-spacing:.04em;color:#fff;white-space:nowrap}
.pmarks .pm-lce-t small{font-size:10px;font-weight:500;letter-spacing:.06em;color:#C9D3E6;margin-top:3px;white-space:nowrap}
.pmarks .pm-licht{display:flex;align-items:center;gap:9px;font-size:15.5px;font-weight:600;color:#fff;line-height:1.1;white-space:nowrap}
.pmarks .pm-licht small{display:block;font-weight:400;color:#C9D3E6;font-size:10px;margin-top:2px}
.pmarks .pm-flag{width:28px;height:28px;background:#FF0000;position:relative;flex:none}
.pmarks .pm-flag:before,.pmarks .pm-flag:after{content:"";position:absolute;background:#fff;left:50%;top:50%;transform:translate(-50%,-50%)}
.pmarks .pm-flag:before{width:16px;height:5px}.pmarks .pm-flag:after{width:5px;height:16px}
.pm-desk{position:absolute;left:0;right:0;bottom:calc(14px + var(--sab));transition:opacity var(--dur) var(--ease)}
body.open .pm-desk,body.flat .pm-desk{opacity:0}
.pm-phone{display:none}
@media (max-width:899px){
  .pm-desk{display:none}
  .pm-phone{display:flex;flex:none;justify-content:space-between;gap:8px;width:100%;padding:14px 12px calc(14px + var(--sab));border-top:1px solid rgba(255,255,255,.12);order:20}
  .pm-phone .pm-licht{gap:4px;font-size:min(10.5px,2.6vw)}
  .pm-phone .pm-licht small{font-size:min(8px,2vw);margin-top:1px}
  .pm-phone .pm-flag{width:min(20px,4.9vw);height:min(20px,4.9vw)}
  .pm-phone .pm-flag:before{width:60%;height:18%}.pm-phone .pm-flag:after{width:18%;height:60%}
  .pm-phone .pm-unh{height:min(14px,3.5vw);width:auto}
  .pm-phone .pm-lce{gap:4px}.pm-phone .pm-lce img{height:min(22px,5.4vw);width:auto}
  .pm-phone .pm-lce-t span{font-size:min(9.5px,2.35vw);letter-spacing:0}.pm-phone .pm-lce-t small{font-size:min(7px,1.75vw);letter-spacing:.03em}
  .pm-phone .pm-gma{height:min(19px,4.7vw);width:auto}
}

/* hint stays readable over the globe edge; on phone the sheet sits above it */
@media (min-width:900px){.hint{left:50%;right:auto;transform:translateX(-50%);padding:5px 14px;border-radius:14px;background:rgba(7,11,24,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap}}
@media (max-width:899px){.list{z-index:3}}

/* entry door primary button (owner's pick F1): translucent white glass, white caps, no glyph */
.entry .door-wa,.entry .btn.primary{min-height:44px;height:44px;border-radius:10px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.55);box-shadow:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.entry .door-wa:hover,.entry .btn.primary:hover{background:rgba(255,255,255,.3)}
.entry .btn.ghost{border-color:rgba(255,255,255,.3);color:#fff}

/* entry gate: overlay is in the first paint; token pending = blurred, door text held back */
.entry{transition:opacity 300ms var(--ease)}
.entry.out{opacity:0;pointer-events:none}
html.gate-token .entry .entry-panel{visibility:hidden}
.entry :focus{outline:none}
.entry .door-in:focus{outline:2px solid var(--soft);outline-offset:1px}
.entry :focus-visible{outline:1px solid rgba(255,255,255,.4);outline-offset:3px}
.entry .door-in:focus-visible{outline:2px solid var(--soft);outline-offset:1px}

/* heading above the recordings panel */
.panel-h{font-size:14.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:#fff;line-height:1}
.panel-h-desk{position:absolute;left:calc(32px + var(--sal));top:222px;pointer-events:none;transition:opacity var(--dur) var(--ease)}
body.open .panel-h-desk{opacity:0}
.panel-h-phone{display:none}
@media (min-width:900px){.list{top:256px}body.flat .list{top:256px}}
@media (max-width:899px){
  .panel-h-desk{display:none}
  .panel-h-phone{display:block;flex:none;order:-1;padding:0 16px 8px;font-size:12.5px}
}

/* door security rework 13.11: Turnstile slot, email as the main action where WhatsApp is unavailable */
.door-ts{margin-top:12px}
.door-ts:empty{display:none}
.door-main .door-mail{align-self:stretch}
/* desktop WhatsApp handoff (13.11): QR panel + welcome after the phone opened the space */
.door-qr{margin-top:16px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.door-qr .qr-box{width:212px;height:212px;padding:8px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 28px rgba(0,0,0,.35)}
.door-qr .qr-box svg{width:100%;height:100%;display:block}
.door-qr .qr-box.qr-done{background:rgba(255,255,255,.08);border:1px solid var(--line)}
.door-qr .qr-box.qr-done svg{width:64px;height:64px}
.door-qr .qr-wait{font-size:12px;color:#5b6478;text-align:center;padding:0 12px}
.door-qr .qr-line{font-size:14.5px;font-weight:600;line-height:1.4;color:#fff}
.door-qr .qr-here{font-size:12.5px;color:var(--soft);text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(124,224,255,.4)}
.door-qr .qr-new{min-height:40px}
.handoff-welcome{position:fixed;z-index:80;top:22px;left:50%;transform:translateX(-50%);max-width:min(560px,calc(100vw - 32px));padding:18px 24px 16px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(16,26,58,.92),rgba(26,20,64,.9));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 18px 50px rgba(0,0,0,.45);text-align:center;transition:opacity .35s}
.handoff-welcome.out{opacity:0}
.handoff-welcome .hw-name{font-weight:900;font-size:30px;letter-spacing:.02em;color:#fff;line-height:1.1}
.handoff-welcome p{margin-top:8px;font-size:13.5px;line-height:1.45;color:var(--text)}

.row-dur{display:none}

/* ===== phone layout (<= 760px): a scrolling page, the globe is decor only (variant A) or absent (variant B) ===== */
@media (max-width:760px), (orientation:landscape) and (max-height:520px){
  #stage{overflow:hidden}
  #globe{position:absolute;left:auto;bottom:auto;top:-90px;right:-150px;width:440px;height:440px;opacity:.62;pointer-events:none}
  body.m-b #globe, body.m-b #labels{display:none}
  #labels{display:none}
  #labels{top:-90px;right:-150px;left:auto;bottom:auto;width:440px;height:440px;pointer-events:none}   /* same box as the decor globe, so the city labels sit on it */
  .hint,.tip,.pm-desk,.panel-h-desk,.grab,.brand .eyebrow{display:none!important}
  #ui{overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;pointer-events:auto;display:flex;flex-direction:column;padding-bottom:calc(8px + var(--sab))}
  #ui>*{flex:none}
  /* header */
  .brand{position:static;order:1;padding:calc(14px + var(--sat)) 16px 0;pointer-events:none}
  .brand .wordmark{font-size:19px;max-width:240px;line-height:1}
  .brand .wordmark .l{display:inline;margin-right:.28em}
  .brand .wordmark .l:nth-child(3){display:block}
  .formula{font-size:11px;margin:7px 0 0;max-width:none;white-space:normal}
  .me{display:contents}
  .ring{position:absolute;right:16px;top:calc(14px + var(--sat));margin:0;padding:4px 10px 4px 4px;gap:7px;z-index:2}
  .ring svg{width:34px;height:34px}
  .ring-txt{flex-direction:column;line-height:1.1}
  .ring-txt b{font-size:14px}
  .ring-txt span{font-size:7.5px;letter-spacing:.12em}
  .me-text{order:2;display:flex;flex-direction:row;align-items:baseline;gap:10px;padding:12px 16px 0;text-align:left}
  .me-text[hidden]{display:none}
  .me-hello{font-size:12px;letter-spacing:.12em}
  .me-city{display:inline-block;margin:0;font-size:10px;letter-spacing:.14em}
  .me-city::before{margin-right:6px}
  /* list becomes page content */
  .list{position:relative;order:3;left:auto;right:auto;top:auto;bottom:auto;width:auto;height:auto!important;display:flex;flex-direction:column;transform:none!important;opacity:1;pointer-events:auto;background:none;border:0;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;overflow:visible!important;padding:0;transition:none}
  body.open .list{pointer-events:none}
  .panel-h-phone{display:block;order:1;padding:22px 16px 10px;font-size:13px;letter-spacing:.24em}
  .tabs{order:2;position:sticky;top:0;z-index:20;display:flex;gap:8px;overflow-x:auto;padding:10px 16px;margin:0;border:0;border-bottom:1px solid rgba(175,249,253,.12);background:rgba(11,16,32,.84);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tab,.tab.tab-start{flex:none;min-height:44px;padding:0 18px;font-size:11px}
  .foryou{order:3;border:0}
  .list-title{order:3;padding:16px 16px 6px}
  .rows{order:4;flex:none;overflow:visible;padding:4px 16px 0}
  .pm-phone{order:20;padding:26px 16px calc(22px + var(--sab));margin-top:12px}
  .list.mode-start .fy-rows{padding:12px 16px 0;gap:12px}
  .row{min-height:92px;padding:12px 14px;gap:14px;border-radius:16px;background:rgba(16,26,58,.5);border:1px solid var(--line);margin-bottom:10px;width:100%}
  .list.mode-start .fy-rows .row{margin-bottom:0}
  .av{width:56px;height:56px}
  .row-name{font-size:11px}
  .row-title{font-size:15px;line-height:1.3;-webkit-line-clamp:2}
  .row-city{font-size:10.5px}
  .row-dur{display:inline}
  .row-state{width:44px}.row-state svg{width:28px;height:28px}
  /* session page: full screen, slides up */
  .plate{position:fixed;left:0;right:0;top:0;bottom:0;width:auto;height:100dvh;max-height:none;border-radius:0;border:0;transform:translateY(102%);z-index:30;padding:0}
  body.open .plate{transform:none}
  .plate-top{padding:calc(8px + var(--sat)) calc(12px + var(--sar)) 8px calc(16px + var(--sal))}
  .plate-body{padding:0;display:flex;flex-direction:column}
  .plate-body>.video{margin:12px 16px 0;width:auto;border-radius:14px}
  .plate-body>.p-title{margin:16px 16px 0}
  .plate-body>.p-speakers{margin:12px 16px 0}
  .plate-body>.outcomes{margin:18px 16px 0}
  .plate-body>.chips{margin:16px 16px 18px}
  .p-nav{position:sticky;bottom:0;margin:auto 0 0;padding:12px 16px calc(12px + var(--sab));display:grid;grid-template-columns:1fr 1fr;gap:10px;background:rgba(11,16,32,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .p-nav .btn{min-height:52px;font-size:12px}
  /* next for you: bottom card over the session page */
  .plate.np{position:fixed;left:12px;right:12px;top:auto;bottom:calc(12px + var(--sab));width:auto;height:auto;max-height:none;border-radius:20px;border:1px solid var(--line);transform:translateY(140%);z-index:40}
  body.nxt #nextPlate{transform:none}
  body.nxt #plate{transform:none;opacity:1;visibility:visible}
  /* entry door: full-screen glass */
  .entry{padding:0;background:rgba(7,11,24,.28);-webkit-backdrop-filter:blur(8px) brightness(.8);backdrop-filter:blur(8px) brightness(.8)}
  .entry-panel{width:100%;height:100%;max-height:none;border-radius:0;border:0;padding:calc(34px + var(--sat)) 22px calc(28px + var(--sab));display:flex;flex-direction:column;justify-content:center;background:linear-gradient(160deg,rgba(40,60,120,.3),rgba(16,26,58,.28));-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);box-shadow:none}
}

/* marks row on phone: at the top of the page under the wordmark and the line (scrolls away with the header); the list end copy serves 761-899 px only */
.pm-head{display:none}
@media (max-width:760px), (orientation:landscape) and (max-height:520px){
  .pm-end{display:none!important}
  .pm-head{display:flex;order:unset;margin:12px 0 0;padding:0;border:0;width:100%;pointer-events:none}
}
@media (min-width:761px) and (min-height:521px){.pm-head{display:none!important}}

/* desktop door: one big WhatsApp button, a plain line, the QR for the phone, a quiet email link */
.door-wa-big{min-height:58px;font-size:13px;letter-spacing:.16em}
.door-wa-line{margin:0;font-size:14.5px;line-height:1.4;color:var(--text)}
.door-qrrow{display:flex;align-items:center;gap:16px;margin-top:6px;align-self:flex-start}
.door-qrrow .qr-box{flex:none;width:172px;height:172px;padding:6px;border-radius:12px;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.door-qrrow .qr-box svg{display:block;flex:none}   /* exact width/height attributes: 3 px per module */
.door-qrrow .qr-box.qr-done{background:rgba(255,255,255,.08);border:1px solid var(--line)}
.door-qrrow .qr-box.qr-done svg{width:56px;height:56px}
.door-qrrow .qr-wait{font-size:11px;color:#5b6478;text-align:center;padding:0 8px}
.door-qrrow .qr-new{min-height:40px;font-size:10px;padding:0 10px}
.qr-cap{margin:0;font-size:13px;line-height:1.45;color:#C9D3E6;max-width:220px}

/* session page on phone: F1 buttons, the video keeps its box, landscape fills the screen */
@media (max-width:760px), (orientation:landscape) and (max-height:520px){
  .plate .btn.primary,.next-card .btn.primary{background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.55);color:#fff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .plate .btn.primary:hover{background:rgba(255,255,255,.3)}
  .video iframe,.video #ytp{position:absolute;inset:0;width:100%;height:100%;border:0}
  .p-nav{padding-bottom:calc(14px + var(--sab));padding-left:calc(16px + var(--sal));padding-right:calc(16px + var(--sar))}
  .plate-body{padding-bottom:0;-webkit-overflow-scrolling:touch}
}
@media (orientation:landscape) and (max-height:520px){
  .plate-top{position:fixed;left:0;right:0;top:0;z-index:50;background:linear-gradient(rgba(5,8,18,.7),rgba(5,8,18,0));pointer-events:none;padding-top:calc(6px + var(--sat))}
  .plate-top .btn{pointer-events:auto}
  #plateEyebrow{display:none}
  .plate-body>.video{position:fixed;inset:0;z-index:40;width:100vw;height:100dvh;margin:0;border:0;border-radius:0;aspect-ratio:auto}
}

#qrTs{margin-top:-12px;min-height:0}
#qrTs:empty{display:none}

/* hint shimmer (desktop): a warm-gold sweep across the text and along the pill border every 2.7 s, 0.9 s long, with a soft pulsing glow */
@media (min-width:900px){
  .hint-t{position:relative}
  .hint.shimmer{--gold:#FFD08A}
  .hint.shimmer .hint-t{color:transparent;background-image:linear-gradient(100deg,var(--muted) 0%,var(--muted) 38%,var(--gold) 50%,var(--muted) 62%,var(--muted) 100%);background-size:300% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;animation:hintSweep 2.7s ease-in-out infinite}
  .hint.shimmer::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(100deg,rgba(255,208,138,0) 38%,var(--gold) 50%,rgba(255,208,138,0) 62%),rgba(255,208,138,.0);background-size:300% 100%;background-position:100% 0;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:hintSweep 2.7s ease-in-out infinite}
  .hint.shimmer{animation:hintGlow 2.7s ease-in-out infinite}
}
@keyframes hintSweep{0%{background-position:100% 0}33.3%{background-position:0% 0}100%{background-position:0% 0}}
@keyframes hintGlow{0%{box-shadow:0 0 0 rgba(255,208,138,0)}16%{box-shadow:0 0 18px rgba(255,208,138,.26)}33.3%,100%{box-shadow:0 0 0 rgba(255,208,138,0)}}
@media (prefers-reduced-motion:reduce){
  .hint.shimmer,.hint.shimmer .hint-t,.hint.shimmer::before{animation:none}
  .hint.shimmer .hint-t{color:var(--muted);background:none;-webkit-background-clip:border-box;background-clip:border-box}
  .hint.shimmer::before{background:rgba(255,208,138,.7)}
}

/* city labels: hoverable and clickable like their point, leader lines for displaced ones (desktop) */
#labels svg.lead{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
#labels svg.lead line{stroke:rgba(244,253,255,.5);stroke-width:1}
@media (min-width:900px){.lbl{pointer-events:auto;cursor:pointer;transition:background 160ms,border-color 160ms}.lbl:hover{background:rgba(255,184,92,.22);border-color:rgba(255,208,138,.75)}}

.tip{pointer-events:none}   /* the micro-card never takes the pointer from the label or the point under it */

/* 13.11 owner: QR caption spelled out in three steps, compact */
.qr-cap .qr-t{font-weight:700;color:#F4FDFF;margin-bottom:6px}
.qr-steps{margin:0;padding:0;list-style:none;counter-reset:qs}
.qr-steps li{counter-increment:qs;position:relative;padding-left:24px;margin:4px 0;color:#C9D3E6}
.qr-steps li::before{content:counter(qs);position:absolute;left:0;top:1px;width:17px;height:17px;border-radius:50%;border:1px solid rgba(175,249,253,.45);font-size:10px;font-weight:800;line-height:15px;text-align:center;color:#AFF9FD}

/* 13.11 owner: first-visit tour, the globe shows how it works (computer only) */
.tour-panel{position:fixed;right:44px;top:50%;z-index:40;width:210px;padding:18px 18px 16px;border-radius:18px;background:rgba(13,21,48,.32);border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 40px rgba(0,0,0,.35);text-align:center;pointer-events:none;opacity:0;transform:translate(16px,-50%);transition:opacity .35s ease,transform .35s ease}
.tour-panel.on{opacity:1;transform:translate(0,-50%)}
.tp-ico{width:64px;height:64px;margin:0 auto 10px}
.tp-ico svg{width:64px;height:64px;display:block;overflow:visible}
.tp-t{font-size:13px;line-height:1.4;font-weight:600;letter-spacing:.02em;color:#fff}
.tour-panel[data-k="zoom"] .tw-up{animation:twUp 1.2s ease-in-out infinite}
.tour-panel[data-k="zoom"] .tw-dn{animation:twDn 1.2s ease-in-out infinite}
@keyframes twUp{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-3px);opacity:1}}
@keyframes twDn{0%,100%{transform:translateY(0);opacity:1}50%{transform:translateY(3px);opacity:.4}}
.tour-panel[data-k="spin"] .tw-arc{animation:twSpin 1.4s ease-in-out infinite;transform-origin:32px 32px}
@keyframes twSpin{0%{transform:rotate(-12deg);opacity:.5}50%{transform:rotate(10deg);opacity:1}100%{transform:rotate(-12deg);opacity:.5}}
.tour-panel[data-k="point"] .tw-ring{animation:twRing 1.4s ease-out infinite;transform-origin:22px 22px}
@keyframes twRing{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.4);opacity:0}}
.tour-panel[data-k="click"] .tw-burst{animation:twBurst 1s ease-out infinite}
@keyframes twBurst{0%,40%{opacity:0}60%{opacity:1}100%{opacity:0}}
.tour-cursor{position:fixed;left:0;top:0;z-index:41;width:26px;height:26px;pointer-events:none;opacity:0;transition-property:transform,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 2px 6px rgba(0,0,0,.45))}
.tour-cursor.on{opacity:1}
.tour-cursor svg{width:26px;height:26px;display:block}
.tour-cursor::after{content:"";position:absolute;left:-9px;top:-9px;width:22px;height:22px;border-radius:50%;border:2px solid #FFD08A;opacity:0;transform:scale(.4)}
.tour-cursor.tap::after{animation:twTap .45s ease-out}
@keyframes twTap{0%{opacity:1;transform:scale(.4)}100%{opacity:0;transform:scale(1.6)}}
.tour-how{pointer-events:auto;margin-left:14px;padding:3px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:transparent;color:var(--soft);font:inherit;font-size:10px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s}
.tour-how:hover{border-color:#FFD08A;color:#FFE2B0}
body.touring .tour-how{opacity:.4}
@media (max-width:899px){.tour-how,.tour-panel,.tour-cursor,.tour-welcome{display:none}}
/* 14.11 owner: big airy Welcome over the globe during the tour (computer only); panel sits near the globe, not at the screen edge */
.tour-welcome{position:fixed;z-index:3;transform:translateX(-50%);white-space:nowrap;pointer-events:none;user-select:none;font-family:'Inter',system-ui,sans-serif;font-weight:900;line-height:1;letter-spacing:-.045em;color:rgba(255,255,255,.2);opacity:0;transition:opacity .35s ease}
.tour-welcome.on{opacity:1}
.tour-panel.near{right:auto}
@media (prefers-reduced-motion:reduce){.tour-welcome{transition:none}}

/* tour, last step: the list on the left lights up (white-gold glow), the panel sits beside it with an arrow */
.tour-panel.at-list{right:auto}
.tour-panel[data-k="list"] .tw-left{animation:twLeft 1s ease-in-out infinite}
@keyframes twLeft{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
body.tour-list .list{animation:listGlow 1.6s ease-in-out infinite;border-color:rgba(255,226,176,.85)}
@keyframes listGlow{0%,100%{box-shadow:0 0 0 1px rgba(255,208,138,.35),0 0 18px rgba(255,208,138,.18)}50%{box-shadow:0 0 0 2px rgba(255,246,228,.9),0 0 34px rgba(255,208,138,.45)}}

/* 13.11 owner: speaker bio, More on the talk card (same content as the main site), portal glass style */
.spk-more{display:inline-flex;align-items:center;gap:3px;padding:3px 10px 3px 11px;border-radius:999px;border:1px solid rgba(175,249,253,.35);background:rgba(124,224,255,.06);color:var(--soft);font:inherit;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.spk-more svg{width:12px;height:12px}
.spk-more:hover{border-color:#FFD08A;color:#FFE2B0;background:rgba(255,208,138,.08)}
.bio-dlg{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(5,9,22,.62);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s}
.bio-dlg.on{opacity:1;visibility:visible}
.bio-pn{position:relative;width:min(640px,100%);max-height:min(86vh,860px);overflow-y:auto;padding:30px 32px 26px;border-radius:20px;background:rgba(13,21,48,.94);border:1px solid rgba(175,249,253,.28);box-shadow:0 24px 60px rgba(0,0,0,.5)}
.bio-x{position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;border:1px solid rgba(175,249,253,.3);background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center}
.bio-x svg{width:18px;height:18px}
.bio-x:hover{border-color:#FFD08A}
.bio-hd{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;align-items:center;padding-right:36px}
.bio-hd img{width:132px;height:132px;border-radius:50%;object-fit:cover;border:2px solid rgba(175,249,253,.35)}
.bio-nm{font-size:22px;font-weight:800;line-height:1.2;color:#fff}
.bio-rl{margin-top:6px;font-size:14px;line-height:1.4;color:var(--text)}
.bio-pl{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#FFD08A}
.bio-tx{margin-top:20px}
.bio-tx p{margin:0 0 12px;font-size:15px;line-height:1.6;color:#DCE6F5}
.bio-ft{margin-top:8px;display:flex;gap:12px}
.bio-in{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border-radius:999px;border:1px solid rgba(175,249,253,.3);color:#fff;text-decoration:none;font-size:13px;font-weight:600}
.bio-in svg{width:22px;height:22px}
.bio-in:hover{border-color:#FFD08A}
@media (max-width:600px){.bio-dlg{padding:0;align-items:stretch}.bio-pn{max-height:none;height:100%;border-radius:0;padding:60px 20px 24px}.bio-hd{grid-template-columns:96px minmax(0,1fr);gap:14px;padding-right:0}.bio-hd img{width:96px;height:96px}.bio-nm{font-size:19px}}

/* 13.11 owner: a separate LinkedIn button next to More, the conventional blue and white */
.spk-acts{display:flex;align-items:center;gap:8px;margin-top:7px;flex-wrap:wrap}
.spk-li{display:inline-flex;align-items:center;gap:5px;height:24px;padding:0 10px 0 7px;border-radius:4px;background:#0A66C2;color:#fff;text-decoration:none;font-size:11.5px;font-weight:600;letter-spacing:.01em;transition:background .2s}
.spk-li svg{width:14px;height:14px;display:block}
.spk-li:hover{background:#004182}
.spk-more{height:24px;box-sizing:border-box}

/* 13.11 (NEWREG2): Join live on an upcoming session row during its live window */
.chip-live{display:inline-block;padding:6px 11px;border-radius:999px;background:#FFD08A;color:#0B1020;font-size:10px;font-weight:800;letter-spacing:.14em;text-decoration:none;white-space:nowrap;animation:liveGlow 1.6s ease-in-out infinite}
@keyframes liveGlow{0%,100%{box-shadow:0 0 0 0 rgba(255,208,138,.0)}50%{box-shadow:0 0 0 4px rgba(255,208,138,.25)}}

/* 13.11 owner: hovering a row lights its play button in a soft gold gradient: a quiet call to press play */
.row-state svg circle,.row-state svg path{transition:none}   /* a gradient cannot be tweened: any transition would only delay the swap */
.row:hover .row-state svg circle,.row.hov .row-state svg circle,.row:focus-visible .row-state svg circle{stroke:url(#gGold)}
.row:hover .row-state svg path,.row.hov .row-state svg path,.row:focus-visible .row-state svg path{fill:url(#gGold)}
.row:hover .row-state svg,.row.hov .row-state svg{filter:drop-shadow(0 0 6px rgba(255,208,138,.28))}
/* 13.11 owner: FOR YOU simpler: white text, the thin gold-white outline keeps its slow play */
.tab-gold{color:#F4FDFF;background:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:#F4FDFF;animation:none}
.tab.tab-start::before{opacity:.75}

/* 13.11 owner: bio window like the main site: square photo 180 (124 on a phone), LinkedIn as a plain icon bottom right, a hairline above the text */
.bio-hd{grid-template-columns:180px minmax(0,1fr);gap:22px}
.bio-hd img{width:180px;height:180px;border-radius:14px;border:1px solid rgba(255,255,255,.2)}
.bio-tx{margin-top:24px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14)}
.bio-ft{display:flex;justify-content:flex-end;margin-top:20px}
.bio-in{display:inline-flex;width:34px;height:34px;padding:0;border:0;border-radius:6px;transition:transform .2s,box-shadow .2s}
.bio-in svg{width:34px;height:34px}
.bio-in:hover,.bio-in:focus-visible{transform:translateY(-1px);box-shadow:0 6px 16px rgba(10,102,194,.45);border:0;outline:none}
.bio-in[hidden]{display:none}
@media (max-width:600px){.bio-hd{grid-template-columns:124px minmax(0,1fr);gap:16px}.bio-hd img{width:124px;height:124px}}

/* local clock under WELCOME (14.11): Outfit 300 self-hosted, white blinking colon, desktop only */
@font-face{font-family:'Outfit';src:url('../fonts/outfit-300-latin.woff2') format('woff2');font-weight:300;font-display:swap;unicode-range:U+0000-00FF}
.me-clock{margin-top:8px;display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--pale);min-height:20px}
.me-clock:empty{display:none}
.me-clock .ck-t{font-family:'Outfit','Inter',sans-serif;font-weight:300;font-size:16px;letter-spacing:.1em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.me-clock .ck-l{font-size:9.5px;letter-spacing:.22em;color:rgba(175,249,253,.62)}
.me-clock .ck-l::before{content:"";display:inline-block;width:1px;height:9px;background:rgba(175,249,253,.3);margin-right:8px;vertical-align:-1px}
.me-clock .ck-col{font-style:normal;margin:0 .06em;color:#fff;animation:ckb 2s steps(1) infinite}
@keyframes ckb{0%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.me-clock .ck-col{animation:none}}
@media (max-width:820px){.me-clock{display:none}}
/* 14.11: quiet way out when the embed stays still after Play (YouTube bot wall behind a VPN) */
.yt-alt{position:absolute;left:50%;bottom:14px;transform:translate(-50%,6px);z-index:3;padding:7px 14px;border-radius:999px;background:rgba(11,16,32,.72);border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.82);font-size:12px;font-weight:500;letter-spacing:.02em;text-decoration:none;white-space:nowrap;opacity:0;transition:opacity .4s ease,transform .4s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.yt-alt.on{opacity:1;transform:translate(-50%,0)}
.yt-alt:hover{color:#fff;border-color:rgba(255,255,255,.4)}
