:root{color-scheme:dark;--bg:#050505;--paper:#f5f5f3;--dim:#92928f;--line:#ffffff24;--red:#e8153d;--mono:'Cascadia Code','SFMono-Regular',Consolas,monospace;--sans:Inter,'Helvetica Neue','PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{background:var(--bg)}body{margin:0;color:var(--paper);font-family:var(--sans);-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:wait;opacity:.4}button:focus-visible,a:focus-visible{outline:2px solid #eee;outline-offset:5px}a{color:inherit;text-decoration:none}button[hidden],[hidden]{display:none!important}.app{min-height:100svh;display:flex;flex-direction:column;background:#050505;overflow:clip}.topbar{height:60px;flex:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0 4.1vw;border-bottom:1px solid var(--line);position:relative;z-index:5;background:#050505}.brand{display:flex;gap:21px;align-items:center}.brand img{width:58px;height:auto;display:block}.brand-rule{height:24px;width:1px;background:var(--line)}.brand-name{font:10px/1.8 var(--mono);letter-spacing:.16em}.brand-name b{font-size:10px;display:block;font-weight:400;color:var(--dim);letter-spacing:.25em}.top-meta{display:flex;gap:16px;align-items:center;font:10px var(--mono);letter-spacing:.12em;color:var(--dim)}.top-meta i{width:5px;height:5px;border-radius:50%;background:var(--red)}.language,.back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:7px 0}.back{gap:7px}.back svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3}.stage{position:relative;isolation:isolate;flex:1;min-height:600px;height:calc(100svh - 125px);background:#030303}.stage .logo-anchor{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1}.psi-line-logo{pointer-events:none}.stage-label{position:absolute;top:48px;left:5vw;font:9px/1.9 var(--mono);letter-spacing:.15em;color:#858582}.stage-label span{display:block;color:#c2c2bf;font-size:10px}.stage-coordinate{position:absolute;right:5vw;top:49px;font:9px var(--mono);color:#8a8a87;letter-spacing:.12em}.screen{position:absolute;inset:0;visibility:hidden;opacity:0;pointer-events:none;transition:opacity .65s ease,transform .9s cubic-bezier(.2,.8,.2,1),visibility .65s}.screen.active{visibility:visible;opacity:1;pointer-events:auto}.eyebrow{font:10px/1.6 var(--mono);letter-spacing:.26em;color:#eee}.idle-copy{position:absolute;left:50%;top:58%;width:90%;text-align:center;transform:translateX(-50%)}.idle-copy h1{font-size:clamp(24px,2.5vw,37px);letter-spacing:.3em;font-weight:400;margin:16px 0 13px;padding-left:.3em}.idle-copy p{font-size:12px;letter-spacing:.12em;color:var(--dim);line-height:1.8;margin:0 0 26px}.primary{border:1px solid #eeeeeb9c;background:#eeeeeb;color:#090909;min-height:48px;padding:0 24px;font-size:12px;font-weight:600;letter-spacing:.12em;display:inline-flex;gap:40px;align-items:center;justify-content:space-between;transition:background .2s}.primary:hover{background:#fff}.primary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.3}.start-sub{font:9px/1.8 var(--mono);margin-top:15px;letter-spacing:.12em;color:#848481}.assemble-copy{position:absolute;left:0;right:0;top:60%;text-align:center}.assemble-copy h2{font:12px var(--mono);letter-spacing:.35em;font-weight:400;margin:0 0 15px}.assemble-copy p{font-size:11px;color:var(--dim);letter-spacing:.12em}.identity-caption{position:absolute;left:14.5%;top:65%;width:25%;text-align:left}.identity-caption .brand-long{font:9px/1.9 var(--mono);letter-spacing:.2em;color:#92928f}.identity-caption h2{font-size:17px;letter-spacing:.25em;font-weight:400;margin:11px 0}.identity-caption p{font:9px var(--mono);color:#ddd;letter-spacing:.15em}.identity-card{position:absolute;left:49%;top:50%;transform:translateY(-50%);width:min(43%,530px);background:#080808;border:1px solid #ffffff32;padding:25px 28px}.identity-card:before{content:'';position:absolute;left:0;top:0;width:75px;height:1px;background:var(--red)}.card-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-bottom:17px;border-bottom:1px solid var(--line);font:9px var(--mono);letter-spacing:.17em;color:var(--dim)}.card-heading span:last-child{color:#ddd}.id-block{display:flex;gap:16px;align-items:center;padding:25px 0;min-width:0}.id-mark{width:49px;height:56px;flex:none;border:1px solid #ffffff32;display:grid;place-items:center;background:#ffffff03}.id-mark svg{width:22px;height:22px;fill:none;stroke:#e0e0dc;stroke-width:1}.id-info{min-width:0}.id-name{font:clamp(21px,2.3vw,29px)/1.2 var(--mono);letter-spacing:.02em;margin:0 0 7px;overflow-wrap:anywhere}.id-role{font-size:10px;letter-spacing:.09em;color:var(--dim);line-height:1.7}.permission-heading{display:flex;justify-content:space-between;gap:10px;font:9px var(--mono);letter-spacing:.13em;color:var(--dim);margin-bottom:10px}.permission-list{margin:0;padding:0;list-style:none}.permission-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #ffffff19;padding:12px 0;font-size:11px;letter-spacing:.12em;opacity:0;transform:translateX(10px)}.identity.active .permission-list li{animation:row-in var(--permission-row-duration,620ms) ease forwards;animation-delay:var(--row-delay,0ms)}.page-paused .identity.active .permission-list li{animation-play-state:paused}.permission-list b{font:9px var(--mono);letter-spacing:.07em;font-weight:400;color:#d6d6d2;text-align:right;white-space:nowrap}.permission-list b:before{content:'';display:inline-block;width:4px;height:4px;margin-right:7px;vertical-align:middle;background:var(--red)}.permission-list b[data-edit="false"]:before{background:#8a8a87}.card-foot{border-top:1px solid var(--line);margin-top:7px;padding-top:15px;display:flex;justify-content:space-between;gap:12px;font:8px var(--mono);letter-spacing:.13em;color:#92928f}@keyframes row-in{to{opacity:1;transform:translateX(0)}}.granted-copy{position:absolute;top:60%;left:0;right:0;text-align:center}.granted-copy .eyebrow{font-size:clamp(13px,2.2vw,25px);color:#f3f3f1;letter-spacing:.25em}.granted-copy p{font-size:11px;letter-spacing:.25em;color:#aaa;margin-top:17px}.confirm-mark{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:20px;height:20px;border:1px solid #aaa7;margin-right:14px}.confirm-mark svg{width:12px;height:12px;fill:none;stroke:#ddd;stroke-width:1.2}.welcome-copy{position:absolute;top:44%;left:5%;right:5%;text-align:center;transform:translateY(-20%)}.welcome-copy h2{margin:22px 0;font:500 clamp(30px,7.3vw,110px)/1 var(--sans);letter-spacing:-.035em;color:#f2f2f0;white-space:nowrap}.welcome-copy p{font-size:11px;letter-spacing:.2em;color:var(--dim);overflow-wrap:anywhere}.welcome.active h2{animation:welcome-in .6s cubic-bezier(.16,1,.3,1) both}@keyframes welcome-in{from{opacity:0;transform:scale(1.025)}to{opacity:1;transform:scale(1)}}.footer{min-height:65px;padding:12px 4.1vw max(12px,env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;position:relative;z-index:5;background:#050505}.phase-status{font:9px var(--mono);letter-spacing:.15em;color:#a0a09c;display:flex;align-items:center;gap:16px;min-width:185px}.phase-bars{display:flex;gap:3px}.phase-bars i{display:block;width:21px;height:2px;background:#ffffff25;transition:background .3s}.phase-bars i.active{background:var(--red)}.skip{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;min-width:64px;min-height:44px;padding:6px 9px;color:#d2d2cf;font-size:11px}.fallback-logo{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);width:min(38%,480px);height:auto;opacity:0;transition:left 1s,top 1s,width 1s,opacity .6s;pointer-events:none;z-index:-1}.no-canvas .fallback-logo{opacity:.92}.no-canvas[data-scene="identity"] .fallback-logo{left:27%;top:46%;width:min(27%,350px)}.no-canvas:is([data-scene="welcome"],[data-scene="workspace"],[data-scene="error"]) .fallback-logo{opacity:0}.error-copy{position:absolute;left:50%;top:42%;transform:translate(-50%,-35%);width:min(90%,480px);text-align:center}.error-copy h2{font-size:25px;font-weight:400;letter-spacing:.08em;margin:20px 0 15px}.error-copy p{font-size:12px;line-height:1.9;color:#aaa;margin-bottom:25px}.error-actions{display:flex;justify-content:center;align-items:center;gap:22px;flex-wrap:wrap}.error-actions .back{font-size:12px}.error-copy .eyebrow{color:var(--red)}
@media(min-width:1500px){.stage{min-height:700px}.identity-card{padding:30px 35px}.permission-list li{padding:15px 0}}
@media(max-width:900px){.stage{min-height:620px}.identity-caption{left:10%;width:31%}.identity-card{left:46%;width:48%;padding:23px}}
@media(max-width:700px){.topbar{height:54px;padding:0 23px;gap:12px}.brand{gap:13px}.brand img{width:48px}.brand-name{font-size:8px;letter-spacing:.1em}.brand-name b{font-size:8px}.brand-rule{height:21px}.top-meta{font-size:9px;gap:12px}.top-meta .terminal-label,.top-meta i{display:none}.stage{min-height:565px;height:calc(100svh - 119px)}.stage-label{top:30px;left:25px;font-size:8px}.stage-label span{font-size:8px}.stage-coordinate{top:32px;right:25px;font-size:8px}.idle-copy{top:56%}.idle-copy h1{font-size:27px;letter-spacing:.27em;margin:15px 0}.idle-copy p{font-size:10px;letter-spacing:.08em;max-width:260px;margin:0 auto 25px}.primary{min-height:49px;min-width:200px;padding:0 24px}.eyebrow{font-size:9px}.assemble-copy{top:58%}.assemble-copy h2{font-size:11px}.assemble-copy p{font-size:10px}.identity-caption{display:none}.identity-card{left:50%;top:40%;width:calc(100% - 50px);max-width:400px;padding:14px 17px;transform:translateX(-50%)}.card-heading{font-size:8px;padding-bottom:12px;letter-spacing:.12em}.id-block{padding:13px 0;gap:13px}.id-mark{width:38px;height:44px}.id-name{font-size:24px}.id-role{font-size:9px}.permission-heading{font-size:8px;margin-bottom:8px}.permission-list li{font-size:11px;padding:7px 0;min-height:29px;gap:8px;letter-spacing:.06em}.permission-list b{font-size:8px;letter-spacing:.02em}.card-foot{font-size:7px;padding-top:9px;margin-top:3px;letter-spacing:.08em}.granted-copy{top:57%}.granted-copy .eyebrow{font-size:15px;letter-spacing:.12em}.granted-copy p{font-size:10px;letter-spacing:.18em}.confirm-mark{margin-right:8px;width:17px;height:17px}.welcome-copy{top:44%;left:0;right:0}.welcome-copy h2{font-size:clamp(28px,8vw,53px);letter-spacing:-.04em}.welcome-copy p{font-size:9px;padding-inline:25px}.footer{padding:9px 23px max(9px,env(safe-area-inset-bottom));gap:8px;min-height:65px}.phase-status{min-width:0;gap:10px;font-size:8px;letter-spacing:.08em}.phase-bars i{width:12px}.phase-bars{gap:2px}.skip{font-size:10px;min-width:58px}.no-canvas[data-scene="identity"] .fallback-logo{left:50%;top:24%;width:min(56%,240px)}.fallback-logo{width:min(70%,330px)}.error-copy h2{font-size:22px}}
@media(max-width:370px){.topbar{padding:0 16px}.brand{gap:9px}.brand-name{font-size:7px;letter-spacing:.04em}.brand-name b{font-size:7px;letter-spacing:.1em}.top-meta{gap:8px}.top-meta .back span{display:none}.stage-label{left:20px}.stage-coordinate{right:20px}.identity-card{width:calc(100% - 36px);padding:14px}.id-name{font-size:22px}.permission-list li{font-size:10px}.permission-list b{font-size:7px}.footer{padding-inline:16px}.phase-bars i{width:9px}.phase-status{gap:8px;letter-spacing:.04em}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.permission-list li{opacity:1;transform:none}}

.id-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.no-script{padding:20px 5vw;border-bottom:1px solid #e8153d;color:#eee;font-size:13px;line-height:1.8}.no-script a{text-decoration:underline;margin-left:12px}
