:root{font-family:Inter,ui-rounded,system-ui,sans-serif;color:#241d3d;background:#f3f0ff;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button{font:inherit;border:0;cursor:pointer}input,textarea,select{width:100%;padding:14px 15px;border:1px solid #ded8ef;border-radius:13px;font:inherit;color:#241d3d;background:#fff;outline:none}input:focus,textarea:focus,select:focus{border-color:#7251ff;box-shadow:0 0 0 3px #7251ff18}form{display:grid;gap:12px}.shell{min-height:100dvh;max-width:560px;margin:auto;background:#fff;padding-bottom:86px;position:relative;overflow:hidden}header{height:70px;display:flex;align-items:center;gap:10px;padding:0 22px;font-size:19px}.logo{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;background:linear-gradient(135deg,#7251ff,#ff76b8);font-weight:900}.avatar{margin-left:auto;width:36px;height:36px;border-radius:50%;color:#6c4cff;background:#eee9ff;font-size:12px;font-weight:800}.hero{text-align:center;padding:44px 25px 54px;background:radial-gradient(circle at 10% 10%,#ffe9f4 0,transparent 35%),radial-gradient(circle at 95% 80%,#e5ddff 0,transparent 40%),#f8f6ff}.eyebrow{color:#7251ff;background:#eae4ff;padding:7px 12px;border-radius:30px;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}h1{margin:20px 0 13px;font-size:clamp(32px,8vw,46px);line-height:1.05;letter-spacing:-.04em}.hero p{color:#716b83;line-height:1.55;max-width:430px;margin:0 auto 28px}.primary,.record{width:100%;max-width:360px;border-radius:16px;padding:16px;font-weight:800}.primary{color:#fff;background:linear-gradient(135deg,#7251ff,#8e63ff);box-shadow:0 12px 25px #7451ff42;font-size:17px}.primary span{font-size:22px;vertical-align:-1px}.record{color:#65588b;background:transparent;margin-top:8px}.record span{color:#ff4f72;margin-right:6px}.recent{padding:26px 22px}.recent>div{display:flex;align-items:center;justify-content:space-between}h2{font-size:20px}.recent button{color:#7251ff;background:transparent;font-size:13px;font-weight:700}article{display:flex;gap:14px;align-items:center;padding:12px;border:1px solid #eeeaf8;border-radius:18px}article+article{margin-top:10px}.preview{width:82px;height:62px;border-radius:13px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,#b9a7ff,#ffadcf)}article p{margin:6px 0 0;color:#8b8597;font-size:13px}nav{position:fixed;z-index:2;bottom:0;left:50%;transform:translate(-50%);width:min(560px,100%);height:76px;display:flex;background:#fff;border-top:1px solid #eeeaf8;padding:8px 5px}nav button{flex:1;display:grid;place-content:center;gap:3px;color:#9a94a8;background:#fff;font-size:10px}nav button span{font-size:21px}nav button.active{color:#7251ff;font-weight:800}@media(min-width:700px){body{padding:24px}.shell{min-height:calc(100dvh - 48px);border-radius:28px;box-shadow:0 25px 70px #33267525}nav{bottom:24px;border-radius:0 0 28px 28px}}.splash{min-height:100dvh;display:grid;place-items:center}.splash .logo{width:64px;height:64px;font-size:32px}.auth{min-height:100dvh;display:grid;place-content:center;padding:24px;background:radial-gradient(circle at 15% 15%,#ffe1ef,transparent 30%),radial-gradient(circle at 85% 80%,#ddd3ff,transparent 35%),#f8f6ff}.brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:20px;font-size:21px}.auth-card{width:min(420px,calc(100vw - 32px));padding:32px;border-radius:26px;background:#fff;box-shadow:0 24px 70px #33267520;text-align:center}.auth-card h1{font-size:31px;margin-bottom:8px}.auth-card>p{color:#777083;margin:0 0 24px}.auth-card .primary{margin-top:4px}.link{margin-top:15px;background:transparent;color:#7251ff;font-weight:700}.error{padding:10px 12px;color:#a52643;background:#ffeaf0;border-radius:10px;font-size:13px}.overlay{position:fixed;z-index:10;inset:0;display:grid;align-items:end;background:#241d3d88;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{position:relative;width:min(560px,100%);margin:auto;padding:30px 24px calc(24px + env(safe-area-inset-bottom));border-radius:26px 26px 0 0;background:#fff}.modal h2{font-size:27px;margin:18px 0}.modal textarea{min-height:170px;resize:vertical}.modal label{display:grid;gap:7px;text-align:left;color:#6b647a;font-size:13px;font-weight:700}.close{position:absolute;right:20px;top:18px;width:36px;height:36px;border-radius:50%;background:#f2eff8;color:#655e72;font-size:25px}button:disabled{opacity:.6;cursor:wait}.voice{padding:13px;border-radius:13px;color:#6c4cff;background:#eee9ff;font-weight:800}.voice.is-recording{color:#fff;background:#ff4f72;animation:pulse 1.2s infinite}@keyframes pulse{50%{opacity:.72}}@media(min-width:700px){.overlay{align-items:center}.modal{border-radius:26px}}.settings{padding:32px 22px 100px}.settings>h1{margin:18px 0 8px}.settings>p{color:#777083;line-height:1.5}.invite-card{margin:28px 0;padding:20px;border-radius:20px;background:#f8f6ff}.invite-card h2,.members h2{margin-top:0}.invite-result{display:grid;gap:9px;margin-top:14px}.invite-result button{padding:11px;border-radius:11px;color:#fff;background:#7251ff;font-weight:800}.invite-result small{color:#827b90}.member-avatar{display:grid;place-items:center;flex:0 0 44px;height:44px;border-radius:14px;color:#fff;background:linear-gradient(135deg,#7251ff,#ff76b8);font-weight:800}.role{margin-left:auto;padding:6px 9px;border-radius:20px;color:#6c4cff;background:#eee9ff;font-size:11px;font-weight:800}.photo-upload{height:190px;display:grid;place-items:center;overflow:hidden;border:2px dashed #cfc5f2;border-radius:16px;color:#7251ff;background:#fff;font-weight:800;cursor:pointer}.photo-upload input{display:none}.photo-upload img{width:100%;height:100%;object-fit:cover}.character-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.character-card{display:block;padding:10px}.character-image{position:relative;display:block;width:100%;aspect-ratio:1;margin-bottom:10px;padding:0;overflow:hidden;border-radius:13px;background:#f5f2ff}.character-image img{display:block;width:100%;height:100%;object-fit:cover}.character-image span{position:absolute;right:7px;bottom:7px;padding:5px 8px;border-radius:20px;color:#fff;background:#241d3dcc;font-size:9px;font-weight:800;opacity:0;transition:opacity .15s}.character-image:hover span,.character-image:focus-visible span{opacity:1}.character-card .member-avatar{width:100%;height:auto;aspect-ratio:1;margin-bottom:10px;font-size:28px}.character-card p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.generate-character{width:100%;margin-top:10px;padding:10px 8px;border-radius:11px;color:#fff;background:#7251ff;font-size:12px;font-weight:800}.generation-error{display:block;margin-top:7px;color:#a52643;font-size:10px}.angle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.angle-upload{height:130px}.angle-upload span{display:grid;place-items:center;gap:5px;font-size:24px}.angle-upload small{font-size:11px}.character-actions{display:flex;gap:7px;margin-top:9px}.character-actions button{flex:1;padding:8px 4px;border-radius:9px;color:#6547d9;background:#eee9ff;font-size:10px;font-weight:800}.character-actions .danger-link{color:#a52643;background:#ffeaf0}.edit-character{max-height:92dvh;overflow-y:auto}.edit-character>p{color:#777083;font-size:13px;line-height:1.45}.generation-progress{margin:6px 0 9px}.generation-progress p{margin:0 0 6px;color:#6547d9;font-size:11px;font-weight:800;white-space:normal}.generation-progress>div{height:7px;overflow:hidden;border-radius:20px;background:#eee9ff}.generation-progress>div>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#704cff,#a65cff);transition:width .4s ease}.generation-progress small{display:block;margin-top:5px;color:#8b8497;font-size:9px;line-height:1.3}.episode-list{display:grid;gap:10px}.episode-list>button{display:flex;justify-content:space-between;gap:12px;padding:16px;border:1px solid #e8e1f8;border-radius:15px;text-align:left;background:#fff}.episode-list>button span{color:#796d89;font-size:11px}.script-editor{width:100%;min-width:0;padding-bottom:110px;overflow-x:hidden}.back-link{margin-bottom:12px;color:#6e4cff;background:transparent;font-weight:800}.script-title{width:100%;margin:8px 0 14px;padding:12px 0;border:0;border-bottom:2px solid #e2d9ff;border-radius:0;color:#181038;background:transparent;font-size:24px;font-weight:900}.script-wait{padding:18px;border-radius:15px;color:#6547d9;background:#f0ebff;font-weight:800}.scene-card{display:block;width:100%;min-width:0;margin-bottom:12px;padding:14px;overflow:hidden;border:1px solid #e8e1f8;border-radius:16px;background:#fff}.scene-card header{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 10px;margin-bottom:10px}.scene-card header span{color:#81778e;font-size:11px}.scene-card label{display:grid;min-width:0;gap:5px;color:#6f6779;font-size:11px;font-weight:800}.scene-card textarea{min-height:72px;resize:vertical}.dialogue-editor{display:grid;min-width:0;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:10px;padding:10px;border-radius:12px;background:#f8f5ff}.dialogue-editor label{width:100%;min-width:0}.dialogue-editor small{color:#776d86;font-size:10px}.dialogue-editor input,.dialogue-editor textarea{width:100%;min-width:0;overflow-wrap:anywhere}.dialogue-editor label:last-child input{color:#7458d8;font-size:11px}.voice-studio{margin-top:28px;padding:20px;border:1px solid #ded5fa;border-radius:20px;background:linear-gradient(145deg,#fff,#faf8ff)}.stage-heading{display:flex;align-items:flex-start;gap:12px}.stage-heading h2{margin:0 0 5px;font-size:23px}.stage-heading p{margin:0;color:#777083;line-height:1.4}.stage-number{display:grid;flex:0 0 36px;height:36px;place-items:center;border-radius:12px;color:#fff;background:#7251ff;font-weight:900}.voice-cast{display:grid;gap:10px;margin:20px 0}.voice-cast label{display:grid;grid-template-columns:minmax(90px,1fr) minmax(140px,1.2fr);align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:#f3efff}.voice-cast select{margin:0;background:#fff}.voice-progress{display:flex;align-items:center;gap:12px;margin:15px 0;padding:14px;border-radius:14px;color:#5435cb;background:#eee9ff}.voice-progress p{margin:4px 0 0;font-size:12px}.spinner{width:26px;height:26px;flex:0 0 26px;border:3px solid #cfc3ff;border-top-color:#7251ff;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.voice-lines{margin:20px 0}.voice-lines h3{margin-bottom:10px}.voice-lines article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid #eee9f8}.voice-lines article div{min-width:0}.voice-lines p{margin:4px 0 0;color:#716979;font-size:12px;line-height:1.4}.voice-lines button{flex:0 0 auto;padding:9px 11px;border-radius:10px;color:#6547d9;background:#eee9ff;font-size:11px;font-weight:800}.next-stage{display:flex;flex-direction:column;gap:4px;margin-top:12px;padding:14px;border-radius:14px;color:#287753;background:#e9fbf2}.next-stage span{font-size:12px;line-height:1.4}.character-grid .character-card{margin-top:0;align-self:stretch}.image-viewer{position:fixed;z-index:30;inset:0;display:grid;place-items:center;padding:18px;background:#171321ef;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.image-viewer-content{display:grid;justify-items:center;gap:9px;width:min(900px,100%);max-height:calc(100dvh - 36px);color:#fff}.image-viewer-content img{display:block;max-width:100%;max-height:calc(100dvh - 100px);border-radius:18px;object-fit:contain;background-color:#fff;background-image:linear-gradient(45deg,#eee 25%,transparent 25%),linear-gradient(-45deg,#eee 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eee 75%),linear-gradient(-45deg,transparent 75%,#eee 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0;box-shadow:0 22px 70px #0008}.image-viewer-content strong{font-size:18px}.image-viewer-content small{color:#c9c3d3}.image-viewer-close{position:fixed;z-index:31;top:max(15px,env(safe-area-inset-top));right:15px;width:44px;height:44px;border-radius:50%;color:#fff;background:#ffffff26;font-size:30px;line-height:1}@media(hover:none){.character-image span{opacity:1}}.location-image-fields{display:grid;gap:10px}.location-upload{width:100%;height:auto;aspect-ratio:16/9}.location-upload span{display:grid;place-items:center;gap:6px;font-size:25px}.location-upload small{font-size:12px}.foreground-upload{background-image:linear-gradient(45deg,#f2f2f2 25%,transparent 25%),linear-gradient(-45deg,#f2f2f2 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#f2f2f2 75%),linear-gradient(-45deg,transparent 75%,#f2f2f2 75%);background-size:24px 24px;background-position:0 0,0 12px,12px -12px,-12px 0}.location-grid{display:grid;gap:12px}.location-card{display:block;padding:10px}.location-preview{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;overflow:hidden;border-radius:14px;color:#827b90;background:#f3f0fa}.location-preview>img{display:block;width:100%;height:100%;object-fit:cover}.location-preview .foreground-layer{position:absolute;inset:0;object-fit:cover;pointer-events:none}.location-card>div{padding:11px 3px 2px}.location-card p{margin-top:5px}.location-viewer-content img{background:#fff}.default-location{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;padding:11px 12px;border-radius:12px;color:#5f5871!important;background:#eee9ff;cursor:pointer}.default-location input{width:18px;height:18px;accent-color:#7251ff}.location-reference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.location-reference{width:100%;height:auto;aspect-ratio:4/3}.location-reference span{display:grid;place-items:center;gap:4px;padding:5px;text-align:center;font-size:23px}.location-reference small{font-size:10px}@media(max-width:420px){nav button{font-size:8px}nav button span{font-size:18px}}@media(max-width:899px){.script-editor{padding:26px 16px calc(108px + env(safe-area-inset-bottom))}.script-editor .back-link{font-size:14px}.script-editor .eyebrow{display:inline-block;margin-bottom:8px}.script-title{margin-top:2px;font-size:27px;line-height:1.15}.scene-card{padding:14px 12px}.scene-card header b{font-size:17px}.scene-card header span{width:100%;padding:6px 9px;border-radius:9px;background:#f5f2fb}.scene-card>label>textarea{min-height:96px}.dialogue-editor{padding:10px}.dialogue-editor textarea{min-height:86px}.voice-studio{padding:16px 12px}.voice-cast label{grid-template-columns:1fr}.voice-lines article{align-items:flex-start;flex-direction:column}.voice-lines button{width:100%}}@media(min-width:900px){body{padding:0;background:#f6f4fc}.shell{max-width:none;min-height:100dvh;margin:0;padding:0 0 0 220px;overflow:visible;border-radius:0;box-shadow:none;background:#f6f4fc}.shell>header{position:fixed;z-index:5;top:0;left:0;width:220px;height:86px;padding:0 24px;color:#20183b;background:#fff;border-right:1px solid #e9e4f3}.shell>header .avatar{position:fixed;left:24px;bottom:24px;margin:0}nav{top:86px;bottom:0;left:0;transform:none;width:220px;height:auto;flex-direction:column;align-items:stretch;gap:7px;padding:16px 14px 80px;border:0;border-right:1px solid #e9e4f3;border-radius:0}nav button{flex:0 0 54px;display:flex;align-items:center;justify-content:flex-start;gap:13px;padding:0 15px;border-radius:13px;font-size:13px}nav button span{width:25px;font-size:20px;text-align:center}nav button.active{background:#eee9ff}.settings{width:min(1180px,calc(100vw - 270px));min-height:100dvh;margin:0 auto;padding:48px 28px 70px}.settings>h1{font-size:40px}.hero,.recent{width:min(1180px,calc(100vw - 270px));margin:0 auto}.hero{margin-top:28px;border-radius:26px}.invite-card{max-width:760px}.character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.location-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.script-editor{max-width:1180px}.script-title{font-size:38px}.scene-card{padding:22px}.scene-card header{align-items:center;padding-bottom:12px;border-bottom:1px solid #eeeaf8}.scene-card header b{font-size:19px}.scene-card label{font-size:13px}.scene-card textarea{min-height:90px;resize:vertical}.dialogue-editor{grid-template-columns:180px minmax(320px,1fr) 150px;align-items:start;gap:10px;padding:12px}.dialogue-editor textarea{min-height:54px}.voice-cast{grid-template-columns:repeat(2,minmax(0,1fr))}.modal{width:min(760px,calc(100vw - 60px))}}
