.studio-only{display:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.card[hidden],.project-empty[hidden]{display:none!important}
html[data-theme=studio]{--ink:#243247;--ink2:#566579;--ink3:#657487;--accent:#385e89;--ok:#26714e;--cardline:#e1e6eb;--page:#f2f4f6;--surface:#fff;--muted:#eaf0f5;--sans:"Avenir Next","PingFang SC","Microsoft YaHei",sans-serif;color-scheme:light}
html[data-theme=studio] body{background:var(--page);background-image:none;color:var(--ink);font-family:var(--sans);line-height:1.6;cursor:auto!important}
html[data-theme=studio] .studio-only{display:block}
html[data-theme=studio] :is(#gl,#sky,#fx,#trail,#shader,#cursor,#cursorDot,#osd,#intro,#alertglow,.vig,.vblob,.themeline){display:none!important}
html[data-theme=studio] :is(a,button,input){-webkit-tap-highlight-color:transparent}
html[data-theme=studio] :is(a,button,input):focus-visible{outline:3px solid var(--accent);outline-offset:4px}
html[data-theme=studio] button{font-family:inherit}
html[data-theme=studio] .skip-link{position:fixed;top:-100px;left:20px;padding:12px 20px;background:#fff;z-index:100}
html[data-theme=studio] .skip-link:focus{top:12px}
html[data-theme=studio] .sidebar{display:flex;position:fixed;inset:0 auto 0 0;width:218px;z-index:10;flex-direction:column;padding:34px 18px 22px;background:#fff;border-right:1px solid var(--cardline)}
html[data-theme=studio] .brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-size:21px;font-weight:650;padding:0 12px}
html[data-theme=studio] .brand-mark{display:grid;place-items:center;width:41px;height:41px;border-radius:13px;background:#2c4665;color:#fff;font:600 28px/1 "Avenir Next",sans-serif;letter-spacing:-4px;padding-right:3px}
html[data-theme=studio] .brand-sub{display:block;color:var(--ink3);font-size:11px;font-weight:400;letter-spacing:1px;margin-top:0}
html[data-theme=studio] .nav-label{font-size:11px;color:var(--ink3);margin:51px 14px 13px}
html[data-theme=studio] .side-nav{display:grid;gap:7px}
html[data-theme=studio] .side-nav button{display:flex;align-items:center;gap:12px;min-height:46px;width:100%;border:0;border-radius:8px;padding:0 14px;background:transparent;color:var(--ink2);font-size:13px;text-align:left;cursor:pointer;transition:background .15s}
html[data-theme=studio] .side-nav button:hover{background:#f4f6f8}
html[data-theme=studio] .side-nav button[aria-pressed=true]{background:#eaf0f6;color:#2b5079;font-weight:600}
html[data-theme=studio] .side-nav svg{width:18px;height:18px;flex-shrink:0}
html[data-theme=studio] .nav-count{margin-left:auto;font-size:11px;font-weight:500;opacity:.8}
html[data-theme=studio] .side-note{margin:auto 14px 36px;padding-top:50px;color:var(--ink3)}
html[data-theme=studio] .side-note-icon{font-size:29px;color:#9aaabb}
html[data-theme=studio] .side-note p{font-size:12px;line-height:1.9;margin:9px 0 0}
html[data-theme=studio] .sidebar-bottom{display:flex;align-items:center;gap:10px;border-top:1px solid var(--cardline);padding:22px 10px 0}
html[data-theme=studio] .avatar{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;border-radius:50%;background:#ece6de;color:#76634b;font-weight:600;font-size:13px}
html[data-theme=studio] .sidebar-bottom strong{display:block;font-size:12px;font-weight:600}
html[data-theme=studio] .sidebar-bottom div>span{display:block;font-size:10px;color:var(--ink3)}
html[data-theme=studio] .private-mark{margin-left:auto;color:var(--ink3);font-size:10px}
html[data-theme=studio] .wrap{max-width:1600px;margin:0 0 0 218px;padding:0 clamp(24px,4vw,66px);transform:none!important}
html[data-theme=studio] .workspace-bar{display:flex;align-items:center;justify-content:space-between;height:82px;padding-right:175px;border-bottom:1px solid var(--cardline);font-size:12px;color:var(--ink2)}
html[data-theme=studio] .crumb{padding:0 12px;color:#a5afbb}
html[data-theme=studio] .space-label{color:var(--ink3);font-size:12px}
html[data-theme=studio] .btnrow{top:22px;right:clamp(24px,4vw,66px);gap:7px;z-index:20}
html[data-theme=studio] .devbtn{min-height:37px;padding:7px 12px;border:1px solid #dce2e9;border-radius:7px;background:#fff;color:var(--ink2);font-size:12px;box-shadow:none;backdrop-filter:none}
html[data-theme=studio] .devbtn:hover{background:#eaf0f5;color:var(--ink)}
html[data-theme=studio] .top{display:flex;align-items:center;justify-content:space-between;position:relative;padding:43px 0 28px;animation:none;transform:none!important;opacity:1!important}
html[data-theme=studio] .eyebrow{font-size:13px;color:var(--ink2);letter-spacing:0}
html[data-theme=studio] .eyebrow:before{display:none}
html[data-theme=studio] h1{font-size:clamp(30px,3.2vw,43px);font-weight:650;color:var(--ink);background:none;-webkit-text-fill-color:currentColor;filter:none;letter-spacing:-1.2px;line-height:1.3;margin:8px 0 12px;text-shadow:none;visibility:visible!important;opacity:1!important;animation:none!important}
html[data-theme=studio] h1:after{display:none}
html[data-theme=studio] .workspace-intro{font-size:13px;color:var(--ink2);margin:0}
html[data-theme=studio] .clockrow:not(.tele){position:absolute;right:0;top:66px;display:grid;justify-items:end;gap:4px;margin:0;font-family:var(--sans);letter-spacing:0;font-size:11px;color:var(--ink2)}
html[data-theme=studio] .clockrow .live{font-size:11px;color:var(--ink3)}
html[data-theme=studio] .clockrow .live i{display:none}
html[data-theme=studio] a.cfpanel{margin:0 0 34px;padding:21px 24px 18px;border:1px solid var(--cardline);border-radius:12px;background:#eaf0f4;box-shadow:none;backdrop-filter:none;transform:none!important}
html[data-theme=studio] a.cfpanel:hover{border-color:#9daebf;box-shadow:none}
html[data-theme=studio] .cfp-head{margin-bottom:17px;gap:10px}
html[data-theme=studio] .cfp-title{color:#3c536b;font-family:var(--sans);font-size:12px;letter-spacing:0;font-weight:600}
html[data-theme=studio] .cfp-title .dotp{display:none}
html[data-theme=studio] .cfp-note{font-family:var(--sans);font-size:10px;color:var(--ink2)}
html[data-theme=studio] .cfgrid{grid-template-columns:repeat(8,minmax(0,1fr));gap:12px}
html[data-theme=studio] .cfcell .k{font-family:var(--sans);font-size:10px;color:var(--ink2);letter-spacing:0}
html[data-theme=studio] .stripe{display:none}
html[data-theme=studio] .cfcell .v{font-family:var(--sans);font-size:19px;color:var(--ink);font-weight:600;margin-top:8px}
html[data-theme=studio] .cfcell .p{font-size:9px;color:var(--ink2);letter-spacing:0}
html[data-theme=studio] .cfcell .bar{height:3px;background:#d1dce6;margin-top:9px}
html[data-theme=studio] .cfcell .bar i{background:#6687a9}
html[data-theme=studio] .cfcell .bar i.warn{background:#986210}
html[data-theme=studio] .cfcell .bar i.danger{background:#b83434;box-shadow:none}
html[data-theme=studio] .cfcell.hot .v{color:#9b511e}
html[data-theme=studio] .cfdbrow{margin-top:17px;padding-top:12px;border-top:1px solid #d4dfe7;gap:6px}
html[data-theme=studio] .cfdb-k{color:var(--ink2);font-family:var(--sans);letter-spacing:0}
html[data-theme=studio] .cfdb{font-family:var(--sans);color:var(--ink2);background:rgba(255,255,255,.6);border:0;font-size:10px;padding:2px 8px}
html[data-theme=studio] .cfdb b{color:var(--ink)}
html[data-theme=studio] .cfdb.warn,html[data-theme=studio] .cfdb.warn b{color:#8c5200;background:#fff1d5}
html[data-theme=studio] .cfdb.danger,html[data-theme=studio] .cfdb.danger b{color:#9e2929;background:#ffe3e0}
html[data-theme=studio] .project-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 20px}
html[data-theme=studio] .project-toolbar h2{font-size:18px;font-weight:600;margin:0;color:var(--ink)}
html[data-theme=studio] #project-count{font-size:11px;color:var(--ink3);font-weight:500;border-radius:6px;background:#e3e8ee;padding:3px 7px;margin-left:6px;vertical-align:middle}
html[data-theme=studio] .project-toolbar p{font-size:11px;color:var(--ink3);margin:6px 0 0}
html[data-theme=studio] .project-search{display:flex;align-items:center;gap:9px;width:260px;padding:0 12px;background:#fff;border:1px solid #d9e1e9;border-radius:8px;min-height:42px}
html[data-theme=studio] .project-search:focus-within{outline:2px solid #385e89;outline-offset:2px}
html[data-theme=studio] .project-search svg{width:16px;height:16px;flex-shrink:0;color:var(--ink3)}
html[data-theme=studio] .project-search input{width:100%;min-width:0;border:0;outline:none;background:transparent;font:12px var(--sans);color:var(--ink);padding:11px 0}
html[data-theme=studio] .project-search input::placeholder{color:var(--ink3)}
html[data-theme=studio] .project-search kbd{padding:0 5px;color:var(--ink3);font-size:11px;border:1px solid var(--cardline);border-radius:3px}
html[data-theme=studio] .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;perspective:none}
html[data-theme=studio] a.card{position:relative;min-width:0;padding:24px 23px 19px;background:#fff;border:1px solid var(--cardline);border-radius:11px;box-shadow:0 2px 3px rgba(32,49,66,.015);backdrop-filter:none;transform:none!important;animation:none;will-change:auto;overflow:hidden;transition:border-color .18s,box-shadow .18s}
html[data-theme=studio] a.card:hover{border-color:#9aafc5;background:#fff;box-shadow:0 5px 18px rgba(32,49,66,.06)}
html[data-theme=studio] a.card:after,html[data-theme=studio] a.card:before{display:none}
html[data-theme=studio] .card-inner{display:flex;flex-direction:column;flex:1;transform:none!important}
html[data-theme=studio] .face-back{display:none}
html[data-theme=studio] .project-emblem{display:grid;place-items:center;width:43px;height:43px;border:1px solid rgba(0,0,0,.035);border-radius:12px;font:650 15px "Avenir Next",sans-serif;margin-bottom:18px;letter-spacing:-.5px}
html[data-theme=studio] .project-emblem.amber{background:#fbf0da;color:#906519}
html[data-theme=studio] .project-emblem.blue{background:#e9f0fa;color:#3c6492}
html[data-theme=studio] .project-emblem.green{background:#e4f3eb;color:#38775b;font-size:23px}
html[data-theme=studio] .project-emblem.rose{background:#fce9ec;color:#b34f65;font-size:24px}
html[data-theme=studio] .project-emblem.purple{background:#efebf9;color:#76619e}
html[data-theme=studio] .project-emblem.slate{background:#e8edf1;color:#4f6578}
html[data-theme=studio] .card .tagrow{position:static;margin:0 0 5px}
html[data-theme=studio] .card .tag{font-family:var(--sans);color:var(--ink3);font-size:10px;letter-spacing:0;text-transform:none}
html[data-theme=studio] .tag:before{display:none}
html[data-theme=studio] .arrow{position:absolute;top:25px;right:23px;width:30px;height:30px;border:0;background:none;font-size:19px;color:#8291a1;border-radius:6px}
html[data-theme=studio] a.card:hover .arrow{transform:none;background:#edf2f7;color:#385e89}
html[data-theme=studio] .card h2{font-size:17px;font-weight:600;color:var(--ink);letter-spacing:-.25px;text-shadow:none;margin:0;line-height:1.6}
html[data-theme=studio] .card .desc{font-size:12px;line-height:1.9;color:var(--ink2);margin-top:9px}
html[data-theme=studio] .feats{gap:5px;margin:15px 0 0}
html[data-theme=studio] .feats span{font-size:10px;color:var(--ink2);background:#f4f6f8;border:0;border-radius:4px;padding:3px 7px}
html[data-theme=studio] a.card:hover .feats span{background:#eef2f6;color:var(--ink2)}
html[data-theme=studio] .kpi{background:transparent;border:0;border-top:1px solid #edf0f3;border-radius:0;box-shadow:none;gap:8px;padding-top:16px;margin-top:20px}
html[data-theme=studio] .kpi .g{background:none;text-align:left;padding:0}
html[data-theme=studio] .kpi .k{font-family:var(--sans);font-size:10px;color:var(--ink3);letter-spacing:0}
html[data-theme=studio] .kpi .v{font-family:var(--sans);font-size:18px;font-weight:600;color:var(--ink);background:none;-webkit-text-fill-color:currentColor;letter-spacing:-.4px;margin-top:8px}
html[data-theme=studio] .card .status{margin-top:auto;padding-top:19px;font-family:var(--sans);font-size:10px;color:var(--ink3);letter-spacing:0;line-height:1.8}
html[data-theme=studio] .status b{font-weight:500;color:var(--ink2)}
html[data-theme=studio] .dot.ok{background:#34815c;box-shadow:none}
html[data-theme=studio] .dot.off{background:#9ca6b2}
html[data-theme=studio] .spark{max-width:100%}
html[data-theme=studio] footer{margin-top:35px;border:0;border-top:1px solid var(--cardline);border-image:none;padding:22px 0 28px}
html[data-theme=studio] footer p{font-family:var(--sans);font-size:10px;letter-spacing:0;color:var(--ink3)}
html[data-theme=studio] .project-empty{text-align:center;padding:55px 20px;background:#fff;border:1px dashed #bfcbd7;border-radius:12px}
html[data-theme=studio] .project-empty h2{font-size:18px;font-weight:600}
html[data-theme=studio] .project-empty p{font-size:13px;color:var(--ink2)}
html[data-theme=studio] .project-empty button{min-height:44px;padding:0 18px;border:0;border-radius:7px;background:#385e89;color:#fff;cursor:pointer}
html[data-theme=studio] .devmask{background:rgba(28,43,61,.28);backdrop-filter:blur(5px)}
html[data-theme=studio] .devpanel{background:#fff;color:var(--ink);border:1px solid var(--cardline);box-shadow:0 20px 80px rgba(25,43,62,.15)}
html[data-theme=studio] .devpanel h3,html[data-theme=studio] .devrow .dn b{color:var(--ink)}
html[data-theme=studio] .devpanel .dsub,html[data-theme=studio] .devrow .dn span{color:var(--ink2)}
html[data-theme=studio] .devrow{background:#f4f6f8;border-color:var(--cardline)}
html[data-theme=studio] .devfoot button{background:#edf2f6;color:#385e89;border-color:#d6e1ec;min-height:44px}
html[data-theme=studio] .devfoot .danger,html[data-theme=studio] .devrow button{color:#a92e36;border-color:#e8c6ca}
html[data-theme=studio] .thitem{font:12px var(--sans);min-height:44px;text-align:left;color:var(--ink2);background:#f5f7f9;border:1px solid var(--cardline)}
html[data-theme=studio] .thitem.cur{color:#294c74;background:#eaf0f6;border-color:#9eb3c8}
html[data-theme=studio] .thitem .tn{color:inherit}
/* The login screen shares the workspace palette and identity. */
html[data-theme=studio] .login-page{display:grid;grid-template-columns:1.1fr 1fr;min-height:100svh;overflow:auto;position:relative}
html[data-theme=studio] .login-page:before{display:none}
html[data-theme=studio] .login-story{display:flex;flex-direction:column;align-self:stretch;background:#e8eef4;padding:clamp(35px,6vw,96px);position:relative;overflow:hidden}
html[data-theme=studio] .login-story .brand{padding:0}
html[data-theme=studio] .login-story-content{margin:auto 0;padding:70px 0;z-index:1}
html[data-theme=studio] .login-story h2{font-size:clamp(29px,3.5vw,48px);line-height:1.5;font-weight:550;letter-spacing:-1px;margin:0 0 24px;max-width:440px}
html[data-theme=studio] .login-story p{max-width:340px;font-size:14px;color:var(--ink2);line-height:1.9}
html[data-theme=studio] .login-projects{display:flex;flex-wrap:wrap;gap:9px;margin-top:30px;max-width:360px}
html[data-theme=studio] .login-projects span{font-size:11px;padding:7px 12px;border:1px solid #cfdbe5;border-radius:6px;color:#4a6078}
html[data-theme=studio] .login-story-footer{font-size:11px;color:var(--ink3)}
html[data-theme=studio] .login-page .card{width:360px;max-width:calc(100vw - 48px);padding:0;margin:60px auto;border:0;background:transparent;border-radius:0;box-shadow:none;backdrop-filter:none;animation:none}
html[data-theme=studio] .login-page .star{display:none}
html[data-theme=studio] .login-page h1{text-align:left;font-size:27px;letter-spacing:-.7px;margin-bottom:12px}
html[data-theme=studio] .login-page .sub{text-align:left;color:var(--ink2);font-size:12px;line-height:1.9;margin:0 0 32px}
html[data-theme=studio] .login-page label{color:var(--ink2);font-size:12px;margin:20px 0 8px}
html[data-theme=studio] .login-page input{font:14px var(--sans);background:#fff;border:1px solid #c5cfdb;min-height:48px;padding:12px 14px;border-radius:7px;color:var(--ink);box-shadow:none}
html[data-theme=studio] .login-page button{font:500 14px var(--sans);background:#385e89;color:#fff;min-height:48px;border-radius:7px;margin-top:24px;border:0;cursor:pointer;width:100%}
html[data-theme=studio] .login-page button:hover{background:#2e4f75}
html[data-theme=studio] .login-page button:disabled{opacity:.55;cursor:wait}
html[data-theme=studio] .login-page .link{font:12px var(--sans);color:var(--accent);background:transparent;border:0;width:auto;min-height:44px;margin:8px auto 0;display:block}
html[data-theme=studio] .login-page .link:hover{background:transparent;color:#243f61;text-decoration:underline}
html[data-theme=studio] .login-page .hint{font:12px var(--sans);color:var(--ink2);line-height:1.7;min-height:20px;margin-top:14px;text-align:left}
html[data-theme=studio] .login-page .hint.err{color:#a42633}
html[data-theme=studio] .login-page .hint.ok{color:#26714e}
html[data-theme=studio] .login-page .hide{display:none!important}
html[data-theme=studio] .thitem.cur:after{color:#385e89}
@media(min-width:1700px){html[data-theme=studio] .wrap{margin-right:auto}}
@media(max-width:1250px){html[data-theme=studio] .sidebar{width:185px;padding-left:12px;padding-right:12px}html[data-theme=studio] .wrap{margin-left:185px;padding:0 30px}html[data-theme=studio] .grid{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-theme=studio] .cfgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:17px 22px}html[data-theme=studio] .space-label{display:none}}
@media(max-width:800px){html[data-theme=studio] .sidebar{position:static;width:auto;padding:20px 24px 0;border:0;border-bottom:1px solid var(--cardline)}html[data-theme=studio] .brand{padding:0;font-size:18px}html[data-theme=studio] .brand-mark{width:35px;height:35px;font-size:25px}html[data-theme=studio] .brand-sub{font-size:10px}html[data-theme=studio] :is(.nav-label,.side-note,.sidebar-bottom){display:none}html[data-theme=studio] .side-nav{display:flex;gap:4px;margin-top:20px;overflow:auto;padding-bottom:10px}html[data-theme=studio] .side-nav button{min-width:max-content;width:auto;padding:0 10px;font-size:12px;gap:7px;min-height:40px}html[data-theme=studio] .side-nav svg{width:15px;height:15px}html[data-theme=studio] .nav-count{font-size:10px}html[data-theme=studio] .wrap{margin:0;padding:0 24px}html[data-theme=studio] .workspace-bar{display:none}html[data-theme=studio] .btnrow{position:absolute;top:20px;right:24px}html[data-theme=studio] .top{padding-top:30px}html[data-theme=studio] .clockrow:not(.tele){top:52px}html[data-theme=studio] h1{font-size:31px}html[data-theme=studio] .workspace-intro{font-size:12px}html[data-theme=studio] .login-page{grid-template-columns:1fr;align-content:start}html[data-theme=studio] .login-story{padding:28px 30px 24px}html[data-theme=studio] .login-story-content{padding:32px 0 8px}html[data-theme=studio] .login-story h2{font-size:27px;margin-bottom:12px}html[data-theme=studio] .login-story p{font-size:12px;margin:0}html[data-theme=studio] :is(.login-projects,.login-story-footer){display:none}html[data-theme=studio] .login-page .card{margin:36px auto 50px}}
@media(max-width:560px){html[data-theme=studio] .sidebar{padding:18px 16px 0}html[data-theme=studio] .side-nav button{font-size:11px;padding:0 9px;gap:6px}html[data-theme=studio] .side-nav svg{display:none}html[data-theme=studio] .wrap{padding:0 18px}html[data-theme=studio] .btnrow{right:16px;top:19px}html[data-theme=studio] .devbtn{padding:6px 9px;font-size:11px;min-height:34px}html[data-theme=studio] .devbtn svg{display:none}html[data-theme=studio] .top{padding:28px 0 25px}html[data-theme=studio] h1{font-size:29px}html[data-theme=studio] .clockrow:not(.tele){position:static;display:block;margin:17px 0 0;font-size:10px}html[data-theme=studio] .clockrow .live{display:none}html[data-theme=studio] a.cfpanel{padding:18px 16px;margin-bottom:28px}html[data-theme=studio] .cfgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px}html[data-theme=studio] .cfcell .v{font-size:19px}html[data-theme=studio] .cfp-note{font-size:9px}html[data-theme=studio] .project-toolbar{align-items:stretch;flex-direction:column;gap:15px}html[data-theme=studio] .project-toolbar p{font-size:11px}html[data-theme=studio] .project-search{width:100%}html[data-theme=studio] .grid{grid-template-columns:1fr;gap:14px}html[data-theme=studio] a.card{padding:23px}html[data-theme=studio] .card .desc{font-size:13px}html[data-theme=studio] .card .tag{font-size:11px}html[data-theme=studio] .feats span{font-size:11px}html[data-theme=studio] .card .status{font-size:11px}html[data-theme=studio] .devfoot{flex-wrap:wrap}html[data-theme=studio] .devfoot button{flex:1 1 120px}}
@media(prefers-reduced-motion:reduce){html[data-theme=studio] *,html[data-theme=studio] *:before,html[data-theme=studio] *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(max-width:560px){html[data-theme=studio] .wrap{display:flex;flex-direction:column}html[data-theme=studio] .top{order:0}html[data-theme=studio] .project-toolbar{order:1}html[data-theme=studio] .grid,html[data-theme=studio] .project-empty{order:2}html[data-theme=studio] a.cfpanel{order:3;margin:28px 0 0}html[data-theme=studio] footer{order:4}}
