:root{--neutral-0: #ffffff;--neutral-50: #f8f9fa;--neutral-100: #f1f3f5;--neutral-150: #eceef1;--neutral-200: #e5e7eb;--neutral-300: #d1d5db;--neutral-400: #9ca3af;--neutral-500: #6b7280;--neutral-600: #4b5563;--neutral-700: #374151;--neutral-800: #1f2937;--neutral-900: #111827;--neutral-950: #0a0a0b;--blue-600: #2563eb;--blue-700: #1d4ed8;--blue-800: #1e40af;--green-500: #22c55e;--green-700: #15803d;--amber-500: #f59e0b;--amber-700: #b45309;--red-50: #fef2f2;--red-500: #ef4444;--red-700: #b91c1c;--millis-red: #c81e2c;--millis-red-hover: #a8161f;--surface-page: var(--neutral-0);--surface-default: var(--neutral-0);--surface-sunken: var(--neutral-50);--surface-banner: var(--neutral-150);--text-primary: var(--neutral-950);--text-secondary: var(--neutral-600);--text-muted: var(--neutral-500);--text-disabled: var(--neutral-400);--text-on-action: var(--neutral-0);--border-subtle: var(--neutral-200);--border-default: var(--neutral-300);--border-strong: var(--neutral-950);--border-focus: var(--blue-600);--space-1: 2px;--space-2: 4px;--space-3: 8px;--space-4: 12px;--space-5: 16px;--space-6: 20px;--space-7: 24px;--space-8: 32px;--space-9: 40px;--space-10: 48px;--space-11: 64px;--space-12: 80px;--space-13: 96px;--radius-sm: 2px;--radius-md: 4px;--duration-fast: .1s;--duration-base: .2s;--ease-standard: cubic-bezier(.4, 0, .2, 1);--field-height: 40px;--row-height: 44px;--body-size: 16px;--dot-color: var(--neutral-950);--dot-size: 2.5px;--dot-gap: 11px;--texture-dots: radial-gradient( circle, var(--dot-color) var(--dot-size), transparent var(--dot-size) );--accent-rule-thin: 1px solid var(--neutral-950);--accent-rule-thick: 6px solid var(--neutral-950)}*,*:before,*:after{box-sizing:border-box}html{font-family:Inter,system-ui,-apple-system,Segoe UI,Aptos,Roboto,sans-serif;font-feature-settings:"tnum" on,"lnum" on;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background:var(--surface-page);color:var(--text-primary);font-size:var(--body-size);line-height:1.55}code,.mono{font-family:JetBrains Mono,ui-monospace,Menlo,Consolas,monospace}*:focus-visible{outline:2px solid var(--border-focus);outline-offset:3px}h1,h2,h3,h4{margin:0;font-weight:800;letter-spacing:-.02em;line-height:1.05;color:var(--text-primary)}p{margin:0}.topbar{position:sticky;top:0;z-index:50;background:var(--surface-default);border-bottom:var(--accent-rule-thin);display:flex;align-items:center;justify-content:space-between;gap:var(--space-7);height:72px;padding:0 var(--space-9)}.topbar-brand{display:flex;align-items:center;gap:var(--space-7);min-width:0}.wordmark{font-weight:900;font-size:28px;letter-spacing:-.05em;color:var(--millis-red);line-height:1}.topbar-rule{width:60px;height:1px;background:var(--text-primary)}.topbar-title{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--text-primary)}.topbar-user .name{font-weight:700;font-size:13px;letter-spacing:-.01em}.topbar-user .email{color:var(--text-muted);font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:.04em}.signout-btn{margin-top:var(--space-2);background:none;border:none;color:var(--text-primary);font:inherit;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:0;border-bottom:1px solid var(--text-primary);line-height:1.2;transition:color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.signout-btn:hover{color:var(--millis-red);border-bottom-color:var(--millis-red)}.page{max-width:1180px;margin:0 auto;padding:var(--space-12) var(--space-9) var(--space-13);min-height:calc(100vh - 72px)}.page-center{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-5);max-width:32rem;text-align:center;margin:var(--space-13) auto;padding:var(--space-13) var(--space-8);border:var(--accent-rule-thin);background:var(--surface-default);position:relative}.page-center:before{content:"";position:absolute;top:var(--space-7);left:50%;transform:translate(-50%);width:88px;height:88px;background-image:var(--texture-dots);background-size:var(--dot-gap) var(--dot-gap);background-repeat:repeat;opacity:.5}.page-center>*{position:relative;z-index:1}.page-center h2{font-size:36px;letter-spacing:-.03em;margin-top:var(--space-11);padding-bottom:var(--space-4);position:relative;display:inline-block}.page-center h2:after{content:"";display:block;width:60px;height:4px;background:var(--millis-red);margin:var(--space-3) auto 0}.page-center p{color:var(--text-secondary);font-size:14px;line-height:1.6}.signin-prompt{font-family:JetBrains Mono,monospace;font-size:12px!important;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary)!important;margin:var(--space-11) 0 var(--space-3) 0}.primary-btn{font:inherit;font-weight:600;font-size:14px;letter-spacing:.02em;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:0 var(--space-6);height:var(--field-height);border-radius:var(--radius-sm);border:1px solid var(--text-primary);background:var(--text-primary);color:var(--surface-default);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard)}.primary-btn:hover:not(:disabled){background:var(--millis-red);border-color:var(--millis-red)}.primary-btn:disabled{opacity:.45;cursor:not-allowed}.primary-btn-lg{height:52px;padding:0 var(--space-8);font-size:15px}.primary-btn-sm{height:32px;padding:0 var(--space-4);font-size:12px;letter-spacing:.04em}.error{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-3);background:var(--surface-default);border-top:var(--accent-rule-thin);border-right:var(--accent-rule-thin);border-bottom:var(--accent-rule-thin);border-left:6px solid var(--millis-red);padding:var(--space-6) var(--space-7);color:var(--text-primary);font-size:14px;line-height:1.5;max-width:40rem;word-break:break-word}.error-eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--millis-red)}.error-title{font-size:18px;font-weight:800;letter-spacing:-.01em;line-height:1.25;color:var(--text-primary);margin:0}.error-hint{font-size:14px;line-height:1.6;color:var(--text-secondary);margin:0}.error-technical{width:100%;margin-top:var(--space-2)}.error-technical summary{cursor:pointer;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);list-style:none;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) 0}.error-technical summary::-webkit-details-marker{display:none}.error-technical summary:before{content:"▸";display:inline-block;font-size:10px;transition:transform var(--duration-fast) var(--ease-standard)}.error-technical[open] summary:before{transform:rotate(90deg)}.error-technical summary:hover{color:var(--text-primary)}.error-technical summary:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.error-technical code{display:block;font-family:JetBrains Mono,monospace;font-size:12px;line-height:1.5;color:var(--text-secondary);background:var(--surface-sunken);padding:var(--space-3) var(--space-4);margin-top:var(--space-3);border:1px solid var(--border-subtle);word-break:break-word;white-space:pre-wrap}.error-actions{margin-top:var(--space-2)}.error-compact{padding:var(--space-4) var(--space-5);font-size:13px;gap:var(--space-2)}.error-compact .error-title{font-size:14px}.error-compact .error-hint{font-size:13px}.project-list{display:flex;flex-direction:column;gap:var(--space-9)}.project-list-header{display:flex;align-items:flex-end;gap:var(--space-7);margin-bottom:var(--space-5)}.project-list-header-text{flex:0 0 auto}.project-list-header-bar{flex:1;height:12px;background:var(--text-primary);margin-bottom:12px;min-width:80px}.project-list-header h2{font-size:48px;letter-spacing:-.03em;line-height:1}.project-list-meta{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-secondary);margin:var(--space-4) 0 0 0}.eyebrow{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary);margin:0 0 var(--space-4) 0}.project-card-stack{display:flex;flex-direction:column;gap:0;border-top:var(--accent-rule-thin);border-left:var(--accent-rule-thin);border-right:var(--accent-rule-thin)}.project-card{display:grid;grid-template-columns:1fr auto;gap:var(--space-7);align-items:center;background:var(--surface-default);border-bottom:var(--accent-rule-thin);padding:var(--space-7) var(--space-8);cursor:pointer;position:relative;transition:background var(--duration-fast) var(--ease-standard)}.project-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--millis-red);transition:width var(--duration-fast) var(--ease-standard)}.project-card:hover{background:var(--surface-sunken)}.project-card:hover:before{width:4px}.project-card:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.project-card-body{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.project-card-name{font-size:22px;font-weight:800;letter-spacing:-.02em;color:var(--text-primary);line-height:1.1}.project-card-sub{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}.project-card-cta{flex-shrink:0}.project-empty{background:var(--surface-default);border:var(--accent-rule-thin);padding:var(--space-11) var(--space-8);text-align:center;position:relative}.project-empty:before{content:"";display:block;width:88px;height:88px;background-image:var(--texture-dots);background-size:var(--dot-gap) var(--dot-gap);background-repeat:repeat;margin:0 auto var(--space-7);opacity:.6}.project-empty p{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 auto var(--space-3);max-width:420px}.project-empty p:last-child{margin-bottom:0}.project-card-skeleton{cursor:default;pointer-events:none}.skeleton-line{background:linear-gradient(90deg,var(--neutral-100) 0%,var(--neutral-50) 50%,var(--neutral-100) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}.skeleton-line-name{width:60%;height:22px}.skeleton-line-sub{width:40%;height:12px;margin-top:var(--space-2)}.skeleton-line-cta{width:8rem;height:var(--field-height)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.debug-section{margin-top:var(--space-9);padding:var(--space-5) var(--space-7);background:var(--surface-sunken);border:1px solid var(--border-subtle);font-size:13px}.debug-section summary{cursor:pointer;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary)}.debug-section-body{margin-top:var(--space-5);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.editor-shell{display:flex;flex-direction:column;gap:var(--space-9)}.editor-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-7);flex-wrap:wrap;padding-bottom:var(--space-7);border-bottom:var(--accent-rule-thin)}.editor-header-text{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.editor-eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--text-secondary)}.editor-title{font-size:44px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--text-primary);margin:0}.editor-sub{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin:0}.download-control{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3)}.download-error{max-width:22rem}.editor-body{display:grid;grid-template-columns:minmax(0,1fr) 22rem;gap:var(--space-9);align-items:start}@media(max-width:900px){.editor-body{grid-template-columns:1fr}}.editor-sections{display:flex;flex-direction:column;gap:0;border-top:var(--accent-rule-thin);border-left:var(--accent-rule-thin);border-right:var(--accent-rule-thin)}.section-panel{background:var(--surface-default);border-bottom:var(--accent-rule-thin);padding:var(--space-7) var(--space-8);display:flex;flex-direction:column;gap:var(--space-5);position:relative;transition:background var(--duration-base) var(--ease-standard),opacity var(--duration-base) var(--ease-standard)}.section-panel.is-disabled{background:var(--surface-sunken);opacity:.7}.section-panel-skeleton{gap:var(--space-3)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding-bottom:var(--space-4);border-bottom:3px solid var(--millis-red)}.section-panel.is-disabled .section-header{border-bottom-color:var(--neutral-300)}.section-title{font-size:18px;font-weight:800;letter-spacing:-.01em;text-transform:uppercase;color:var(--text-primary);margin:0}.section-toggle{display:inline-flex;align-items:center;gap:var(--space-3);border:1px solid var(--text-primary);background:var(--surface-default);cursor:pointer;padding:var(--space-2) var(--space-4);font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-primary);border-radius:0;transition:background var(--duration-fast) var(--ease-standard),color var(--duration-fast) var(--ease-standard),border-color var(--duration-fast) var(--ease-standard)}.section-toggle:hover{background:var(--text-primary);color:var(--surface-default)}.section-toggle:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.section-toggle-track{position:relative;display:inline-block;width:28px;height:14px;background:var(--text-primary);transition:background var(--duration-fast) var(--ease-standard);flex-shrink:0}.section-toggle:hover .section-toggle-track{background:var(--surface-default);outline:1px solid var(--surface-default)}.section-toggle.is-off{border-color:var(--millis-red);color:var(--millis-red)}.section-toggle.is-off:hover{background:var(--millis-red);color:var(--surface-default)}.section-toggle.is-off .section-toggle-track{background:var(--millis-red)}.section-toggle-thumb{position:absolute;top:2px;left:2px;width:10px;height:10px;background:var(--surface-default);transition:transform var(--duration-fast) var(--ease-standard)}.section-toggle:not(.is-off) .section-toggle-thumb{transform:translate(14px)}.section-toggle-label{font-weight:700}.section-body{font-size:15px;color:var(--text-primary);line-height:1.65}.section-body p{margin:0 0 var(--space-5) 0}.section-body p:last-child{margin-bottom:0}.section-body-empty{font-style:italic;color:var(--text-muted)}.chat-surface{position:sticky;top:88px;background:var(--surface-default);border:var(--accent-rule-thin);padding:var(--space-7);display:flex;flex-direction:column;gap:var(--space-5);min-height:22rem}.chat-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:var(--space-3);border-bottom:3px solid var(--text-primary)}.chat-title{font-size:14px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--text-primary);margin:0}.chat-transcript{flex:1 1 auto;min-height:10rem;background:var(--surface-sunken);border:1px solid var(--border-subtle);padding:var(--space-7);display:flex;align-items:center;justify-content:center}.chat-empty{margin:0;color:var(--text-muted);font-size:13px;font-family:JetBrains Mono,monospace;letter-spacing:.04em;text-align:center;line-height:1.5}.chat-input{display:flex;flex-direction:column;gap:var(--space-3)}.chat-textarea{width:100%;resize:vertical;font:inherit;font-size:13px;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);border-radius:0;background:var(--surface-sunken);color:var(--text-muted);min-height:5rem}.chat-send{align-self:flex-end}.editor-skeleton{display:flex;flex-direction:column;gap:var(--space-3)}
