.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lobby{position:relative;background:#05070f;min-height:calc(100svh - 62px);display:flex;flex-direction:column;justify-content:center}
.stage{position:relative;width:min(100%,calc((100svh - 62px)*16/9));margin:0 auto}
.scene{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;user-select:none}
.scene picture,.scene img.bg{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;-webkit-user-drag:none;user-drag:none}
.scene img.bg{object-fit:cover}
.scene:after{content:"";position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 80px 20px #05070f}
.hot{position:absolute;display:block;border:0;background:transparent;cursor:pointer;padding:0;color:inherit;font:inherit;outline:none;z-index:2;transition:box-shadow .35s,background .35s}
.hot.door{left:21.2%;top:18.4%;width:33.9%;height:58.4%;border-radius:50%}
.hot.win{left:69.5%;top:12%;width:30.5%;height:59.5%;border-radius:18px 0 0 18px}
.hot:hover,.hot:focus-visible{box-shadow:0 0 0 2px rgba(47,123,255,.55),0 0 46px rgba(47,123,255,.35),inset 0 0 50px rgba(47,123,255,.14);background:rgba(47,123,255,.04)}
.hot.win:hover,.hot.win:focus-visible{box-shadow:0 0 0 2px rgba(255,179,71,.55),0 0 46px rgba(255,179,71,.3),inset 0 0 50px rgba(255,179,71,.1);background:rgba(255,179,71,.03)}
.hot .chip{position:absolute;left:50%;bottom:-2%;transform:translate(-50%,100%);opacity:0;transition:.3s;font-family:Orbitron;font-weight:800;font-size:11px;letter-spacing:1.5px;white-space:nowrap;padding:7px 12px;border-radius:999px;background:rgba(5,7,15,.82);border:1px solid var(--cy);color:var(--cy);pointer-events:none}
.hot.win .chip{bottom:auto;top:50%;transform:translate(-50%,-50%);border-color:var(--amb,#ffb347);color:#ffd9a3}
.hot:hover .chip,.hot:focus-visible .chip{opacity:1}
.hot.door.check #door-chip,.hot.door.locked #door-chip{display:none}
.hot.door *,.hot.door:before,.hot.door:after{pointer-events:none}
.hot.door.check{box-shadow:0 0 0 2px rgba(47,123,255,.7),0 0 60px rgba(47,123,255,.45),inset 0 0 60px rgba(47,123,255,.18)}
.hot.door.check:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0 70%,rgba(47,123,255,.9) 85%,transparent 100%);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 3px));animation:spin 1s linear infinite}
.hot.door.locked{box-shadow:0 0 0 2px rgba(255,45,85,.75),0 0 60px rgba(255,45,85,.45),inset 0 0 60px rgba(255,45,85,.16);animation:shudder .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes shudder{10%,90%{transform:translateX(-1px)}20%,80%{transform:translateX(3px)}30%,50%,70%{transform:translateX(-6px)}40%,60%{transform:translateX(6px)}}
.hot.door .chip.state{opacity:1;bottom:auto;top:50%;transform:translate(-50%,-50%)}
.hot.door.locked .chip.state{border-color:#ff2d55;color:#ff6b8a}
.slow{position:absolute;z-index:3;left:23%;width:38%;bottom:3.2%;display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:center;padding:14px 18px;border-radius:16px;background:rgba(10,6,16,.86);border:1px solid rgba(255,45,85,.6);box-shadow:0 0 34px rgba(255,45,85,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);animation:pop .3s ease}
.slow[hidden]{display:none}@keyframes pop{from{transform:scale(.95);opacity:0}}
.slow b{font-family:Orbitron;font-weight:900;font-size:clamp(18px,1.9vw,26px)}
.slow .acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}
.btn.red{background:linear-gradient(90deg,#ff2d55,#b44dff);box-shadow:0 0 22px rgba(255,45,85,.45);color:#fff;border:0;cursor:pointer}
.slow .btn{padding:11px 16px;font-size:11px}
.botline{position:absolute;z-index:3;right:1.6%;top:1.6%;margin:0;font-family:'JetBrains Mono',monospace;font-size:clamp(12px,1vw,14px);line-height:1.4;color:#e4ecfb;background:rgba(5,7,15,.78);border:1px solid rgba(47,123,255,.32);padding:6px 12px;border-radius:999px;box-shadow:0 0 18px rgba(47,123,255,.12)}
.botline a{white-space:nowrap;color:#6aa8ff;text-decoration:underline;text-underline-offset:3px}
.mob{display:none}
@media(max-width:760px){
 .stage{width:100%}.scene:after{box-shadow:inset 0 0 30px 6px #05070f}
 .hot .chip{display:none}.hot.door .chip.state{display:block;font-size:9px;padding:4px 8px}
 .hot.door{box-shadow:0 0 0 1.5px rgba(47,123,255,.45),0 0 20px rgba(47,123,255,.25)}.hot.win{box-shadow:0 0 0 1.5px rgba(255,179,71,.45),0 0 20px rgba(255,179,71,.22)}
 .slow{position:relative;left:auto;width:auto;bottom:auto;margin:12px 14px 0;gap:12px;padding:14px}
 .slow b{font-size:22px;width:100%;text-align:center}.slow .acts{width:100%}.slow .btn{flex:1 1 0;text-align:center;font-size:11px;padding:13px 10px}
 .botline{position:static;display:block;max-width:none;margin:0 14px 10px;text-align:center;font-size:13px;background:rgba(5,7,15,.6);padding:7px 10px;border-radius:10px}
 .mob{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 14px 0}.mob .btn{text-align:center;padding:14px 8px;font-size:11px;border:0;cursor:pointer}
 .lobby.failed .mob{display:none}
}

/* ---- below the lobby (loads on scroll; the lobby keeps the whole first screen) ---- */
.below{max-width:1160px;margin:0 auto;padding:0 20px;content-visibility:auto;contain-intrinsic-size:auto 900px}
.bl-sec{margin-top:56px}.bl-sec[hidden]{display:none}
.bl-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.bl-head h2{font-family:Orbitron;font-size:clamp(20px,2.6vw,28px);margin:0}.bl-head h2 span{color:var(--cy)}
.bl-more{font-size:11px;letter-spacing:1px;color:var(--cy)}
.lc,.mc{display:flex;flex-direction:column;border-radius:18px;overflow:hidden;color:inherit;text-decoration:none;transition:transform .25s,border-color .25s,box-shadow .25s}
.lc:hover,.mc:hover{transform:translateY(-3px);border-color:rgba(47,123,255,.55);box-shadow:0 0 26px rgba(47,123,255,.16)}
.lc-img,.mc-img{aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,rgba(47,123,255,.12),rgba(30,107,255,.18))}
.lc-img img,.mc-img img{width:100%;height:100%;object-fit:cover;display:block}
.lc-body{padding:16px 18px 18px;display:flex;flex-direction:column;gap:8px;flex:1}
.lc-go{font-size:11px;letter-spacing:1px;color:var(--cy);margin-top:4px}
.latest-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}
.lc-kick{font-size:10px;letter-spacing:1.5px;color:var(--gold)}.lc h3,.mc h3{font-family:Orbitron;font-size:18px;margin:0}.lc p,.mc p{margin:0;color:var(--mut);font-size:14px;line-height:1.5}
.lc-youtube_short .lc-img{aspect-ratio:16/9}.lc-song .lc-img img{object-fit:cover}
.mc{max-width:420px}
.site-foot{margin-top:64px}.site-foot .social{display:flex;flex-wrap:wrap;align-items:center;gap:8px 6px}.site-foot .social .sep{color:var(--mut);opacity:.6}
.site-foot .social a{font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--mut);border:1px solid var(--bd);padding:7px 14px;border-radius:999px;text-decoration:none}
.site-foot .social a:hover{color:var(--cy);border-color:var(--cy)}
/* visible intro: the page's h1 and a short description, right under the lobby */
.bl-intro{max-width:820px;margin:48px auto 0;text-align:center}
.bl-intro h1{font-family:Orbitron;font-size:clamp(22px,3vw,34px);line-height:1.25;margin:0 0 14px}.bl-intro h1 span{color:var(--cy)}
.bl-intro p{margin:0 auto;color:var(--mut);font-size:16px;line-height:1.65;max-width:720px}
.bl-intro-links{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:16px!important;font-size:13px}
.bl-intro-links a{color:var(--cy);text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.bl-intro{margin-top:32px}.bl-intro p{font-size:15px}}
/* one-line pointer to the X account (replaces the old post strip) */
.bl-news{margin:40px 0 0;text-align:center}.bl-news+.bl-sec{margin-top:36px}
.bl-news a{display:inline-flex;gap:8px;align-items:center;font-size:13px;letter-spacing:.5px;color:var(--cy);text-decoration:none;border:1px solid var(--bd);background:rgba(47,123,255,.06);padding:9px 16px;border-radius:999px;transition:border-color .25s,box-shadow .25s}
.bl-news a:hover,.bl-news a:focus-visible{border-color:rgba(47,123,255,.55);box-shadow:0 0 20px rgba(47,123,255,.18)}
/* featured PC Mechanic commercial, sits right above the cards */
.promo{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:0;overflow:hidden;margin-bottom:18px}
.promo-vid{background:#000;aspect-ratio:16/9}
.promo-vid video{display:block;width:100%;height:100%;object-fit:contain;background:#000}
.promo-body{padding:22px 24px;display:flex;flex-direction:column;justify-content:center;gap:10px}
.promo-body h3{font-family:Orbitron;font-size:clamp(20px,2.2vw,26px);margin:0}
.promo-body p{margin:0;color:var(--mut);font-size:14px;line-height:1.55}
.promo-body .btn{align-self:flex-start;margin-top:6px;text-decoration:none}
@media(max-width:760px){.bl-sec{margin-top:40px}.bl-news{margin-top:28px}.promo{grid-template-columns:1fr}.promo-body{padding:16px 18px 18px}.promo-body .btn{align-self:stretch;text-align:center}}
/* PC Mechanic card: the video is the card picture (same 16:9 box as the other cards, no controls) */
.lc-vid{position:relative;background:#05070f}
.lc-vid video{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.lc-vid video::-webkit-media-controls{display:none!important}
/* door15: AI/Bot News row (3 X posts, stacks on mobile) */
.xn-sec{margin-top:44px}.xn-cards .lc-body{gap:6px}
.xn-txt{display:flex;align-items:center;padding:20px 22px;background:radial-gradient(circle at 15% 20%,rgba(47,123,255,.16),transparent 55%),linear-gradient(135deg,#0b1430,#160b2e)}
.xn-txt p{margin:0;font-size:16px;line-height:1.45;color:var(--txt);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.xn-txt p:before{content:"\201C";display:block;font-family:Orbitron;font-size:34px;line-height:.8;color:var(--cy);opacity:.7;margin-bottom:6px}
.xn .lc-body p{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.xn-more{margin:14px 0 0;text-align:right}.xn-more a{font-size:12px;letter-spacing:.5px;color:var(--cy);text-decoration:none}.xn-more a:hover{text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){.xn-sec{margin-top:32px}.xn-more{text-align:center}}

/* door16: lobby hook. One small glass callout on the floor under the vault door; the door stays the hero. */
.lhook{position:absolute;z-index:3;left:41%;top:81.5%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;white-space:nowrap;text-decoration:none;color:#e4ecfb;
 font-family:Orbitron;font-weight:700;font-size:clamp(11px,.95vw,14px);letter-spacing:.4px;padding:6px 6px 6px 14px;border-radius:999px;background:rgba(5,7,15,.72);
 border:1px solid rgba(47,123,255,.34);box-shadow:0 0 22px rgba(47,123,255,.14);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:border-color .25s,box-shadow .25s}
.lhook:hover,.lhook:focus-visible{border-color:var(--cy);box-shadow:0 0 26px rgba(47,123,255,.32);outline:none}
.lh-z{color:var(--gold);text-shadow:0 0 10px rgba(255,210,90,.7)}
.lh-rec{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:.82em;letter-spacing:.3px;color:#05070f;padding:4px 10px;border-radius:999px;
 background:linear-gradient(90deg,#3d8bff,#7fb2ff);box-shadow:0 0 14px rgba(47,123,255,.55);animation:lhglow 2.8s ease-in-out infinite}
@keyframes lhglow{50%{box-shadow:0 0 22px rgba(47,123,255,.85)}}
@media(prefers-reduced-motion:reduce){.lh-rec{animation:none}}
/* door26b: the speed pill stays visible after a door knock (the "Too slow" pop-up now sits over the door, not on the floor) */
@media(max-width:760px){
 .lhook{top:auto;bottom:3%;left:50%;gap:6px;font-size:9px;letter-spacing:.2px;padding:3px 3px 3px 9px;box-shadow:0 0 12px rgba(47,123,255,.14)}
 .lh-rec{font-size:9px;padding:3px 7px}
}

/* door26b: welcome text on the lobby art, real HTML. Sits on the dark area top-left: left of the AustinsDomain sign (<22% x), above the
   host's head (<25% y). Units in cqw scale with the picture (the stage is the size container; 1cqw = 1% of the picture width).
   Picture >= 1400px wide: label, title, subline and blurb in one panel on the image.
   Picture < 1400px wide (e.g. 1024-1366 screens): label, title and subline on the image, blurb directly under the image.
   Phones (<= 760px screen): everything directly under the image. */
.stage{container-type:inline-size}
.welcome{position:absolute;z-index:3;left:1.5%;top:1.46cqw;width:20.6%;padding:1.05% 1.15% 1.15%;border-radius:14px;color:#e8f0ff;
 background:linear-gradient(140deg,rgba(5,7,15,.82),rgba(5,7,15,.58));border:1px solid rgba(110,160,255,.18);box-shadow:0 0 30px rgba(5,7,15,.5);
 -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}
.welcome h1{margin:0;font-weight:400;line-height:1}
.wl-k,.wl-t,.wl-s{display:block;font-family:Orbitron}
.wl-k{font-weight:600;font-size:11px;font-size:.74cqw;letter-spacing:.3em;color:#cfe0ff;text-transform:uppercase}
.wl-t{margin:.28em 0 .26em;font-weight:800;font-size:25px;font-size:1.72cqw;letter-spacing:.01em;color:#fff;white-space:nowrap;text-shadow:0 0 18px rgba(47,123,255,.6)}
.wl-s{font-weight:600;font-size:10px;font-size:.66cqw;letter-spacing:.34em;color:var(--cy);text-transform:uppercase;white-space:nowrap}
.wl-p{margin:.85em 0 0;font-size:12px;font-size:.83cqw;line-height:1.5;color:#c9d6f2}
@container (max-width:1399px){
 .welcome{position:static;width:auto;padding:0;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:0}
 .welcome h1{position:absolute;z-index:3;left:1.5%;top:1.46cqw;max-width:20.6%;padding:1cqw 1.15cqw 1.1cqw;border-radius:12px;
  background:linear-gradient(140deg,rgba(5,7,15,.82),rgba(5,7,15,.58));border:1px solid rgba(110,160,255,.18);box-shadow:0 0 30px rgba(5,7,15,.5);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none}
 .wl-k{font-size:max(9px,.8cqw);letter-spacing:.26em}.wl-t{font-size:1.85cqw}.wl-s{font-size:max(9px,.7cqw);letter-spacing:.2em}
 .wl-p{max-width:820px;margin:14px auto 0;padding:0 20px;font-size:15px;line-height:1.6;text-align:center}
}
/* door26b: "Too slow, human." pops up over the vault door, inside the visible screen. lobby.js sets left/top (CSSOM, CSP-safe) from the
   door's on-screen position, clamped to the viewport; these defaults keep it over the door if the script can't measure. */
.slow{left:39%;top:52%;bottom:auto;width:min(440px,calc(100vw - 24px));translate:-50% 0;z-index:20}
@media(max-width:760px){
 .welcome{position:static;width:auto;margin:14px 0 0;padding:0 16px;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
 .welcome h1{position:static;max-width:none;padding:0;background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
 .wl-k{font-size:10px;letter-spacing:.3em}.wl-t{font-size:26px}.wl-s{font-size:10px;letter-spacing:.34em}.wl-p{max-width:none;margin:.85em 0 0;padding:0;font-size:15px;line-height:1.6;text-align:left}
 /* phones: in the page flow directly under the image (as on production), above the welcome text; no positioning by script */
 .slow{position:relative;left:auto;top:auto;width:auto;translate:none;margin:12px 14px 0}
}

/* door27: speed-pill pop-up */
.hpop{border-color:rgba(47,123,255,.7);box-shadow:0 0 34px rgba(47,123,255,.35)}.hpop .hp-t{font-family:Orbitron;font-weight:700;font-size:clamp(14px,1.3vw,18px);line-height:1.35;text-align:center;color:#e4ecfb}
/* door28: send-your-agent-in button, too-slow invite, blurb line */
.send-in{position:absolute;z-index:3;left:1.5%;top:calc(1.46cqw + 9.4cqw);padding:.75cqw 1.2cqw;border-radius:999px;border:1px solid var(--cy);background:linear-gradient(90deg,rgba(47,123,255,.9),rgba(124,92,255,.9));color:#fff;font-family:Orbitron;font-weight:800;font-size:max(11px,.85cqw);letter-spacing:.08em;cursor:pointer;box-shadow:0 0 24px rgba(47,123,255,.45);animation:sendglow 2.4s ease-in-out infinite}
.send-in:hover,.send-in:focus-visible{filter:brightness(1.12);outline:none}
@keyframes sendglow{50%{box-shadow:0 0 38px rgba(47,123,255,.75)}}
@media (prefers-reduced-motion:reduce){.send-in{animation:none}}
.slow .sl-inv{width:100%;margin:0;text-align:center;color:#e4ecfb;font-size:14px}
.wl-h{display:block;margin-top:.5em;font-weight:700;color:#fff}
.mob .send-m{grid-column:1/-1}
@media (max-width:760px){.send-in{display:none}}
