:root{--bg:#faf9f7;--bg-surface:#f3f1ed;--border:#e0ddd8;--text:#2a2825;--text-secondary:#6b6560;--text-muted:#9c9790;--accent:#2f4f3a;--accent-light:#e8f0eb;--user-bubble-bg:#2a2825;--user-bubble-text:#faf9f7;--error:#c0392b;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--header-height:52px;--chat-max-width:720px;--gap:16px;--radius-sm:6px;--radius-md:12px;--radius-lg:18px;font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.6}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{min-height:100dvh}button{font:inherit;cursor:pointer;background:0 0;border:none}textarea{font:inherit;resize:none}.app{flex-direction:column;height:100dvh;display:flex}.app__header{height:var(--header-height);border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;justify-content:space-between;align-items:center;padding:0 24px;display:flex}.app__wordmark{font-family:var(--font-mono);color:var(--accent);letter-spacing:-.02em;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:15px;font-weight:600}.app--party .app__wordmark{animation:.5s linear infinite party-spin}@keyframes party-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.party-toast{background:var(--text);color:var(--bg);font-family:var(--font-mono);z-index:100;white-space:nowrap;border-radius:99px;padding:10px 20px;font-size:13px;animation:.2s toast-in;position:fixed;bottom:80px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.app__main{flex-direction:column;flex:1;display:flex;overflow:hidden}.mode-nav{gap:4px;display:flex}.mode-nav__btn{border-radius:var(--radius-sm);color:var(--text-secondary);padding:5px 12px;font-size:13px;font-weight:500;transition:color .15s,background .15s}.mode-nav__btn:hover:not(:disabled),.mode-nav__btn--active{color:var(--text);background:var(--bg-surface)}.mode-nav__btn--disabled{opacity:.4;cursor:not-allowed}.chat-mode{flex-direction:column;flex:1;display:flex;overflow:hidden}.chat-mode__history{flex-direction:column;flex:1;padding:24px;display:flex;overflow-y:auto}.chat-mode__empty{max-width:var(--chat-max-width);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;width:100%;margin:0 auto;display:flex}.chat-mode__intro{color:var(--text);text-align:center;font-size:17px;font-weight:500}.chat-mode__subline{color:var(--text-muted);text-align:center;max-width:340px;font-size:13px}.chat-mode__intro-link{color:var(--accent);text-decoration:none}.chat-mode__intro-link:hover{text-decoration:underline}.chat-mode__clear{max-width:var(--chat-max-width);justify-content:center;width:100%;margin:0 auto;padding:8px 0 4px;display:flex}.chat-mode__clear-btn{color:var(--text-muted);text-underline-offset:2px;font-size:12px;text-decoration:underline}.chat-mode__clear-btn:hover:not(:disabled){color:var(--text-secondary)}.chat-mode__error{color:var(--error);border-radius:var(--radius-sm);background:#c0392b14;margin-top:8px;padding:8px 12px;font-size:13px}.chat-mode__input{border-top:1px solid var(--border);background:var(--bg);padding:16px 24px}.chat-mode__disclaimer{text-align:center;color:var(--text-muted);margin-top:8px;font-size:11px}.suggested-prompts{max-width:var(--chat-max-width);flex-wrap:wrap;justify-content:center;gap:6px;width:100%;margin:0 auto;padding-bottom:10px;display:flex}.prompt-chip{border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);border-radius:99px;padding:8px 16px;font-size:13px;font-weight:500;transition:border-color .15s,color .15s,background .15s}.prompt-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-light)}.prompt-chip:disabled{opacity:.5;cursor:not-allowed}.message-list{max-width:var(--chat-max-width);flex-direction:column;gap:16px;width:100%;margin:0 auto;display:flex}.message{display:flex}.message--user{justify-content:flex-end}.message--assistant{justify-content:flex-start}.message__content{border-radius:var(--radius-lg);white-space:pre-wrap;word-break:break-word;max-width:80%;padding:10px 15px;font-size:14px;line-height:1.65}.message--user .message__content{background:var(--user-bubble-bg);color:var(--user-bubble-text);border-bottom-right-radius:var(--radius-sm)}.message--assistant .message__content{background:var(--bg-surface);color:var(--text);border-bottom-left-radius:var(--radius-sm)}.message__content a{text-underline-offset:2px;text-decoration:underline}.message--assistant .message__content a{color:var(--accent)}.message--user .message__content a{color:inherit;opacity:.8}.cursor{background:var(--text-muted);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.input-bar{max-width:var(--chat-max-width);background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-end;gap:8px;width:100%;margin:0 auto;padding:10px 12px;transition:border-color .15s;display:flex}.input-bar:focus-within{border-color:var(--accent)}.input-bar__textarea{color:var(--text);background:0 0;border:none;outline:none;flex:1;min-height:22px;max-height:180px;font-size:14px;line-height:1.5;overflow-y:auto}.input-bar__textarea::placeholder{color:var(--text-muted)}.input-bar__textarea:disabled{opacity:.6;cursor:not-allowed}.input-bar__send{border-radius:var(--radius-sm);background:var(--accent);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:opacity .15s;display:flex}.input-bar__send:disabled{opacity:.35;cursor:not-allowed}.stub-mode{color:var(--text-muted);flex:1;justify-content:center;align-items:center;font-size:14px;display:flex}.resume-mode{flex:1;padding:40px 24px 64px;overflow-y:auto}.resume{max-width:680px;margin:0 auto}.resume__header{border-bottom:1px solid var(--border);margin-bottom:36px;padding-bottom:24px}.resume__name{color:var(--text);letter-spacing:-.02em;margin-bottom:2px;font-size:26px;font-weight:600}.resume__title{color:var(--text-secondary);margin-bottom:10px;font-size:14px}.resume__contact{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:4px;font-size:13px;display:flex}.resume__contact a{color:var(--accent);text-decoration:none}.resume__contact a:hover{text-decoration:underline}.resume__contact-sep{background:var(--border);border-radius:50%;width:3px;height:3px;margin:0 4px;display:inline-block}.resume__section{margin-bottom:32px}.resume__section-title{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;font-size:11px;font-weight:600}.resume__job{margin-bottom:20px}.resume__job-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:2px;display:flex}.resume__job-header--sub{margin-top:2px;margin-bottom:6px}.resume__job-title{color:var(--text);font-size:14px;font-weight:600}.resume__job-company{color:var(--text-secondary);font-size:14px}.resume__job-dates{color:var(--text-muted);white-space:nowrap;font-size:12px;font-family:var(--font-mono)}.resume__bullets{margin:6px 0 0 16px;padding:0;list-style:outside}.resume__bullets li{color:var(--text-secondary);margin-bottom:4px;font-size:13px;line-height:1.6}.resume__project-link{color:var(--accent);font-size:12px;font-family:var(--font-mono);text-decoration:none}.resume__project-link:hover{text-decoration:underline}.resume__project-desc{color:var(--text-secondary);margin-top:4px;font-size:13px;line-height:1.6}.resume__edu{margin-bottom:12px}.resume__edu-school{color:var(--text-muted);margin-top:1px;font-size:13px}
