:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Noto Sans CJK SC","Microsoft YaHei",sans-serif;color:#182335;background:#f5f7fa;font-synthesis:none;font-size:15px;line-height:1.6;--blue:#2563eb;--muted:#738095;--line:#e6ebf2}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #8dbaff;outline-offset:3px}.top{height:82px;padding:0 max(5%,calc((100vw - 1320px)/2));display:flex;align-items:center;gap:45px;background:#ffffffed;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;backdrop-filter:blur(20px)}.brand{font-size:23px;letter-spacing:1px;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:9px}.brandmark{font-size:34px;color:#3168d8;line-height:1}.brand small{font-size:12px;font-weight:500;color:#7a8799;letter-spacing:3px;padding-left:5px}.top nav{display:flex;align-items:center;gap:30px;flex:1}.top nav a{font-size:14px;color:#778197;height:82px;display:flex;align-items:center;position:relative}.top nav a.active{color:#245fd5;font-weight:650}.top nav a.active:after{content:"";position:absolute;height:3px;bottom:0;left:0;right:0;background:#3c75e6;border-radius:5px}.top-actions{display:flex;align-items:center;gap:15px}.button{border:0;border-radius:10px;padding:12px 22px;background:#2563eb;color:white;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}.button.small{padding:8px 19px;font-size:13px}.button.secondary{background:#ecf2ff;color:#3164bb}.button.outline{background:white;color:#283a55;border:1px solid #dce4f0}.button.danger{background:#fff0ef;color:#ad3e37}.subtle{border:0;background:none;color:#738095;padding:7px;font-size:12px}main{max-width:1240px;margin:0 auto;padding:42px 30px 80px;min-height:calc(100vh - 190px)}.hero{display:grid;grid-template-columns:1.2fr 1fr;min-height:300px;background:linear-gradient(115deg,#edf3ff,#f7faff);border:1px solid #e7edf6;border-radius:22px;overflow:hidden;margin-bottom:36px}.hero-copy{padding:44px 42px}.eyebrow{text-transform:uppercase;letter-spacing:3px;font-size:10px;color:#6080b3;font-weight:700;display:block;margin-bottom:15px}.hero h1{font-size:39px;letter-spacing:-1.5px;line-height:1.35;margin:0 0 15px;font-weight:700}.hero h1 em{font-style:normal;color:#346cda}.hero p{font-size:14px;color:#71829b;margin:0 0 25px}.hero-art{min-height:300px;background:url('/visual.svg') center/cover}.hero-action{display:flex;align-items:center;gap:16px}.hero-action small{color:#8794a8;font-size:11px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:32px 0 20px}.section-head h2{margin:0;font-size:23px;font-weight:650;letter-spacing:-.5px}.section-head p{font-size:12px;color:var(--muted);margin:3px 0 0}.toolbar{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.chip{background:transparent;border:1px solid transparent;padding:7px 15px;border-radius:20px;font-size:12px;color:#8190a3}.chip.active{background:#fff;border-color:#e5eaf2;color:#3066c2;box-shadow:0 2px 6px #152c4e04}.search{display:flex;align-items:center;border:1px solid #e1e7ef;background:#fff;border-radius:11px;overflow:hidden}.search input{border:0!important;padding:10px 13px!important;background:none!important;width:200px;font-size:12px}.search button{border:0;background:none;color:#426aab;padding:8px 13px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.work-card,.role-card{background:white;border-radius:16px;overflow:hidden;border:1px solid #e8edf4;transition:transform .2s,box-shadow .2s}.work-card:hover,.role-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #1a345d0a}.poster{height:205px;position:relative;overflow:hidden;display:flex;align-items:flex-end;padding:22px;background:linear-gradient(135deg,#bbcfd6,#4b6e86);color:white}.poster:before{content:"";width:160px;height:210px;position:absolute;right:20px;top:32px;background:linear-gradient(145deg,#dcebf175,#384e6b60);border-radius:85px 85px 0 0;transform:rotate(-12deg)}.poster:after{content:"";width:230px;height:230px;border:1px solid #ffffff38;position:absolute;right:-60px;top:-90px;border-radius:50%;box-shadow:0 0 0 30px #ffffff08,0 0 0 70px #ffffff05}.poster.p1{background:linear-gradient(145deg,#96acc6,#334a70)}.poster.p2{background:linear-gradient(145deg,#b6baac,#6c8279)}.poster.p3{background:linear-gradient(145deg,#b7abc1,#685a7d)}.poster.p4{background:linear-gradient(145deg,#c9bda4,#8b7357)}.poster.p5{background:linear-gradient(145deg,#9ebbbd,#3d7379)}.poster-title{position:relative;z-index:1;font-size:24px;font-weight:550;letter-spacing:3px;line-height:1.5}.poster-tag{position:absolute;left:15px;top:14px;background:#ffffff28;backdrop-filter:blur(8px);border:1px solid #ffffff33;border-radius:6px;padding:3px 8px;font-size:10px}.poster-count{position:absolute;right:13px;bottom:12px;background:#20303a66;color:#fff;border-radius:5px;padding:2px 7px;font-size:10px;z-index:2}.card-content{padding:18px 19px}.card-content h3{margin:0 0 8px;font-size:17px;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.creator-line{display:flex;align-items:center;gap:8px;font-size:12px;color:#738095}.avatar{display:inline-flex;align-items:center;justify-content:center;background:#eaf0fa;color:#6183ac;width:25px;height:25px;border-radius:50%;font-size:10px}.description{font-size:12px;color:#8691a3;line-height:1.8;margin:12px 0 15px;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f0f3f7;padding-top:13px}.tags{display:flex;gap:6px;flex-wrap:wrap}.tag{background:#f3f6fa;color:#8190a4;border-radius:5px;padding:3px 7px;font-size:10px}.text-button{border:0;background:transparent;color:#3b6fcc;font-size:12px;font-weight:600;padding:4px 0}.notice-strip{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:#edf3fb;border-radius:13px;margin-top:35px;color:#617995;font-size:13px}.notice-strip strong{display:block;color:#344e71;font-size:14px;font-weight:550}.empty{padding:65px 25px;text-align:center;border:1px dashed #d7e1ee;border-radius:15px;color:#8290a4;background:#fafcff}.empty h3{color:#415773;font-size:20px}.role-portrait{height:220px;background:linear-gradient(150deg,#eaf1f8,#cddbea);display:flex;align-items:center;justify-content:center;position:relative}.silhouette{width:100px;height:125px;border-radius:50px 50px 15px 15px;background:linear-gradient(160deg,#b6c9e0,#819ab7);position:relative;margin-top:55px}.silhouette:before{content:"";position:absolute;width:62px;height:72px;border-radius:50%;background:#c5d3e4;top:-53px;left:19px}.role-portrait img{width:100%;height:100%;object-fit:cover}.pill{font-size:10px;padding:4px 9px;background:#ebf5ef;color:#4f8c6b;border-radius:20px;display:inline-block}.small-note{font-size:12px;color:#8190a5;line-height:1.8}.workspace{display:grid;grid-template-columns:190px 1fr;gap:32px}.side{display:flex;flex-direction:column;gap:6px;align-self:start;position:sticky;top:110px}.side button{border:0;text-align:left;border-radius:9px;padding:12px 15px;font-size:13px;color:#7d8b9f;background:none}.side button.active{background:white;color:#2862c6;font-weight:650;box-shadow:0 2px 8px #1e3f7010}.panel{background:white;border:1px solid var(--line);padding:25px;border-radius:16px;margin-bottom:17px}.panel h3{margin:0 0 12px;font-size:18px}.panel p{margin:8px 0;font-size:13px;color:#64738b}.row{display:flex;align-items:center;justify-content:space-between;gap:16px}.record{padding:17px 0;border-bottom:1px solid #edf0f5}.record:last-child{border-bottom:0}.record strong{font-size:14px}.record code{font-size:10px;color:#7e8ca0;word-break:break-all}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.actions button{font-size:12px;padding:8px 13px}.badge{display:inline-block;padding:3px 9px;border-radius:5px;background:#eef3fb;color:#5f7eaf;font-size:10px;white-space:nowrap}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-bottom:22px}.stat{padding:20px;background:#fff;border:1px solid var(--line);border-radius:13px}.stat b{display:block;font-size:26px;line-height:1.3}.stat span{font-size:11px;color:#8190a4}dialog{border:1px solid #e2e9f1;max-width:660px;width:calc(100% - 28px);border-radius:18px;padding:32px;max-height:90vh;box-shadow:0 25px 100px #182d4b35;color:#24344d}dialog::backdrop{background:#1a2e4c75;backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:14px;top:9px;border:0;background:none;font-size:26px;color:#8b97a9}dialog h2{font-size:23px;margin:0 0 8px}dialog h3{font-size:16px}.form{display:grid;gap:14px;margin-top:22px}.form label{font-size:12px;color:#546680;display:grid;gap:6px}.form input,.form textarea,.form select{border:1px solid #dce4ee;padding:11px 12px;border-radius:8px;background:#fbfcfe;width:100%;font-size:13px;color:#263e5c}.form textarea{min-height:95px;resize:vertical}.form label.check{display:flex;align-items:flex-start;gap:8px}.form .check input{width:15px;margin-top:4px}.form .help{font-size:11px;color:#8795a7;margin:0}.form .error{font-size:12px;color:#b64440}.form progress{width:100%;height:7px}.form button[type=submit]{margin-top:5px}.split{display:grid;grid-template-columns:1fr 1fr;gap:14px}.dialog-actions{display:flex;gap:16px;margin-top:18px}.embed{border:0;min-height:480px;width:100%;border-radius:12px;margin-top:20px;background:#f3f6fa}footer{max-width:1240px;padding:25px 30px 35px;margin:auto;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#93a0b1;font-size:11px}.footer-brand{font-size:16px;color:#7c8da2}#demo-banner{text-align:center;background:#fff3d8;color:#896d35;padding:8px;font-size:11px}#toast{position:fixed;bottom:35px;left:50%;transform:translateX(-50%);z-index:100;background:#203750;color:white;box-shadow:0 8px 35px #152c4b30;padding:13px 23px;border-radius:10px;max-width:90vw;font-size:13px}.loading{padding:100px;text-align:center;color:#8292aa}.page-title{margin-bottom:28px}.page-title h1{font-size:30px;margin:0 0 7px}.page-title p{color:#8190a4;font-size:13px}.role-intro{padding:25px 0 35px}.role-intro h1{font-size:35px;margin:0 0 10px}.role-intro .row{align-items:flex-end}.list-text{white-space:pre-wrap;word-break:break-word;font-size:12px;color:#6b7f99}button[disabled]{opacity:.5;cursor:wait}.screenreader{position:absolute;width:1px;height:1px;overflow:hidden}
@media(max-width:900px){.top{gap:25px;padding:0 25px}.hero{grid-template-columns:1.2fr 1fr}.hero h1{font-size:32px}.hero-copy{padding:33px 28px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.workspace{grid-template-columns:150px 1fr;gap:20px}.top nav{gap:22px}.top-actions{gap:3px}.brand small{display:none}}
@media(max-width:600px){.top{height:68px;padding:0 17px;gap:20px}.brand{font-size:20px;gap:5px}.brandmark{font-size:27px}.top nav{gap:17px}.top nav a{height:68px;font-size:12px}.top-actions .subtle{font-size:10px;padding:3px}.top-actions .button{font-size:11px;padding:6px 10px}.top-actions{gap:5px}main{padding:22px 17px 50px}.hero{display:block;position:relative;min-height:275px;border-radius:16px}.hero-copy{padding:29px 24px;position:relative;z-index:1}.hero h1{font-size:31px;letter-spacing:-1px}.hero-art{position:absolute;inset:0;opacity:.22;background-position:120px center}.hero p{max-width:260px}.hero-action small{display:none}.section-head{margin:25px 0 15px;align-items:flex-start;flex-direction:column;gap:12px}.section-head h2{font-size:21px}.toolbar{width:100%;justify-content:space-between}.search{width:100%}.search input{width:100%;flex:1}.grid{gap:13px;grid-template-columns:1fr}.poster{height:225px}.card-content{padding:17px 18px}.notice-strip{align-items:flex-start;gap:10px;padding:18px;font-size:12px}.notice-strip .button{padding:9px 13px;font-size:11px;white-space:nowrap}.workspace{display:block}.side{position:static;display:flex;flex-direction:row;overflow:auto;margin-bottom:20px;gap:4px}.side button{white-space:nowrap;padding:9px 12px;font-size:12px}.stats{gap:8px}.stat{padding:14px}.stat b{font-size:22px}.panel{padding:18px}.row{align-items:flex-start;gap:10px}.split{grid-template-columns:1fr}dialog{padding:25px 21px}footer{padding:20px 17px;gap:15px;flex-wrap:wrap}footer>span{display:none}.role-intro h1{font-size:28px}.role-portrait{height:260px}}

.extension-panel{max-width:1100px;margin:0 auto}.extension-panel .grid{margin-top:24px}.extension-panel code{overflow-wrap:anywhere}.extension-panel .list-text{white-space:pre-wrap;overflow-wrap:anywhere}nav{overflow-x:auto}nav a{white-space:nowrap}@media(max-width:800px){.top{flex-wrap:wrap}.top nav{order:3;width:100%;padding-bottom:8px}.extension-panel{padding:16px}.extension-panel .actions{flex-wrap:wrap}}

/* FILM V2 persona and settlement pages */
.avatar-hero{display:grid;grid-template-columns:minmax(180px,320px) 1fr;gap:32px;align-items:center;margin:40px 0}.avatar-hero>img{width:100%;max-height:420px;object-fit:cover;border-radius:24px}.panel pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.85rem;background:#f5f7fa;padding:16px;border-radius:12px}.role-portrait img{width:100%;height:100%;object-fit:cover}@media(max-width:640px){.avatar-hero{grid-template-columns:1fr}.avatar-hero>img{max-height:340px}}
