:root{
  --bg:#070510; --bg2:#0c0820; --ink:#ede9ff; --ink-dim:#a89fce;
  --violet:#7c5cff; --cyan:#34e7ff; --pink:#ff5cc0;
  --glass:rgba(22,16,46,.55); --glass-2:rgba(30,22,60,.7);
  --line:rgba(140,120,255,.16); --line-2:rgba(140,120,255,.28);
  --glow:0 0 40px rgba(124,92,255,.45);
  --r:16px; --r-sm:11px;
  --sans:'Inter',system-ui,sans-serif; --display:'Space Grotesk',var(--sans);
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%}
body{
  font-family:var(--sans); color:var(--ink); background:var(--bg);
  overflow:hidden; -webkit-font-smoothing:antialiased; user-select:none;
}
button,input,select{font-family:inherit;color:inherit}
button{cursor:pointer;border:none;background:none}
b{font-weight:700}

/* ---- 3D canvas + aurora backdrop ---- */
#viewport{position:fixed;inset:0;z-index:0}
#viewport canvas{display:block;width:100%!important;height:100%!important}
#aurora{
  position:fixed;inset:-20%;z-index:0;pointer-events:none;opacity:.7;
  background:
    radial-gradient(40% 50% at 18% 12%, rgba(124,92,255,.28), transparent 70%),
    radial-gradient(38% 45% at 85% 18%, rgba(52,231,255,.18), transparent 70%),
    radial-gradient(50% 60% at 70% 95%, rgba(255,92,192,.14), transparent 70%);
  animation:drift 22s ease-in-out infinite alternate;
}
@keyframes drift{to{transform:translate3d(2%,-2%,0) scale(1.08)}}

/* ---- top bar ---- */
#topbar{
  position:fixed;top:0;left:0;right:0;z-index:40;height:64px;
  display:flex;align-items:center;gap:18px;padding:0 22px;
  background:linear-gradient(to bottom,rgba(7,5,16,.82),rgba(7,5,16,0));
  backdrop-filter:blur(8px);
}
.brand{display:flex;align-items:center;gap:10px;cursor:pointer}
.brand-mark{
  width:26px;height:26px;border-radius:8px;
  background:conic-gradient(from 210deg,var(--violet),var(--cyan),var(--pink),var(--violet));
  box-shadow:var(--glow);animation:spin 9s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.brand-text{font-family:var(--display);font-weight:500;letter-spacing:2px;font-size:15px}
.brand-text b{font-weight:700;background:linear-gradient(90deg,var(--violet),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav{display:flex;gap:4px;margin:0 auto;background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:4px;backdrop-filter:blur(12px)}
.pill{padding:8px 18px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--ink-dim);transition:.2s}
.pill:hover{color:var(--ink)}
.pill.on{background:linear-gradient(120deg,var(--violet),#5b8cff);color:#fff;box-shadow:0 6px 20px rgba(124,92,255,.4)}
.top-right{display:flex;align-items:center;gap:10px}
.ghost-btn{display:flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;border:1px solid var(--line);background:var(--glass);font-size:13px;color:var(--ink-dim);transition:.2s}
.ghost-btn:hover{color:var(--ink);border-color:var(--line-2);box-shadow:var(--glow)}
.avatar-chip{display:flex;align-items:center;gap:8px;padding:5px 14px 5px 5px;border-radius:999px;border:1px solid var(--line);background:var(--glass);font-size:13px;font-weight:500;transition:.2s}
.avatar-chip:hover{border-color:var(--line-2);box-shadow:var(--glow)}
.avatar-dot{width:24px;height:24px;border-radius:50%;background:linear-gradient(135deg,var(--violet),var(--cyan));box-shadow:inset 0 0 0 2px rgba(255,255,255,.2)}

/* ---- views ---- */
.view{position:fixed;inset:0;z-index:20;display:none;animation:viewIn .5s cubic-bezier(.2,.8,.2,1)}
.view.on{display:block}
@keyframes viewIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* ---- HOME ---- */
#homeView{display:none;pointer-events:none}
#homeView.on{display:block;overflow-y:auto;overflow-x:hidden}
#homeView>*{pointer-events:auto}
.hero-screen{min-height:calc(100vh - 6px);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:0 0 24px}
.hero{max-width:760px;margin:0 auto;padding:64px 24px 0;text-align:center}
.scroll-cue{margin-top:34px;display:inline-flex;align-items:center;gap:8px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:9px 18px;transition:.2s}
.scroll-cue:hover{color:var(--ink);border-color:var(--line-2);box-shadow:var(--glow)}
.scroll-cue span{display:inline-block;font-size:14px;animation:bob 1.6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(4px)}}
.eyebrow{font-size:12px;letter-spacing:3px;color:var(--cyan);font-weight:600;margin-bottom:18px;opacity:.9}
.hero h1{font-family:var(--display);font-weight:700;font-size:clamp(36px,6vw,68px);line-height:1.02;letter-spacing:-1.5px}
.grad{background:linear-gradient(100deg,var(--violet),var(--cyan) 60%,var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.sub{color:var(--ink-dim);font-size:clamp(14px,1.6vw,17px);max-width:540px;margin:18px auto 30px;line-height:1.55}
.prompt-bar{display:flex;align-items:center;gap:8px;background:var(--glass-2);border:1px solid var(--line-2);border-radius:999px;padding:7px 7px 7px 22px;box-shadow:0 20px 60px rgba(0,0,0,.5),var(--glow);backdrop-filter:blur(16px)}
.prompt-bar.big{max-width:620px;margin:0 auto}
.prompt-bar input{flex:1;background:none;border:none;outline:none;font-size:15.5px;padding:12px 0}
.prompt-bar input::placeholder{color:#7d72a8}
.gen-btn{display:flex;align-items:center;gap:8px;padding:13px 24px;border-radius:999px;font-weight:600;font-size:14.5px;color:#fff;background:linear-gradient(120deg,var(--violet),#4f8cff);box-shadow:0 8px 24px rgba(124,92,255,.5);transition:.2s;white-space:nowrap}
.gen-btn:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(124,92,255,.65)}
.gen-btn:active{transform:translateY(0)}
.gen-btn.sm{padding:10px 16px;font-size:13px}
.gen-btn.full{width:100%;justify-content:center;margin-top:6px}
.spark{filter:drop-shadow(0 0 6px var(--cyan))}
.chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:18px}
.chip{padding:8px 15px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:12.5px;color:var(--ink-dim);transition:.2s}
.chip:hover{color:var(--ink);border-color:var(--line-2);background:rgba(124,92,255,.12)}

.featured{max-width:1100px;margin:0 auto;padding:6px 26px 80px}
.featured-head{display:flex;justify-content:space-between;align-items:baseline;max-width:1100px;margin:0 auto 12px;font-size:13px;color:var(--ink-dim);letter-spacing:.5px}
.link{color:var(--cyan);font-size:13px;font-weight:500}
.featured-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.wcard{border-radius:var(--r);overflow:hidden;border:1px solid var(--line);background:var(--glass);cursor:pointer;transition:.25s;position:relative}
.empty-state{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:54px 24px;background:var(--glass);border:1px dashed var(--line-2);border-radius:var(--r)}
.empty-state h3{font-family:var(--display);font-size:21px;margin-bottom:4px}
.empty-state p{color:var(--ink-dim);font-size:13.5px;max-width:330px;margin-bottom:16px;line-height:1.55}
.empty-orb{width:60px;height:60px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--cyan),var(--violet));box-shadow:0 0 40px rgba(124,92,255,.5);margin-bottom:14px;animation:pulse 2.6s ease-in-out infinite}
.wcard:hover{transform:translateY(-4px);border-color:var(--line-2);box-shadow:0 18px 40px rgba(0,0,0,.5),var(--glow)}
.wcard .thumb{height:130px;background:#120c28;position:relative;overflow:hidden}
.wcard .thumb canvas,.wcard .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wcard .meta{padding:11px 13px}
.wcard .meta h4{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wcard .meta p{font-size:11.5px;color:var(--ink-dim);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wcard .play-badge{position:absolute;top:10px;right:10px;background:rgba(7,5,16,.7);backdrop-filter:blur(6px);border:1px solid var(--line-2);border-radius:999px;font-size:11px;padding:4px 10px;color:var(--cyan)}

/* ---- STUDIO ---- */
#studioView{pointer-events:none}
#studioView.on .studio-bar,#studioView.on .panel,#studioView.on .add-menu{pointer-events:auto}
.studio-bar{position:absolute;top:74px;left:50%;transform:translateX(-50%);z-index:30;display:flex;gap:12px;align-items:center;background:var(--glass-2);border:1px solid var(--line-2);border-radius:14px;padding:8px;backdrop-filter:blur(16px);box-shadow:0 14px 40px rgba(0,0,0,.5);max-width:calc(100vw - 40px)}
.studio-ai{display:flex;align-items:center;gap:7px;background:rgba(7,5,16,.5);border-radius:10px;padding:4px 4px 4px 12px}
.studio-ai input{width:min(34vw,320px);background:none;border:none;outline:none;font-size:13.5px;padding:8px 0}
.studio-ai input::placeholder{color:#7d72a8}
.toggle{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--ink-dim);cursor:pointer;padding-right:6px}
.toggle input{display:none}
.toggle span{width:30px;height:17px;border-radius:999px;background:rgba(255,255,255,.12);position:relative;transition:.2s}
.toggle span::after{content:"";position:absolute;top:2px;left:2px;width:13px;height:13px;border-radius:50%;background:#fff;transition:.2s}
.toggle input:checked+span{background:linear-gradient(90deg,var(--violet),var(--cyan))}
.toggle input:checked+span::after{left:15px}
.studio-tools{display:flex;align-items:center;gap:5px}
.tool{padding:9px 12px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:13px;font-weight:500;color:var(--ink-dim);transition:.18s}
.tool:hover{color:var(--ink);border-color:var(--line-2)}
.tool.on{background:linear-gradient(120deg,var(--violet),#4f8cff);color:#fff;border-color:transparent}
.tool.play{color:#7CFFB0;border-color:rgba(124,255,176,.3)}
.tool.play:hover{background:rgba(124,255,176,.12)}
.tool.pub{background:linear-gradient(120deg,var(--violet),var(--cyan));color:#fff;border-color:transparent}
.divider{width:1px;height:20px;background:var(--line)}

.panel{position:absolute;top:140px;bottom:24px;width:236px;z-index:25;background:var(--glass);border:1px solid var(--line);border-radius:var(--r);backdrop-filter:blur(16px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 14px 40px rgba(0,0,0,.4)}
.panel.left{left:20px}
.panel.right{right:20px}
.panel-head{padding:14px 16px;font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.count{background:rgba(124,92,255,.2);color:var(--violet);border-radius:999px;padding:2px 9px;font-size:11px;letter-spacing:0}
.tree{flex:1;overflow-y:auto;padding:8px}
.tnode{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:9px;font-size:13px;cursor:pointer;transition:.15s;color:var(--ink-dim)}
.tnode:hover{background:rgba(255,255,255,.04);color:var(--ink)}
.tnode.sel{background:rgba(124,92,255,.18);color:var(--ink)}
.tnode .swatch{width:12px;height:12px;border-radius:4px;flex:none;box-shadow:0 0 8px rgba(0,0,0,.4)}
.tnode .tname{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tnode .tag{font-size:9.5px;opacity:.6;text-transform:uppercase;letter-spacing:.5px}

.props-empty{padding:26px 18px;color:var(--ink-dim);font-size:13px;text-align:center;line-height:1.7}
.props-body{padding:14px;overflow-y:auto}
.field{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;font-size:13px;color:var(--ink-dim)}
.field>span{flex:none;width:74px}
.field input,.field select{flex:1;background:rgba(7,5,16,.5);border:1px solid var(--line);border-radius:9px;padding:9px 11px;font-size:13px;outline:none;color:var(--ink)}
.field input[type=color]{padding:3px;height:34px;cursor:pointer}
.field input:focus,.field select:focus{border-color:var(--line-2)}
.xyz{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px;margin:6px 0 14px}
.xyz .ax{background:rgba(7,5,16,.5);border:1px solid var(--line);border-radius:8px;padding:7px;text-align:center;font-size:11px;color:var(--ink-dim)}
.xyz .ax b{display:block;color:var(--ink);font-size:12px;margin-top:2px;font-variant-numeric:tabular-nums}
.prop-actions{display:flex;gap:8px;margin-top:6px}
.mini{flex:1;padding:10px;border-radius:9px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:12.5px;font-weight:500;color:var(--ink-dim);transition:.18s}
.mini:hover{color:var(--ink);border-color:var(--line-2)}
.mini.danger:hover{color:#ff7a9c;border-color:rgba(255,122,156,.4);background:rgba(255,122,156,.08)}

.add-menu{position:absolute;top:140px;left:50%;transform:translateX(-50%);z-index:35;width:340px;background:var(--glass-2);border:1px solid var(--line-2);border-radius:var(--r);backdrop-filter:blur(18px);padding:14px;box-shadow:0 20px 50px rgba(0,0,0,.6);animation:viewIn .2s}
.add-group{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink-dim);margin:6px 2px 8px;display:flex;align-items:center;gap:6px}
.ai-tag{color:var(--cyan)}
.add-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}
.add-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:11px 6px;border-radius:11px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:11px;color:var(--ink-dim);transition:.18s}
.add-item:hover{color:var(--ink);border-color:var(--line-2);background:rgba(124,92,255,.12);transform:translateY(-2px)}
.add-item .ico{font-size:20px;line-height:1}

/* AI build log (conversation + tasks) — bottom-center dock */
.ai-log{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);z-index:34;width:min(440px,calc(100vw - 520px));min-width:300px;max-height:44vh;display:flex;flex-direction:column;background:var(--glass-2);border:1px solid var(--line-2);border-radius:14px;backdrop-filter:blur(16px);box-shadow:0 18px 50px rgba(0,0,0,.6);overflow:hidden;animation:viewIn .22s}
.ai-log-head{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim)}
.ai-log-count{margin-left:auto;background:rgba(124,92,255,.2);color:var(--violet);border-radius:999px;padding:2px 9px;font-size:10px;letter-spacing:0}
.x-mini{width:22px;height:22px;border-radius:6px;border:1px solid var(--line);color:var(--ink-dim);font-size:14px;line-height:1}
.x-mini:hover{color:var(--ink);border-color:var(--line-2)}
.ai-log-body{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}
.ai-msg{font-size:13px;line-height:1.45;padding:9px 12px;border-radius:11px;max-width:90%;word-break:break-word}
.ai-msg.you{align-self:flex-end;background:linear-gradient(120deg,var(--violet),#4f8cff);color:#fff;border-bottom-right-radius:3px}
.ai-msg.ai{align-self:flex-start;background:rgba(255,255,255,.05);border:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;border-bottom-left-radius:3px}
.ai-msg.ai .chk{color:#7CFFB0;font-weight:700;flex:none}

/* ---- PLAY ---- */
#playView{pointer-events:none}
#playView.on .hud-btn,#playView.on .win-card *{pointer-events:auto}
.crosshair{position:absolute;top:50%;left:50%;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.7);transform:translate(-50%,-50%);box-shadow:0 0 8px rgba(52,231,255,.8);z-index:22}
.hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:18px 22px;z-index:24}
.hud-score{background:var(--glass-2);border:1px solid var(--line-2);border-radius:12px;padding:10px 16px;font-size:15px;backdrop-filter:blur(10px)}
.hud-score b{color:var(--cyan);font-size:18px}
.hud-score small{color:var(--ink-dim);font-size:13px}
.hud-title{font-size:12px;color:var(--ink-dim);margin-top:6px;padding-left:4px}
.hud-right{display:flex;gap:8px}
.hud-btn{padding:10px 16px;border-radius:12px;border:1px solid var(--line-2);background:var(--glass-2);font-size:13px;font-weight:500;backdrop-filter:blur(10px);transition:.2s}
.hud-btn:hover{box-shadow:var(--glow)}
.hud-hint{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);background:var(--glass);border:1px solid var(--line);border-radius:999px;padding:9px 20px;font-size:12.5px;color:var(--ink-dim);z-index:24;backdrop-filter:blur(10px)}
.win-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:26;text-align:center;background:var(--glass-2);border:1px solid var(--line-2);border-radius:24px;padding:46px 54px;backdrop-filter:blur(20px);box-shadow:0 30px 80px rgba(0,0,0,.6);animation:pop .5s cubic-bezier(.2,1.2,.3,1)}
@keyframes pop{from{opacity:0;transform:translate(-50%,-44%) scale(.9)}}
.win-card h2{font-family:var(--display);font-size:38px;background:linear-gradient(100deg,var(--violet),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.win-card p{color:var(--ink-dim);margin:8px 0 22px}
.win-glow{position:absolute;inset:0;border-radius:24px;box-shadow:0 0 80px rgba(124,92,255,.5) inset;pointer-events:none}

/* ---- GALLERY ---- */
#galleryView{overflow-y:auto;padding:92px 30px 40px}
.gallery-head{max-width:1100px;margin:0 auto 26px}
.gallery-head h2{font-family:var(--display);font-size:32px}
.gallery-head p{color:var(--ink-dim);margin-top:6px}
.gallery-grid{max-width:1100px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}

/* ---- MODALS ---- */
.modal-wrap{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:rgba(4,2,10,.6);backdrop-filter:blur(6px);animation:viewIn .25s}
.modal{width:min(420px,92vw);background:linear-gradient(180deg,var(--glass-2),var(--glass));border:1px solid var(--line-2);border-radius:20px;padding:22px;box-shadow:0 30px 80px rgba(0,0,0,.7)}
.modal-head{display:flex;justify-content:space-between;align-items:center;font-family:var(--display);font-size:18px;font-weight:600;margin-bottom:18px}
.x{width:32px;height:32px;border-radius:9px;border:1px solid var(--line);color:var(--ink-dim);font-size:14px}
.x:hover{color:var(--ink);border-color:var(--line-2)}
.av-preview,.pub-thumb{height:160px;border-radius:14px;background:#0c0820;border:1px solid var(--line);margin-bottom:16px;overflow:hidden;position:relative}
.av-preview canvas,.pub-thumb canvas{width:100%;height:100%}
.seg{display:flex;gap:6px;flex:1}
.seg button{flex:1;padding:8px;border-radius:8px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:12px;color:var(--ink-dim)}
.seg button.on{background:linear-gradient(120deg,var(--violet),#4f8cff);color:#fff;border-color:transparent}
.pub-note,.voice-body p{font-size:12px;color:var(--ink-dim);line-height:1.6;margin:8px 0 16px}
.voice-body{text-align:center;padding:10px 6px}
.voice-orb{width:90px;height:90px;border-radius:50%;margin:0 auto 18px;background:radial-gradient(circle at 35% 30%,var(--cyan),var(--violet));box-shadow:0 0 50px rgba(124,92,255,.6);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{transform:scale(1.08);box-shadow:0 0 70px rgba(52,231,255,.7)}}

/* AI brain panel */
.brain-stat{display:flex;align-items:baseline;gap:10px;margin-bottom:18px}
.brain-stat b{font-family:var(--display);font-size:42px;line-height:1;background:linear-gradient(120deg,var(--violet),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.brain-stat span{color:var(--ink-dim);font-size:13px}
.brain-row{display:flex;flex-direction:column;gap:7px;margin-bottom:15px;font-size:11px;color:var(--ink-dim);text-transform:uppercase;letter-spacing:1.2px}
.brain-tags{display:flex;flex-wrap:wrap;gap:6px}
.brain-tags span{padding:5px 12px;border-radius:999px;background:rgba(124,92,255,.16);color:var(--ink);font-size:12.5px;text-transform:none;letter-spacing:0}
.brain-tags em,.brain-cols em{color:var(--ink-dim);font-size:12.5px;text-transform:none;letter-spacing:0}
.brain-cols{display:flex;gap:6px}
.brain-cols i{width:26px;height:26px;border-radius:7px;box-shadow:0 0 10px rgba(0,0,0,.4)}
.brain-recent{list-style:none;display:flex;flex-direction:column;gap:5px}
.brain-recent li{font-size:13px;color:var(--ink);text-transform:none;letter-spacing:0;padding:7px 11px;background:rgba(255,255,255,.04);border:1px solid var(--line);border-radius:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brain-note{font-size:12px;color:var(--ink-dim);line-height:1.6;margin-top:4px;text-transform:none;letter-spacing:0}
.brain-empty{text-align:center;padding:14px 6px}
.brain-empty p{color:var(--ink-dim);font-size:13px;line-height:1.6;margin-top:8px}

/* ---- toast + loader ---- */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);z-index:80;background:var(--glass-2);border:1px solid var(--line-2);border-radius:12px;padding:13px 22px;font-size:13.5px;backdrop-filter:blur(12px);box-shadow:0 14px 40px rgba(0,0,0,.5);animation:toastIn .3s}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,12px)}}
.loader{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:rgba(5,3,12,.78);backdrop-filter:blur(8px)}
.loader-orb{width:70px;height:70px;border-radius:50%;background:conic-gradient(from 0deg,var(--violet),var(--cyan),var(--pink),var(--violet));animation:spin 1s linear infinite;box-shadow:0 0 60px rgba(124,92,255,.6);mask:radial-gradient(circle at center,transparent 54%,#000 56%);-webkit-mask:radial-gradient(circle at center,transparent 54%,#000 56%)}
.loader span{font-family:var(--display);font-size:15px;letter-spacing:.5px;color:var(--ink-dim)}

::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-thumb{background:rgba(124,92,255,.3);border-radius:8px}
::-webkit-scrollbar-track{background:transparent}

@media(max-width:900px){ .nav{display:none} }
@media(max-width:780px){ .studio-ai input{width:34vw} .hero{padding-top:80px} .panel{width:200px} }
@media(max-width:560px){ .panel{display:none} .studio-bar{flex-wrap:wrap} }
