:root{--brand:#6366f1;--brand-600:#4f46e5;--brand-700:#4338ca;--brand-100:#e0e7ff;--brand-50:#eef2ff;--accent:#06b6d4;--accent-2:#22d3ee;--ink:#1a1a2e;--muted:#64637a;--line:#e7e7f0;--bg:#f6f7fc;--card:#fff;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--radius:14px;--shadow:0 1px 2px rgba(26,26,46,.05),0 6px 20px rgba(26,26,46,.05);--shadow-lg:0 10px 34px rgba(79,70,229,.18);--grad:linear-gradient(135deg,#6366f1,#06b6d4)}*{box-sizing:border-box}body,html{margin:0;padding:0;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:15px;line-height:1.55;min-height:100vh;background:linear-gradient(-45deg,#e0e7ff,#dbeafe,#cffafe,#ede9fe,#e0e7ff);background-size:320% 320%;animation:bgshift 22s ease infinite}@keyframes bgshift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}a{color:var(--brand-700);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{line-height:1.22;margin:0 0 .5em;letter-spacing:-.01em}.container{max-width:1120px;margin:0 auto;padding:0 24px}.narrow{max-width:720px}.topbar{background:hsla(0,0%,100%,.72);backdrop-filter:saturate(1.6) blur(10px);-webkit-backdrop-filter:saturate(1.6) blur(10px);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:10}.topbar-inner{justify-content:space-between;height:62px}.brandmark,.topbar-inner{display:flex;align-items:center}.brandmark{gap:10px;font-weight:800;letter-spacing:-.02em}.brand-dot{width:28px;height:28px;border-radius:8px;background:var(--grad);box-shadow:0 4px 12px rgba(79,70,229,.4)}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 22px}.stack>*+*{margin-top:16px}.row{display:flex;gap:12px;align-items:center}.row.wrap{flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;grid-gap:16px;gap:16px}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}label{font-weight:600;font-size:13px;display:block;margin-bottom:6px}input[type=email],input[type=number],input[type=password],input[type=tel],input[type=text],input[type=url],select,textarea{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-100)}textarea{min-height:90px;resize:vertical}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;border:1px solid transparent;background:var(--grad);color:#fff;font:inherit;font-weight:600;cursor:pointer;box-shadow:0 4px 14px rgba(79,70,229,.28);transition:transform .08s ease,box-shadow .15s ease,background .15s}.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 22px rgba(79,70,229,.36)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn.secondary{background:#fff;color:var(--brand-700);border-color:var(--line);box-shadow:var(--shadow)}.btn.secondary:hover{background:var(--brand-50);border-color:var(--brand-100)}.btn.ghost{background:transparent;color:var(--muted);box-shadow:none}.btn.ghost:hover{background:#f0f0f7;transform:none}.btn.small{padding:6px 11px;font-size:13px;border-radius:8px}.btn.danger{background:linear-gradient(135deg,#ef4444,#dc2626)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--brand-100);color:var(--brand-700)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.65}.badge.gray{background:#f0f0f7;color:var(--muted)}.badge.ok{background:#dcfce7;color:#15803d}.badge.warn{background:#fef3c7;color:#b45309}.badge.bad{background:#fee2e2;color:#b91c1c}.badge.plain:before{display:none}.muted{color:var(--muted)}.small{font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}tbody tr{transition:background .12s}tbody tr:hover{background:var(--brand-50)}.pagehead{padding:30px 0 8px}.pagehead h1{font-size:28px}.hero-title{font-size:34px;font-weight:800;letter-spacing:-.03em;background:linear-gradient(120deg,#1a1a2e 25%,#4f46e5 70%,#0891b2);-webkit-background-clip:text;background-clip:text;color:transparent;margin:0 0 6px}.steps{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 20px}.step{font-size:12px;padding:5px 12px;border-radius:999px;background:#f0f0f7;color:var(--muted);font-weight:600}.step.active{background:var(--grad);color:#fff;box-shadow:0 3px 10px rgba(79,70,229,.32)}.step.done{background:#dcfce7;color:#15803d}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:18px;gap:18px}.project-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;overflow:hidden;transition:transform .14s ease,box-shadow .18s ease,border-color .18s ease;animation:rise .35s ease both}.project-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--grad)}.project-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--brand-100)}.avatar{width:42px;height:42px;border-radius:11px;display:grid;place-items:center;font-weight:800;font-size:17px;color:#fff;background:var(--grad);box-shadow:0 5px 14px rgba(79,70,229,.32);flex:none}.card-title{font-weight:700;font-size:16px;color:var(--ink)}.card-title:hover{text-decoration:none;color:var(--brand-700)}.dashline{height:1px;background:var(--line);margin:14px 0}.stat{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border-radius:10px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.stat b{font-size:16px}.stat span{font-size:12px;color:var(--muted)}.iconbtn{border:1px solid var(--line);background:#fff;color:var(--muted);width:30px;height:30px;border-radius:8px;cursor:pointer;display:grid;place-items:center;font-size:14px;transition:background .12s,color .12s,border-color .12s}.iconbtn:hover{background:#fef2f2;color:var(--bad);border-color:#fecaca}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid var(--brand-100);border-top-color:var(--brand);animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.notice{padding:12px 14px;border-radius:10px;font-size:14px}.notice.info{background:var(--brand-50);border:1px solid var(--brand-100)}.notice.warn{background:#fffbeb;border:1px solid #fde68a}.notice.bad{background:#fef2f2;border:1px solid #fecaca}.notice.good{background:#f0fdf4;border:1px solid #bbf7d0}.home-hero{position:relative;overflow:hidden;border-radius:20px;padding:58px 44px;margin-top:8px;background:linear-gradient(135deg,#eef2ff,#ecfeff);border:1px solid var(--line);box-shadow:var(--shadow)}.home-hero .inner{position:relative;z-index:2;max-width:660px}.blob{position:absolute;border-radius:50%;filter:blur(46px);z-index:1}.blob.b1{width:300px;height:300px;background:radial-gradient(circle,#818cf8,transparent 70%);opacity:.55;top:-90px;right:-30px;animation:float1 9s ease-in-out infinite}.blob.b2{width:240px;height:240px;background:radial-gradient(circle,#67e8f9,transparent 70%);opacity:.55;bottom:-100px;left:8%;animation:float2 12s ease-in-out infinite}.blob.b3{width:200px;height:200px;background:radial-gradient(circle,#6366f1,transparent 70%);opacity:.3;top:24%;right:32%;animation:float1 15s ease-in-out infinite reverse}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(-26px,22px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(22px,-20px)}}.shimmer-text{font-size:46px;font-weight:800;letter-spacing:-.03em;line-height:1.08;margin:0 0 14px;background:linear-gradient(100deg,#4338ca,#6366f1,#22d3ee,#6366f1,#4338ca);background-size:220% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 6s linear infinite}@keyframes shimmer{to{background-position:220%}}.pill-live{display:inline-flex;align-items:center;gap:7px;margin-bottom:16px;font-size:12px;font-weight:600;color:var(--brand-700);background:#fff;border:1px solid var(--brand-100);padding:5px 13px;border-radius:999px;box-shadow:var(--shadow)}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 0 rgba(22,163,74,.5);animation:pulse 1.8s infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px rgba(22,163,74,0)}to{box-shadow:0 0 0 0 rgba(22,163,74,0)}}.marquee{overflow:hidden;padding:14px 0;background:hsla(0,0%,100%,.55);border:1px solid var(--line);border-radius:12px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}.marquee-track{display:flex;gap:12px;width:max-content;animation:scroll-x 30s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.chip{white-space:nowrap;padding:7px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink);box-shadow:var(--shadow)}.chip .em{color:var(--brand-700)}@keyframes scroll-x{to{transform:translateX(-50%)}}.pipe{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.pipe-step{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);overflow:hidden}.pipe-step .n{width:30px;height:30px;border-radius:9px;background:var(--brand-50);color:var(--brand-700);font-weight:800;display:grid;place-items:center;margin-bottom:10px}.pipe-step:after{content:"";position:absolute;left:-60%;top:0;height:100%;width:45%;background:linear-gradient(90deg,transparent,rgba(99,102,241,.12),transparent);animation:sweep 3.6s ease-in-out infinite}@keyframes sweep{0%{left:-60%}60%,to{left:130%}}.feature-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:transform .18s,box-shadow .18s}.feature-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}.feature-ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:21px;background:var(--grad);color:#fff;box-shadow:0 6px 16px rgba(79,70,229,.3);margin-bottom:12px}.section-h{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--brand-700);margin:0 0 4px}.reveal{animation:rise .5s ease both}.cta-band{position:relative;overflow:hidden;border-radius:20px;padding:46px;text-align:center;color:#fff;background:var(--grad);box-shadow:var(--shadow-lg)}.cta-band:after{content:"";position:absolute;inset:0;background:radial-gradient(500px 200px at 80% 0,hsla(0,0%,100%,.22),transparent 60%)}.cta-band>*{position:relative;z-index:1}.cta-band h2{color:#fff;font-size:28px;margin:0 0 8px}.cta-band p{color:hsla(0,0%,100%,.92);margin:0 auto 22px;max-width:480px}.cta-band .btn{background:#fff;color:var(--brand-700);box-shadow:0 6px 18px rgba(0,0,0,.15)}.cta-band .btn:hover{background:#f2f4ff}.proj-hero{display:flex;align-items:center;gap:16px}.proj-hero .avatar{width:54px;height:54px;border-radius:15px;font-size:23px}.site-footer{margin-top:64px;border-top:1px solid var(--line);background:hsla(0,0%,100%,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr;grid-gap:32px;gap:32px;padding:42px 0 26px}.footer-brand-row{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;font-size:17px;margin-bottom:10px}.footer-tag{color:var(--muted);font-size:14px;max-width:320px;margin:0 0 14px}.footer-col h4{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 13px}.footer-col a,.footer-col span{display:block;color:var(--ink);font-size:14px;margin-bottom:9px;opacity:.85}.footer-col a:hover{color:var(--brand-700);opacity:1;text-decoration:none}.footer-social{display:flex;gap:10px}.footer-social a{width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;color:var(--muted);font-weight:700;font-size:13px;transition:color .12s,border-color .12s,transform .12s}.footer-social a:hover{color:var(--brand-700);border-color:var(--brand-100);transform:translateY(-2px)}.footer-bottom{border-top:1px solid var(--line);padding:16px 0 24px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--muted)}.bg-fx{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.bg-fx .orb{position:absolute;border-radius:50%;filter:blur(64px);opacity:.62;will-change:transform}.bg-fx .o1{width:44vw;height:44vw;background:radial-gradient(circle,#818cf8,transparent 66%);top:-10vw;left:-6vw;animation:drift1 24s ease-in-out infinite}.bg-fx .o2{width:40vw;height:40vw;background:radial-gradient(circle,#22d3ee,transparent 66%);bottom:-12vw;right:-4vw;animation:drift2 30s ease-in-out infinite}.bg-fx .o3{width:36vw;height:36vw;background:radial-gradient(circle,#d8b4fe,transparent 66%);top:30%;left:42%;opacity:.5;animation:drift3 34s ease-in-out infinite}@keyframes drift1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(12vw,9vw) scale(1.18)}}@keyframes drift2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-11vw,-8vw) scale(1.12)}}@keyframes drift3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-9vw,6vw) scale(1.15)}66%{transform:translate(8vw,-6vw) scale(.92)}}@media (prefers-reduced-motion:reduce){.bg-fx .orb,.blob,.marquee-track,.pipe-step:after,.pulse-dot,.reveal,.shimmer-text,body{animation:none!important}}@media (max-width:760px){.pipe{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width:640px){.grid.cols-2,.grid.cols-3{grid-template-columns:1fr}.hero-title{font-size:27px}.shimmer-text{font-size:32px}.home-hero{padding:40px 24px}.footer-grid{grid-template-columns:1fr;gap:24px}.cta-band{padding:34px 22px}}