@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";
:root{--primary-color:#fff;--secondary-color:#a0a0a0;--accent-color:#38bdf8;--brand-color:#1e5aa8;--bg-color:#1a1a1a;--card-bg:#242424;--border-color:#333;--text-main:#a0a0a0;--text-muted:#909090;--font-sans:"Inter", system-ui, -apple-system, sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-color);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}a{color:inherit;text-decoration:none;transition:color .2s}a:hover{color:var(--accent-color)}:where(a,button,input,textarea,select,[tabindex]):focus-visible{outline:2px solid var(--accent-color);outline-offset:2px}h1,h2,h3,h4{color:var(--primary-color);font-weight:700;line-height:1.2}.text-muted{color:var(--text-muted)}.text-small{font-size:.875rem}section{margin-bottom:3rem}section h2{border-bottom:1px solid var(--border-color);margin-bottom:1.5rem;padding-bottom:.5rem;font-size:1.5rem}.link-button{color:var(--secondary-color);text-underline-offset:4px;align-items:center;gap:.5rem;font-size:.875rem;text-decoration:underline;display:inline-flex}.link-button:hover{color:var(--accent-color)}.badge{background-color:var(--card-bg);border:1px solid var(--border-color);color:var(--secondary-color);white-space:nowrap;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-block}
.navbar{z-index:100;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--border-color);background-color:#1a1a1ad9;position:sticky;top:0}.navbar-inner{gap:.25rem;max-width:800px;margin:0 auto;padding:0 2rem;display:flex}.navbar-link{color:var(--text-muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:.75rem .625rem;font-size:.875rem;font-weight:500;transition:color .2s,border-color .2s}.navbar-link:hover{color:var(--primary-color)}.navbar-link-active{border-bottom-color:var(--accent-color);color:var(--primary-color)!important}section[id]{scroll-margin-top:3rem}.app-container{flex-direction:column;gap:3rem;max-width:800px;margin:0 auto;padding:4rem 2rem;display:flex}.header-section{flex-direction:column;gap:1.5rem;display:flex}.header-top{justify-content:space-between;align-items:flex-start;gap:2rem;display:flex}.header-info{flex-direction:column;gap:.5rem;display:flex}.header-name{letter-spacing:-.025em;color:var(--accent-color);margin-bottom:.25rem;font-size:2.25rem}.header-subtitle{color:var(--secondary-color);font-family:monospace;font-size:.9rem}.header-location{color:var(--text-muted);align-items:center;gap:.5rem;font-family:monospace;font-size:.85rem;display:flex}.header-socials{gap:.75rem;margin-top:.5rem;display:flex}.social-icon{color:#c8c8c8;background-color:var(--bg-color);width:2.25rem;height:2.25rem;transition:background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s var(--ease-out);border:1px solid #4a4a4a;border-radius:6px;justify-content:center;align-items:center;display:flex}.social-icon:hover{background-color:var(--brand-color);color:#fff;border-color:var(--brand-color)}.social-icon:active{transform:scale(.95)}@media (prefers-reduced-motion:reduce){.social-icon:active{transform:none}}.header-image{object-fit:cover;border-radius:12px;width:120px;height:120px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.header-about p{color:var(--secondary-color);max-width:65ch;margin-bottom:1rem}.header-actions{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.link-button-accent{color:var(--accent-color)}.link-button-accent:hover{color:#7dd3fc}.text-link{color:var(--accent-color)}.text-link:hover{color:#7dd3fc;text-underline-offset:3px;text-decoration:underline}.experience-list{flex-direction:column;gap:2rem;display:flex}.experience-item{gap:1.5rem;display:flex}.experience-logo{object-fit:contain;border:1px solid var(--border-color);background-color:#fff;border-radius:8px;flex-shrink:0;width:48px;height:48px}.experience-content{flex:1}.experience-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.25rem;display:flex}.experience-title-group{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.experience-company{color:var(--primary-color);font-size:1.1rem;font-weight:600}.experience-dates{color:var(--text-muted);font-size:.875rem}.experience-role{color:var(--accent-color);margin-bottom:.5rem;font-family:monospace;font-size:.9rem}.experience-desc{color:var(--secondary-color);font-size:.9rem}.experience-meta{font-family:monospace;font-size:.85rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem;display:grid}.project-card{border:1px solid var(--border-color);background-color:var(--bg-color);border-radius:12px;flex-direction:column;height:100%;padding:1.25rem;transition:transform .2s,box-shadow .2s;display:flex}.project-card:hover{border-color:#4a4a4a;transform:translateY(-2px);box-shadow:0 12px 24px -8px #00000080}.project-header{align-items:center;gap:.5rem;margin-bottom:.75rem;display:flex}.project-title{color:var(--primary-color);font-size:1.1rem;font-weight:600}.project-status{background-color:#22c55e;border-radius:50%;width:6px;height:6px}.project-desc{color:var(--secondary-color);flex-grow:1;margin-bottom:1.5rem;font-size:.875rem}.project-tags{flex-wrap:wrap;gap:.4rem;display:flex}.skills-container{flex-wrap:wrap;gap:.5rem;display:flex}.skill-tag{background-color:var(--brand-color);color:#fff;border-radius:6px;padding:.35rem .75rem;font-size:.85rem;font-weight:500;transition:background-color .2s}.skill-tag:hover{background-color:#17467f}.site-footer{border-top:1px solid var(--border-color);color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.5rem 1.5rem;padding-top:1.5rem;font-size:.8rem;display:flex}@media (max-width:640px){.header-top{flex-direction:column-reverse}.experience-header{flex-direction:column;align-items:flex-start}.app-container{padding:3rem 1.25rem}.navbar-inner{scrollbar-width:none;padding:0 1.25rem;overflow-x:auto}.navbar-inner::-webkit-scrollbar{display:none}.navbar-link{white-space:nowrap}}.chat-page{flex-direction:column;width:100%;max-width:820px;min-height:100dvh;margin:0 auto;padding:6rem 1.25rem 1.75rem;display:flex;position:relative}body:has(.chat-page:not(.chat-page--active)){flex-direction:column;height:100dvh;display:flex;overflow:hidden}.chat-page:not(.chat-page--active){flex:1;justify-content:center;gap:1.75rem;min-height:0;padding-top:1.75rem;overflow:hidden}.chat-glow{z-index:0;pointer-events:none;filter:blur(24px);width:min(720px,90vw);height:min(440px,60vh);transition:opacity .6s var(--ease-out);background:radial-gradient(#1e5aa873 0%,#38bdf821 42%,#0000 72%);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.chat-page--active .chat-glow{opacity:0}.chat-hero{z-index:1;text-align:center;position:relative}.chat-hero-title{letter-spacing:-.02em;color:var(--primary-color);animation:chat-greeting-in .5s var(--ease-out) both;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:600}@keyframes chat-greeting-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-hero-sub{color:var(--secondary-color);animation:chat-greeting-in .5s var(--ease-out) 80ms both;margin-top:.75rem;font-size:1rem}.chat-messages{z-index:1;animation:chat-fade-in .4s var(--ease-out) both;flex-direction:column;flex:1;gap:.75rem;margin-bottom:1.25rem;padding-top:1rem;display:flex;position:relative}@keyframes chat-fade-in{0%{opacity:0}to{opacity:1}}.chat-row{animation:chat-msg-in .35s var(--ease-out) both;display:flex}@keyframes chat-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-row-user{justify-content:flex-end}.chat-row-assistant{justify-content:flex-start;align-items:flex-end;gap:.6rem}.chat-avatar{object-fit:cover;border-radius:50%;flex-shrink:0;width:28px;height:28px;margin-bottom:2px}.chat-bubble{overflow-wrap:break-word;border-radius:1rem;max-width:85%;padding:.7rem 1rem;line-height:1.5}.chat-bubble p:first-child{margin-top:0}.chat-bubble p:last-child{margin-bottom:0}.chat-bubble-user{background:var(--brand-color,#1e5aa8);color:#fff;white-space:pre-wrap;border-bottom-right-radius:.35rem}.chat-bubble-assistant{background:var(--card-bg,#242424);border:1px solid var(--border-color,#333);color:#e8e8e8;border-bottom-left-radius:.35rem}.chat-bubble p{margin:.5rem 0}.chat-bubble ul,.chat-bubble ol{margin:.5rem 0;padding-left:1.25rem}.chat-bubble li{margin:.25rem 0}.chat-bubble li>p{margin:0}.chat-bubble a{color:var(--accent-color);text-underline-offset:3px;text-decoration:underline}.chat-bubble strong{color:var(--primary-color);font-weight:600}.chat-bubble h1,.chat-bubble h2,.chat-bubble h3,.chat-bubble h4{margin:.75rem 0 .35rem;font-size:1rem}.chat-bubble code{background:#ffffff14;border-radius:4px;padding:.1em .35em;font-size:.85em}.chat-bubble pre{background:var(--bg-color);border:1px solid var(--border-color);border-radius:8px;margin:.5rem 0;padding:.75rem 1rem;overflow-x:auto}.chat-bubble pre code{background:0 0;padding:0;font-size:.85rem}.chat-bubble table{border-collapse:collapse;margin:.5rem 0;font-size:.9rem}.chat-bubble th,.chat-bubble td{border:1px solid var(--border-color);text-align:left;padding:.35rem .6rem}.chat-typing{align-items:center;gap:.28rem;display:flex}.chat-dot{background:var(--text-muted);border-radius:50%;width:.4rem;height:.4rem;animation:1.2s ease-in-out infinite chat-bounce}.chat-dot:nth-child(2){animation-delay:.15s}.chat-dot:nth-child(3){animation-delay:.3s}@keyframes chat-bounce{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-.25rem)}}.chat-error-card{color:#f87171;background:#ef44440f;border:1px solid #ef444459;border-radius:.75rem;align-items:center;gap:.75rem;padding:.6rem .9rem;font-size:.9rem;display:flex}.chat-retry{color:var(--primary-color);font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:none;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;text-decoration:underline;display:inline-flex}.chat-retry:hover{color:var(--accent-color)}.chat-composer{z-index:1;border:1px solid var(--border-color,#333);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#242424d9;border-radius:1.7rem;align-items:flex-end;gap:.5rem;width:100%;padding:.4rem .4rem .4rem 1.25rem;transition:border-color .2s,box-shadow .2s;display:flex;position:relative;box-shadow:0 8px 30px #00000059}.chat-page--active .chat-composer{animation:chat-dock-to-bottom .55s var(--ease-out);position:sticky;bottom:1.25rem}@keyframes chat-dock-to-bottom{0%{transform:translateY(-36vh)}to{transform:translateY(0)}}.chat-composer:focus-within{border-color:var(--accent-color,#38bdf8);box-shadow:0 0 0 1px var(--accent-color,#38bdf8), 0 8px 30px #00000059}.chat-input{min-width:0;color:inherit;font:inherit;resize:none;scrollbar-width:thin;background:0 0;border:none;flex:1;max-height:160px;padding:.7rem 0;font-size:1rem;line-height:1.5;overflow-y:hidden}.chat-input:focus{outline:none}.chat-input::placeholder{color:var(--text-muted,#909090);opacity:1}.chat-input--ghost{caret-color:#0000}.chat-send{background:var(--brand-color,#1e5aa8);color:#fff;cursor:pointer;border:none;border-radius:9999px;flex-shrink:0;place-items:center;width:2.4rem;height:2.4rem;margin-bottom:.15rem;transition:background-color .2s,transform .1s;display:grid}.chat-send:hover:not(:disabled){background:#17467f}.chat-send:active:not(:disabled){transform:scale(.94)}.chat-send:disabled{opacity:.5;cursor:not-allowed}.chat-suggestions{z-index:1;flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex;position:relative}.chat-chip{border:1px solid var(--border-color);color:var(--secondary-color);font:inherit;cursor:pointer;transition:color .2s ease, border-color .2s ease, background-color .2s ease, transform .2s var(--ease-out);animation:chat-chip-in .45s var(--ease-out) both;background:#24242499;border-radius:9999px;padding:.45rem .9rem;font-size:.85rem}@keyframes chat-chip-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-chip:hover{color:var(--primary-color);border-color:var(--accent-color)}.chat-chip:active{transform:scale(.97)}@media (prefers-reduced-motion:reduce){.chat-dot{animation:none}.chat-send:active:not(:disabled){transform:none}.chat-hero-title,.chat-hero-sub,.chat-messages,.chat-row,.chat-chip{animation:none}.chat-chip:active{transform:none}.chat-page--active .chat-composer{animation:none}.chat-glow{transition:none}}
