:root{
  --bg:#03060d; --panel:#07111d; --panel2:#0b1627; --line:rgba(255,255,255,.08);
  --pink:#ff4ea8; --cyan:#4ef4db; --blue:#59a7ff; --green:#2cdc98; --orange:#ffb342; --red:#ff6176;
  --text:#eef3ff; --muted:#91a2bf; --shadow:0 0 20px rgba(255,78,168,.16), inset 0 0 0 1px rgba(255,255,255,.035);
}
*{box-sizing:border-box} html,body{height:100%}
body{margin:0;font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;background:radial-gradient(circle at 20% 0%, rgba(255,78,168,.08), transparent 25%), radial-gradient(circle at 100% 0%, rgba(78,244,219,.08), transparent 35%), linear-gradient(180deg,#020409,#060912 58%,#03050b);color:var(--text);overflow-x:hidden}
button,input,textarea{font:inherit}
#app{max-width:1540px;margin:0 auto;padding:8px}
.shell{border:2px solid rgba(255,78,168,.82);background:linear-gradient(180deg,rgba(7,10,18,.96),rgba(4,7,13,.98));box-shadow:0 0 0 4px rgba(255,78,168,.08),0 0 36px rgba(255,78,168,.1);overflow:hidden;position:relative}
.topbar{height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:linear-gradient(90deg,var(--pink),#f35ba7 38%,#ff78be);color:#170510;font-weight:900;letter-spacing:.6px}
.brand{display:flex;align-items:center;gap:10px;font-size:16px}.brand img{height:28px;width:auto;display:block;border-radius:0;box-shadow:none}
.topmeta{display:flex;gap:14px;align-items:center;font-size:12px}.pill{padding:5px 8px;background:#1a0714;color:#ffd4eb;border-radius:4px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.stats{display:grid;grid-template-columns:1.65fr repeat(4,1fr);gap:8px;padding:8px}.stat{min-height:52px;background:linear-gradient(180deg,#09111f,#08111d);border:1px solid rgba(255,78,168,.28);padding:10px 12px;box-shadow:var(--shadow);font-size:11px;color:#ccd6ee;display:flex;align-items:center;justify-content:space-between;overflow:hidden}
.marqueeBox{position:relative;overflow:hidden}.marquee{white-space:nowrap;display:inline-block;padding-left:100%;animation:marquee 16s linear infinite}@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-100%)}}
.panelsTop{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;padding:0 8px 8px}.miniPanel{min-height:126px;background:linear-gradient(180deg,#08111e,#09111d);border:1px solid rgba(255,78,168,.28);padding:10px 12px;box-shadow:var(--shadow)}
.miniPanel h3{margin:0 0 8px;font-size:12px;color:#ff96cd}.bigNumber{font-size:34px;font-weight:900;color:#ff6bb7;line-height:1}.miniPanel small{display:block;color:#8fb4d1;margin-top:6px}.list{font-size:11px;line-height:1.55;color:#cdd6ea;max-height:92px;overflow:auto}
.sceneWrap{padding:0 8px 8px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}.actBtn{padding:9px 12px;border:1px solid rgba(78,244,219,.42);background:linear-gradient(180deg,#123130,#0d2128);color:#e4fff9;box-shadow:0 0 0 1px rgba(78,244,219,.08) inset, 0 0 16px rgba(78,244,219,.08);cursor:pointer}.actBtn.alt{border-color:rgba(255,78,168,.42);background:linear-gradient(180deg,#241426,#17101d);color:#ffe8f5}
.scene{position:relative;height:920px;overflow:hidden;border:1px solid rgba(255,78,168,.46);box-shadow:var(--shadow);background:#050913}
.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.shade{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%, transparent 28%, rgba(3,5,12,.14) 74%, rgba(3,5,12,.33) 100%)}
.grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px, transparent 1px);background-size:26px 26px;mix-blend-mode:screen;opacity:.33;pointer-events:none}
.banner{position:absolute;left:14px;right:14px;top:14px;height:42px;display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:rgba(7,12,22,.72);border:1px solid rgba(255,78,168,.28);backdrop-filter:blur(4px);box-shadow:var(--shadow);z-index:9}
.banner .row{display:flex;gap:8px;flex-wrap:wrap}.chip{padding:5px 8px;background:rgba(10,16,28,.65);border:1px solid rgba(255,255,255,.08);font-size:10px;color:#dce4fb}
.liveSnap{position:absolute;left:14px;top:68px;width:250px;padding:12px;background:rgba(8,12,21,.8);border:1px solid rgba(255,78,168,.28);box-shadow:var(--shadow);z-index:9}.liveSnap h3{margin:0 0 8px;font-size:13px}.kv{display:grid;grid-template-columns:1fr auto;gap:8px;padding:3px 0;font-size:11px;color:#d7deef}.kv b{color:#4ef4db}
.rightTokens{position:absolute;right:14px;top:70px;display:flex;gap:8px;flex-wrap:wrap;max-width:302px;justify-content:flex-end;z-index:10}.coin{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.12);background:rgba(5,9,15,.55);display:grid;place-items:center;cursor:pointer;transition:.16s transform,.16s box-shadow,.16s border-color;box-shadow:0 0 14px rgba(0,0,0,.32)}.coin img{width:100%;height:100%;display:block;object-fit:contain}.coin:hover{transform:translateY(-2px)}.coin.active{border-color:var(--pink);box-shadow:0 0 0 2px rgba(255,78,168,.18),0 0 18px rgba(255,78,168,.18)}
.tokenOrbit{position:absolute;border:1px solid rgba(78,244,219,.22);border-radius:50%;animation:spin 13s linear infinite;pointer-events:none;opacity:.55}.tokenOrbit.o1{right:44px;top:118px;width:140px;height:140px}.tokenOrbit.o2{right:28px;top:102px;width:172px;height:172px;animation-direction:reverse}.tokenOrbit.o3{right:14px;top:88px;width:202px;height:202px}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
.chartOverlay{position:absolute;left:28.7%;top:15.4%;width:43.5%;height:31.8%;z-index:6;border:1px solid rgba(82,213,255,.1);pointer-events:auto}.chartCanvas{width:100%;height:100%;display:block}.chartHeader{position:absolute;left:10px;top:6px;font-size:11px;color:#cde5f8;background:rgba(0,0,0,.18);padding:2px 6px;border:1px solid rgba(255,255,255,.06)}
.clickZone{position:absolute;z-index:7;border:1px solid rgba(78,244,219,.18);background:rgba(78,244,219,.05);border-radius:8px;cursor:pointer;transition:.16s background,.16s border-color}.clickZone:hover{background:rgba(78,244,219,.09);border-color:rgba(78,244,219,.42)}.clickZone .label{position:absolute;left:8px;bottom:8px;font-size:11px;padding:3px 6px;color:#d9fffa;background:rgba(6,15,22,.72);border:1px solid rgba(78,244,219,.28);border-radius:6px}
.spiderWrap{position:absolute;width:132px;height:132px;z-index:8;pointer-events:none;transform:translate(-50%,-50%)}.spiderWrap img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 0 22px rgba(78,244,219,.22)) drop-shadow(0 0 18px rgba(255,78,168,.14));animation:float 1.45s ease-in-out infinite}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.beamCanvas,.fxCanvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}.scanRing{position:absolute;width:84px;height:84px;border-radius:50%;border:2px solid rgba(78,244,219,.42);transform:translate(-50%,-50%);opacity:0;pointer-events:none;z-index:6}.scanRing.active{animation:ring .95s ease-out}.scanRing.warn{border-color:rgba(255,179,66,.5)}@keyframes ring{0%{opacity:.9;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.65)}}
.workflowPanel{position:absolute;right:14px;bottom:114px;width:262px;padding:12px;background:rgba(8,12,21,.8);border:1px solid rgba(255,78,168,.28);box-shadow:var(--shadow);z-index:9}.workflowPanel h3{margin:0 0 8px;font-size:13px}.phaseRow{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.phase{padding:7px 4px;text-align:center;font-size:10px;background:#0d1523;border:1px solid rgba(255,255,255,.08);color:#97a5c2}.phase.active{border-color:var(--cyan);color:#e9fffc;box-shadow:0 0 14px rgba(78,244,219,.14) inset, 0 0 12px rgba(78,244,219,.08)}
.modeBtns{position:absolute;left:14px;bottom:14px;display:flex;gap:8px;z-index:9}.modeBtn,.ctrlBtn{padding:9px 12px;background:linear-gradient(180deg,#161725,#10121f);border:1px solid rgba(255,78,168,.42);color:#edf2ff;cursor:pointer;box-shadow:var(--shadow)}.modeBtn.active,.ctrlBtn.active{border-color:var(--cyan);color:#e3fffa}.ctrls{position:absolute;right:14px;bottom:14px;display:flex;gap:8px;z-index:9}
#botsLayer .bot{position:absolute;width:42px;height:42px;z-index:8;transition:transform .12s linear}#botsLayer .bot img{width:100%;height:100%;display:block;object-fit:contain;filter:drop-shadow(0 0 8px rgba(255,255,255,.05))}.botName{position:absolute;left:50%;top:-18px;transform:translateX(-50%);font-size:10px;color:#defaf7;padding:2px 5px;background:rgba(6,12,18,.78);border:1px solid rgba(78,244,219,.22);border-radius:5px;white-space:nowrap}.speech{position:absolute;max-width:188px;padding:8px 10px;font-size:11px;line-height:1.4;color:#fff7da;background:rgba(22,19,18,.88);border:1px solid rgba(255,179,66,.46);border-radius:10px;box-shadow:0 0 16px rgba(255,179,66,.14);z-index:10}.speech:after{content:'';position:absolute;left:16px;bottom:-8px;border:8px solid transparent;border-top-color:rgba(255,179,66,.46)}.speech.botTalk{background:rgba(18,21,30,.88);border-color:rgba(255,78,168,.42);color:#ffeaf6}.speech.botTalk:after{border-top-color:rgba(255,78,168,.42)}
.userArea{position:absolute;left:34%;top:69%;width:34%;height:16%;z-index:8;border:1px dashed rgba(78,244,219,.12);pointer-events:none}.seatBtn{position:absolute;left:45.3%;top:72.4%;transform:translate(-50%,-50%);padding:8px 12px;background:linear-gradient(180deg,#19313d,#10212b);border:1px solid rgba(78,244,219,.44);color:#e2fff9;z-index:10;cursor:pointer;box-shadow:0 0 16px rgba(78,244,219,.12)}
.avatar{position:absolute;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:800;color:#071018;background:linear-gradient(180deg,#fefefe,#bdeeff);box-shadow:0 0 10px rgba(255,255,255,.14);border:2px solid rgba(78,244,219,.45);z-index:8}.avatar.vip{background:linear-gradient(180deg,#ffe7f5,#ff87c4);border-color:rgba(255,78,168,.5)}.avatar.userTalking{animation:userGlow 1.2s ease-in-out infinite}@keyframes userGlow{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
.userBubble{position:absolute;max-width:160px;padding:7px 9px;font-size:10px;color:#dcfff9;background:rgba(7,15,22,.82);border:1px solid rgba(78,244,219,.32);border-radius:8px;z-index:9}
.bottom{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 8px 8px}.panel{background:linear-gradient(180deg,#08111e,#07111b);border:1px solid rgba(255,78,168,.34);box-shadow:var(--shadow)}.panelHead{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;justify-content:space-between;align-items:center;font-size:12px}.panelHead b{font-size:13px}
canvas.full{display:block;width:100%;height:220px}.logs{height:220px;overflow:auto;padding:10px 12px;font-size:11px;line-height:1.5}.logs::-webkit-scrollbar,.list::-webkit-scrollbar{width:8px}.logs::-webkit-scrollbar-thumb,.list::-webkit-scrollbar-thumb{background:#2c3244}.log{padding:5px 0;border-bottom:1px solid rgba(255,255,255,.04)}.log time{color:#7ad8ff}.log b{color:#ffe3f2}
.drawer{position:fixed;top:0;right:-440px;width:420px;height:100%;background:linear-gradient(180deg,#06101b,#03070d);border-left:2px solid rgba(255,78,168,.54);box-shadow:-10px 0 30px rgba(0,0,0,.4);z-index:50;transition:right .28s ease}.drawer.open{right:0}.drawerHead{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.drawerBody{padding:14px 16px;overflow:auto;height:calc(100% - 56px)}.closeBtn{background:#1b0d17;border:1px solid rgba(255,78,168,.42);color:#fff;padding:7px 10px;cursor:pointer}.detailGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}.detailCard{padding:12px;background:#0b1421;border:1px solid rgba(255,255,255,.08)}.miniList{font-size:11px;line-height:1.55;color:#d0d7ea}
.overlay{position:fixed;inset:0;background:radial-gradient(circle at 50% 40%, rgba(84,17,54,.45), rgba(2,4,9,.94) 55%), linear-gradient(180deg,#02040b,#040915);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;transition:opacity .45s}.overlay.hide{opacity:0;pointer-events:none}.introCard{width:min(900px,100%);padding:28px;border:1px solid rgba(255,78,168,.46);background:rgba(5,9,15,.84);box-shadow:0 0 28px rgba(255,78,168,.12);text-align:center;position:relative;overflow:hidden}.introLogo{height:62px;margin:0 auto 14px;display:block;border-radius:8px;box-shadow:0 0 18px rgba(255,255,255,.08)}.rocket{width:180px;height:180px;margin:8px auto 18px;position:relative}.rocketBody{position:absolute;left:50%;top:18px;transform:translateX(-50%);width:78px;height:124px;background:linear-gradient(180deg,#e9f1ff,#aebbd7);border-radius:38px 38px 20px 20px;box-shadow:0 0 18px rgba(255,255,255,.14)}.rocketBody:before{content:'';position:absolute;left:50%;top:18px;transform:translateX(-50%);width:28px;height:28px;border-radius:50%;background:#0a1220;border:4px solid #4ef4db}.rocketBody:after{content:'';position:absolute;left:50%;bottom:-24px;transform:translateX(-50%);border:18px solid transparent;border-top:32px solid #ffb342;filter:drop-shadow(0 0 18px rgba(255,179,66,.35))}.fin{position:absolute;bottom:18px;width:28px;height:40px;background:#ff4ea8}.fin.left{left:25px;clip-path:polygon(100% 0, 0 100%, 100% 100%)}.fin.right{right:25px;clip-path:polygon(0 0,0 100%,100% 100%)}.smoke{position:absolute;left:50%;bottom:8px;transform:translateX(-50%);width:120px;height:100px}.smoke i{position:absolute;bottom:0;border-radius:50%;background:radial-gradient(circle,#ffd9ee,rgba(255,255,255,.02));animation:smoke 1.4s infinite ease-out}.smoke i:nth-child(1){left:20px;width:28px;height:28px}.smoke i:nth-child(2){left:46px;width:42px;height:42px;animation-delay:.2s}.smoke i:nth-child(3){left:70px;width:30px;height:30px;animation-delay:.35s}.stars{position:absolute;inset:0;pointer-events:none}.stars i{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;opacity:.8;animation:star 1.8s linear infinite}@keyframes star{from{transform:translateY(0);opacity:1}to{transform:translateY(60px);opacity:0}}@keyframes smoke{0%{transform:translateY(0) scale(.2);opacity:.9}100%{transform:translateY(40px) scale(1.7);opacity:0}}
.overlay h1{margin:0 0 8px;font-size:32px;color:#fff}.overlay p{margin:4px 0;color:#d9e3f8}.count{font-size:22px;color:#4ef4db;font-weight:900;margin:8px 0 16px}.enterBtn{padding:12px 18px;background:linear-gradient(90deg,#ff4ea8,#ff7cc5);border:none;color:#120510;font-weight:900;cursor:pointer;font-size:15px;box-shadow:0 0 20px rgba(255,78,168,.2)}
.modal{position:fixed;inset:0;background:rgba(2,4,8,.68);display:none;align-items:center;justify-content:center;z-index:90;padding:20px}.modal.open{display:flex}.modalCard{width:min(760px,100%);max-height:84vh;background:linear-gradient(180deg,#09111e,#050a12);border:1px solid rgba(255,78,168,.52);box-shadow:0 0 24px rgba(255,78,168,.14);display:grid;grid-template-rows:auto 1fr auto}.modalHead{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08)}.chatBody{padding:14px;overflow:auto;display:flex;flex-direction:column;gap:10px}.bubble{max-width:78%;padding:10px 12px;border-radius:12px;font-size:13px;line-height:1.45}.bubble.user{align-self:flex-end;background:#17323d;border:1px solid rgba(78,244,219,.35);color:#e9fffb}.bubble.bot{align-self:flex-start;background:#211521;border:1px solid rgba(255,78,168,.35);color:#ffeaf5}.chatInput{display:grid;grid-template-columns:1fr auto;gap:10px;padding:12px 14px;border-top:1px solid rgba(255,255,255,.08)}.chatInput input{padding:12px;background:#0a1521;border:1px solid rgba(255,255,255,.08);color:#fff}.chatInput button{padding:12px 14px;background:#1d3040;border:1px solid rgba(78,244,219,.34);color:#e2fff9;cursor:pointer}
.note{font-size:11px;color:#94a0bb;margin-top:6px}
@media (max-width:1180px){.stats{grid-template-columns:1fr 1fr 1fr}.panelsTop{grid-template-columns:1fr}.bottom{grid-template-columns:1fr}.scene{height:820px}.chartOverlay{left:26%;width:46%}.workflowPanel{width:220px}}
@media (max-width:860px){#app{padding:4px}.topbar{height:auto;flex-direction:column;align-items:flex-start;padding:8px 10px;gap:6px}.stats{grid-template-columns:1fr}.rightTokens{max-width:180px}.scene{height:740px}.liveSnap,.workflowPanel{display:none}.chartOverlay{left:20%;top:19%;width:56%;height:28%}.modeBtns,.ctrls{flex-wrap:wrap}.drawer{width:92%}.seatBtn{left:50%}}

/* V5 spatial layout with V6 launch, data visualization, and character assets. */
.mobileSceneHint{display:none}
.liveSnap{background:#08121f}
#fxCanvas{z-index:8}
.siteReturn{margin-left:auto;margin-right:14px;color:#230a19;text-decoration:none;font-size:12px;white-space:nowrap;border:1px solid rgba(31,4,18,.4);padding:5px 9px}
.siteReturn:hover,.siteReturn:focus-visible{background:rgba(255,255,255,.25)}
button:focus-visible,a:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
#intro{background:linear-gradient(180deg,rgba(1,5,16,.56),rgba(1,5,16,.72)),url('./assets/launch_scene.png') center/cover no-repeat}
#intro .introCard{background:rgba(4,10,24,.62);backdrop-filter:blur(8px);border-color:rgba(78,244,219,.42)}
.launchCountdown{margin:12px 0;color:var(--cyan);font-size:15px;letter-spacing:.3em;font-weight:900}
.launchCountdown strong{display:block;font-size:clamp(46px,7vw,86px);line-height:1.05;letter-spacing:0;color:#fff;text-shadow:0 0 30px rgba(78,244,219,.5)}
.launchControls{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.skipBtn{padding:12px 18px;border:1px solid rgba(255,255,255,.36);color:#fff;background:rgba(5,15,28,.72);cursor:pointer;font-weight:800}
#intro.launching .rocket{animation:rocketLift 2.5s cubic-bezier(.3,.1,.1,1) forwards}
#intro.launching .rocketBody:after{animation:launchFlame .13s alternate infinite}
#intro.launching .introCard{animation:launchShake .18s linear 10}
#intro.launching::after{content:'';position:absolute;left:50%;top:55%;width:22vw;height:8vw;border-radius:50%;border:3px solid rgba(255,219,124,.8);box-shadow:0 0 80px rgba(255,162,50,.8);transform:translate(-50%,-50%);animation:launchShock 1.4s ease-out 2;pointer-events:none}
@keyframes rocketLift{0%{transform:translateY(0) scale(1)}15%{transform:translateY(15px) scale(1.05)}100%{transform:translateY(-105vh) scale(.6)}}
@keyframes launchFlame{from{filter:drop-shadow(0 0 18px #ffb342);transform:translateX(-50%) scaleY(1)}to{filter:drop-shadow(0 0 38px #fff29b);transform:translateX(-50%) scaleY(2.8)}}
@keyframes launchShake{0%,100%{transform:translate(0)}25%{transform:translate(2px,-1px)}75%{transform:translate(-2px,1px)}}
@keyframes launchShock{0%{opacity:1;transform:translate(-50%,-50%) scale(.25)}100%{opacity:0;transform:translate(-50%,-50%) scale(5)}}
.chartOverlay{left:21.4%;top:6%;width:54%;height:34%;background:#071522;border:2px solid rgba(75,218,228,.42);box-shadow:0 0 0 4px rgba(2,8,17,.6),0 0 24px rgba(78,244,219,.14);overflow:hidden}
.chartCanvas{background:linear-gradient(180deg,#071522,#081a25)}
.chartHeader{z-index:2;background:#0b2030;color:#fff;border-color:rgba(78,244,219,.25);font-weight:800}
.timeframeBar{position:absolute;right:8px;top:6px;display:flex;gap:3px;z-index:3}
.timeframeBar button{padding:3px 6px;background:#091a2a;border:1px solid rgba(255,255,255,.15);color:#d7e7f4;font-size:10px;cursor:pointer}
.timeframeBar button.active,.timeframeBar button:hover{border-color:var(--cyan);color:var(--cyan)}
.chartTooltip[hidden]{display:none}
.chartTooltip{position:absolute;z-index:4;padding:5px 7px;background:rgba(3,12,22,.94);border:1px solid rgba(78,244,219,.38);color:#e3fffb;font-size:10px;pointer-events:none;white-space:nowrap}
.spiderWrap img{display:none}
.userArea{left:27%;top:63%;width:50%;height:25%;border:0;overflow:visible}
.avatar,.avatar.vip{width:38px;height:38px;border:0;border-radius:0;background-color:transparent;box-shadow:none;background-repeat:no-repeat;image-rendering:auto;pointer-events:auto;cursor:pointer;filter:drop-shadow(0 4px 4px #000);transition:transform 1s ease,filter .2s ease}
.avatar:hover{filter:drop-shadow(0 0 9px var(--cyan));z-index:12}
.avatar.vip::after{content:'VIP';position:absolute;right:-6px;top:-5px;font-size:8px;padding:1px 3px;background:var(--pink);color:#1a0612;border-radius:6px}
.userBubble{max-width:190px;overflow-wrap:anywhere}
.seatBtn{animation:seatPulse 1.7s ease-in-out infinite;white-space:nowrap}
.seatBtn::before{content:'↓';position:absolute;left:50%;top:-34px;transform:translateX(-50%);color:var(--cyan);font-size:28px;animation:seatArrow 1s ease-in-out infinite alternate}
@keyframes seatPulse{50%{box-shadow:0 0 24px rgba(78,244,219,.7);border-color:#9fffee}}
@keyframes seatArrow{to{top:-26px;text-shadow:0 0 12px var(--cyan)}}
.modalCard{height:min(580px,88vh);min-height:360px;min-width:0;overflow:hidden}
.chatBody{min-width:0;min-height:0;overflow-y:auto;overflow-wrap:anywhere}
.bubble{width:fit-content;max-width:min(78%,560px);min-width:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.chatInput{min-width:0;grid-template-columns:minmax(0,1fr) auto}.chatInput input{min-width:0;width:100%}
@media(max-width:860px){
 .siteReturn{margin:0}.topmeta{flex-wrap:wrap}
 .chartOverlay{left:19%;top:10%;width:59%;height:30%}
 .userArea{left:25%;top:62%;width:56%;height:25%}
}
@media(max-width:620px){
 .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats .marqueeBox{grid-column:1/-1}
 .panelsTop{grid-template-columns:1fr}.sceneWrap{overflow-x:auto}
 .mobileSceneHint{display:block;position:sticky;left:0;width:min(100%,390px);padding:7px 8px;margin-bottom:8px;background:#0b2530;border:1px solid rgba(78,244,219,.38);color:#aaffee;font-size:11px}
 .scene{min-width:900px;height:660px}
 .chartOverlay{left:21.4%;top:6%;width:54%;height:34%}
 .liveSnap,.workflowPanel{display:block}
 .rightTokens{max-width:210px}
 .userArea{left:27%;top:63%;width:50%;height:25%}
 .actions{position:sticky;left:0;min-width:900px}
 .modal{padding:8px}.modalCard{width:100%;height:85dvh}.bubble{max-width:88%}
}

/* The launch screen follows the V6.2 cinematic scene; V5 remains the cockpit base. */
#intro{padding:0;background:#040913;overflow:hidden}
#intro .launchBg{position:absolute;inset:0;z-index:0;background:url('./assets/launch_scene.png') center/cover no-repeat;filter:brightness(.45) saturate(1.1);transform-origin:58% 43%;animation:launchScenePush 7s ease-in-out both}
#intro .launchShade{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at center,rgba(78,244,219,.08),rgba(2,7,18,.72) 50%,rgba(2,7,18,.92) 100%)}
#intro .launchExhaust{position:absolute;left:58.6%;top:36%;width:12%;height:56%;transform:translateX(-50%);pointer-events:none;opacity:0;mix-blend-mode:screen;filter:blur(5px);z-index:2;background:linear-gradient(180deg,transparent,rgba(255,250,205,.8) 24%,rgba(255,155,46,.9) 55%,transparent);clip-path:polygon(35% 0,65% 0,95% 100%,5% 100%)}
#intro .launchRing{position:absolute;left:58%;top:67%;width:20vw;height:8vw;border:4px solid rgba(255,223,147,.7);border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:0;z-index:2;box-shadow:0 0 80px rgba(255,177,70,.4)}
#intro .launchFlash{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 55%,rgba(255,198,105,.35),transparent 34%),radial-gradient(circle at 50% 60%,rgba(255,255,255,.18),transparent 40%)}
#intro .launchContent{position:relative;z-index:4;width:min(1100px,92vw);max-height:98dvh;overflow:auto;text-align:center;padding:20px;background:linear-gradient(180deg,rgba(3,11,26,.46),rgba(3,11,26,.12));border-radius:24px;text-shadow:0 3px 20px #000;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"PingFang SC","Microsoft YaHei",sans-serif}
#intro .launchLogo{height:min(16vw,110px);width:auto;display:block;margin:0 auto;filter:drop-shadow(0 0 18px rgba(78,244,219,.25))}
#intro .launchTitle{font-size:clamp(28px,4vw,54px);font-weight:900;margin:16px 0 8px;letter-spacing:.08em;line-height:1.25;color:#f4ffff}
#intro .mobileTitleBreak{display:none}
#intro .launchSub{font-size:clamp(14px,1.5vw,20px);color:#b8dbe6;line-height:1.8;margin:0}
#intro .launchSub b{color:var(--cyan)}
#intro .launchInfo{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:22px 0}
#intro .launchInfoBox{padding:12px 18px;min-width:180px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);font-size:14px;color:#e6f5fa}
#intro .launchInfoBox b{display:block;font-size:28px;line-height:1.3;color:var(--cyan);margin-top:6px;white-space:nowrap}
#intro .launchCountLabel{font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.35em}
#intro .launchCount{font-size:clamp(48px,11vw,150px);font-weight:900;letter-spacing:.06em;line-height:1.15;color:#efffff;text-shadow:0 0 26px rgba(78,244,219,.35);margin:10px 0 0}
#intro .launchControls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:22px}
#intro .launchStart,#intro .launchSkip{padding:14px 24px;cursor:pointer;font-weight:900;letter-spacing:.12em;font-size:14px}
#intro .launchStart{border:0;background:linear-gradient(90deg,var(--cyan),#9bfbff);color:#03202a}
#intro .launchSkip{background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.1)}
#intro .launchStart:hover,#intro .launchSkip:hover{filter:brightness(1.18)}
#intro.launching .launchExhaust{opacity:1;animation:launchBeam .16s alternate infinite}
#intro.launching .launchRing{animation:launchBlastWave 1.4s ease-out 2}
#intro.launching .launchBg{animation:launchBlastZoom 2.9s cubic-bezier(.12,.67,.18,1) both}
#intro.launching .launchFlash{opacity:1;animation:launchFlashPulse 1.4s ease infinite}
#intro.launching .launchTitle{animation:launchTextGlow .45s ease-out both}
#intro.launching .launchContent{animation:launchCabinShake .42s linear 5}
#intro.launching::after{content:none}
@keyframes launchScenePush{0%{transform:scale(1.08) translateY(2%)}65%{transform:scale(1.2)}100%{transform:scale(1.36) translateY(5%)}}
@keyframes launchBeam{from{transform:translateX(-50%) scaleX(.7)}to{transform:translateX(-50%) scaleX(1.18)}}
@keyframes launchBlastWave{0%{opacity:1;transform:translate(-50%,-50%) scale(.2)}100%{opacity:0;transform:translate(-50%,-50%) scale(5)}}
@keyframes launchBlastZoom{0%{transform:scale(1.12)}100%{transform:scale(1.6) translateY(20%)}}
@keyframes launchFlashPulse{0%,100%{opacity:.25}50%{opacity:.95}}
@keyframes launchTextGlow{to{transform:scale(1.12);color:#fff;text-shadow:0 0 38px #ffd47e}}
@keyframes launchCabinShake{0%,100%{transform:translate(0)}20%{transform:translate(-1px,1px)}40%{transform:translate(1px,-1px)}60%{transform:translate(-1px,0)}80%{transform:translate(1px,1px)}}
@media(max-width:640px){#intro .launchTitle{font-size:28px}#intro .mobileTitleBreak{display:block}#intro .launchContent{width:96vw;padding:18px 10px}#intro .launchInfoBox{min-width:120px;padding:9px 10px;font-size:12px}#intro .launchInfoBox b{font-size:17px;white-space:normal}#intro .launchCount{font-size:70px}#intro .launchControls{margin-top:12px}#intro .launchStart,#intro .launchSkip{padding:11px 13px;font-size:12px}}
@media(prefers-reduced-motion:reduce){#intro .launchBg{animation:none}#intro.launching .launchBg,#intro.launching .launchRing,#intro.launching .launchExhaust,#intro.launching .launchFlash,#intro.launching .launchTitle,#intro.launching .launchContent{animation:none}}

/* Public homepage presentation: retain the V5 room and hide internal controls. */
.stats,.panelsTop,.actions,.banner,.liveSnap,.workflowPanel,.modeBtns,.ctrls,.bottom,.topmeta{display:none!important}
.sceneWrap{padding:0;overflow:visible}
#app .scene{height:auto;min-height:0;aspect-ratio:1.54;border:0;box-shadow:none}
.shell{overflow:visible}
.topbar{background:linear-gradient(90deg,#071523,#0b1e2c);color:#e8fffa;border-bottom:1px solid rgba(78,244,219,.22)}
.siteReturn{color:#b9fff1;border-color:rgba(78,244,219,.32)}
.siteReturn:hover,.siteReturn:focus-visible{background:rgba(78,244,219,.14)}
.clickZone,.clickZone:hover{border:0;background:transparent;box-shadow:none}
.clickZone .label{display:none!important}
#leftChartZone,#analysisZone,#rightTokenZone,#greenDeskZone,#orangeDeskZone,#blueDeskZone,#cageZone{display:none!important}
.chartOverlay{border:2px solid rgba(75,218,228,.42);background:#071522}
.chartOverlay:hover{border-color:rgba(75,218,228,.62)}
.sceneWelcome{position:absolute;z-index:12;left:1.2%;top:2.1%;width:18.4%;min-height:154px;padding:14px 16px;background:#071523;border:1px solid rgba(78,244,219,.3);box-shadow:0 12px 30px rgba(0,0,0,.28)}
.sceneWelcome span{display:block;font-size:10px;letter-spacing:.2em;color:var(--cyan);font-weight:900}
.sceneWelcome strong{display:block;margin-top:12px;font-size:clamp(13px,1.35vw,19px);line-height:1.4;color:#fff}
.sceneWelcome small{display:block;margin-top:8px;font-size:11px;line-height:1.5;color:#a7cbd4}
.tokenMask{position:absolute;right:0;top:2%;width:24.5%;height:22.8%;z-index:9;background:linear-gradient(90deg,#061523f4,#071320fa);border-left:1px solid rgba(78,244,219,.17);border-bottom:1px solid rgba(78,244,219,.16);pointer-events:none}
.marketPicker{position:absolute;right:1.4%;top:3.4%;width:21.8%;min-width:245px;z-index:18;padding:12px;background:linear-gradient(180deg,#0b2630,#071924);border:1px solid rgba(78,244,219,.42);box-shadow:0 16px 34px rgba(0,0,0,.38),0 0 20px rgba(78,244,219,.09)}
.marketEyebrow{display:block;margin-bottom:8px;color:#94fff0;font-size:10px;font-weight:900;letter-spacing:.2em}
.marketSelected{width:100%;display:flex;align-items:center;gap:9px;text-align:left;padding:8px;border:1px solid rgba(255,255,255,.13);background:#061522;color:#efffff;cursor:pointer}
.marketSelected:hover,.marketSelected:focus-visible{border-color:var(--cyan)}
.marketSelectedIcon,.marketOwnIcon{width:39px;height:39px;display:grid;place-items:center;flex:none;border:1px solid rgba(78,244,219,.55);border-radius:50%;background:radial-gradient(circle at 35% 25%,#24566d,#091624 76%);color:#e9fff9;box-shadow:0 0 15px rgba(78,244,219,.22);font-size:11px;font-weight:950;letter-spacing:-.07em}
.marketSelectedIcon.hasImage{background:#071420;padding:1px}
.marketSelectedIcon img,.marketOption img{width:100%;height:100%;object-fit:contain;display:block}
.marketSelectedText{min-width:0;flex:1}
.marketSelectedText b{display:block;font-size:15px;white-space:nowrap}
.marketSelectedText small{display:block;font-size:10px;color:#9cc7cc;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marketChevron{font-size:22px;line-height:1;color:var(--cyan)}
.marketMenu[hidden]{display:none}
.marketMenu{position:absolute;top:calc(100% + 4px);right:0;width:min(360px,96vw);max-height:320px;overflow-y:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:8px;background:#061420;border:1px solid rgba(78,244,219,.45);box-shadow:0 16px 34px rgba(0,0,0,.5)}
.marketOption{display:flex;align-items:center;gap:7px;min-width:0;padding:6px 7px;background:#0b202b;border:1px solid rgba(255,255,255,.08);color:#e8f9f8;text-align:left;cursor:pointer}
.marketOption:hover,.marketOption:focus-visible,.marketOption.active{border-color:var(--cyan);background:#12323a}
.marketOption img,.marketOption .marketOwnIcon{width:31px;height:31px;flex:none}
.marketOption .marketOwnIcon{font-size:9px}
.marketOption span:last-child{min-width:0}
.marketOption b,.marketOption small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.marketOption b{font-size:12px}.marketOption small{font-size:9px;color:#8daeb7;margin-top:2px}
.userArea{left:0;top:0;width:100%;height:100%;border:0;z-index:9;pointer-events:none}
.avatar,.avatar.vip{width:38px;height:38px;pointer-events:auto;transition:transform .8s ease,filter .2s ease;z-index:9}
.avatar:hover,.avatar.chosen{filter:drop-shadow(0 0 9px var(--cyan)) drop-shadow(0 0 5px #fff);z-index:16}
.avatar.walkingToSeat{animation:walkBounce .3s ease-in-out infinite alternate;filter:drop-shadow(0 0 12px #72fff0)}
.avatar.seated{filter:drop-shadow(0 0 13px #9affec);z-index:16}
@keyframes walkBounce{to{transform:translate(-50%,-50%) translateY(-6px)}}
.userBubble{z-index:17;pointer-events:none}.userBubble.rightBubble{transform:translateX(-100%)}
.seatPortal{position:absolute;left:50%;top:89%;width:136px;height:55px;z-index:10;transform:translate(-50%,-50%);border:2px solid rgba(78,244,219,.55);border-radius:50%;box-shadow:0 0 25px rgba(78,244,219,.5),inset 0 0 25px rgba(78,244,219,.2);background:radial-gradient(ellipse,rgba(78,244,219,.15),transparent 65%);pointer-events:none;animation:seatPortalPulse 1.6s ease-in-out infinite}
.seatPortal.active{border-color:#fff;box-shadow:0 0 36px var(--cyan),inset 0 0 25px rgba(78,244,219,.4)}
@keyframes seatPortalPulse{50%{opacity:.55;transform:translate(-50%,-50%) scale(1.08)}}
.seatGuide{position:absolute;left:50%;top:67.5%;transform:translateX(-50%);width:min(270px,24%);z-index:12;padding:8px 10px;text-align:center;color:#eafffb;background:rgba(4,18,29,.94);border:1px solid rgba(78,244,219,.55);box-shadow:0 0 25px rgba(78,244,219,.16);pointer-events:none}
.seatGuideStep{display:block;font-size:9px;color:var(--cyan);letter-spacing:.13em;font-weight:900}
.seatGuide strong{display:block;margin-top:3px;font-size:13px}.seatGuide small{display:block;margin-top:3px;font-size:10px;line-height:1.3;color:#abcbd0}
.seatGuideArrow{display:block;position:absolute;left:50%;bottom:-32px;transform:translateX(-50%);font-size:27px;color:var(--cyan);text-shadow:0 0 12px var(--cyan);animation:seatArrowDown 1s ease-in-out infinite alternate}
@keyframes seatArrowDown{to{bottom:-39px}}
.seatGuide.guiding{border-color:#ffe09c}.seatGuide.complete{border-color:#ff8ccc}
.seatBtn{left:50%;top:86%;z-index:17;padding:11px 15px;white-space:nowrap;font-weight:900;background:linear-gradient(90deg,#46dccc,#8cfff0);color:#062229;border:1px solid #aaffef;box-shadow:0 0 24px rgba(78,244,219,.45)}
.seatBtn::before{display:none}.seatBtn:disabled{cursor:progress;opacity:.85}
.inviteSeatBtn{display:block;width:100%;margin-top:16px;padding:11px;border:1px solid var(--cyan);background:#123a3d;color:#eafff9;cursor:pointer;font-weight:900}
.inviteSeatBtn:hover{background:#1c5151}
.mobileSeatDock{display:none}
html.embedded #app{max-width:1540px;padding:0}
html.embedded .shell{border:0;box-shadow:none;background:transparent}
html.embedded .topbar{display:none}
html.embedded .sceneWrap{padding:0}
@media(max-width:1100px){#app .scene{aspect-ratio:auto;height:760px;min-width:900px}.sceneWrap{overflow-x:auto}.sceneWelcome strong{font-size:16px}.seatGuide{width:250px}}
@media(max-width:620px){#app .scene{height:660px;min-width:900px}.sceneWrap{overflow-x:auto}.mobileSceneHint{display:block;position:sticky;left:0;width:min(100%,390px);z-index:20}.siteReturn{margin-left:auto}.topbar{height:auto;flex-direction:row;align-items:center}.brand{font-size:12px}.brand img{height:25px}.sceneWelcome{min-height:0}.marketPicker{min-width:0;width:215px}.marketMenu{width:300px}.seatGuide{width:230px}.mobileSeatDock{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;background:#092430;border-top:1px solid rgba(78,244,219,.45);color:#c6eee8;font-size:11px}.mobileSeatDock button{flex:none;padding:10px 11px;border:1px solid #9bffeb;background:#49e6d4;color:#052126;font-weight:900;cursor:pointer}.mobileSeatDock button:disabled{opacity:.7}}

/* Public activity and centered profile dialog. */
.sceneTopline{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:82px;padding:10px 18px;background:linear-gradient(90deg,#061523,#0b2530 55%,#071826);border-bottom:1px solid rgba(78,244,219,.24);position:relative;z-index:25}
.sceneTopline .sceneWelcome{position:static;width:auto;min-height:0;padding:0;background:none;border:0;box-shadow:none}
.sceneTopline .sceneWelcome span{font-size:9px}
.sceneTopline .sceneWelcome strong{font-size:17px;margin-top:3px;line-height:1.25}
.sceneTopline .sceneWelcome small{margin-top:3px;font-size:11px}
.toplineSeatBtn{flex:none;padding:10px 16px;border:1px solid #81fff0;background:linear-gradient(90deg,#34d5c4,#75e5e6);color:#04232b;font-weight:900;cursor:pointer;box-shadow:0 0 22px rgba(78,244,219,.14)}
.toplineSeatBtn:hover,.toplineSeatBtn:focus-visible{background:#a5fff2}.toplineSeatBtn:disabled{opacity:.7;cursor:progress}
.sceneTopline .marketPicker{position:relative;right:auto;top:auto;width:264px;min-width:245px;flex:none;padding:7px 9px;box-shadow:none;background:#092330}
.sceneTopline .marketEyebrow{margin-bottom:3px;font-size:9px}
.sceneTopline .marketSelected{padding:4px 7px}
.sceneTopline .marketSelectedIcon{width:30px;height:30px}
.sceneTopline .marketSelectedText b{font-size:13px}
.sceneTopline .marketSelectedText small{font-size:9px;margin-top:1px}
.sceneTopline .marketMenu{z-index:40}
.activityStrip{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:#19424b;border-bottom:1px solid rgba(78,244,219,.3)}
.activityItem{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:8px;row-gap:2px;padding:7px 13px;background:#071b27;color:#e9fffa}
.activityMark{grid-row:span 2;align-self:center;display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:4px;background:rgba(78,244,219,.1);border:1px solid rgba(78,244,219,.2);color:#82ffe9;font-size:10px;font-weight:900;white-space:nowrap}
.activityMark::before{content:'';width:5px;height:5px;border-radius:50%;background:#43ebd0;box-shadow:0 0 9px #43ebd0;animation:activityBlink 1.2s ease-in-out infinite alternate}
.activityHistory .activityMark{color:#ffdba0;background:rgba(255,179,66,.08);border-color:rgba(255,179,66,.19)}
.activityHistory .activityMark::before{background:#ffbb60;box-shadow:0 0 9px #ffbb60}
.botActivity .activityMark{color:#ffbde0;background:rgba(255,78,168,.08);border-color:rgba(255,78,168,.2)}
.botActivity .activityMark::before{background:#ff76bd;box-shadow:0 0 9px #ff76bd}
@keyframes activityBlink{to{opacity:.35}}
.activityItem b,.activityItem small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activityItem b{font-size:12px}.activityItem small{font-size:11px;color:#a9cad2}
.spiderWorkNote{position:absolute;left:70%;top:12%;max-width:132px;padding:4px 7px;background:rgba(2,20,29,.94);border:1px solid rgba(84,255,230,.7);color:#eafffa;box-shadow:0 0 12px rgba(78,244,219,.3);border-radius:5px;font-size:10px;font-weight:800;line-height:1.25;white-space:nowrap;pointer-events:none}
.avatar,.avatar.vip{transition:left 1.3s cubic-bezier(.3,.65,.25,1),top 1.3s cubic-bezier(.3,.65,.25,1),transform .2s ease,filter .2s ease}
.avatar.roaming{animation:roamBounce .34s ease-in-out infinite alternate;filter:drop-shadow(0 0 5px rgba(78,244,219,.55))}
@keyframes roamBounce{to{transform:translateY(-4px)}}
.userBubble{max-width:180px;min-width:100px;line-height:1.35;padding:7px 9px;background:rgba(3,19,27,.95);border-color:rgba(78,244,219,.58);box-shadow:0 8px 16px rgba(0,0,0,.35)}
.userBubble.reply{border-color:rgba(255,143,198,.55);color:#ffe7f4}
.speech.botTalk{max-width:160px;font-size:10px;padding:6px 8px;background:rgba(6,19,30,.96)}
.drawer{inset:0;width:100vw;height:100dvh;display:grid;place-items:center;padding:20px;background:rgba(2,8,14,.72);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease;overflow:auto}
.drawer.open{right:0;opacity:1;visibility:visible;pointer-events:auto}
.drawerCard{width:min(540px,100%);max-height:min(78vh,690px);display:grid;grid-template-rows:auto minmax(0,1fr);background:linear-gradient(160deg,#0c2330,#06111e 70%);border:1px solid rgba(78,244,219,.52);box-shadow:0 24px 80px rgba(0,0,0,.55),0 0 32px rgba(78,244,219,.12);transform:translateY(16px) scale(.97);transition:transform .22s ease}
.drawer.open .drawerCard{transform:translateY(0) scale(1)}
.drawerHead{padding:15px 18px;border-bottom:1px solid rgba(78,244,219,.2);font-size:16px}
.drawerBody{height:auto;padding:20px;overflow:auto}
.profileHero{display:flex;align-items:center;gap:15px;padding:13px;background:rgba(78,244,219,.06);border:1px solid rgba(78,244,219,.2)}
.profileAvatar{width:66px;height:66px;flex:none;background-repeat:no-repeat;background-size:528px 396px;border:1px solid rgba(78,244,219,.56);box-shadow:0 0 18px rgba(78,244,219,.16);image-rendering:pixelated}
.profileHero b{display:block;color:#fff;font-size:18px}.profileHero small{display:block;margin-top:6px;color:#a6c7ce;font-size:11px;line-height:1.5}
.profileMeta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:13px}
.profileMeta div{padding:10px;background:#0c1f2b;border:1px solid rgba(255,255,255,.08)}
.profileMeta span{display:block;color:#8caeb9;font-size:10px}.profileMeta b{display:block;margin-top:4px;color:#e9fffb;font-size:13px}
.profileHint{font-size:12px;line-height:1.6;color:#b8d5d6;margin:13px 0 0}
.drawerBody .inviteSeatBtn{margin-top:17px}
.modalCard{grid-template-rows:auto minmax(0,1fr) auto auto;min-height:350px}
.chatPrompts{display:flex;gap:6px;flex-wrap:wrap;padding:9px 14px 0}
.chatPrompts button{padding:6px 9px;background:#0d2530;border:1px solid rgba(78,244,219,.3);color:#c9f3eb;font-size:11px;cursor:pointer}
.chatPrompts button:hover,.chatPrompts button:focus-visible{background:#17424a;color:#fff}
.bubble.typing{color:#90adb3;font-style:italic}
@media(max-width:620px){.sceneTopline{padding:9px;gap:7px;align-items:stretch}.sceneTopline .sceneWelcome{flex:1;min-width:0}.sceneTopline .sceneWelcome strong{font-size:12px}.sceneTopline .sceneWelcome small{font-size:9px}.sceneTopline .toplineSeatBtn{display:none}.sceneTopline .marketPicker{min-width:0;width:164px;padding:5px}.sceneTopline .marketSelectedIcon{width:25px;height:25px}.sceneTopline .marketSelectedText b{font-size:11px}.sceneTopline .marketSelectedText small{font-size:8px}.sceneTopline .marketMenu{right:0;width:min(310px,92vw)}.activityStrip{grid-template-columns:1fr}.activityItem{grid-column:1/-1;padding:6px 9px;column-gap:7px}.activityItem b{font-size:10px}.activityItem small{font-size:9px}.activityMark{font-size:9px;padding:4px}.drawer{padding:10px}.drawerCard{max-height:85dvh}.drawerBody{padding:14px}.profileMeta{gap:6px}.profileMeta div{padding:8px}.chatPrompts{padding:7px 8px 0}.chatPrompts button{font-size:10px}.spiderWorkNote{font-size:9px}}
@media(prefers-reduced-motion:reduce){.avatar.roaming,.activityMark::before{animation:none}.avatar,.avatar.vip{transition:none}.drawerCard{transition:none}}

/* Keep the primary seat action in view before the long cockpit scene on phones. */
.mobileSeatStart{display:none}
@media(max-width:620px){
  .mobileSeatStart{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:5px 0 7px;padding:9px 10px;border:1px solid rgba(78,244,219,.55);background:linear-gradient(90deg,#0c2831,#0b3940);color:#dffefa;font-size:11px}
  .mobileSeatStart span{max-width:48%;line-height:1.4}
  .mobileSeatStart button{min-height:42px;padding:8px 12px;border:1px solid #aaffef;background:#49e6d4;color:#052126;font-weight:900;cursor:pointer}
  .mobileSeatStart button:disabled{opacity:.7;cursor:progress}
}
#botsLayer .bot{padding:0;border:0;background:transparent;cursor:pointer}
#botsLayer .bot:focus-visible,.avatar:focus-visible,.mobileSeatStart button:focus-visible{outline:3px solid #fff;outline-offset:4px;z-index:20}
.drawerCard,.modalCard{border-radius:12px}
.drawerBody,.chatBody{overscroll-behavior:contain}
@media(max-width:620px){.modalCard{height:min(86dvh,700px);min-height:0}.drawerCard{width:100%;max-height:86dvh}}
@media(prefers-reduced-motion:reduce){.seatPortal,.seatGuideArrow,.seatBtn,.seatBtn::before,.avatar.walkingToSeat{animation:none!important}.avatar.walkingToSeat{transition:none!important}.modalCard,.drawer{transition:none!important}}

/* The launch overlay stays in the DOM during its fade, then leaves the tab order. */
#intro[hidden]{display:none!important}
@media(prefers-reduced-motion:reduce){
  .marquee,.tokenOrbit,.spiderWrap img,.scanRing.active,.avatar.userTalking{animation:none!important}
  .marquee{padding-left:0;transform:none!important}
  #intro{transition:none!important}
}

/* Homepage cockpit: make the room the focal point while keeping the live workflow legible. */
.sceneTopline{
  min-height:68px;
  padding:6px 18px;
  background:linear-gradient(105deg,#071721 0%,#0b3037 54%,#081c28 100%);
  border-top:1px solid rgba(78,244,219,.17);
  border-bottom:1px solid rgba(78,244,219,.3);
}
.sceneTopline .sceneWelcome{max-width:48%}
.sceneTopline .sceneWelcome strong{font-size:clamp(15px,1.3vw,18px);letter-spacing:-.02em}
.sceneTopline .sceneWelcome small{color:#b3d6d8;line-height:1.4}
.sceneTopline .marketPicker{
  border-color:rgba(78,244,219,.48);
  background:linear-gradient(130deg,#0a3038,#091d2b);
}
.toplineSeatBtn{
  min-height:42px;
  padding:10px 18px;
  border-radius:3px;
  box-shadow:0 0 0 1px rgba(78,244,219,.1),0 8px 24px rgba(27,198,179,.14);
}
.toplineSeatBtn:focus-visible,.marketSelected:focus-visible,.marketOption:focus-visible{outline:2px solid #fff;outline-offset:3px}
.activityStrip{background:#102f38;border-bottom-color:rgba(78,244,219,.32)}
.activityItem{
  min-height:39px;
  padding:5px 13px;
  background:linear-gradient(180deg,#092330,#071a26);
}
.activityItem b{font-size:11px;color:#f4fffc}
.activityItem small{font-size:10px;color:#a5c4cd}
.activityMark{font-size:9px;letter-spacing:.01em}
#app .scene{box-shadow:inset 0 12px 24px rgba(2,7,16,.18)}
.marketMenu{border-radius:6px;box-shadow:0 18px 42px rgba(0,0,0,.5),0 0 20px rgba(78,244,219,.1)}
.marketOption{min-height:46px}

@media(max-width:620px){
  .sceneTopline{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    gap:7px;
    padding:10px 11px;
  }
  .sceneTopline .sceneWelcome{max-width:none}
  .sceneTopline .sceneWelcome span{font-size:9px}
  .sceneTopline .sceneWelcome strong{font-size:15px;line-height:1.25}
  .sceneTopline .sceneWelcome small{font-size:10px;line-height:1.35}
  .sceneTopline .marketPicker{width:100%;padding:5px 8px}
  .sceneTopline .marketEyebrow{font-size:9px;margin-bottom:2px}
  .sceneTopline .marketSelected{min-height:35px}
  .sceneTopline .marketSelectedText b{font-size:12px}
  .sceneTopline .marketSelectedText small{font-size:9px}
  .sceneTopline .marketMenu{width:min(360px,calc(100vw - 22px))}
  .activityItem{min-height:38px;padding:5px 10px}
  .activityItem b{font-size:10px}
  .activityItem small{font-size:9px}
  .activityMark{font-size:9px}
  .mobileSceneHint{margin:0 0 5px;border-left:0;border-right:0;background:#0a222d}
  .mobileSeatStart{margin:0;padding:10px 12px;background:linear-gradient(90deg,#0a2e36,#0a3b3f)}
}

/* Short feedback follows the same cyan / pink motion language as the cockpit. */
#app.scene-entered .sceneTopline{animation:cabinReveal .55s cubic-bezier(.2,.7,.2,1) .12s both}
#app.scene-entered .activityStrip{animation:cabinReveal .55s cubic-bezier(.2,.7,.2,1) .22s both}
#app.scene-entered .mobileSeatStart{animation:cabinReveal .55s cubic-bezier(.2,.7,.2,1) .28s both}
@keyframes cabinReveal{from{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}
.speech,.userBubble{animation:cabinBubbleIn .32s cubic-bezier(.2,.7,.2,1) both;transform-origin:bottom left}
.speech.leaving,.userBubble.leaving{animation:cabinBubbleOut .32s ease-in both}
@keyframes cabinBubbleIn{from{opacity:0;translate:0 7px;scale:.96}to{opacity:1;translate:0 0;scale:1}}
@keyframes cabinBubbleOut{from{opacity:1;translate:0 0;scale:1}to{opacity:0;translate:0 -6px;scale:.98}}
#botsLayer .bot.working::after{content:'';position:absolute;inset:-7px;border:1px solid rgba(78,244,219,.8);border-radius:50%;pointer-events:none;animation:botWorkRing 1.4s ease-out both}
@keyframes botWorkRing{0%{opacity:0;transform:scale(.5)}25%{opacity:.9}100%{opacity:0;transform:scale(1.45)}}
.avatar.seated{animation:seatArrival .58s cubic-bezier(.2,.7,.2,1) both}
@keyframes seatArrival{0%{opacity:.65;scale:.75}60%{opacity:1;scale:1.2}100%{opacity:1;scale:1}}
.seatGuide.guiding::before{content:'';position:absolute;inset:0;width:36%;background:linear-gradient(90deg,transparent,rgba(255,231,166,.14),transparent);transform:skewX(-24deg) translateX(-180%);animation:seatGuideSweep 1.5s ease-in-out both;pointer-events:none}
@keyframes seatGuideSweep{to{transform:skewX(-24deg) translateX(440%)}}
.seatGuide.complete{animation:seatGuideComplete .6s ease-out both}
@keyframes seatGuideComplete{0%,100%{filter:brightness(1)}45%{filter:brightness(1.5)}}
.seatPortal.active::after{content:'';position:absolute;inset:-2px;border:1px solid rgba(160,255,238,.8);border-radius:50%;animation:seatArrivalRing 1.5s ease-out both;pointer-events:none}
@keyframes seatArrivalRing{from{opacity:.85;transform:scale(.65)}to{opacity:0;transform:scale(1.7)}}
.toplineSeatBtn,.marketSelected,.mobileSeatStart button,.mobileSeatDock button{transition:translate .2s ease,box-shadow .2s ease,filter .2s ease}
.toplineSeatBtn:hover,.marketSelected:hover,.mobileSeatStart button:hover,.mobileSeatDock button:hover{translate:0 -2px;box-shadow:0 8px 24px rgba(78,244,219,.17)}
.toplineSeatBtn:active,.marketSelected:active,.mobileSeatStart button:active,.mobileSeatDock button:active{translate:0 0}
html.visuals-paused .scene *,html.visuals-paused .activityStrip,html.visuals-paused .activityStrip *,html.visuals-paused .sceneTopline,html.visuals-paused .sceneTopline *,html.visuals-paused .mobileSeatStart{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
  #app.scene-entered .sceneTopline,#app.scene-entered .activityStrip,#app.scene-entered .mobileSeatStart,
  .speech,.userBubble,.speech.leaving,.userBubble.leaving,.avatar.seated,.seatGuide.complete,
  .seatGuide.guiding::before,.seatPortal.active::after,#botsLayer .bot.working::after{animation:none!important}
  .toplineSeatBtn,.marketSelected,.mobileSeatStart button,.mobileSeatDock button{transition:none!important}
}
/* Keep the illustrated scene fixed while allowing Arabic and Persian copy to
   read in its natural direction inside labels, dialogs and input fields. */
html:lang(ar) [data-cockpit-i18n],
html:lang(fa-IR) [data-cockpit-i18n],
html:lang(ar) .drawerBody,
html:lang(fa-IR) .drawerBody,
html:lang(ar) .chatBody,
html:lang(fa-IR) .chatBody,
html:lang(ar) #chatText,
html:lang(fa-IR) #chatText {
  direction: rtl;
  unicode-bidi: plaintext;
}

/* Official user-client AQW emblem. */
.marketOwnIcon img{width:100%;height:100%;object-fit:contain;display:block}
#intro .launchLogo{max-width:80vw;height:auto;max-height:110px;object-fit:contain}
