@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/fc0a7394b875fa43-s.614a1c00.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7ebf22b5a21034f8-s.p.d8bad3ab.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ccf27e5a7366fb23-s.262b87c4.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-weight:400;font-display:swap;src:url(../media/e41d5df559864f9e-s.p.380d09ea.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif Fallback;src:local(Times New Roman);ascent-override:117.94%;descent-override:36.93%;line-gap-override:0.0%;size-adjust:83.94%}.instrument_serif_85917489-module__UNhpTa__className{font-family:Instrument Serif,Instrument Serif Fallback;font-weight:400}.instrument_serif_85917489-module__UNhpTa__variable{--serif:"Instrument Serif","Instrument Serif Fallback"}
@font-face{font-family:DM Sans;font-style:italic;font-weight:300;font-display:swap;src:url(../media/7334b8b05e61def8-s.9b20e937.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:300;font-display:swap;src:url(../media/5e50e46ec4da0455-s.p.7f306443.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:italic;font-weight:400;font-display:swap;src:url(../media/7334b8b05e61def8-s.9b20e937.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:400;font-display:swap;src:url(../media/5e50e46ec4da0455-s.p.7f306443.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:italic;font-weight:500;font-display:swap;src:url(../media/7334b8b05e61def8-s.9b20e937.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:500;font-display:swap;src:url(../media/5e50e46ec4da0455-s.p.7f306443.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:italic;font-weight:600;font-display:swap;src:url(../media/7334b8b05e61def8-s.9b20e937.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:italic;font-weight:600;font-display:swap;src:url(../media/5e50e46ec4da0455-s.p.7f306443.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:300;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:400;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:500;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:600;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_e18e10b5-module__9_t7pW__className{font-family:DM Sans,DM Sans Fallback}.dm_sans_e18e10b5-module__9_t7pW__variable{--sans:"DM Sans","DM Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/04c5164763c40239-s.690580e8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/26f284dcc38c84c0-s.303a03d6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7e7f32a39836f228-s.0b4edfe7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/fa39153a3fc630ba-s.bff0868b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/6a5386fd6038edbe-s.719084df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/051742360c26797e-s.p.102b7f24.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/04c5164763c40239-s.690580e8.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/26f284dcc38c84c0-s.303a03d6.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7e7f32a39836f228-s.0b4edfe7.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/fa39153a3fc630ba-s.bff0868b.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/6a5386fd6038edbe-s.719084df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/051742360c26797e-s.p.102b7f24.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_61fdd588-module__pE2J0q__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_61fdd588-module__pE2J0q__variable{--mono:"JetBrains Mono","JetBrains Mono Fallback"}
:root{--bg:#0c0c0c;--bg-card:#141414;--bg-card-hover:#1a1a1a;--text:#e8e4df;--text-muted:#8a8580;--accent:#c9f06b;--accent-dim:#c9f06b1f;--accent-glow:#c9f06b0f;--border:#242424}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-weight:300;line-height:1.65}body:before{content:"";pointer-events:none;z-index:999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");position:fixed;inset:0}.container{max-width:900px;margin:0 auto;padding:0 24px}section{border-bottom:1px solid var(--border);opacity:0;padding:100px 0;animation:.8s forwards fadeUp;transform:translateY(30px)}section:nth-child(2){animation-delay:.1s}section:nth-child(3){animation-delay:.15s}section:nth-child(4){animation-delay:.2s}section:nth-child(5){animation-delay:.25s}section:nth-child(6){animation-delay:.3s}section:nth-child(7){animation-delay:.35s}@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}.hero{padding:160px 0 120px;position:relative;overflow:hidden}.hero:after{content:"";background:radial-gradient(circle,var(--accent-glow)0%,transparent 70%);pointer-events:none;width:500px;height:500px;position:absolute;top:-100px;right:-200px}.hero-label{letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:28px;font-size:12px;display:inline-block}.hero h1{color:var(--text);margin-bottom:20px;font-size:clamp(48px,8vw,88px);font-weight:400;line-height:1.05}.hero h1 em{color:var(--accent);font-style:italic}.hero-subtitle{color:var(--text-muted);max-width:520px;margin-bottom:40px;font-size:18px;line-height:1.7}.hero-tagline{color:var(--accent);background:var(--accent-dim);border:1px solid #c9f06b26;border-radius:4px;padding:8px 16px;font-size:13px;display:inline-block}.section-label{letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:12px;font-size:11px}.section-title{margin-bottom:16px;font-size:clamp(32px,5vw,48px);font-weight:400;line-height:1.15}.section-desc{color:var(--text-muted);max-width:560px;margin-bottom:48px;font-size:16px}.skills-strip{flex-wrap:wrap;gap:10px;margin-top:40px;display:flex}.skill-tag{border:1px solid var(--border);color:var(--text-muted);background:var(--bg-card);border-radius:100px;padding:8px 16px;font-size:12px;transition:all .3s}.skill-tag:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.skill-tag.highlight{color:var(--accent);background:var(--accent-dim);border-color:#c9f06b4d}.projects-grid{gap:16px;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:36px;transition:all .4s;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg,var(--accent),transparent);opacity:0;height:2px;transition:opacity .4s;position:absolute;top:0;left:0;right:0}.project-card:hover{background:var(--bg-card-hover);border-color:#c9f06b33;transform:translateY(-2px)}.project-card:hover:before{opacity:1}.project-number{color:var(--accent);letter-spacing:2px;margin-bottom:16px;font-size:11px}.project-card h3{margin-bottom:12px;font-size:24px;font-weight:400}.project-card p{color:var(--text-muted);margin-bottom:20px;font-size:15px;line-height:1.7}.project-tech{flex-wrap:wrap;gap:8px;display:flex}.project-tech span{color:var(--text-muted);background:#ffffff0a;border:1px solid #ffffff0f;border-radius:100px;padding:4px 12px;font-size:11px}.chess-content{grid-template-columns:1fr 1fr;align-items:center;gap:40px;display:grid}@media (max-width:700px){.chess-content{grid-template-columns:1fr}}.chess-stats{flex-direction:column;gap:20px;display:flex}.chess-stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:28px;transition:all .3s}.chess-stat-card:hover{border-color:#c9f06b33}.stat-value{color:var(--accent);margin-bottom:6px;font-size:42px;line-height:1}.stat-label{letter-spacing:2px;text-transform:uppercase;color:var(--text-muted);font-size:11px}.chess-narrative{color:var(--text-muted);font-size:16px;line-height:1.8}.chess-narrative strong{color:var(--text);font-weight:500}.chess-screenshot-placeholder{background:var(--bg-card);border:1px solid var(--border);text-align:center;color:var(--text-muted);border-radius:12px;margin-top:20px;padding:40px;font-size:13px}.academic-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;grid-template-columns:auto 1fr;align-items:start;gap:28px;padding:36px;display:grid}@media (max-width:600px){.academic-card{grid-template-columns:1fr}}.academic-icon{background:var(--accent-dim);border-radius:12px;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;display:flex}.academic-card h3{margin-bottom:6px;font-size:22px;font-weight:400}.academic-card .degree{color:var(--accent);margin-bottom:10px;font-size:13px;display:block}.academic-card p{color:var(--text-muted);font-size:15px;line-height:1.7}.ai-search-section{border-bottom:none}.search-container{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:48px;position:relative;overflow:hidden}.search-container:before{content:"";background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.5;height:1px;position:absolute;top:0;left:0;right:0}.search-header{text-align:center;margin-bottom:36px}.search-header h2{margin-bottom:10px;font-size:32px;font-weight:400}.search-header p{color:var(--text-muted);font-size:15px}.search-input-wrap{gap:12px;margin-bottom:24px;display:flex}.search-input-wrap input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;flex:1;padding:16px 20px;font-family:inherit;font-size:15px;transition:border-color .3s}.search-input-wrap input:focus{border-color:var(--accent)}.search-input-wrap input::placeholder{color:var(--text-muted)}.search-btn{background:var(--accent);color:var(--bg);cursor:pointer;letter-spacing:1px;text-transform:uppercase;white-space:nowrap;border:none;border-radius:10px;padding:16px 28px;font-size:13px;font-weight:500;transition:all .3s}.search-btn:hover{background:#d4f57a;transform:translateY(-1px)}.search-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.suggested-queries{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.suggested-q{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:100px;padding:6px 14px;font-size:11px;transition:all .3s}.suggested-q:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.search-response{background:var(--bg);border:1px solid var(--border);border-radius:10px;margin-top:28px;padding:24px;display:none}.search-response.visible{animation:.4s fadeUp;display:block}.search-response .response-label{color:var(--accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:12px;font-size:11px}.search-response .response-text{color:var(--text);font-size:15px;line-height:1.8}.search-response .response-text.loading{color:var(--text-muted)}.search-disclaimer{text-align:center;color:#8a858080;margin-top:16px;font-size:12px}.contact-bar{text-align:center;border-bottom:none;padding:60px 0}.contact-links{flex-wrap:wrap;justify-content:center;gap:32px;display:flex}.contact-links a{color:var(--text-muted);letter-spacing:1px;border-bottom:1px solid #0000;padding:8px 0;font-size:13px;text-decoration:none;transition:color .3s}.contact-links a:hover{color:var(--accent);border-bottom-color:var(--accent)}.footer-note{color:#8a858066;margin-top:40px;font-size:12px}@media (max-width:600px){.hero{padding:100px 0 80px}section{padding:60px 0}.search-container{padding:28px}.search-input-wrap{flex-direction:column}.project-card{padding:24px}}
