:root{color-scheme:dark;--fg: #f5f6fa;--fg-dim: #9a9dae;--bg: #05060a;--violet: #7b6ef6;--green: #38d39f;--blue: #4ea1ff;--panel: #12141f;--panel-border: rgba(255, 255, 255, .09);--idle: #454a5c;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Cascadia Code", Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);overflow-x:hidden;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}#webgl{position:fixed;top:0;left:0;width:100vw;height:100vh;display:block;z-index:0}#top-nav{position:fixed;top:0;left:0;right:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:24px;padding:16px 32px;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);background:linear-gradient(to bottom,#05060aa6,#05060a00);pointer-events:none}.nav-side{display:flex;align-items:center}.nav-side-right{justify-content:flex-end}.wordmark{display:flex;align-items:center;gap:9px;font-weight:700;font-size:14.5px;letter-spacing:.01em;pointer-events:auto}.nav-logo{display:inline-flex;width:22px;height:22px;flex-shrink:0}#pill-nav{display:flex;gap:30px;pointer-events:auto;justify-content:center}#pill-nav a{color:var(--fg-dim);text-decoration:none;font-size:12.5px;font-weight:500;letter-spacing:.01em;transition:color .2s ease}#pill-nav a:hover,#pill-nav a.active{color:var(--fg)}#dot-nav{position:fixed;right:26px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:12px}#dot-nav button{width:7px;height:7px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;cursor:pointer;padding:0;transition:all .25s ease}#dot-nav button.active{background:#fff;transform:scale(1.3)}#scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:25;background:#ffffff0f}#scroll-progress-bar{height:100%;width:0%;background:var(--violet)}#sections{position:relative;z-index:10}.act{min-height:100vh;display:flex;align-items:center;padding:0 8vw}.act-inner{max-width:480px;opacity:0;transform:translateY(20px);transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1)}.act.in-view .act-inner{opacity:1;transform:translateY(0)}.kicker{display:block;font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin-bottom:16px;color:var(--violet)}.act h2,.act h1{font-size:clamp(2.1rem,4.2vw,3.4rem);line-height:1.12;font-weight:700;margin:0 0 18px;white-space:pre-line;letter-spacing:-.02em}.act p{font-size:clamp(.98rem,1.4vw,1.1rem);line-height:1.55;color:var(--fg-dim);margin:0 auto 24px;max-width:440px}.tags{display:flex;gap:8px;flex-wrap:wrap}.tags span{font-size:12px;font-weight:500;padding:6px 11px;border-radius:7px;color:var(--fg-dim);background:#ffffff0b;border:1px solid var(--panel-border)}.act.hero .act-inner,.act.cta .act-inner{max-width:600px;text-align:center;margin:0 auto}.hero-wordmark{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:26px}.hero-wordmark-icon{position:relative;display:inline-flex;width:68px;height:68px;flex-shrink:0}.hero-wordmark-icon svg{position:relative;z-index:1;transform-origin:50% 50%}.hero-wordmark-icon .brand-tip{fill:#8b5cf6;filter:drop-shadow(0 0 4px rgba(139,92,246,.9));opacity:0}.hero-wordmark-glow{position:absolute;top:50%;left:50%;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;background:radial-gradient(circle,rgba(139,92,246,.45),transparent 70%);filter:blur(6px);opacity:0;pointer-events:none}.hero-wordmark-text{font-size:clamp(2.4rem,5.5vw,4rem);font-weight:800;letter-spacing:-.01em;line-height:1;background:linear-gradient(90deg,#60a5fa,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0}.hero-wordmark.intro-done .hero-wordmark-text{opacity:1}@media (max-width: 560px){.hero-wordmark{gap:12px}.hero-wordmark-icon{width:48px;height:48px}}.act.hero,.act.cta{justify-content:center;text-align:center}.act.hero .kicker,.act.cta .kicker{color:var(--fg-dim)}.cta-button{display:inline-block;padding:13px 28px;border-radius:999px;border:none;background:var(--fg);color:#05060a;font-family:inherit;font-weight:600;font-size:14px;text-decoration:none;cursor:pointer;transition:transform .25s ease}.cta-button:hover{transform:scale(1.03)}.cta-form{display:flex;gap:10px;justify-content:center;margin:6px 0 14px;transition:opacity .3s ease,transform .3s ease}.cta-input{width:260px;padding:13px 18px;border-radius:999px;border:1px solid var(--panel-border);background:#ffffff0a;color:var(--fg);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s ease}.cta-input::placeholder{color:var(--fg-dim)}.cta-input:focus{border-color:var(--violet)}.cta-note{font-size:12px;color:var(--fg-dim);margin:0 0 18px;transition:opacity .3s ease}.cta-success{display:none;align-items:center;justify-content:center;gap:9px;font-size:14.5px;font-weight:600;color:var(--fg);opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease}.cta-success.is-visible{display:flex;opacity:1;transform:translateY(0)}.cta-success-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--green);color:#05060a;font-size:13px;flex-shrink:0}.cta-form.is-hidden,.cta-note.is-hidden{opacity:0;pointer-events:none;position:absolute}.cta-back-top{display:block;margin-top:22px;color:var(--fg-dim);font-size:12.5px;text-decoration:none}.cta-back-top:hover{color:var(--fg)}@media (max-width: 480px){.cta-form{flex-direction:column;align-items:center}.cta-input{width:100%;max-width:280px}}.hero-scroll-hint{margin-top:44px;font-size:11.5px;letter-spacing:.06em;color:var(--fg-dim);text-transform:uppercase;animation:fadePulse 2.6s ease-in-out infinite}@keyframes fadePulse{0%,to{opacity:.45}50%{opacity:.9}}footer.act-footer{position:relative;z-index:10;padding:36px 8vw 40px;border-top:1px solid var(--panel-border);max-width:1260px;margin:0 auto}.footer-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:22px}.footer-brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;color:var(--fg)}.footer-logo{display:inline-flex;width:20px;height:20px;flex-shrink:0}.footer-links{display:flex;gap:24px}.footer-links a{color:var(--fg-dim);text-decoration:none;font-size:13px;font-weight:500;transition:color .2s ease}.footer-links a:hover{color:var(--fg)}.footer-copy{color:var(--fg-dim);font-size:12px;text-align:center}@media (max-width: 560px){.footer-row{flex-direction:column;align-items:flex-start}}.act.screen{max-width:1260px;margin:0 auto;gap:6vw;justify-content:space-between}.act.screen .act-inner{flex:0 0 auto;max-width:400px}.act.screen.mock-left{flex-direction:row-reverse}.act-visual{flex:1 1 auto;display:flex;justify-content:center;perspective:1800px}.screen-mock-wrap{position:relative;display:inline-flex}.screen-mock{width:min(560px,92vw);border-radius:14px;background:#0e0f16;border:1px solid var(--panel-border);box-shadow:0 24px 60px -20px #0000008c;overflow:hidden;transition:opacity .8s cubic-bezier(.16,1,.3,1),transform .8s cubic-bezier(.16,1,.3,1);opacity:0;transform:rotateY(-4deg) rotateX(1.5deg) translateY(16px) scale(.98)}.act.mock-left .screen-mock{transform:rotateY(4deg) rotateX(1.5deg) translateY(16px) scale(.98)}.act.in-view .screen-mock{opacity:1;transform:rotateY(-2deg) rotateX(1deg) translateY(0) scale(1)}.act.in-view.mock-left .screen-mock{transform:rotateY(2deg) rotateX(1deg) translateY(0) scale(1)}.mock-topbar{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--panel-border);background:#ffffff04}.mock-brand{display:flex;align-items:center;gap:6px;font-weight:700;font-size:12px;color:var(--fg);white-space:nowrap}.mock-logo{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;flex-shrink:0}.mock-tabs{display:flex;gap:4px}.mock-tab{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:var(--fg-dim);padding:5px 9px;border-radius:7px;white-space:nowrap}.mock-tab svg{flex-shrink:0;opacity:.75}.mock-tab.active{background:#7b6ef629;color:var(--fg)}.mock-tab.active svg{opacity:1;color:var(--violet)}.mock-avatar{width:19px;height:19px;border-radius:50%;background:#ffffff12;color:var(--fg-dim);font-size:9.5px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pill{font-size:9.5px;font-weight:600;padding:3px 8px;border-radius:999px;border:1px solid var(--panel-border);color:var(--fg-dim);margin-left:8px;letter-spacing:.02em}.pill.running{color:var(--violet);border-color:#7b6ef659;background:#7b6ef61a}.pill[data-status=post]{color:var(--green);border-color:#38d39f59;background:#38d39f1a}.pill[data-status=wait]{color:#f5a623;border-color:#f5a62359;background:#f5a6231a}.pill[data-status=del]{color:#ff6b6b;border-color:#ff6b6b59;background:#ff6b6b1a}.pill[data-status=off]{color:var(--fg-dim)}.mock-canvas-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;font-size:12px;border-bottom:1px solid var(--panel-border)}.mock-canvas-title{font-weight:600;color:var(--fg-dim);font-size:11.5px}.mock-run-btn{font-size:10.5px;font-weight:600;color:#fff;background:var(--violet);padding:5px 12px;border-radius:6px}.mock-canvas{position:relative;padding:26px 20px;background-image:radial-gradient(rgba(255,255,255,.05) 1px,transparent 1px);background-size:16px 16px}.mock-nodes-row{display:flex;gap:12px;position:relative;z-index:1}.mock-nodes-row .mock-node{flex:1 1 0}.mock-canvas-tall{padding:26px 20px}.mock-nodes-col{display:grid;grid-template-rows:repeat(3,auto);gap:22px;position:relative;z-index:1}.mock-connectors{position:absolute;top:26px;left:20px;width:calc(100% - 40px);height:40px;overflow:visible;pointer-events:none}.mock-connectors-col{top:26px;left:20px;width:40px;height:230px}.flow-line{fill:none;stroke:#38d39f66;stroke-width:1.5;stroke-dasharray:4 6;animation:flow 2.2s linear infinite;animation-play-state:paused}.act.in-view .flow-line{animation-play-state:running}@keyframes flow{to{stroke-dashoffset:-20}}.mock-node{position:relative;z-index:1;background:#14151f;border:1px solid var(--panel-border);border-radius:8px;padding:10px 12px;font-size:12px;min-width:0;display:flex;flex-direction:column;gap:5px;animation:nodeCardExec var(--cycle, 4.4s) ease-in-out infinite;animation-delay:var(--d, 0s);animation-play-state:paused}.act.in-view .mock-node{animation-play-state:running}.mock-nodes-col .mock-node{--cycle: 3.9s}.mock-nodes-row .mock-node:nth-child(1){--d: 0s}.mock-nodes-row .mock-node:nth-child(2){--d: 1.1s}.mock-nodes-row .mock-node:nth-child(3){--d: 2.2s}.mock-nodes-row .mock-node:nth-child(4){--d: 3.3s}.mock-nodes-col .mock-node:nth-child(1){--d: 0s}.mock-nodes-col .mock-node:nth-child(2){--d: 1.3s}.mock-nodes-col .mock-node:nth-child(3){--d: 2.6s}@keyframes nodeCardExec{0%{border-color:var(--panel-border);box-shadow:none}3%{border-color:#7b6ef68c;box-shadow:0 0 0 1px #7b6ef633,0 0 18px -6px #7b6ef699}14%{border-color:#38d39f73;box-shadow:0 0 0 1px #38d39f24}92%{border-color:#38d39f73;box-shadow:0 0 0 1px #38d39f24}to{border-color:var(--panel-border);box-shadow:none}}.mock-node strong{color:var(--fg);font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.node-status{position:absolute;top:9px;right:9px;width:6px;height:6px;border-radius:50%;background:var(--idle);animation:nodeDotExec var(--cycle, 4.4s) ease-in-out infinite;animation-delay:var(--d, 0s);animation-play-state:paused}.act.in-view .node-status{animation-play-state:running}@keyframes nodeDotExec{0%{background:var(--idle);box-shadow:none}3%{background:var(--violet);box-shadow:0 0 0 3px #7b6ef633}14%{background:var(--green);box-shadow:0 0 0 3px #38d39f24}92%{background:var(--green);box-shadow:0 0 0 3px #38d39f24}to{background:var(--idle);box-shadow:none}}.node-badge{display:inline-block;width:fit-content;font-size:9px;font-weight:700;letter-spacing:.03em;padding:2px 6px;border-radius:4px;border:1px solid currentColor}.node-badge.post{color:var(--green)}.node-badge.get{color:var(--blue)}.node-badge.ui{color:var(--violet)}.node-badge.wait,.node-badge.put{color:#f5a623}.node-badge.del{color:#ff6b6b}.node-badge.off{color:var(--fg-dim)}.node-home{position:absolute;top:-4px;left:12px;width:7px;height:7px;border-radius:50%;border:1.5px solid var(--idle);background:#14151f}.node-home.is-start{border-color:var(--green);background:var(--green)}.node-icon-row{display:flex;gap:4px}.node-icon{display:flex;align-items:center;justify-content:center;width:16px;height:15px;border-radius:4px;background:#ffffff0a;color:var(--fg-dim);font-size:8px;line-height:1}.node-icon-play{color:var(--green)}.node-icon-del{color:#ff6b6b}.b-node .node-icon-del{cursor:pointer}.b-node .node-icon-del:hover{background:#ff6b6b2e}.node-foot-row{display:flex;align-items:center;gap:7px}.node-foot-trend{display:flex;color:var(--fg-dim);opacity:.75}.node-foot-dot{width:9px;height:9px;border-radius:50%;border:2px solid #f5a623}.node-port{position:absolute;width:5px;height:5px;border-radius:50%;background:#7b6ef699;box-shadow:0 0 0 2px #14151f}.node-port-r1{right:-3px;top:26%}.node-port-r2{right:-3px;top:50%}.node-port-r3{right:-3px;top:74%}.node-port-b{left:14px;bottom:-3px}.b-node .node-port{box-shadow:0 0 0 2px #171924}.node-var{font-family:var(--font-mono);font-size:10px;color:var(--fg-dim)}.mock-execbar{padding:14px 16px;border-bottom:1px solid var(--panel-border)}.mock-exec-title{font-size:12.5px;font-weight:600;color:var(--fg-dim);display:flex;align-items:center;margin-bottom:10px}.mock-progress{height:3px;border-radius:999px;background:#ffffff12;overflow:hidden}.mock-progress-fill{height:100%;width:4%;border-radius:999px;background:var(--violet);animation:execProgress 4s linear infinite;animation-play-state:paused}.act.in-view .mock-progress-fill{animation-play-state:running}@keyframes execProgress{0%{width:4%}92%{width:100%}to{width:100%}}.mock-body{display:flex;gap:14px;padding:16px}.mock-browser{flex:1.4 1 auto;border-radius:8px;overflow:hidden;border:1px solid var(--panel-border);background:#0a0b11;min-width:0}.mock-browser-bar{display:flex;align-items:center;gap:6px;padding:8px 10px;background:#14151f}.mock-browser-bar .dot{width:6px;height:6px;border-radius:50%}.dot.r,.dot.y,.dot.g{background:#565b6e}.mock-url{margin-left:6px;font-family:var(--font-mono);font-size:9.5px;color:var(--fg-dim);background:#ffffff0a;padding:3px 10px;border-radius:5px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mock-browser-page{padding:14px}.ph-block{background:#ffffff0d;border-radius:5px;height:20px;margin-bottom:10px}.ph-block.header{width:40%;height:10px}.ph-block.banner{height:44px;background:#ffffff0b}.ph-block.short{width:60%;height:10px}.ph-cards{display:flex;gap:8px}.ph-card{flex:1;height:44px;border-radius:5px;background:#ffffff0a}.mock-evidence{flex:1 1 auto;min-width:0}.mock-evidence-title{font-size:11px;font-weight:700;margin-bottom:10px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.mock-steps{display:flex;flex-direction:column}.mock-step{position:relative;display:flex;align-items:center;gap:9px;font-size:11.5px;color:var(--fg-dim);padding:7px 0;border-bottom:1px solid rgba(255,255,255,.05)}.mock-step .node-status{position:static;flex-shrink:0}.mock-steps .mock-step:nth-child(1){--d: 0s}.mock-steps .mock-step:nth-child(2){--d: 1s}.mock-steps .mock-step:nth-child(3){--d: 2s}.mock-steps .mock-step:nth-child(4){--d: 3s}.mock-steps .mock-step .node-status{--cycle: 4s}.mock-body-mobile{align-items:flex-start}.mock-phone{flex:0 0 128px;height:248px;border-radius:18px;background:#0a0b10;border:5px solid #1c1e2a;padding:10px 8px;display:flex;flex-direction:column;gap:8px}.mock-phone-notch{width:32px;height:4px;border-radius:999px;background:#1c1e2a;margin:0 auto;flex:0 0 auto}.mock-phone-screen{flex:1 1 auto;position:relative;display:flex;flex-direction:column;gap:8px;padding-top:6px}.ph-status-row{display:flex;align-items:center;gap:6px;font-size:8.5px;color:var(--fg-dim);flex:0 0 auto}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--green);flex-shrink:0;animation:livePulse 1.8s ease-out infinite;animation-play-state:paused}.act.in-view .live-dot{animation-play-state:running}@keyframes livePulse{0%{box-shadow:0 0 #38d39f80}70%{box-shadow:0 0 0 6px #38d39f00}to{box-shadow:0 0 #38d39f00}}.ph-tap-ripple{position:absolute;left:50%;top:40%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;border:1px solid var(--violet);opacity:0;animation:tapRipple 3.9s ease-out infinite;animation-play-state:paused}.act.in-view .ph-tap-ripple{animation-play-state:running}@keyframes tapRipple{0%,32%{opacity:0;transform:scale(.4)}36%{opacity:.8;transform:scale(.6)}55%{opacity:0;transform:scale(2.6)}to{opacity:0;transform:scale(.4)}}.mock-phone .ph-block{background:#ffffff0f;height:14px;flex:0 0 auto}.ph-app-bar{display:flex;align-items:center;gap:6px;flex:0 0 auto;padding:6px 7px;border-radius:6px;background:#ffffff0d;color:var(--fg-dim);font-size:8.5px;font-weight:600}.ph-app-dot{width:8px;height:8px;border-radius:3px;background:var(--violet);flex-shrink:0}.ph-list{display:flex;flex-direction:column;gap:8px;padding:2px 2px 0}.ph-item{display:flex;align-items:center;gap:6px}.ph-avatar{width:16px;height:16px;border-radius:50%;background:#ffffff14;flex-shrink:0}.ph-lines{display:flex;flex-direction:column;gap:4px;flex:1 1 auto;min-width:0}.ph-lines span{height:5px;border-radius:3px;background:#ffffff12}.ph-lines span:first-child{width:70%}.ph-lines span:last-child{width:45%;background:#ffffff0b}.act.brief{min-height:42vh}.act.brief .act-inner{max-width:760px;width:100%;text-align:center;margin:0 auto}.brief-grid{display:flex;gap:16px;justify-content:center;margin-top:8px}.brief-card{flex:1;max-width:320px;text-align:left;padding:16px 18px;border-radius:10px;border:1px solid var(--panel-border);background:#08090eb8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.brief-label{display:block;font-size:11.5px;font-weight:700;color:var(--violet);margin-bottom:6px;letter-spacing:.02em}.brief-card p{margin:0;font-size:12.5px;color:var(--fg-dim);max-width:none}@media (max-width: 900px){.act.screen,.act.screen.mock-left{flex-direction:column;text-align:center;padding-top:90px;gap:32px}.act.screen .act-inner{max-width:520px;text-align:center;margin:0 auto}.tags{justify-content:center}.screen-mock,.act.mock-left .screen-mock{transform:none!important}.mock-body,.mock-body-mobile{flex-direction:column}.mock-phone{flex:0 0 auto;width:140px;margin:0 auto}}@media (max-width: 720px){.act{padding:0 7vw;justify-content:center!important}.brief-grid{flex-direction:column}#dot-nav{display:none}}.back-to-top{position:fixed;right:26px;bottom:26px;z-index:30;width:42px;height:42px;border-radius:50%;border:1px solid var(--panel-border);background:#0e0f16d9;-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);color:var(--fg-dim);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .25s ease,transform .25s ease,border-color .2s ease,color .2s ease}.back-to-top.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.back-to-top:hover{border-color:var(--violet);color:var(--fg)}@media (max-width: 640px){.back-to-top{right:16px;bottom:16px;width:38px;height:38px}}.nav-login-btn{pointer-events:auto;padding:6px 15px;border-radius:999px;border:1px solid var(--panel-border);background:transparent;color:var(--fg-dim);font-family:inherit;font-size:12.5px;font-weight:500;cursor:pointer;transition:border-color .2s ease,color .2s ease}.nav-login-btn:hover{border-color:var(--violet);color:var(--fg)}.login-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:5vh 5vw;background:#040509bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:bOverlayIn .25s ease}@keyframes bOverlayIn{0%{opacity:0}to{opacity:1}}.login-card{position:relative;width:min(380px,100%);padding:34px 30px 30px;border-radius:16px;background:#0e0f16;border:1px solid var(--panel-border);box-shadow:0 40px 100px -30px #000000b3;text-align:center;animation:bModalIn .3s cubic-bezier(.16,1,.3,1)}@keyframes bModalIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-close{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;border:1px solid var(--panel-border);background:transparent;color:var(--fg-dim);font-size:15px;cursor:pointer}.login-close:hover{color:var(--fg);border-color:var(--fg-dim)}.login-brand{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:14px;margin-bottom:18px}.login-brand-icon{display:inline-flex;width:22px;height:22px}.login-title{font-size:22px;font-weight:700;margin:0 0 8px}.login-subtitle{font-size:13px;color:var(--fg-dim);line-height:1.5;margin:0 0 24px}.login-form{display:flex;flex-direction:column;gap:14px;text-align:left}.login-label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:600;color:var(--fg-dim)}.login-label input{padding:11px 14px;border-radius:9px;border:1px solid var(--panel-border);background:#ffffff0a;color:var(--fg);font-family:inherit;font-size:14px;outline:none;transition:border-color .2s ease}.login-label input:focus{border-color:var(--violet)}.login-error{min-height:16px;font-size:12.5px;color:#ff6b6b}.login-submit{margin-top:4px;padding:12px 20px;border-radius:9px;border:none;background:var(--violet);color:#fff;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .2s ease}.login-submit:disabled{opacity:.7;cursor:default}.login-forgot{display:block;margin-top:18px;font-size:12.5px;color:var(--fg-dim);text-decoration:none}.login-forgot:hover{color:var(--fg)}.portal-body{background:#05060a;min-height:100vh}.portal-nav{background:#05060ad9;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%)}.portal-logout{pointer-events:auto;color:var(--fg-dim);font-size:13px;font-weight:500;text-decoration:none}.portal-logout:hover{color:var(--fg)}.portal-main{max-width:900px;margin:0 auto;padding:130px 6vw 60px}.portal-header h1{display:flex;align-items:center;gap:14px;font-size:clamp(1.8rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.01em;margin:14px 0 10px}.portal-company-logo{width:40px;height:40px;object-fit:contain;border-radius:8px;background:#fff;padding:4px;flex-shrink:0}.portal-header p{color:var(--fg-dim);font-size:14.5px;margin:0 0 40px}.portal-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.portal-card{padding:24px;border-radius:14px;border:1px solid var(--panel-border);background:#0e0f16}.portal-card h2{font-size:15px;font-weight:700;margin:0 0 14px}.portal-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.portal-card-head h2{margin:0}.portal-plan{font-size:13.5px;color:var(--fg-dim);margin-bottom:16px}.portal-progress{height:6px;border-radius:999px;background:#ffffff12;overflow:hidden;margin-bottom:18px}.portal-progress-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--violet));transition:width .8s cubic-bezier(.16,1,.3,1)}.portal-contract-meta{display:flex;gap:22px;margin-bottom:22px;flex-wrap:wrap}.portal-contract-meta div{display:flex;flex-direction:column;gap:4px}.portal-contract-meta span{font-size:11px;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.04em}.portal-contract-meta strong{font-size:14px;font-weight:700}.portal-renew-btn{width:100%;color:#05060a}.portal-renew-btn.is-hidden{display:none}.portal-card-desc{font-size:13px;color:var(--fg-dim);margin:0 0 18px}.portal-downloads{display:flex;flex-direction:column;gap:10px}.portal-download-btn{display:flex;align-items:center;gap:12px;padding:13px 14px;border-radius:10px;border:1px solid var(--panel-border);background:#ffffff08;color:var(--fg);font-family:inherit;cursor:pointer;text-align:left;transition:border-color .2s ease,background .2s ease}.portal-download-btn:hover{border-color:var(--violet);background:#7b6ef614}.portal-download-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:#7b6ef626;color:var(--violet);font-size:15px;flex-shrink:0}.portal-download-text{display:flex;flex-direction:column;gap:2px}.portal-download-text strong{font-size:13.5px;font-weight:600}.portal-download-text small{font-size:11.5px;color:var(--fg-dim);font-family:var(--font-mono)}.portal-toast{margin-top:14px;padding:10px 14px;border-radius:8px;background:#38d39f1f;border:1px solid rgba(56,211,159,.3);color:var(--fg);font-size:12.5px;opacity:0;transform:translateY(4px);transition:opacity .25s ease,transform .25s ease;pointer-events:none}.portal-toast.is-visible{opacity:1;transform:translateY(0)}.portal-footer{border-top:1px solid var(--panel-border);text-align:center;padding:24px 0 40px}@media (max-width: 720px){.portal-grid{grid-template-columns:1fr}.portal-main{padding-top:110px}}.admin-main{max-width:1360px;margin:0 auto;padding:130px 4vw 60px}.admin-stats{display:flex;gap:18px;margin-bottom:28px;flex-wrap:wrap}.admin-stat{flex:1;min-width:200px;padding:22px 24px;border-radius:14px;border:1px solid var(--panel-border);background:#0e0f16;display:flex;flex-direction:column;gap:8px}.admin-stat-value{font-size:32px;font-weight:700}.admin-stat-label{font-size:12px;color:var(--fg-dim)}.admin-table-card{position:relative;padding:28px;border-radius:16px;border:1px solid var(--panel-border);background:#0e0f16}.admin-table-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.admin-table-head h2{font-size:17px;font-weight:700;margin:0}.admin-new-btn{padding:11px 22px;font-size:13.5px;color:#05060a}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:14.5px}.admin-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--fg-dim);font-weight:600;padding:0 16px 14px;border-bottom:1px solid var(--panel-border)}.admin-table td{padding:16px;border-bottom:1px solid var(--panel-border);white-space:nowrap}.admin-table tbody tr:last-child td{border-bottom:none}.admin-renewal-badge{margin-left:8px}.admin-company-cell{display:flex;align-items:center;gap:10px}.admin-company-logo{width:26px;height:26px;object-fit:contain;border-radius:5px;background:#fff;padding:2px;flex-shrink:0}.admin-link-btn{padding:0;border:none;background:none;color:var(--fg-dim);font-size:13px;font-family:inherit;text-decoration:underline;cursor:pointer}.admin-link-btn:hover{color:var(--fg)}.admin-history-list{display:flex;flex-direction:column;gap:10px;max-height:50vh;overflow-y:auto}.admin-history-empty{color:var(--fg-dim);font-size:13px}.admin-history-item{padding:12px 14px;border-radius:10px;border:1px solid var(--panel-border);background:#ffffff05}.admin-history-item-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;margin-bottom:6px}.admin-history-item-head span{color:var(--fg-dim);font-size:12px}.admin-history-item-body{display:flex;flex-direction:column;gap:3px;font-size:12.5px;color:var(--fg-dim)}.admin-downloads-empty{color:var(--fg-dim)}.admin-downloads small{color:var(--fg-dim);margin-left:4px}.admin-row-actions{display:flex;gap:8px}.admin-row-btn{padding:6px 12px;border-radius:7px;border:1px solid var(--panel-border);background:transparent;color:var(--fg-dim);font-family:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:border-color .2s ease,color .2s ease}.admin-row-btn:hover{border-color:var(--violet);color:var(--fg)}.admin-row-btn.danger:hover{border-color:#ff6b6b;color:#ff6b6b}.admin-row-btn:disabled{opacity:.4;cursor:default}.admin-toast{position:absolute;bottom:-18px;left:22px;right:22px;transform:translateY(100%)}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:none;align-items:center;justify-content:center;padding:5vh 5vw;background:#040509bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.admin-modal-overlay.is-visible{display:flex}.admin-modal-card{text-align:left;max-height:88vh;overflow-y:auto;width:min(460px,92vw)}.admin-tier-choice{display:flex;gap:10px}.admin-tier-option{flex:1;display:flex;align-items:flex-start;gap:8px;padding:12px 14px;border-radius:10px;border:1px solid var(--panel-border);cursor:pointer;transition:border-color .2s ease,background .2s ease}.admin-tier-option:has(input:checked){border-color:var(--violet);background:#7b6ef614}.admin-tier-option input{margin-top:3px}.admin-tier-option strong{display:block;font-size:13.5px;font-weight:600;color:var(--fg)}.admin-tier-option small{display:block;font-size:11.5px;color:var(--fg-dim);margin-top:2px}.admin-modules-check{display:flex;gap:16px;font-size:13px;font-weight:500;color:var(--fg)}.admin-modules-check label{display:flex;align-items:center;gap:6px;font-weight:500}.admin-date-row{display:flex;gap:12px}.admin-date-row .login-label{flex:1}.admin-date-row input[type=date]{padding:10px 12px;border-radius:9px;border:1px solid var(--panel-border);background:#ffffff0a;color:var(--fg);font-family:inherit;font-size:13.5px;color-scheme:dark}.login-select{padding:11px 14px;border-radius:9px;border:1px solid var(--panel-border);background:#ffffff0a;color:var(--fg);font-family:inherit;font-size:14px;outline:none}@media (max-width: 640px){.admin-stats{flex-direction:column}.admin-table{font-size:12.5px}.admin-table-head{flex-wrap:wrap;gap:12px}}@media (max-width: 640px){#top-nav{padding:14px 5vw;column-gap:10px}#pill-nav{display:none}.wordmark{font-size:13px;gap:7px}.nav-logo{width:19px;height:19px}.nav-login-btn,.portal-logout{font-size:12px;padding:6px 12px}.mock-topbar{padding:9px 10px}.mock-brand-text{display:none}.mock-tab{padding:5px 7px;gap:0}.mock-tab-label{display:none}.mock-avatar{width:17px;height:17px}.mock-canvas-title,.mock-exec-title{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.portal-main,.admin-main{padding-left:5.5vw;padding-right:5.5vw}.portal-header h1{flex-wrap:wrap}.portal-company-logo{width:32px;height:32px}.portal-card{padding:18px}}@media (max-width: 420px){.login-card{padding:28px 22px 24px}.admin-tier-choice,.admin-date-row{flex-direction:column}}
