:root{color-scheme:light;--page: #f5f1fb;--ink: #1a1028;--muted: #6b6280;--line: #e4dcf0;--navy: #2a1548;--blue: #7c3aed;--blue-deep: #5b21b6;--accent: #8b5cf6;--card: #ffffff;--shadow: 0 1px 2px 0 rgb(42 21 72 / .05), 0 1px 3px 0 rgb(42 21 72 / .04);font-family:Poppins,ui-sans-serif,system-ui,Segoe UI,sans-serif;background:var(--page);color:var(--ink);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}#app{display:flex;height:100vh;overflow:hidden}aside{width:260px;flex-shrink:0;background:var(--navy);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;align-items:center;gap:10px;padding:0 6px}.brand-mark{display:inline-flex;flex-shrink:0}.brand-name{font-size:18px;font-weight:600;letter-spacing:-.02em;color:#fff}.progress{margin:-8px 0 0;padding:0 10px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffffff80}nav ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}nav button{width:100%;text-align:left;background:transparent;border:0;color:#ffffffbf;font:inherit;font-size:13.5px;font-weight:400;padding:8px 10px;border-radius:8px;cursor:pointer}nav button:hover{background:#ffffff1a;color:#fff}nav button[aria-current=true]{background:#ffffff26;color:#fff;font-weight:500}main{flex:1;min-width:0;min-height:0;padding:28px 32px 40px;display:flex;flex-direction:column;overflow:auto}.eyebrow{margin:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}main h2{margin:6px 0 0;font-size:28px;line-height:1.2;font-weight:600;letter-spacing:-.01em;color:var(--ink)}.controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:20px 0}button.action{height:40px;border:1px solid var(--line);background:var(--card);color:#2c3d55;font:inherit;font-size:13px;font-weight:500;border-radius:10px;padding:0 16px;cursor:pointer}button.action:hover{background:#eef2f6}button.action:disabled{opacity:.45;cursor:default}#play{background:var(--blue);border-color:var(--blue);color:#fff}#play:hover{background:var(--blue-deep)}label.continue.live{border-color:#7c3aed59;background:#f5f0ff;color:var(--blue-deep)}a.live-url{display:inline-flex;align-items:center;max-width:280px;height:40px;padding:0 12px;border-radius:10px;border:1px dashed var(--line);color:var(--muted);font-size:12px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.live-url:hover{color:var(--blue-deep);border-color:var(--accent)}label.continue{display:inline-flex;gap:8px;align-items:center;height:40px;padding:0 12px;border:1px solid var(--line);background:var(--card);border-radius:10px;font-size:13px;color:#2c3d55;cursor:pointer}audio{width:min(280px,100%);height:40px}.frame{flex:1;min-height:0;width:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:16px;align-items:stretch;container-type:inline-size}.stage{position:relative;width:100%;max-height:100%;margin:auto 0;aspect-ratio:1440 / 900;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;background:var(--card)}.transcript{min-height:0;display:flex;flex-direction:column;gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card);box-shadow:var(--shadow)}.transcript-head{display:flex;flex-direction:column;gap:4px}.transcript-label{margin:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}.transcript-hint{margin:0;font-size:12px;color:var(--muted);line-height:1.4}.transcript-now{margin:0;padding:14px 16px;border-radius:12px;background:linear-gradient(135deg,#f3eaff,#ebe2ff);border:1px solid rgb(124 58 237 / .28);color:var(--ink);font-size:16px;font-weight:500;line-height:1.45}.transcript-try{margin:0 10px 2px 48px;font-size:13px;line-height:1.4;color:var(--muted)}.transcript-try.ok{color:#166534}.transcript-try.miss{color:#9a3412}.transcript-list{list-style:none;margin:0;padding:0;overflow:auto;display:flex;flex-direction:column;gap:6px;min-height:0;flex:1}.transcript-line{width:100%;display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:start;text-align:left;border:1px solid transparent;background:transparent;border-radius:10px;padding:10px;cursor:pointer;font:inherit;color:var(--ink)}.transcript-line:hover{background:#f5f0ff;border-color:#7c3aed2e}.transcript-line.active{background:linear-gradient(135deg,#f3eaff,#ebe2ff);border-color:#7c3aed59;box-shadow:inset 3px 0 0 var(--blue)}.transcript-index{font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--muted);padding-top:2px}.transcript-line.active .transcript-index{color:var(--blue-deep)}.transcript-text{font-size:13.5px;line-height:1.45;color:var(--ink)}.nav-group{margin-bottom:14px}.nav-label{margin:0 0 6px;padding:0 10px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#ffffff80}.nav-group ol{margin:0;padding:0;list-style:none}.stage.enter .scene{opacity:0;transform:scale(1.04)}.stage.enter-active .scene{opacity:1;transform:scale(1);transition:opacity .7s ease,transform 1.15s cubic-bezier(.22,.7,.2,1)}.scene{position:absolute;inset:0;transition:transform 1.15s cubic-bezier(.22,.7,.2,1)}.map-board{position:absolute;inset:0;padding:4.5% 5%;background:radial-gradient(circle at 12% 18%,rgb(139 92 246 / .18),transparent 42%),linear-gradient(160deg,#faf7ff,#f0e9fb 55%,#e8dff7);display:flex;flex-direction:column;gap:3.5%}.map-lead{margin:0;font-size:clamp(18px,2.4cqw,28px);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.map-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:3.5%;min-height:0}.map-card{border:1px solid var(--line);background:#ffffffe0;border-radius:14px;padding:7% 8%;text-align:left;display:flex;flex-direction:column;gap:8px;cursor:pointer;color:var(--ink);font:inherit;transition:transform .35s ease,border-color .35s ease,box-shadow .35s ease}.map-card strong{font-size:1.05em;font-weight:600}.map-card span:last-child{color:var(--muted);font-size:.92em;line-height:1.4}.map-pages{color:var(--blue-deep)!important;font-size:.8em!important;font-weight:500}.map-kicker{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}.map-card.active,.map-card:hover{border-color:var(--accent);box-shadow:0 10px 28px #2a15481f;transform:translateY(-2px)}.scene img{width:100%;height:100%;object-fit:cover;object-position:top left;display:block}.spot{position:absolute;border-radius:14px;box-shadow:0 0 0 9999px #0b1b3338;transition:left 1.15s cubic-bezier(.22,.7,.2,1),top 1.15s cubic-bezier(.22,.7,.2,1),width 1.15s cubic-bezier(.22,.7,.2,1),height 1.15s cubic-bezier(.22,.7,.2,1);pointer-events:none;z-index:2}.spot.pulse .ring{animation:ring 1.2s ease-out 1}.ring{position:absolute;inset:0;border:2px solid var(--accent);border-radius:14px;animation:ring 1.7s ease-out infinite}@keyframes ring{0%{box-shadow:0 0 #8b5cf68c}to{box-shadow:0 0 0 14px #8b5cf600}}.redact{position:absolute;z-index:3;border-radius:10px}.redact.account{background:var(--navy)}.redact.veil{background:#f5f7faf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gate{min-height:100vh;width:100%;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:16px;padding:48px 24px;max-width:420px;margin:0 auto}.gate-shell{min-height:100vh;width:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);opacity:0;transform:translateY(10px);transition:opacity .55s ease,transform .7s cubic-bezier(.22,.7,.2,1)}.gate-shell.ready{opacity:1;transform:none}.gate-stage{position:relative;overflow:hidden;background:radial-gradient(ellipse 80% 60% at 20% 15%,rgb(167 139 250 / .45),transparent 55%),radial-gradient(ellipse 70% 50% at 85% 80%,rgb(91 33 182 / .55),transparent 50%),linear-gradient(155deg,#1a0b2e,#2a1548 48%,#4c1d95);color:#fff;padding:clamp(32px,6vw,72px);display:flex;align-items:flex-end}.gate-glow{position:absolute;border-radius:50%;filter:blur(40px);pointer-events:none}.gate-glow-a{width:280px;height:280px;top:-60px;right:10%;background:#c4b5fd59;animation:gate-drift 12s ease-in-out infinite alternate}.gate-glow-b{width:360px;height:360px;bottom:-80px;left:-40px;background:#7c3aed66;animation:gate-drift 16s ease-in-out infinite alternate-reverse}@keyframes gate-drift{0%{transform:translate(0) scale(1)}to{transform:translate(24px,-18px) scale(1.08)}}.gate-stage-inner{position:relative;z-index:1;max-width:520px;display:flex;flex-direction:column;gap:16px}.gate-stage .brand-name{color:#fff}.gate-stage .brand{padding:0;margin-bottom:12px}.gate-kicker{margin:0;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#ffffff9e}.gate-hero{margin:0;font-size:clamp(34px,4.6vw,52px);font-weight:600;letter-spacing:-.03em;line-height:1.08}.gate-stage-copy{margin:0;font-size:16px;line-height:1.55;color:#ffffffc7;max-width:38ch}.gate-panel{background:#fbf8ff;display:flex;align-items:center;justify-content:center;padding:clamp(28px,5vw,56px) 24px}.gate-panel-inner{width:min(100%,380px);display:flex;flex-direction:column;gap:14px;animation:gate-panel-in .65s cubic-bezier(.22,.7,.2,1) both}@keyframes gate-panel-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:none}}.gate-panel-eyebrow{margin:0;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--blue)}.gate-panel h2{margin:0;font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--ink)}.gate-copy,.gate-status{margin:0;color:var(--muted);font-size:14px;line-height:1.5}.gate-status{min-height:1.2em;opacity:0;transition:opacity .2s ease}.gate-status.show{opacity:1}.gate-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;border-radius:12px;background:#2a15480f;margin:4px 0 2px}.gate-tab{border:0;background:transparent;border-radius:9px;height:38px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer}.gate-tab.active{background:#fff;color:var(--ink);box-shadow:0 1px 2px #2a154814}.gate-form{width:100%;display:flex;flex-direction:column;gap:14px;margin-top:4px}.gate-form label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}.gate-form input{height:46px;border:1px solid var(--line);border-radius:12px;padding:0 14px;font:inherit;font-size:15px;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--ink);background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.gate-form input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #8b5cf633}.gate-submit{margin-top:4px;height:46px;border:0;border-radius:12px;background:var(--blue);color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s ease,transform .15s ease}.gate-submit:hover{background:var(--blue-deep)}.gate-submit:active{transform:translateY(1px)}.gate-submit:disabled{opacity:.7;cursor:wait}a.action.primary{background:var(--blue);border-color:var(--blue);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}@media(max-width:860px){.gate-shell{grid-template-columns:1fr}.gate-stage{min-height:42vh;align-items:flex-end;padding:28px 22px 32px}.gate-hero{font-size:clamp(28px,8vw,36px)}.gate-stage-copy{font-size:14px}}.rail-link,.sign-out{margin-top:auto;border:0;background:#ffffff14;color:#fffc;border-radius:10px;height:36px;cursor:pointer;font:inherit;font-size:13px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.rail-link{margin-top:auto;margin-bottom:8px}.sign-out{margin-top:0}.rail-link:hover,.sign-out:hover{background:#ffffff24}@media(max-width:980px){.frame{grid-template-columns:1fr;grid-template-rows:auto minmax(220px,36vh)}.transcript{max-height:36vh}}@media(max-width:720px){#app{flex-direction:column;height:auto;overflow:visible}aside{width:100%;height:auto;position:relative}main{height:auto;padding:20px 16px 48px}.frame{min-height:420px}}.studio-shell{display:flex;min-height:100vh;width:100%;background:var(--page)}.studio-rail{width:240px;flex-shrink:0;background:var(--navy);color:#fff;padding:20px 14px;display:flex;flex-direction:column;gap:18px}.studio-rail nav{display:flex;flex-direction:column;gap:4px}.studio-rail a{color:#ffffffbf;text-decoration:none;border-radius:10px;padding:10px 12px;font-size:13.5px}.studio-rail a:hover{background:#ffffff1a}.studio-rail a[aria-current=true]{background:#ffffff26;color:#fff;font-weight:500}.studio-main{flex:1;min-width:0;padding:32px 36px 64px;overflow:auto}.how-to{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px;max-width:920px}.how-to-head h2{margin:6px 0 16px;font-size:18px;font-weight:600}.how-to-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.how-to-step{display:flex;gap:12px;align-items:flex-start;padding:12px;border-radius:12px;border:1px solid transparent}.how-to-step strong{display:block;font-size:14px;font-weight:600;margin-bottom:4px}.how-to-step p{margin:0;color:var(--muted);font-size:13px;line-height:1.45}.how-to-num{flex-shrink:0;width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#7c3aed1f;color:var(--blue);font-size:12px;font-weight:700}.how-to-step.active{border-color:#8b5cf673;background:#7c3aed0f}.how-to-step.done .how-to-num{background:var(--blue);color:#fff}.section-guide{margin:-4px 0 14px;color:var(--muted);font-size:13px;line-height:1.45}.auth-steps{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px;color:var(--ink);font-size:14px;line-height:1.45}.auth-steps .auth-cmd{margin-top:6px}.scan-run .auth-cmd{display:inline-block;vertical-align:middle}.studio-header{margin-bottom:28px;max-width:720px}.studio-header h1{margin:0;font-size:28px;font-weight:600;letter-spacing:-.01em}.studio-lead{margin:10px 0 0;color:var(--muted);font-size:15px;line-height:1.5}.studio-section{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px;margin-bottom:18px;max-width:920px}.studio-section h2{margin:0 0 14px;font-size:16px;font-weight:600}.studio-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.studio-section-head h2{margin:0}.studio-section label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.studio-input{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 12px;font:inherit;font-size:14px;font-weight:400;letter-spacing:normal;text-transform:none;color:var(--ink);background:#fff}textarea.studio-input{height:auto;padding:10px 12px;resize:vertical;line-height:1.4}.tempo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tempo-card{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px;cursor:pointer;background:#fff;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--ink)}.tempo-card input{position:absolute;opacity:0;pointer-events:none}.tempo-card strong{font-size:15px;font-weight:600}.tempo-card span{color:var(--muted);font-size:13px;line-height:1.4}.tempo-card.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.studio-toggles{display:flex;flex-wrap:wrap;gap:16px 24px}.studio-check{flex-direction:row!important;align-items:center;gap:10px!important;text-transform:none!important;letter-spacing:normal!important;font-weight:500!important;font-size:14px!important;color:var(--ink)!important;margin:0!important}.studio-paths{display:flex;flex-direction:column;gap:14px}.studio-path{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfcfe;display:flex;flex-direction:column;gap:12px}.studio-path.off{opacity:.55}.studio-pages{display:flex;flex-direction:column;gap:10px;padding:12px;border-radius:12px;border:1px dashed var(--line);background:#fff}.studio-pages-label{margin:0;font-size:13px;font-weight:600;color:var(--ink)}.studio-page-row{display:flex;flex-direction:column;gap:8px;padding:10px;border-radius:10px;background:#fbfcfe;border:1px solid var(--line)}.studio-page-meta{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}.studio-page-brief-label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted, #5b6b7c)}.studio-page-brief{font-weight:400;min-height:3.2em;resize:vertical}.studio-page-fields{display:flex;flex-direction:column;gap:8px}.studio-page-summary{display:none;align-items:center;gap:12px;min-width:0}.studio-page-row.is-collapsed .studio-page-summary{display:flex;flex-wrap:nowrap}.studio-page-row.is-collapsed .studio-page-fields{display:none}.studio-page-summary-name{flex:0 1 auto;min-width:0;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;letter-spacing:normal;text-transform:none;color:var(--ink)}.studio-page-summary-route{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;letter-spacing:normal;text-transform:none;color:var(--muted)}button.studio-page-toggle{height:32px;padding:0 12px;margin-left:auto;flex-shrink:0}.studio-page-done-row{display:flex;justify-content:flex-end}@media(max-width:720px){.studio-page-meta{grid-template-columns:1fr}}.studio-footer{max-width:920px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:8px}.action.primary{background:var(--blue);border-color:var(--blue);color:#fff}.action.primary:hover{background:var(--blue-deep);border-color:var(--blue-deep)}.studio-status{margin:0;color:var(--muted);font-size:14px}.studio-hint{margin:0;color:var(--muted);font-size:13px;line-height:1.45;max-width:560px}.auth-pill{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:6px 10px}.auth-pill.ok{background:#7c3aed1f;color:var(--blue)}.auth-pill.wait{background:#5e6e841f;color:var(--muted)}.auth-fields{margin-top:14px}.auth-card{margin-top:8px;border:1px solid var(--line);border-radius:14px;padding:16px;background:#fbfcfe;display:flex;flex-direction:column;gap:10px}.auth-title{margin:0;font-size:14px;font-weight:600;color:var(--ink)}.scan-panel{display:flex;flex-direction:column;gap:12px;max-width:920px}.scan-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.scan-pipelines{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 8px}button.scan-pipeline{height:36px;border:1px solid var(--line);background:var(--card);color:#2c3d55;font:inherit;font-size:13px;font-weight:500;border-radius:10px;padding:0 14px;cursor:pointer}button.scan-pipeline:hover{background:#eef2f6}button.scan-pipeline.active{border-color:var(--accent);background:#f5f0ff;color:var(--blue-deep);box-shadow:inset 0 0 0 1px var(--accent)}button.scan-pipeline:disabled{opacity:.45;cursor:default}.scan-pipeline-hint{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.4}.scan-status{margin:0;color:var(--muted);font-size:14px}.gw-live-portal{position:fixed;right:20px;bottom:20px;z-index:80;width:min(560px,calc(100vw - 32px));max-height:min(78vh,720px);display:flex;flex-direction:column}.gw-live-portal[hidden]{display:none!important}.gw-live-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px 16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 18px 50px #18181b2e;max-height:inherit;overflow:auto}.gw-live-header h2{margin:0;font-size:17px;font-weight:600;color:var(--ink)}.gw-live-hint,.gw-live-status{margin:4px 0 0;color:var(--muted);font-size:13px;line-height:1.4}.gw-live-iframe{display:block;width:100%;height:min(42vh,380px);border:1px solid var(--line);border-radius:12px;background:#09090b;margin-top:4px}.gw-live-iframe[hidden],.gw-live-actions a[hidden]{display:none!important}.gw-live-status.is-error{color:#b91c1c}.gw-scan-eta{margin:2px 0 0;font-size:13px;font-weight:600;color:var(--ink)}.gw-scan-eta[hidden]{display:none!important}.gw-scan-stages{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.gw-scan-stage{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.gw-scan-stage.is-active{color:var(--ink);font-weight:600}.gw-scan-stage.is-done{color:#15803d}.gw-scan-stage.is-error{color:#b91c1c;font-weight:600}.gw-scan-stage-mark{width:1.1em;text-align:center;font-size:12px}.gw-scan-log{list-style:none;margin:8px 0 0;padding:10px 12px;border-radius:10px;background:#f4f4f5;border:1px solid var(--line);max-height:140px;overflow:auto;display:flex;flex-direction:column;gap:4px}.gw-scan-log li{font-size:12px;color:#3f3f46;line-height:1.35}.gw-scan-log li:first-child{color:var(--ink);font-weight:600}.gw-live-actions{display:flex;gap:8px;flex-wrap:wrap}.auth-cmd{margin:0;padding:12px 14px;border-radius:10px;background:var(--navy);color:#fff;font-size:13px;overflow-x:auto}@media(max-width:900px){.studio-shell{flex-direction:column}.studio-rail{width:100%;height:auto}.tempo-grid{grid-template-columns:1fr}.studio-main{padding:24px 16px 48px}}
