@import"https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,900&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap";:root{font-family:Space Mono,ui-monospace,SFMono-Regular,Menlo,monospace;line-height:1.5;font-weight:400;color-scheme:light;color:#0a0a0a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;scroll-behavior:smooth}html{scroll-behavior:smooth}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0a0a0a;border-radius:4px}:root{--bg: #f8f7f4;--bg2: #eeecea;--fg: #0a0a0a;--fg-dim: rgba(10,10,10,.45);--fg-soft: rgba(10,10,10,.62);--accent: #0a0a0a;--accent2: #444;--border: rgba(10,10,10,.12);--card-bg: #eeecea;--display-font: "Playfair Display", Georgia, serif;--body-font: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--nav-h: 72px;--section-gap: 120px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--bg);font-family:var(--body-font);color:var(--fg);overflow-x:hidden;scroll-behavior:smooth}body{min-height:100vh;background:var(--bg)}a{text-decoration:none;color:inherit}button{font-family:var(--body-font)}.topnav{position:fixed;top:0;left:0;width:100%;height:var(--nav-h);z-index:999;display:flex;align-items:center;justify-content:space-between;padding:0 48px;transition:background .4s ease,border-color .4s ease,backdrop-filter .4s ease;border-bottom:1px solid transparent}.topnav--scrolled{background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom-color:var(--border)}.nav-logo{display:flex;align-items:center;gap:10px;background:none;border:none;padding:0;color:var(--fg);font-family:var(--display-font);font-size:17px;font-weight:700;letter-spacing:-.01em;cursor:pointer;transition:opacity .2s}.nav-logo:hover{opacity:.65}.nav-pic{width:32px;height:32px;border-radius:50%;object-fit:cover;border:1px solid var(--border);filter:grayscale(100%)}.nav-name{color:var(--fg);font-family:var(--display-font);font-style:italic;font-size:17px}.nav-links{display:flex;align-items:center;gap:36px}.nav-link{background:none;border:none;color:var(--fg-dim);font-family:var(--body-font);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:0;cursor:pointer;transition:color .2s}.nav-link:hover,.nav-link--active{color:var(--fg)}.nav-socials{display:flex;align-items:center;gap:18px}.nav-socials a{color:var(--fg-dim);font-size:1rem;transition:color .2s,transform .2s;display:flex;align-items:center}.nav-socials a:hover{color:var(--fg);transform:translateY(-2px)}.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 48px 80px;overflow:hidden}.hero__eyebrow{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:24px}.hero__name{font-family:var(--display-font);font-size:clamp(64px,10vw,148px);line-height:.92;font-weight:900;font-style:italic;letter-spacing:-.04em;color:var(--fg)}.hero__tagline{margin-top:32px;font-size:clamp(16px,1.6vw,22px);color:var(--fg-dim);max-width:560px;line-height:1.55;font-weight:400}.hero__actions{margin-top:64px;display:flex;align-items:center;gap:48px;flex-wrap:wrap}.hero__bg-number{position:absolute;bottom:-30px;right:-20px;font-family:var(--display-font);font-size:clamp(200px,28vw,400px);font-weight:900;font-style:italic;color:#0a0a0a0d;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:-.06em}.hero__scroll{position:absolute;bottom:36px;right:48px;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--fg-dim);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.hero__scroll-line{width:1px;height:60px;background:var(--fg-dim);position:relative;overflow:hidden}.hero__scroll-line:after{content:"";position:absolute;top:0;left:0;right:0;height:30px;background:var(--accent);animation:scrollDown 1.8s ease infinite}@keyframes scrollDown{0%{transform:translateY(-100%)}to{transform:translateY(300%)}}.btn{display:inline-flex;align-items:center;gap:12px;font-family:var(--body-font);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;border:none;cursor:pointer;transition:all .25s ease}.btn--primary{background:var(--accent);color:#fff;padding:14px 28px;border-radius:2px}.btn--primary:hover{background:var(--accent2);gap:18px}.btn--ghost{background:transparent;color:var(--fg-dim);padding:0 0 2px;border-bottom:1px solid var(--border);border-radius:0;letter-spacing:.06em}.btn--ghost:hover{color:var(--fg);border-bottom-color:var(--fg)}.section-wrapper{padding:var(--section-gap) 0}.section-divider{height:1px;background:var(--border);margin:0 48px}.section-label{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:56px;display:flex;align-items:center;gap:16px}.section-label:after{content:"";flex:1;height:1px;background:var(--border)}.section-title{font-family:var(--display-font);font-size:clamp(2rem,4vw,3rem);font-weight:700;font-style:italic;line-height:1.1;letter-spacing:-.02em;margin-bottom:48px;color:var(--fg)}.footer{border-top:1px solid var(--border);padding:32px 48px;display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--fg-dim);letter-spacing:.05em}.footer p{font-size:12px;color:var(--fg-dim)}@media (max-width: 900px){.topnav{padding:0 24px}.nav-links{gap:20px}.hero{padding:0 24px 64px}.section-divider{margin:0 24px}.footer{padding:24px}}@media (max-width: 540px){.nav-links{display:none}.hero__scroll{right:24px}.hero__actions{gap:28px}}.projects-section{padding:0 48px}.projects-container{display:flex;flex-direction:column;gap:2px}.project-card{background:var(--card-bg);border:1px solid var(--border);padding:36px 40px;display:grid;grid-template-columns:60px 1fr auto;gap:32px;align-items:center;transition:background .3s,transform .3s;position:relative;overflow:hidden;text-decoration:none;color:inherit}.project-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:transform .35s cubic-bezier(.16,1,.3,1)}.project-card:hover:before{transform:scaleY(1)}.project-card:hover{background:color-mix(in srgb,var(--card-bg) 50%,var(--bg));transform:translate(6px)}.project-num{font-family:var(--display-font);font-size:14px;font-weight:700;font-style:italic;color:var(--fg-dim)}.project-info h3{font-family:var(--display-font);font-size:22px;font-weight:700;font-style:italic;color:var(--fg);letter-spacing:-.01em}.project-info p{font-size:13px;color:var(--fg-dim);margin-top:6px;line-height:1.5;max-width:560px}.project-right{display:flex;align-items:center}.project-tags{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.tag{font-size:11px;padding:5px 12px;border-radius:100px;border:1px solid var(--border);color:var(--fg-dim);letter-spacing:.04em;white-space:nowrap;font-weight:500}.project-arrow{color:var(--accent);font-size:20px;margin-left:24px;transition:transform .25s}.project-card:hover .project-arrow{transform:translate(6px)}@media (max-width: 900px){.projects-section{padding:0 24px}.project-card{grid-template-columns:40px 1fr;padding:28px 24px;gap:20px}.project-right{grid-column:1 / -1;justify-content:space-between}}.about-section{padding:0 48px}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.about-heading{font-family:var(--display-font);font-size:clamp(36px,4vw,58px);font-weight:700;line-height:1.05;letter-spacing:-.03em;color:var(--fg);font-style:italic}.about-heading em{font-style:italic;font-weight:900}.about-right{display:flex;flex-direction:column;gap:40px}.about-card-wrap{perspective:1000px;max-width:320px}.about-card{position:relative;border-radius:2px;overflow:hidden;border:1px solid var(--border);background:var(--card-bg);transition:transform .2s ease-out;transform-style:preserve-3d}.about-card img{width:100%;aspect-ratio:3 / 4;object-fit:cover;object-position:top;display:block;filter:grayscale(100%) contrast(1.05);transition:filter .4s ease}.about-card:hover img{filter:grayscale(20%) contrast(1.05)}.about-social-btns{position:absolute;bottom:16px;left:16px;display:flex;gap:6px}.about-social-btn{width:34px;height:34px;border-radius:50%;border:1px solid rgba(248,247,244,.25);background:#0a0a0a8c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#f8f7f4d9;display:flex;align-items:center;justify-content:center;font-size:.82rem;text-decoration:none;transition:all .25s ease}.about-social-btn:hover{background:var(--fg);border-color:var(--fg);color:var(--bg);transform:translateY(-2px)}.about-body{font-size:17px;line-height:1.75;color:var(--fg-soft);font-weight:400}.about-body p+p{margin-top:20px}.about-stats{display:flex;gap:48px;flex-wrap:wrap}.about-stat-value{font-family:var(--display-font);font-size:48px;font-weight:700;font-style:italic;color:var(--fg);line-height:1}.about-stat-label{font-size:12px;color:var(--fg-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:8px}.about-cv-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;padding:14px 24px;border-radius:2px;font-family:var(--body-font);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:transparent;color:var(--fg);border:1px solid var(--border);text-decoration:none;transition:all .25s ease}.about-cv-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}@media (max-width: 900px){.about-section{padding:0 24px}.about-grid{grid-template-columns:1fr;gap:40px}.about-card-wrap{max-width:280px}}.contact-section{padding:0 48px}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}.contact-heading{font-family:var(--display-font);font-size:clamp(48px,6vw,88px);font-weight:700;font-style:italic;line-height:.95;letter-spacing:-.04em;color:var(--fg);margin-bottom:48px}.contact-heading em{font-style:italic;font-weight:900}.contact-links{display:flex;flex-direction:column}.contact-link{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border);text-decoration:none;color:var(--fg);font-family:var(--body-font);font-size:15px;font-weight:500;transition:color .2s}.contact-link:hover{color:var(--fg-soft)}.contact-link__label{color:var(--fg-dim);font-size:13px;letter-spacing:.04em}.contact-form{display:flex;flex-direction:column;gap:20px;padding-top:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-family:var(--body-font);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--fg-dim)}.form-input{padding:12px 0;border:none;border-bottom:1px solid var(--border);border-radius:0;background:transparent;color:var(--fg);font-family:var(--body-font);font-size:15px;width:100%;transition:border-color .25s}.form-input::placeholder{color:var(--fg-dim)}.form-input:focus{outline:none;border-bottom-color:var(--fg)}.message-input{resize:none;min-height:120px;padding-top:12px}.submit-btn{margin-top:8px;align-self:flex-start;display:inline-flex;align-items:center;gap:12px;padding:14px 28px;border-radius:2px;border:none;background:var(--accent);color:#fff;font-family:var(--body-font);font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:background .25s ease,gap .25s ease}.submit-btn:hover:not(:disabled){background:var(--accent2);gap:18px}.submit-btn:disabled{opacity:.55;cursor:not-allowed}.toast-container{position:fixed;bottom:24px;right:24px;z-index:1000;background:var(--fg);color:var(--bg);border-radius:4px;padding:14px 18px;display:flex;align-items:center;gap:12px;animation:toastIn .3s ease;box-shadow:0 8px 32px #0000002e}@keyframes toastIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.toast-container p{font-size:13px;color:var(--bg);letter-spacing:.02em}.toast-container button{width:22px;height:22px;border-radius:50%;background:#f8f7f41f;border:none;color:var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.7rem;transition:background .2s;flex-shrink:0}.toast-container button:hover{background:#f8f7f438}@media (max-width: 900px){.contact-section{padding:0 24px}.contact-grid{grid-template-columns:1fr;gap:56px}}.skillsSection{padding:0 48px}.skillsLayout{display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start}.skillsIntro{font-family:var(--display-font);font-size:clamp(32px,3.5vw,50px);font-weight:700;font-style:italic;line-height:1.1;letter-spacing:-.03em;color:var(--fg)}.skillsCloud{display:flex;flex-wrap:wrap;gap:10px}.skillPill{padding:10px 20px;border:1px solid var(--border);background:var(--card-bg);font-family:var(--body-font);font-size:13px;font-weight:500;color:var(--fg-soft);transition:all .25s ease}.skillPill:hover{color:var(--fg);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card-bg))}.skillsCert{margin-top:56px;padding-top:24px;border-top:1px solid var(--border);font-size:12px;letter-spacing:.06em;text-transform:uppercase}.skillsCert a{color:var(--fg-dim);text-decoration:none;transition:color .2s}.skillsCert a:hover{color:var(--fg)}@media (max-width: 900px){.skillsSection{padding:0 24px}.skillsLayout{grid-template-columns:1fr;gap:40px}}
