@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f639721981034f88-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/9766a7e9e2e0ad5a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b66cf8e69499582a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/aa016aab0e6d1295-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/22a5144ee8d83bca-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Fallback;src:local("Arial");ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.00%;size-adjust:104.76%}.__className_246ccd{font-family:Geist,Geist Fallback;font-style:normal}.__variable_246ccd{--font-sans:"Geist","Geist Fallback"}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/013b72fa676f92e0-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/b9408752a0c24fb9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/65f03d54ccadf4a8-s.woff2) format("woff2");unicode-range:u+2000-2001,u+2004-2008,u+200a,u+23b8-23bd,u+2500-259f}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e038a29029a234f2-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/2b5b02fc7e511755-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/7d4881bb7e1bf84d-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Geist Mono Fallback;src:local("Arial");ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.00%;size-adjust:134.59%}.__className_c29908{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.__variable_c29908{--font-mono:"Geist Mono","Geist Mono Fallback"}:root{--bg:#ffffff;--bg-panel:#ffffff;--bg-inset:#f4f5f8;--border:#e7e8ee;--border-hover:#d3d5de;--text:#14161c;--dim:#4b5260;--faint:#697080;--accent:#2563eb;--accent-soft:#3b82f6;--accent-contrast:#ffffff;--link:#2563eb;--st-live:#16a34a;--st-building:#d97706;--st-deploying:#d97706;--st-queued:#64748b;--st-failed:#dc2626;--st-stopped:#8a90a0;--st-rolled_back:#9333ea;--header-bg:rgba(255,255,255,0.75);--shadow-card:0 1px 2px rgba(16,24,40,0.05),0 2px 8px rgba(16,24,40,0.06);--shadow-card-hover:0 12px 32px rgba(16,24,40,0.12);--bg-wash:radial-gradient(900px 480px at 12% -12%,rgba(99,102,241,0.12),transparent 62%),radial-gradient(820px 440px at 88% -14%,rgba(236,72,153,0.09),transparent 62%),radial-gradient(700px 420px at 50% 118%,rgba(37,99,235,0.07),transparent 60%);--sans:var(--font-sans),system-ui,"Segoe UI",sans-serif;--mono:var(--font-mono),ui-monospace,Consolas,Menlo,monospace}:root[data-theme=dark]{--bg:#0a0a0a;--bg-panel:#111113;--bg-inset:#0d0d0f;--border:#26262a;--border-hover:#3f3f46;--text:#f2f2f2;--dim:#b8b8c0;--faint:#94949e;--accent:#a78bfa;--accent-soft:#c4b5fd;--accent-contrast:#16111f;--link:var(--accent-soft);--st-live:#4ade80;--st-building:#f5c542;--st-deploying:#f5c542;--st-queued:#9aa4b2;--st-failed:#f26d6d;--st-stopped:#71717a;--st-rolled_back:#f472b6;--header-bg:rgba(10,10,10,0.8);--shadow-card:none;--shadow-card-hover:0 6px 24px rgba(0,0,0,0.25);--bg-wash:none}*{box-sizing:border-box}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}body{margin:0;min-height:100vh;background:var(--bg-wash),var(--bg);background-attachment:fixed;color:var(--text);font-family:var(--sans);font-size:14.5px;line-height:1.6;-webkit-font-smoothing:antialiased}.card-repo,.card-url,.logs,.mono,.new-project input,.new-project select,dl.meta dd,table.data td{font-family:var(--mono);font-size:13px}:focus-visible{outline:2px solid var(--link);outline-offset:2px}a{color:var(--text);text-decoration:none}a:hover{color:var(--link)}.container{max-width:1000px;margin:0 auto;padding:32px 24px 110px}.site{position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--header-bg);border-bottom:1px solid var(--border)}.site-inner{max-width:1000px;margin:0 auto;padding:14px 24px;display:flex;align-items:baseline;gap:12px}.brand{font-weight:600;font-size:15px;letter-spacing:-.01em}.brand:before{content:"▼ ";font-size:13px;color:var(--accent)}.tagline{color:var(--dim);font-size:13px}.site-side{margin-left:auto;color:var(--dim);font-size:12.5px}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;color:var(--dim);background:transparent;border:1px solid var(--border);border-radius:6px;cursor:pointer;align-self:center;transition:color .15s ease-out,border-color .15s ease-out}.theme-toggle:hover{color:var(--accent);border-color:var(--border-hover)}.icon-label{display:inline-flex;align-items:center;gap:6px}.icon-label svg{flex-shrink:0}@media (max-width:560px){.site-side{display:none}}h1{font-size:24px;font-weight:650;letter-spacing:-.02em;margin:0 0 4px}h2{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:48px 0 14px}.muted{color:var(--dim)}.faint{color:var(--faint)}.error-text{color:var(--st-failed)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-head p{margin:0;color:var(--dim);overflow-wrap:anywhere}.activity-banner{display:flex;align-items:center;gap:12px;margin:0 0 22px;padding:12px 18px;background:color-mix(in srgb,var(--st-building) 9%,var(--bg-panel));border:1px solid color-mix(in srgb,var(--st-building) 40%,var(--border));border-radius:10px;font-size:13.5px;text-decoration:none;transition:border-color .15s ease-out}.activity-banner:hover{color:inherit;border-color:var(--st-building)}.activity-banner .activity-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.activity-banner .activity-cta{margin-left:auto;flex-shrink:0;color:var(--st-building);font-weight:500}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));grid-gap:12px;gap:12px;margin:0 0 36px}.stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px 12px;box-shadow:var(--shadow-card)}.stat .stat-value{font-size:24px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.stat .stat-label{color:var(--faint);font-size:12px;margin-top:2px}.stat.stat-live .stat-value{color:var(--st-live)}.stat.stat-failed .stat-value{color:var(--st-failed)}.stat.stat-accent .stat-value{color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:14px;gap:14px}.card{display:flex;flex-direction:column;gap:9px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--shadow-card);transition:border-color .15s ease-out,transform .15s ease-out,box-shadow .15s ease-out}.card:hover{border-color:var(--border-hover);transform:translateY(-1px);box-shadow:var(--shadow-card-hover)}@media (prefers-reduced-motion:reduce){.card:hover{transform:none}}.card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px}.card-top-side{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.card .icon-label{min-width:0}.card .icon-label .t{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-name{font-size:16px;font-weight:600;letter-spacing:-.01em}.card-repo{color:var(--dim)}.card-repo,.card-url{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-url{color:var(--link)}.card-url:hover{text-decoration:underline;text-underline-offset:3px}.repo-pill{align-self:flex-start;max-width:100%;color:var(--dim);background:var(--bg-inset);border:1px solid var(--border);border-radius:999px;padding:3px 12px;font-size:12.5px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s ease-out,border-color .15s ease-out}.repo-pill:hover{color:var(--text);border-color:var(--border-hover)}.card-commit{margin-top:2px;display:flex;flex-direction:column;gap:2px;min-width:0}.card-commit-msg{font-size:13px;font-weight:500;min-width:0}.card-commit-msg .trunc-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-commit-when{color:var(--faint);font-size:12.5px}.card-actions{margin-top:auto;padding-top:14px;border-top:1px solid var(--border)}.card-commit{padding-top:2px}.modal-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal{width:100%;max-width:420px;background:var(--bg-panel);border:1px solid var(--border-hover);border-radius:10px;padding:22px 24px;box-shadow:0 20px 60px rgba(0,0,0,.45);text-align:left;cursor:default}.modal h3{margin:0 0 8px;font-size:16px;font-weight:600;letter-spacing:-.01em}.modal p{margin:0 0 18px;color:var(--dim);font-size:13.5px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-form{gap:12px}.modal-form,.modal-form label{display:flex;flex-direction:column}.modal-form label{gap:5px;color:var(--dim);font-size:12.5px;font-weight:500}.modal-form input{font-family:var(--mono);font-size:13px;color:var(--text);background:var(--bg-inset);border:1px solid var(--border-hover);border-radius:6px;padding:8px 10px}.modal-form input:focus{outline:none;border-color:var(--accent)}.modal-form .form-error{margin:0;color:var(--st-failed);font-size:13px}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;color:var(--faint);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer;transition:color .15s ease-out,border-color .15s ease-out}.icon-btn:hover{color:var(--accent);border-color:var(--border-hover)}.head-actions{display:flex;align-items:center;gap:10px}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;padding:4px 18px;box-shadow:var(--shadow-card)}.panel-pad{padding:18px}.table-wrap{overflow-x:auto}table.data{width:100%;border-collapse:collapse;font-size:13px}table.data th{text-align:left;font-weight:500;color:var(--faint);font-size:12px;padding:12px 16px 10px 0;white-space:nowrap}table.data td,table.data th{border-bottom:1px solid var(--border)}table.data td{padding:12px 16px 12px 0;vertical-align:middle;overflow-wrap:anywhere}table.data tbody tr:last-child td{border-bottom:none}table.data td:last-child,table.data th:last-child{padding-right:0;text-align:right;white-space:nowrap}@media (max-width:680px){.col-optional{display:none}}.trunc{display:inline-block;max-width:min(420px,80vw);overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.badge,.trunc{white-space:nowrap}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500}.badge:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.st-live{color:var(--st-live)}.st-building{color:var(--st-building)}.st-deploying{color:var(--st-deploying)}.st-queued{color:var(--st-queued)}.st-failed{color:var(--st-failed)}.st-stopped{color:var(--st-stopped)}.st-rolled_back{color:var(--st-rolled_back)}.st-building:before,.st-deploying:before,.st-queued:before{animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.st-building:before,.st-deploying:before,.st-queued:before{animation:none}}.btn{font-family:var(--sans);font-size:13px;font-weight:500;color:var(--dim);background:transparent;border:1px solid var(--border-hover);border-radius:6px;padding:6px 14px;cursor:pointer;transition:background-color .15s ease-out,color .15s ease-out,border-color .15s ease-out}.btn:hover:not(:disabled){color:var(--text);border-color:var(--dim)}.btn:disabled{color:var(--faint);border-color:var(--border);cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.btn-primary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-contrast)}.btn-primary:disabled{background:var(--border);border-color:var(--border);color:var(--faint)}.btn-danger{color:var(--st-failed);border-color:rgba(242,109,109,.4)}.btn-danger:hover:not(:disabled){background:var(--st-failed);border-color:var(--st-failed);color:var(--bg)}.actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.actions .error-text{font-size:12.5px}.new-project{display:flex;flex-wrap:wrap;gap:14px 16px;align-items:flex-end}.new-project label{display:flex;flex-direction:column;gap:6px;color:var(--dim);font-size:12.5px;font-weight:500;min-width:0}.new-project input,.new-project select{color:var(--text);background:var(--bg-inset);border:1px solid var(--border-hover);border-radius:6px;padding:8px 10px;max-width:100%}.new-project input::placeholder{color:var(--faint)}.new-project input:focus,.new-project select:focus{outline:none;border-color:var(--link)}.new-project .grow-field{flex:1 1 280px}.new-project .form-error{flex-basis:100%;margin:0;color:var(--st-failed)}dl.meta{display:grid;grid-template-columns:max-content 1fr;grid-gap:8px 24px;gap:8px 24px;margin:0}dl.meta dt{color:var(--faint);font-size:12.5px;align-self:baseline;padding-top:2px}dl.meta dd{margin:0;overflow-wrap:anywhere}@media (max-width:560px){dl.meta{grid-template-columns:1fr;gap:2px}dl.meta dd{margin-bottom:8px}}.login-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center}.login-card{width:100%;max-width:380px;background:var(--bg-panel);border:1px solid var(--border);border-radius:14px;padding:30px 32px;box-shadow:var(--shadow-card-hover)}.login-card h1{margin-bottom:8px}.login-card .brand-mark{color:var(--accent)}.login-card p{margin:0 0 20px;font-size:13.5px}.login-form{gap:14px}.login-form,.login-form label{display:flex;flex-direction:column}.login-form label{gap:6px;color:var(--dim);font-size:12.5px;font-weight:500}.login-form input{font-family:var(--mono);font-size:14px;color:var(--text);background:var(--bg-inset);border:1px solid var(--border-hover);border-radius:6px;padding:10px 12px}.login-form input:focus{outline:none;border-color:var(--accent)}.login-form .form-error{margin:0;color:var(--st-failed);font-size:13px}.login-form .btn{align-self:stretch;padding:9px 16px}.login-form .btn .icon-label{justify-content:center;width:100%}.term{background:var(--bg-inset);border:1px solid var(--border);border-radius:8px;overflow:hidden}.term-bar{padding:8px 14px;background:var(--bg-panel);border-bottom:1px solid var(--border);color:var(--faint);font-family:var(--mono);font-size:12px}.logs{padding:14px 16px;max-height:62vh;overflow-y:auto;line-height:1.6}.logs .line{white-space:pre-wrap;overflow-wrap:anywhere}.logs .line.stderr{color:var(--st-failed)}.logs .line.system{color:var(--dim)}.logs .line.system:before{content:"==> ";color:var(--faint)}.logs .waiting{color:var(--faint)}.logs .waiting:after{content:"▌";animation:pulse 1.1s steps(2) infinite}