:root{--bg: #09090f;--surface: #12121a;--surface-2: #1a1a26;--border: #242436;--border-2: #2e2e46;--text: #e1e1f0;--text-muted: #6b6b8f;--text-dim: #3a3a5a;--primary: #6366f1;--primary-light: #818cf8;--primary-glow: rgba(99, 102, 241, .12);--primary-glow-strong: rgba(99, 102, 241, .22);--green: #22c55e;--green-dim: rgba(34, 197, 94, .15);--yellow: #eab308;--blue: #60a5fa;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Cascadia Code", "Fira Code", ui-monospace, monospace;--radius: 8px;--radius-lg: 12px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;scroll-behavior:smooth}body{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.6;overflow-x:hidden}.grid-bg{position:fixed;inset:0;background-image:radial-gradient(circle,var(--border-2) 1px,transparent 1px);background-size:36px 36px;opacity:.45;pointer-events:none;z-index:0}.grid-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 100% 55% at 50% 0%,transparent 0%,var(--bg) 70%)}.glow{position:fixed;top:15%;left:50%;transform:translate(-50%);width:800px;height:500px;background:radial-gradient(ellipse,var(--primary-glow) 0%,transparent 65%);pointer-events:none;z-index:0}.container{position:relative;z-index:1;max-width:680px;margin:0 auto;padding:88px 24px 64px;display:flex;flex-direction:column;gap:56px}.header{text-align:center}.logo{display:inline-flex;align-items:center;gap:2px;font-family:var(--font-mono);font-size:2rem;font-weight:500;letter-spacing:-.02em;margin-bottom:12px}.logo-bracket{color:var(--text-dim)}.logo-text{background:linear-gradient(135deg,var(--text) 0%,var(--primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tagline{color:var(--text-muted);font-size:.875rem;letter-spacing:.01em}.terminal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:0 20px 60px #0009,0 0 0 1px var(--border),0 0 80px var(--primary-glow)}.terminal-header{display:flex;align-items:center;gap:6px;padding:12px 16px;background:var(--surface-2);border-bottom:1px solid var(--border)}.dot{width:12px;height:12px;border-radius:50%}.dot-red{background:#ff5f57}.dot-yellow{background:#febc2e}.dot-green{background:#28c840}.terminal-title{margin-left:8px;font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.terminal-body{padding:20px;min-height:240px;max-height:300px;overflow-y:auto;font-family:var(--font-mono);font-size:.8125rem;line-height:1.75;scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}.terminal-body::-webkit-scrollbar{width:4px}.terminal-body::-webkit-scrollbar-track{background:transparent}.terminal-body::-webkit-scrollbar-thumb{background:var(--border-2);border-radius:2px}.t-line{white-space:pre-wrap;min-height:1lh}.t-cmd{color:var(--text)}.t-prompt{color:var(--primary);user-select:none}.t-empty{height:.75em}.t-success{color:var(--green)}.t-muted{color:var(--text-muted)}.t-progress,.t-warn{color:var(--yellow)}.t-pending{color:var(--blue)}.cursor{display:none;color:var(--primary);font-family:var(--font-mono);font-size:.8125rem;animation:blink 1s step-end infinite}.cursor.visible{display:inline}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}.section-label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);margin-bottom:20px;letter-spacing:.05em}.progress-list{display:flex;flex-direction:column;gap:18px}.progress-meta{display:flex;justify-content:space-between;margin-bottom:8px}.progress-label{font-size:.875rem;color:var(--text)}.progress-pct{font-family:var(--font-mono);font-size:.8125rem;color:var(--text-muted)}.progress-track{height:4px;background:var(--surface-2);border-radius:99px;overflow:hidden;border:1px solid var(--border)}.progress-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--primary) 0%,var(--primary-light) 100%);transition:width 1.4s cubic-bezier(.4,0,.2,1);box-shadow:0 0 10px var(--primary-glow-strong)}.notify-section{text-align:center}.notify-title{font-size:1.25rem;font-weight:600;color:var(--text);margin-bottom:6px}.notify-sub{font-size:.875rem;color:var(--text-muted);margin-bottom:24px}.notify-form{display:flex;gap:8px;max-width:420px;margin:0 auto}.notify-input{flex:1;height:44px;padding:0 14px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius);color:var(--text);font-family:var(--font-sans);font-size:.875rem;outline:none;transition:border-color .15s,box-shadow .15s}.notify-input::placeholder{color:var(--text-dim)}.notify-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow-strong)}.notify-btn{height:44px;padding:0 20px;background:var(--primary);border:none;border-radius:var(--radius);color:#fff;font-family:var(--font-sans);font-size:.875rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:background .15s,transform .1s,box-shadow .15s}.notify-btn:hover{background:var(--primary-light);box-shadow:0 0 24px var(--primary-glow-strong)}.notify-btn:active{transform:scale(.98)}.btn-arrow{transition:transform .15s}.notify-btn:hover .btn-arrow{transform:translate(3px)}.notify-success{display:flex;align-items:center;justify-content:center;gap:10px;height:44px;color:var(--green);font-size:.875rem}.success-icon{width:22px;height:22px;background:var(--green-dim);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}.footer{display:flex;align-items:center;justify-content:center;gap:12px;font-size:.8125rem;color:var(--text-muted);padding-bottom:8px}.footer-link{color:var(--text-muted);text-decoration:none;display:flex;align-items:center;gap:5px;transition:color .15s}.footer-link:hover{color:var(--text)}.footer-sep{color:var(--text-dim)}@media(max-width:480px){.container{padding:60px 16px 48px;gap:44px}.logo{font-size:1.5rem}.notify-form{flex-direction:column}.notify-btn{width:100%;justify-content:center}}@media(prefers-reduced-motion:reduce){.progress-fill{transition:none}.cursor{animation:none;opacity:1}}
