.home-page{padding-bottom:8rem;padding-top:0!important}.hero{box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:5rem 0 3rem}.hero-eyebrow{color:var(--text-3);display:block;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.08em;margin-bottom:2.5rem;text-transform:uppercase}.hero-name{color:var(--text);font-family:var(--font-display);font-size:clamp(3.2rem,7vw,6rem);font-weight:400;letter-spacing:-.03em;line-height:1.05;margin-bottom:2rem}.hero-bio{color:var(--text-2);font-size:1rem;font-weight:300;line-height:1.8;margin-bottom:2.5rem;max-width:520px}.hero-actions{gap:.5rem;margin-bottom:3rem}.hero-actions,.hero-meta{align-items:center;display:flex;flex-wrap:wrap}.hero-meta{color:var(--text-3);font-family:var(--font-mono);font-size:.7rem;gap:.75rem;letter-spacing:.04em}.hero-meta-dot{color:var(--gray-3)}.section{margin:0}.section-heading{color:var(--text);font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.2rem);font-weight:400;letter-spacing:-.02em;line-height:1.25;margin-bottom:1.5rem}.body-text{color:var(--text-2);font-size:.92rem;font-weight:300;line-height:1.85;margin-bottom:1rem;max-width:520px}.about-grid{grid-gap:5rem;align-items:start;display:grid;gap:5rem;grid-template-columns:1fr 280px}.edu-block{margin-bottom:2rem}.edu-label{color:var(--text-3);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;margin-bottom:.6rem;text-transform:uppercase}.edu-school{color:var(--text);font-size:.9rem;font-weight:500;margin-bottom:.2rem}.edu-deg{color:var(--text-2);font-size:.82rem;margin-bottom:.2rem}.edu-period{color:var(--text-3);font-family:var(--font-mono);font-size:.72rem}.courses-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem}.interests-grid{grid-gap:0;border-left:1px solid var(--border);display:grid;gap:0;grid-template-columns:repeat(4,1fr)}.interest-item{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:1.75rem 1.5rem}.interest-num{color:var(--text-3);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;margin-bottom:1rem}.interest-title{color:var(--text);font-size:.88rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.5rem}.interest-desc{color:var(--text-3);font-size:.78rem;font-weight:300;line-height:1.65}.skills-grid{grid-gap:2.5rem;display:grid;gap:2.5rem;grid-template-columns:repeat(4,1fr)}.skill-cat{color:var(--text-3);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.1em;margin-bottom:.75rem;text-transform:uppercase}.skill-tags{display:flex;flex-wrap:wrap;gap:.3rem}.exp-list{border-top:1px solid var(--border)}.exp-row{border-bottom:1px solid var(--border);cursor:pointer;padding:1.5rem 0;transition:background .15s}.exp-row:hover{background:hsla(0,0%,100%,.015)}.exp-header{align-items:center;display:flex;gap:1rem;justify-content:space-between}.exp-role{color:var(--text);font-size:.92rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.2rem}.exp-company{color:var(--text-3);font-family:var(--font-mono);font-size:.72rem}.exp-right{align-items:center;display:flex;flex-shrink:0;gap:1.5rem}.exp-period{color:var(--text-3);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em}.exp-toggle{color:var(--text-3);font-size:1rem;line-height:1;text-align:center;width:20px}.exp-points{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:.6rem;list-style:none;margin-top:1.25rem;padding-top:1.25rem}.exp-points li{color:var(--text-2);font-size:.85rem;font-weight:300;line-height:1.7;padding-left:1rem;position:relative}.exp-points li:before{color:var(--text-3);content:"—";font-size:.7rem;left:0;position:absolute;top:3px}@media (max-width:900px){.about-grid{gap:2.5rem;grid-template-columns:1fr}.interests-grid,.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.interests-grid,.skills-grid{grid-template-columns:1fr}.hero-name{font-size:2.8rem}}.page.home-page{padding-top:0!important}.projects-page{padding-bottom:8rem}.proj-header{margin-bottom:3rem}.proj-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:400;letter-spacing:-.03em;line-height:1.1;margin-bottom:1rem}.proj-sub{color:var(--text-2);font-size:.9rem;font-weight:300;line-height:1.75;max-width:480px}.filter-row{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:2.5rem}.filter-btn{background:#0000;border:1px solid var(--border);border-radius:2px;color:var(--text-3);cursor:pointer;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;padding:.35rem .9rem;transition:all .18s}.filter-btn:hover{border-color:var(--gray-4);color:var(--text-2)}.filter-btn--active{background:var(--text);border-color:var(--text);color:var(--black)}.proj-list{border-top:1px solid var(--border);margin-bottom:5rem}.proj-row{border-bottom:1px solid var(--border);cursor:pointer;padding:1.75rem 0;transition:background .15s}.proj-row:hover{background:hsla(0,0%,100%,.015)}.proj-row-header{align-items:center;display:flex;gap:1.5rem;justify-content:space-between}.proj-row-left{align-items:flex-start;display:flex;flex:1 1;gap:1.25rem;min-width:0}.proj-num{color:var(--text-3);flex-shrink:0;font-family:var(--font-mono);font-size:.65rem;letter-spacing:.06em;padding-top:.25rem}.proj-name{color:var(--text);font-size:1.15rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.25rem}.proj-tagline{color:var(--text-3);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.02em}.proj-row-right{align-items:center;display:flex;flex-shrink:0;gap:1.25rem}.proj-toggle{color:var(--text-3);font-size:1.1rem;font-weight:300;line-height:1;text-align:center;width:18px}.proj-body{border-top:1px solid var(--border);cursor:default;margin-top:1.5rem;padding-left:1rem;padding-right:1rem;padding-top:1.5rem}.proj-desc{color:var(--text-2);font-size:.88rem;font-weight:300;line-height:1.8;margin-bottom:1.5rem;max-width:620px}.proj-highlights{grid-gap:1px;background:var(--border);border:1px solid var(--border);display:grid;gap:1px;grid-template-columns:repeat(3,1fr);margin-bottom:1.5rem}.hl-item{background:var(--black);padding:1rem 1.25rem}.hl-label{color:var(--text-3);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.08em;margin-bottom:.4rem;text-transform:uppercase}.hl-val{color:var(--text);font-size:.82rem;line-height:1.4}.proj-footer{align-items:center;gap:1rem;justify-content:space-between}.proj-footer,.proj-tech{display:flex;flex-wrap:wrap}.proj-tech{gap:.3rem}.proj-links{display:flex;gap:1rem}.proj-link{color:var(--text-2);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;transition:color .18s}.proj-link:hover{color:var(--text)}.proj-cta{align-items:flex-start;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;padding:3.5rem 0 2rem}.cta-label{color:var(--text-3);font-family:var(--font-mono);font-size:.65rem;letter-spacing:.12em;margin-bottom:1.2rem}.cta-email{color:var(--text);font-size:1.4rem;font-weight:600;letter-spacing:-.02em;transition:opacity .2s}.cta-email:hover{opacity:.7}.cta-links{display:flex;flex-wrap:wrap;gap:2rem;margin-top:.5rem}.cta-link{color:var(--text-2);font-size:.88rem;transition:color .2s}.cta-link:hover{color:var(--text)}@media (max-width:700px){.proj-highlights{grid-template-columns:1fr}.proj-row-right{gap:.75rem}.proj-cta{align-items:flex-start;flex-direction:column}}.projects-page{padding-left:4rem!important;padding-right:4rem!important}.cta-phone{color:var(--text-3);font-family:var(--font-mono);font-size:.88rem;letter-spacing:.04em;margin-top:.5rem}.app{display:flex;flex-direction:column;min-height:100vh}.navbar{align-items:center;border-bottom:1px solid #0000;display:flex;justify-content:space-between;left:0;padding:1.25rem 3rem;position:fixed;right:0;top:0;transition:background .4s var(--ease),border-color .4s var(--ease);z-index:100}.navbar--scrolled{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a0a0af2;border-bottom-color:var(--border)}.nav-brand{color:var(--text);font-family:var(--font-display);font-size:1.1rem;font-weight:700;letter-spacing:-.01em}.nav-links{align-items:center;display:flex;gap:.1rem}.nav-link{border-radius:var(--radius);color:var(--text-3);font-size:.82rem;font-weight:400;letter-spacing:.02em;padding:.4rem .85rem;transition:color .2s}.nav-link:hover{color:var(--text-2)}.nav-link--active{color:var(--text)}.nav-cta{background:var(--text);border-radius:var(--radius);color:var(--black);font-size:.82rem;font-weight:500;margin-left:.75rem;padding:.4rem 1rem;transition:opacity .2s}.nav-cta:hover{opacity:.85}.footer{border-top:1px solid var(--border);margin-top:auto;padding:2rem 3rem}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;margin:0 auto;max-width:960px}.footer-left{color:var(--text-3);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em}.footer-links{display:flex;gap:1.5rem}.footer-link{color:var(--text-3);font-size:.78rem;letter-spacing:.02em;transition:color .2s}.footer-link:hover{color:var(--text-2)}.page{margin:0 auto;max-width:960px;padding:8rem 5rem 6rem 3rem;width:100%}.eyebrow{color:var(--text-3);display:block;font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;margin-bottom:1rem;text-transform:uppercase}.divider{background:var(--border);height:1px;margin:4rem 0;width:100%}.btn{align-items:center;border:none;border-radius:var(--radius);cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:500;gap:.4rem;letter-spacing:.02em;padding:.55rem 1.2rem;transition:all .2s}.btn-solid{background:var(--text);color:var(--black)}.btn-solid:hover{opacity:.88}.btn-outline{background:#0000;border:1px solid var(--border-2);color:var(--text-2)}.btn-outline:hover{border-color:var(--gray-4);color:var(--text)}.tag{background:var(--gray-1);border:1px solid var(--border);border-radius:2px;color:var(--text-3);display:inline-flex;font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;padding:.18rem .6rem}@media (max-width:768px){.navbar{padding:1rem 1.5rem}.page{padding:6.5rem 1.5rem 4rem}.footer{padding:1.5rem}}*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--black:#0a0a0a;--white:#f2f0ed;--gray-1:#141414;--gray-2:#1e1e1e;--gray-3:#2a2a2a;--gray-4:#444;--gray-5:#666;--gray-6:#888;--gray-7:#aaa;--gray-8:#ccc;--text:#f2f0ed;--text-2:#999;--text-3:#555;--border:#222;--border-2:#2e2e2e;--font-display:"Playfair Display",serif;--font-body:"Geist","DM Sans",sans-serif;--font-mono:"Geist Mono","JetBrains Mono",monospace;--radius:4px;--radius-md:8px;--ease:cubic-bezier(0.16,1,0.3,1)}html{font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;background:#0a0a0a;background:var(--black);color:#f2f0ed;color:var(--text);font-family:Geist,DM Sans,sans-serif;font-family:var(--font-body);min-height:100vh;overflow-x:hidden}body:before{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:128px 128px;content:"";inset:0;opacity:.028;pointer-events:none;position:fixed;z-index:9999}a{color:inherit;text-decoration:none}::selection{background:#2a2a2a;background:var(--gray-3);color:#f2f0ed;color:var(--white)}::-webkit-scrollbar{width:1px}::-webkit-scrollbar-track{background:#0a0a0a;background:var(--black)}::-webkit-scrollbar-thumb{background:#2a2a2a;background:var(--gray-3)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transition:opacity .7s var(--ease),transform .7s var(--ease)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}.reveal-delay-4{transition-delay:.4s}.reveal-delay-5{transition-delay:.5s}*,:after,:before{cursor:none!important}.cursor{background:#f2f0ed;background:var(--white);border-radius:50%;height:10px;mix-blend-mode:difference;pointer-events:none;position:fixed;transform:translate(-50%,-50%);transition:transform .15s cubic-bezier(.16,1,.3,1),opacity .2s;transition:transform .15s var(--ease),opacity .2s;width:10px;z-index:99999}.cursor--hidden{opacity:0}
/*# sourceMappingURL=main.f49cfaa4.css.map*/