@font-face{font-family:Geist;src:url(/fonts/geist-variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(/fonts/geist-mono-variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}:root{--font-text: "Geist", system-ui, -apple-system, "Segoe UI", sans-serif;--font-code: "Geist Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--bg: #eef4f9;--panel: #ffffff;--surface: #f6fafd;--ink: #18181b;--ink-2: #27272a;--ink-3: #3f3f46;--text: #52525b;--muted: #71717a;--faint: #a1a1aa;--line: #e3ebf1;--line-soft: #edf2f7;--line-faint: #f1f6fa;--line-row: #f4f8fb;--accent: #0c82cf;--accent-dark: #0a6bad;--accent-soft: #e6f4fc;--accent-faint: #f4fbfe;--accent-border: #bfe3f6;--accent-dashed: #9ad2ef;--good: #16a34a;--good-bg: #f0faf3;--bad: #e01e2b;--bad-text: #c0151f;--bad-bg: #fef2f2;--bad-border: #fbd5d7;--warn: #f59e0b;--warn-bg: #fffbeb;--warn-border: #fde68a;--blue: #2563eb;--blue-bg: #eff4ff;--radius: 8px;--radius-lg: 9px;--radius-card: 12px;--radius-panel: 14px;--sidebar: 248px;--sidebar-collapsed: 72px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-text);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}::selection{background:var(--accent-border)}a{color:var(--accent-dark);text-decoration:none}a:hover{text-decoration:underline}code,pre,.mono{font-family:var(--font-code);font-size:12.5px}pre{background:var(--ink);color:#f4f4f5;padding:12px 14px;border-radius:var(--radius);overflow-x:auto;line-height:1.6}h1{font-size:30px;font-weight:600;letter-spacing:-.02em;margin:0 0 24px}h2{font-size:15px;font-weight:600;margin:0}h3{font-size:13.5px;font-weight:600;margin:16px 0 6px;color:var(--ink-2)}p{margin:0 0 10px}.muted{color:var(--muted)}p.muted[aria-busy=true]{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:28px 24px;font-size:13.5px}.error{color:var(--bad-text)}p.error[role=alert]{font-size:12.5px;background:var(--bad-bg);border:1px solid var(--bad-border);border-radius:var(--radius);padding:9px 11px;line-height:1.45}.empty{border:1.5px dashed var(--accent-dashed);border-radius:var(--radius-panel);background:var(--accent-faint);padding:40px 32px;text-align:center;font-size:14px;color:var(--muted);line-height:1.55}.shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:100vh}.shell.collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:22px 16px;display:flex;flex-direction:column;gap:3px;position:sticky;top:0;height:100vh;overflow-y:auto;transition:width .18s ease}.collapsed .sidebar{padding:22px 12px;align-items:center}.sidebar-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 0 18px}.collapsed .sidebar-top{flex-direction:column;gap:12px}.sidebar .brand{display:flex;align-items:center;gap:11px;padding:6px 10px 6px 4px;color:inherit;font-size:15px;font-weight:600;letter-spacing:-.01em}.sidebar .brand:hover{text-decoration:none}.sidebar .brand img{width:30px;height:30px;border-radius:var(--radius);object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.icon-btn{flex:none;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);color:var(--muted);cursor:pointer;padding:0;font:inherit}.icon-btn:hover{background:var(--surface)}.sidebar nav{display:flex;flex-direction:column;gap:3px}.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 11px;border-radius:var(--radius-lg);border:none;background:transparent;color:var(--text);font:inherit;font-size:13.5px;font-weight:500;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.nav-item:hover{background:var(--surface);text-decoration:none}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 2px 0 0 var(--accent)}.nav-item .nav-icon{width:18px;height:18px;flex:none;display:flex;align-items:center;justify-content:center}.nav-item .nav-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.collapsed .nav-item{justify-content:center;padding:9px 0;width:44px}.nav-item .nav-hint{font-size:11px;color:var(--faint)}.sidebar-section{padding:8px 10px 2px}.sidebar-label{font-family:var(--font-code);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--faint);margin-bottom:7px;display:flex;align-items:center;justify-content:space-between}.sidebar select{width:100%;font:inherit;font-size:12.5px;font-weight:500;color:var(--ink);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:8px 10px;cursor:pointer}.twin-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text);padding:8px 10px 2px}.twin-row .light{margin-right:0}.pill-btn{font:inherit;border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:3px 9px;font-size:11.5px;font-weight:600;color:var(--accent);cursor:pointer}.pill-btn:disabled{color:var(--faint);cursor:default}.upgrade-btn{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:9px 11px;border-radius:var(--radius-lg);background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;transition:background .16s ease}.upgrade-btn:hover{background:var(--accent-dark);text-decoration:none}.collapsed .upgrade-btn{width:44px;padding:9px 0}.sidebar-foot{border-top:1px solid var(--line-soft);padding-top:12px;margin-top:14px;display:flex;flex-direction:column;gap:4px}.sidebar-foot .email{font-family:var(--font-code);font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 4px}.sidebar-foot .signout{display:flex;align-items:center;gap:9px;border:none;background:transparent;border-radius:var(--radius);padding:7px 4px;font-family:var(--font-code);font-size:13px;color:var(--text);cursor:pointer;text-align:left}.sidebar-foot .signout:hover{background:var(--line-soft);color:var(--ink)}.collapsed .sidebar .hide-collapsed{display:none}.main{padding:40px 48px 64px;max-width:1080px;width:100%;margin:0 auto}.public{max-width:960px;margin:0 auto;padding:24px 28px 48px}.hero{padding:48px 0}.hero h1{font-size:36px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);padding:18px 20px;margin-bottom:20px;transition:border-color .18s ease,box-shadow .18s ease}.card>.card-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px 12px;margin:-18px -20px 16px;padding:16px 20px;border-bottom:1px solid var(--line-soft)}.card-actions{display:flex;gap:8px;flex-wrap:wrap}.card .card{background:var(--surface)}.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-bottom:24px}.two{display:grid;gap:16px;grid-template-columns:1fr 1fr}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.btn{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:8px 14px;border-radius:var(--radius);cursor:pointer;font:inherit;font-size:13.5px;font-weight:500;transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .13s ease}.btn:hover{background:var(--surface);border-color:#d6e2ec;text-decoration:none}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.btn-primary:hover{background:var(--accent-dark);border-color:var(--accent-dark)}.btn-danger{color:var(--bad-text);border-color:var(--bad-border);background:var(--panel)}.btn-danger:hover{background:var(--bad-bg);border-color:var(--bad-border)}.confirm{display:inline-flex;gap:8px;align-items:center}.pill{display:inline-block;font-family:var(--font-code);font-size:11.5px;padding:3px 9px;border-radius:6px;background:var(--line-faint);color:var(--muted)}.pill-good{background:var(--good-bg);color:var(--good)}.pill-bad{background:var(--bad-bg);color:var(--bad)}.pill-warn{background:var(--warn-bg);color:#b45309}.pill-muted{color:var(--faint)}.badge{margin-left:6px;font-family:var(--font-code);background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:1px 7px;font-size:10.5px}.field{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}.field-label{font-size:12.5px;font-weight:600;color:var(--ink-3)}.field-hint{font-size:12px;color:var(--muted)}.input{font:inherit;font-size:13.5px;color:var(--ink-2);padding:9px 12px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);width:100%;outline:none;transition:border-color .16s ease}.input:focus{border-color:var(--accent-border);background:var(--panel)}.input::placeholder{color:var(--faint)}textarea.input{font-family:var(--font-code);font-size:12.5px}.table-wrap{overflow-x:auto;margin:0 -20px}.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;padding:12px 20px;border-bottom:1px solid var(--line-row);vertical-align:middle;font-size:13px}.table th{font-family:var(--font-code);font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);border-bottom-color:var(--line-faint)}.table tr:last-child td{border-bottom:none}.table td .btn{padding:5px 10px;font-size:12.5px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px}.tab{border:none;background:none;padding:8px 12px;cursor:pointer;font:inherit;font-size:13.5px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s ease}.tab:hover{color:var(--ink-2)}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.stat{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);padding:20px}.stat-label{font-family:var(--font-code);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:14px}.stat-value{font-size:30px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.stat-sub{font-size:12.5px;color:var(--faint);margin-top:10px}.stat-good .stat-sub{color:var(--good)}.stat-bad .stat-sub{color:var(--bad)}.stat-warn .stat-sub{color:#b45309}.meter{height:6px;background:var(--line-soft);border-radius:3px;overflow:hidden}.meter>span{display:block;height:100%;background:var(--accent)}.meter.near>span{background:var(--warn)}.light{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--faint);margin-right:6px;flex:none}.light-good{background:var(--good);animation:pulse 2s ease-in-out infinite}.light-warn{background:var(--warn);animation:pulse 2s ease-in-out infinite}.light-bad{background:var(--bad)}.log{background:var(--ink);color:#d4d4d8;padding:12px 14px;border-radius:var(--radius);max-height:320px;overflow:auto;font-family:var(--font-code);font-size:12px;line-height:1.6}.log .stage{color:#7dd3fc}.log .warn{color:#fcd34d}.log .error{color:#fca5a5}.trail{display:flex;flex-direction:column;gap:8px}.bubble{padding:10px 14px;border-radius:var(--radius-card);background:var(--panel);border:1px solid var(--line);max-width:720px;font-size:13.5px;line-height:1.55}.bubble.you{background:var(--accent-soft);border-color:var(--accent-border);align-self:flex-end}.composer{display:flex;gap:8px;margin-top:12px}.composer .input{flex:1}.graph{width:100%;height:420px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card)}.graph text{font-family:var(--font-text);font-size:12px}.wall{max-width:400px;margin:56px auto 40px}.wall>h1{text-align:center;font-size:22px;margin-bottom:18px}.wall .card{padding:30px 32px;box-shadow:0 4px 24px #0000000d}.wall .btn-primary{width:100%;padding:11px 16px}.diff-add{color:var(--good)}.diff-del{color:var(--bad)}.ph-no-capture{font-family:var(--font-code)}@media(max-width:768px){.shell,.shell.collapsed{grid-template-columns:1fr}.sidebar{position:static;height:auto}.two{grid-template-columns:1fr}.main{padding:20px 16px 40px}.public{padding:16px 16px 40px}}.auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg);padding:24px}.auth-column{width:100%;max-width:380px}.auth-back{font-size:12.5px;font-weight:500;color:var(--muted)}.auth-back:hover{color:var(--ink-2);text-decoration:none}.auth-card{width:100%;max-width:380px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:0 4px 24px #0000000d;padding:34px 32px}.auth-card.wide{max-width:460px}.auth-tabs{display:flex;gap:4px;margin:-6px 0 20px;padding:3px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}.auth-tabs a{flex:1;text-align:center;padding:6px 4px;border-radius:7px;font-size:12.5px;font-weight:500;color:var(--muted);white-space:nowrap}.auth-tabs a:hover{color:var(--ink-2);text-decoration:none}.auth-tabs a.active{background:var(--panel);color:var(--ink);font-weight:600;box-shadow:0 1px 2px #0000000f}.auth-card .two{gap:0 12px}.auth-card .card,.auth-card .card:hover{border:none;box-shadow:none;padding:0;margin:0;background:transparent}.auth-card .card .btn-primary{width:100%;padding:12px 16px;font-size:14px}.auth-logo{display:flex;align-items:center;justify-content:center;gap:11px;margin-bottom:26px;font-size:17px;font-weight:600;letter-spacing:-.01em}.auth-logo img{width:34px;height:34px;border-radius:var(--radius);object-fit:cover;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.auth-title{font-size:15px;font-weight:600;letter-spacing:0;text-align:center;margin:0 0 16px}.auth-text{font-size:13.5px;line-height:1.55;margin-bottom:18px}.auth-choice{position:relative}.auth-choice .btn{width:100%;padding:11px 16px;display:flex;align-items:center;justify-content:center}.auth-choice .btn-primary{padding:12px 16px;font-size:14px}.last-used{position:absolute;top:-8px;right:10px;z-index:1;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:999px;background:var(--accent);color:#fff;box-shadow:0 1px 4px #00000026;pointer-events:none}.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--faint);font-size:12px}.auth-divider span{flex:1;height:1px;background:var(--line-soft)}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form .input{padding:11px 13px}.auth-form .field{margin-bottom:0}.auth-row-end{display:flex;justify-content:flex-end;margin-top:-4px}.auth-link{border:none;background:transparent;padding:0;font:inherit;font-size:12.5px;font-weight:500;color:var(--accent);cursor:pointer}.auth-link:hover{text-decoration:underline}.auth-notice{font-size:12.5px;color:var(--good);background:var(--good-bg);border-radius:var(--radius);padding:9px 11px;line-height:1.45;margin:0}.auth-foot{margin:18px 0 0;text-align:center;font-size:13px;color:var(--muted)}.site{font-family:Geist,system-ui,sans-serif;background:#fff;color:#18181b;-webkit-font-smoothing:antialiased}.site .mono{font-family:Geist Mono,ui-monospace,monospace}.site ::selection{background:#bfe3f6}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.hero-enter{animation:fadeUp .65s cubic-bezier(.16,1,.3,1) both;animation-delay:var(--enter-delay, 0s)}html.anim .reveal{opacity:0;transform:translateY(16px)}html.anim .reveal.is-visible{opacity:1;transform:none;transition:opacity .55s ease,transform .55s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay, 0s)}.btn-anim{transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .13s ease}.btn-anim:active:not(:disabled){transform:scale(.98)}@keyframes glintSweep{0%{transform:translate(-130%) skew(-18deg)}to{transform:translate(330%) skew(-18deg)}}.btn-glint{position:relative;overflow:hidden}.btn-glint:after{content:"";position:absolute;top:-2px;bottom:-2px;left:0;width:55%;background:linear-gradient(105deg,transparent 15%,var(--glint-color, rgba(255, 255, 255, .5)) 50%,transparent 85%);transform:translate(-130%) skew(-18deg);pointer-events:none}.btn-glint:hover:after{animation:glintSweep .5s ease}.mirror-floor{height:1px;max-width:560px;margin:26px auto 0;background:linear-gradient(90deg,#9fc6e400,#0c82cf61 30%,#bfe3f6,#0c82cf61 70%,#9fc6e400)}.hero-reflect{overflow:hidden;pointer-events:none;user-select:none;-webkit-user-select:none;margin-top:6px;-webkit-mask-image:linear-gradient(180deg,#000 35%,transparent 96%);mask-image:linear-gradient(180deg,#000 35%,transparent 96%)}.hero-reflect>*{transform:scaleY(-.92);opacity:.26;filter:blur(1.3px);-webkit-mask-image:linear-gradient(180deg,transparent 12%,#000 88%);mask-image:linear-gradient(180deg,transparent 12%,#000 88%)}.landing-backdrop{position:absolute;top:0;left:0;right:0;height:min(1240px,165vh);overflow:hidden;pointer-events:none;z-index:0;background:radial-gradient(900px 480px at 50% 250px,rgba(159,220,255,.2),transparent 70%),linear-gradient(180deg,#eaf6fd,#f7fcff 36%,#fff 64%);-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 100%);mask-image:linear-gradient(180deg,#000 72%,transparent 100%)}.landing-backdrop:before{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 1200'%3E%3Cg fill='none' stroke='%230C82CF' stroke-width='2'%3E%3Crect x='640' y='480' width='320' height='240' rx='6' opacity='.022'/%3E%3Crect x='520' y='390' width='560' height='420' rx='8' opacity='.034'/%3E%3Crect x='400' y='300' width='800' height='600' rx='10' opacity='.046'/%3E%3Crect x='280' y='210' width='1040' height='780' rx='12' opacity='.056'/%3E%3Crect x='160' y='120' width='1280' height='960' rx='14' opacity='.064'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center -330px;background-size:1600px 1200px;-webkit-mask-image:radial-gradient(1150px 660px at 50% 260px,#000 45%,transparent 84%);mask-image:radial-gradient(1150px 660px at 50% 260px,#000 45%,transparent 84%)}@media(max-width:768px){.landing-backdrop:before{display:none}}@keyframes marqueeScroll{to{transform:translate(-50%)}}.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent)}.marquee-track{display:flex;width:max-content;animation:marqueeScroll var(--marquee-duration, 42s) linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes flowDash{to{stroke-dashoffset:-24}}.flow-dash{stroke-dasharray:4 8;animation:flowDash 1.1s linear infinite}.flow-pulse{animation:pulse 3.4s ease-in-out infinite}.foot-link{font-size:13.5px;color:#52525b;text-decoration:none;transition:color .15s ease}.foot-link:hover{color:#0a6bad}.fog-band{position:relative;background:linear-gradient(180deg,#f0f8fe00,#eff7fd 15%,#eaf4fc,#eff7fd 85%,#f0f8fe00)}.fog-band:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(760px 320px at 50% 0%,rgba(159,220,255,.16),transparent 70%)}.lift-card{transition:transform .24s cubic-bezier(.16,1,.3,1),box-shadow .24s ease,border-color .18s ease;box-shadow:0 2px 12px #00000008}.price-card{transition:transform .26s cubic-bezier(.16,1,.3,1),box-shadow .26s ease,border-color .18s ease;box-shadow:0 2px 12px #00000008}.price-card--featured{box-shadow:0 20px 48px #0c82cf2e}.price-mark{display:inline-block}.yc-badge{transition:border-color .18s ease,box-shadow .18s ease}@media(min-width:769px){.yc-badge:hover{border-color:#bfe3f6;box-shadow:0 6px 16px #0c82cf1f}.lift-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0c82cf1a;border-color:#d6e2ec}.price-card--featured{transform:scale(1.06)}.price-card:hover{transform:translateY(-8px);box-shadow:0 20px 44px #0c82cf26;border-color:#bfe3f6}.price-card--featured:hover{transform:scale(1.06) translateY(-10px);box-shadow:0 30px 64px #0c82cf42}}img[src*="logo-128.png"]{user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none;pointer-events:none}@media(prefers-reduced-motion:reduce){.hero-enter,.marquee-track,.flow-dash,.flow-pulse{animation:none}html.anim .reveal{opacity:1;transform:none;transition:none}.btn-anim,.lift-card,.price-card,.price-mark,.yc-badge{transition:none}.btn-anim:active:not(:disabled){transform:none}.btn-glint:hover:after{animation:none}}
