@font-face{font-family:PreviewMontserrat;src:url(/fonts/Montserrat-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:PreviewPoppins;src:url(/fonts/Poppins-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:PreviewNotoSans;src:url(/fonts/NotoSans-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:PreviewMerriweather;src:url(/fonts/Merriweather-Regular.ttf) format("truetype");font-display:swap}@font-face{font-family:PreviewBaloo2;src:url(/fonts/Baloo2-Regular.ttf) format("truetype");font-display:swap}:root{--bg-a:#0f172a;--bg-b:#1f2937;--bg-c:#0b1220;--panel:rgba(15,23,42,0.72);--line:rgba(148,163,184,0.2);--ink:#f8fafc;--muted:#cbd5e1;--accent:#22d3ee;--accent-2:#fb7185;--font-display:"Avenir Next","Trebuchet MS","Gill Sans",sans-serif;--font-mono:"Menlo","Consolas","Monaco",monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%}body{color:var(--ink);font-family:var(--font-display),sans-serif;background:radial-gradient(circle at 10% 10%,rgba(34,211,238,.18),transparent 40%),radial-gradient(circle at 80% 20%,rgba(251,113,133,.14),transparent 45%),linear-gradient(140deg,var(--bg-a),var(--bg-b) 50%,var(--bg-c))}a{color:inherit}button,input,select,textarea{font:inherit}.app{max-width:1180px;margin:0 auto;padding:28px 16px 64px}.app.app-auth{max-width:none;margin:0}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:18px}.hero h1{margin:0;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.02em}.hero p{margin:6px 0 0;color:var(--muted);font-size:.95rem}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-gap:14px;gap:14px}.builder-grid{position:relative}.card{grid-column:span 12;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}@media (min-width:960px){.col-1{grid-column:span 1}.col-4{grid-column:span 4}.col-11{grid-column:span 11}.col-8{grid-column:span 8}.col-6{grid-column:span 6}}label{display:flex;flex-direction:column;gap:6px;font-size:.88rem;color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 11px;background:rgba(15,23,42,.82);color:var(--ink)}textarea{resize:vertical}button{border:1px solid transparent;border-radius:10px;padding:9px 13px;background:linear-gradient(120deg,var(--accent),#06b6d4);color:#042f2e;font-weight:700;cursor:pointer}button.secondary{background:transparent;border-color:var(--line);color:var(--ink)}button.admin-nav-button{background:linear-gradient(135deg,rgba(220,38,38,.26),rgba(127,29,29,.42));border-color:rgba(248,113,113,.48);color:#fecaca}button.admin-nav-button:hover:not(:disabled){background:linear-gradient(135deg,rgba(239,68,68,.34),rgba(153,27,27,.5));border-color:rgba(252,165,165,.7)}button:disabled{opacity:.55;cursor:not-allowed}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.mono{font-family:var(--font-mono),monospace}.error{color:#fecaca}.error,.success{margin-top:8px;font-size:.88rem}.success{color:#86efac}.global-toast{position:fixed;top:14px;right:14px;z-index:2100;max-width:min(420px,calc(100vw - 28px));border-radius:12px;border:1px solid rgba(134,239,172,.45);box-shadow:0 16px 40px rgba(2,6,23,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px 10px 14px}.success-toast{background:rgba(6,38,24,.94);color:#dcfce7}.global-toast-close{flex-shrink:0;margin:-4px -4px 0 0;width:26px;height:26px;border-radius:999px;border:1px solid rgba(134,239,172,.35);background:transparent;color:inherit;font-size:1.05rem;font-weight:700;line-height:1;padding:0}.global-toast-close:hover{background:rgba(220,252,231,.14)}.divider{border-top:1px solid var(--line);margin:12px 0}.preview-box{border-radius:12px;border:1px solid var(--line);display:flex;justify-content:center;align-items:center;padding:8px;min-height:260px}.preview-box,.preview-frame{position:relative;width:100%;background:#000}.preview-frame{max-width:340px;border:1px solid rgba(148,163,184,.25);overflow:hidden;margin:0 auto}.preview-video{display:block;width:100%;height:100%}.preview-video-fg{position:relative;z-index:2;object-fit:contain}.preview-video-bg{position:absolute;inset:0;z-index:1;object-fit:cover;filter:blur(18px) saturate(1.05);transform:scale(1.12);pointer-events:none}.preview-frame-blur .preview-video-fg,.preview-frame-solid .preview-video-fg{object-fit:contain}.preview-overlay-band{position:absolute;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:0 16px;pointer-events:none}.preview-overlay-band-top{top:0}.preview-overlay-band-bottom{bottom:0}.preview-overlay-text{display:inline-flex;align-items:center;justify-content:center;gap:0;max-width:100%;line-height:1;text-align:center;white-space:nowrap;overflow:hidden}.preview-overlay-text>span{display:inline;white-space:pre}.preview-overlay-emoji{width:1.05em;height:1.05em;display:inline-block;flex-shrink:0;object-fit:contain}.preview-placeholder{width:100%;height:100%;display:grid;place-items:center;color:var(--muted);font-size:.85rem;text-align:center;padding:12px}.preview-loading{position:absolute;inset:0;background:rgba(2,6,23,.45);color:var(--ink);font-size:.82rem;display:flex;align-items:center;justify-content:center;pointer-events:none}.band-height-controls{display:grid;grid-gap:6px;gap:6px}.band-height-row{display:flex;align-items:center;gap:8px}.band-height-row input[type=number]{width:96px}.accordion-card{padding:0}.accordion-head{width:100%;background:transparent;border:none;color:var(--ink);border-radius:16px;padding:14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}.accordion-head h4,.accordion-head h5{margin:0}.accordion-body{border-top:1px solid var(--line);padding:0 14px 14px}.upload-progress-panel{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(15,23,42,.42)}.upload-progress-title{margin:0 0 4px;font-size:.86rem;font-weight:700;color:var(--ink)}.upload-phase-badge{display:inline-flex;align-items:center;justify-content:center;min-width:110px;padding:5px 10px;border-radius:999px;border:1px solid var(--line);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.upload-phase-badge.phase-finalizing,.upload-phase-badge.phase-preparing{color:#fde68a;border-color:rgba(250,204,21,.35);background:rgba(120,53,15,.22)}.upload-phase-badge.phase-uploading{color:#7dd3fc;border-color:rgba(56,189,248,.35);background:rgba(7,89,133,.22)}.upload-phase-badge.phase-failed{color:#fca5a5;border-color:rgba(248,113,113,.35);background:rgba(127,29,29,.22)}.upload-progress-track{position:relative;overflow:hidden;width:100%;height:12px;margin-top:10px;border-radius:999px;background:rgba(51,65,85,.7)}.upload-progress-fill{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#22d3ee,#38bdf8);transition:width .18s ease}.upload-progress-fill.is-failed{background:linear-gradient(90deg,#fb7185,#ef4444)}.upload-progress-fill.is-indeterminate{width:34%;animation:upload-progress-indeterminate 1.05s ease-in-out infinite}.upload-progress-meta{justify-content:space-between;margin-top:8px}@keyframes upload-progress-indeterminate{0%{transform:translateX(-115%)}to{transform:translateX(305%)}}.render-history-accordion{margin-top:12px}.admin-preset-list{display:grid;grid-gap:8px;gap:8px;margin-top:10px;overflow-x:auto}.admin-preset-form-scroll{overflow-x:auto}.admin-preset-form-row{display:grid;grid-template-columns:minmax(280px,1fr) 120px 120px;grid-gap:8px;gap:8px;min-width:560px}.admin-preset-item{display:grid;grid-template-columns:minmax(280px,1fr) 120px 120px auto;grid-gap:6px;gap:6px;border:1px solid var(--line);border-radius:10px;padding:8px;min-width:700px;align-items:center}.admin-preset-actions{justify-content:flex-end;flex-wrap:nowrap}.admin-preset-actions button{white-space:nowrap}.admin-tab-row{margin-bottom:10px}.switch-control{position:relative;width:56px;min-width:56px;height:32px;padding:3px;border:none;border-radius:999px;color:transparent;background:linear-gradient(135deg,rgba(185,28,28,.95),rgba(127,29,29,.98));box-shadow:inset 0 0 0 1px rgba(248,250,252,.12),0 8px 18px rgba(2,6,23,.24);transition:background .18s ease,box-shadow .18s ease,transform .18s ease}.switch-control.is-on{background:linear-gradient(135deg,rgba(34,197,94,.95),rgba(22,163,74,.98))}.switch-control:hover:not(:disabled){transform:translateY(-1px)}.switch-control:disabled{opacity:.6}.switch-control-thumb{display:block;width:26px;height:26px;border-radius:50%;background:linear-gradient(180deg,#ffffff,#e2e8f0);box-shadow:0 3px 9px rgba(15,23,42,.32);transform:translateX(0);transition:transform .18s ease}.switch-control.is-on .switch-control-thumb{transform:translateX(24px)}.admin-switch-cell,.admin-switch-field{display:flex;align-items:center;gap:10px}.admin-switch-field{min-height:42px}.admin-switch-cell{justify-content:center}.admin-switch-caption{font-size:.8rem;font-weight:700}.admin-switch-caption.is-on{color:#86efac}.admin-switch-caption.is-off{color:#fca5a5}.admin-setting-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.admin-status-pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:.82rem;font-weight:700}.admin-status-pill.is-on{color:#86efac;border-color:rgba(74,222,128,.4);background:rgba(20,83,45,.3)}.admin-status-pill.is-off{color:#fca5a5;border-color:rgba(248,113,113,.4);background:rgba(127,29,29,.3)}.admin-status-pill-dot{width:9px;height:9px;border-radius:50%;background:currentColor;box-shadow:0 0 0 5px rgba(255,255,255,.04)}.admin-users-form-scroll{overflow-x:auto}.admin-users-form-row{display:grid;grid-template-columns:minmax(230px,1fr) 180px 120px 180px;grid-gap:8px;gap:8px;min-width:760px}.admin-users-list{display:grid;grid-gap:8px;gap:8px;margin-top:10px;overflow-x:auto}.admin-user-item{border:1px solid var(--line);border-radius:10px}.admin-user-head,.admin-user-item{display:grid;grid-template-columns:minmax(230px,1fr) 180px 170px 120px 180px 160px;grid-gap:6px;gap:6px;padding:8px;align-items:center;min-width:1080px;box-sizing:border-box}.admin-user-head{border:1px solid transparent}.admin-user-head span{font-weight:700;color:var(--ink)}.admin-user-head span:last-child{justify-self:end}.table{width:100%;border-collapse:collapse}.table td,.table th{border-bottom:1px solid var(--line);padding:8px 4px;font-size:.86rem;vertical-align:middle}.render-job-list{display:grid;grid-gap:8px;gap:8px;margin-top:8px}.render-job-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:rgba(15,23,42,.45)}.render-job-header{width:100%;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between;padding:10px 12px;background:transparent;border:none;border-radius:0;color:var(--ink);text-align:left}.render-job-body{border-top:1px solid var(--line);padding:10px 12px}.render-job-status{border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:700;min-width:88px;text-align:center}.render-job-status.status-queued{color:#fef08a;border-color:rgba(250,204,21,.45)}.render-job-status.status-processing{color:#7dd3fc;border-color:rgba(56,189,248,.45)}.render-job-status.status-done{color:#86efac;border-color:rgba(74,222,128,.45)}.render-job-status.status-failed{color:#fca5a5;border-color:rgba(248,113,113,.45)}.badge{border:1px solid var(--line);border-radius:999px;padding:4px 8px;font-size:.75rem}.modal-backdrop{position:fixed;inset:0;background:rgba(2,6,23,.7);display:grid;place-items:center;padding:12px;z-index:2000}.modal{width:min(460px,100%);background:#0f172a;border:1px solid var(--line);border-radius:14px;padding:16px}.small{font-size:.8rem;color:var(--muted)}.project-sidebar h3,.project-sidebar h4{margin:0}.builder-main-card{grid-column:span 12}.project-sidebar.collapsed{min-height:140px;display:flex;flex-direction:column;justify-content:flex-start}.project-sidebar-collapsed-note{margin-top:10px;text-align:center}.project-list-item{display:flex;gap:8px;width:100%}.project-list-item>button:first-child{flex:1 1}.danger{border-color:rgba(248,113,113,.4)!important;color:#fca5a5!important}.mobile-only,.sidebar-backdrop{display:none}@media (min-width:960px){.app.app-auth.sidebar-open{padding-left:calc(320px + 24px)}.app.app-auth.sidebar-closed{padding-left:calc(72px + 24px)}.app.app-auth .project-sidebar{position:fixed;top:0;left:0;height:100vh;width:320px;border-radius:0 16px 16px 0;overflow-y:auto;z-index:1200}.app.app-auth.sidebar-closed .project-sidebar{width:72px;padding-left:10px;padding-right:10px}}@media (max-width:959px){.app.app-auth{padding:20px 12px 52px}.mobile-only{display:inline-flex}.app.app-auth .project-sidebar{position:fixed;top:0;left:0;bottom:0;width:min(86vw,320px);border-radius:0 14px 14px 0;transform:translateX(-105%);transition:transform .22s ease;z-index:1300;overflow-y:auto}.app.app-auth.drawer-open .project-sidebar{transform:translateX(0)}.app.app-auth .project-sidebar.collapsed{min-height:0}.sidebar-backdrop{position:fixed;inset:0;border:0;padding:0;background:rgba(2,6,23,.55);z-index:1250}.sidebar-backdrop.visible{display:block}.admin-preset-form-row{min-width:520px}.admin-preset-item{min-width:680px}.admin-users-form-row{min-width:760px}.admin-user-head,.admin-user-item{min-width:1080px}}