@import "https://api.fontshare.com/v2/css?f[]=clash-display@400;500;600;700&f[]=satoshi@400;500;700&display=swap";.page-transition-overlay{background:var(--bg);z-index:9999;opacity:0;pointer-events:none;transition:opacity .3s;position:fixed;inset:0}.page-transition-overlay.active{opacity:1;pointer-events:all}.hsr-bg{pointer-events:none;z-index:0;contain:strict;position:fixed;inset:0;overflow:hidden}.hsr-bg .code-col{contain:content;width:300px;position:absolute;top:0;bottom:0;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0%,#000 6% 94%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 6% 94%,#0000 100%)}.hsr-bg .code-col-left{left:0}.hsr-bg .code-col-right{right:0}.hsr-bg .code-col-inner{will-change:transform;backface-visibility:hidden;-webkit-font-smoothing:antialiased;flex-direction:column;gap:0;animation:60s linear infinite codeScrollDown;display:flex}.hsr-bg .code-col-inner--reverse{will-change:transform;backface-visibility:hidden;animation:70s linear infinite codeScrollUp}.hsr-bg .code-line{white-space:pre;color:var(--primary);opacity:.38;padding:0 20px;font-family:JetBrains Mono,Fira Code,Cascadia Code,ui-monospace,monospace;font-size:12.5px;line-height:2;display:block}[data-theme=dark] .hsr-bg .code-line{opacity:.42}[data-theme=light] .hsr-bg .code-line{opacity:.22}.hsr-bg .code-line:nth-child(7n+1){opacity:.6}.hsr-bg .code-line:nth-child(7n+4){opacity:.22}[data-theme=dark] .hsr-bg .code-line:nth-child(7n+1){opacity:.65}[data-theme=light] .hsr-bg .code-line:nth-child(7n+1){opacity:.38}@keyframes codeScrollDown{0%{transform:translateY(0)}to{transform:translateY(-50%)}}@keyframes codeScrollUp{0%{transform:translateY(-50%)}to{transform:translateY(0)}}.navbar{z-index:100;-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);border-bottom:1px solid var(--border);background:#090c12d9;transition:background .3s,border-color .3s;position:fixed;top:0;left:0;right:0}[data-theme=light] .navbar{background:#ffffffe0}.nav-inner{justify-content:space-between;align-items:center;max-width:1140px;height:64px;margin:0 auto;padding:0 28px;display:flex}.brand{letter-spacing:-.5px;color:var(--text);font-family:Clash Display,sans-serif;font-size:1.45rem;font-weight:700;transition:color .25s}.brand:hover,.brand .dot{color:var(--primary)}.nav-links{gap:36px;display:flex}.nav-link{color:var(--muted);letter-spacing:.01em;font-size:.875rem;font-weight:500;transition:color .2s;position:relative}.nav-link:after{content:"";background:var(--primary);border-radius:2px;width:0;height:1.5px;transition:width .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:-4px;left:0}.nav-link:hover{color:var(--text)}.nav-link:hover:after,.nav-link.active:after{width:100%}.nav-link.active{color:var(--primary)}.nav-actions{align-items:center;gap:10px;display:flex}.nav-toggle-btn{border:1px solid var(--border);width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;transition:border-color .2s,color .2s,background .2s;display:flex}.nav-toggle-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-dim)}.toggle-icon{color:inherit}.lang-label{letter-spacing:.8px;color:inherit;font-size:.7rem;font-weight:700}.burger{background:0 0;border:none;flex-direction:column;gap:5px;padding:4px;display:none}.burger span{background:var(--muted);border-radius:2px;width:22px;height:1.5px;transition:transform .3s,opacity .3s,background .25s;display:block}.burger.active span{background:var(--primary)}.burger.active span:first-child{transform:translateY(6.5px)rotate(45deg)}.burger.active span:nth-child(2){opacity:0}.burger.active span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}.hero{align-items:center;min-height:100vh;padding:100px 28px 80px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(ellipse at center, var(--primary-glow) 0%, transparent 65%);pointer-events:none;z-index:0;opacity:.35;width:900px;height:600px;position:absolute;top:10%;left:50%;transform:translate(-50%)}.hero-grid{z-index:1;grid-template-columns:1fr auto;align-items:center;gap:80px;width:100%;max-width:1140px;margin:0 auto;display:grid;position:relative}.hero-text h1{letter-spacing:-2px;color:var(--text);margin-bottom:16px;font-size:4rem;font-weight:700;line-height:1.05}.hero-name-highlight{color:var(--primary)}.hero-subtitle{color:var(--gold);letter-spacing:.03em;margin-bottom:20px;font-size:1rem;font-weight:500}.hero-desc{color:var(--muted);max-width:480px;margin-bottom:36px;font-size:1rem;line-height:1.75}.hero-btns{flex-wrap:wrap;gap:14px;display:flex}.hero-photo-wrapper{flex-shrink:0;justify-content:center;align-items:center;width:310px;height:310px;display:flex;position:relative}.photo-frame-svg{width:calc(100% + 40px);height:calc(100% + 40px);color:var(--primary);opacity:.55;pointer-events:none;z-index:2;position:absolute;inset:-20px}[data-theme=dark] .photo-frame-svg{opacity:.75}.hero-photo{object-fit:cover;z-index:1;filter:grayscale(8%);border-radius:14px;width:270px;height:270px;transition:filter .4s;position:relative}.hero-photo-wrapper:hover .hero-photo{filter:grayscale(0%)}.btn-primary{background:var(--primary);color:var(--btn-text);letter-spacing:.02em;cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-size:.88rem;font-weight:700;transition:box-shadow .3s,transform .2s;display:inline-flex}.btn-primary:hover{box-shadow:0 0 28px var(--primary-glow);transform:translateY(-2px)}.btn-full{width:100%}.btn-outline{color:var(--text);border:1px solid var(--border-soft);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-size:.88rem;font-weight:600;transition:border-color .25s,color .25s,background .25s;display:inline-flex}.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-dim)}.section-divider{align-items:center;gap:0;max-width:1140px;height:32px;margin:0 auto;padding:0 28px;display:flex;overflow:visible}.divider-arm{height:32px;color:var(--primary);opacity:.5;flex:1;min-width:0}[data-theme=dark] .divider-arm{opacity:.65}.divider-center{width:88px;height:36px;color:var(--primary);opacity:.75;flex-shrink:0}[data-theme=dark] .divider-center{opacity:.92}.projects-section,.education-section,.contact-section{z-index:1;max-width:1140px;margin:0 auto;padding:96px 28px;position:relative}.section-label{color:var(--primary);text-transform:uppercase;letter-spacing:3px;align-items:center;gap:8px;margin-bottom:10px;font-size:.72rem;font-weight:700;display:inline-flex}.section-label:before{content:"";background:var(--primary);flex-shrink:0;width:20px;height:1.5px;display:inline-block}[data-theme=dark] .section-label:before{width:24px;height:2px}.section-title{letter-spacing:-1.2px;color:var(--text);margin-bottom:56px;font-size:2.4rem;font-weight:700}.projects-timeline{flex-direction:column;gap:0;display:flex;position:relative}.timeline-vine-wrapper{pointer-events:none;z-index:0;width:24px;position:absolute;top:0;bottom:0;left:106px}.timeline-vine{background:var(--primary);opacity:.18;width:1.8px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}[data-theme=dark] .timeline-vine{opacity:.28}.project-item{z-index:1;align-items:stretch;gap:0;display:flex;position:relative}.project-date-col{text-align:right;flex-shrink:0;width:106px;padding-top:28px;padding-right:20px}.project-date{color:var(--muted);text-transform:uppercase;letter-spacing:1.2px;white-space:nowrap;font-size:.72rem;font-weight:600}.project-line{flex-direction:column;flex-shrink:0;align-items:center;width:24px;display:flex;position:relative}.project-dot{background:var(--primary);width:12px;height:12px;box-shadow:0 0 12px var(--primary-glow);z-index:2;border:2px solid var(--bg);border-radius:50%;flex-shrink:0;margin-top:30px}[data-theme=dark] .project-dot{width:13px;height:13px;box-shadow:0 0 16px var(--primary-glow), 0 0 4px var(--primary)}.project-card{background:var(--panel);border:1px solid var(--border-soft);border-radius:14px;flex:1;margin:10px 0 10px 20px;padding:24px 26px;transition:border-color .3s,box-shadow .3s,transform .3s;position:relative;overflow:hidden}[data-theme=dark] .project-card{border-width:1.5px}.project-card:before{content:"";background:linear-gradient(to right, transparent, var(--primary), transparent);opacity:0;height:1px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.project-card:hover{border-color:var(--border);box-shadow:var(--shadow-card), 0 0 0 1px var(--border);transform:translate(5px)}[data-theme=dark] .project-card:hover{border-color:var(--primary);box-shadow:var(--shadow-card), 0 0 24px var(--primary-glow)}.project-card:hover:before{opacity:.6}.project-card h3{color:var(--text);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;font-size:1.2rem;font-weight:600;display:flex}.project-card p{color:var(--muted);margin-bottom:14px;font-size:.91rem;line-height:1.65}.badge-progress,.badge-school{background:var(--gold-dim);color:var(--gold);text-transform:uppercase;letter-spacing:.8px;border:1px solid var(--border);border-radius:20px;padding:3px 9px;font-family:Satoshi,sans-serif;font-size:.65rem;font-weight:700;display:inline-block}.tag-row{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.tag{background:var(--primary-dim);color:var(--primary);letter-spacing:.3px;border:1px solid #0000;border-radius:20px;padding:3px 10px;font-size:.7rem;font-weight:600;transition:border-color .25s,background .25s}.tag:hover{border-color:var(--border);background:var(--primary-dim)}.project-link{color:var(--primary);align-items:center;gap:4px;font-size:.85rem;font-weight:600;transition:gap .2s,opacity .2s;display:inline-flex}.project-link:hover{opacity:.8;gap:8px}.school-projects-header{margin-top:72px;margin-bottom:28px}.school-projects-title{color:var(--text);align-items:center;gap:10px;margin-bottom:8px;font-size:1.35rem;font-weight:700;display:flex}.school-projects-desc{color:var(--muted);font-size:.88rem;line-height:1.65}.school-projects-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.school-card{background:var(--panel);border:1px solid var(--border-soft);border-radius:14px;padding:24px 26px;transition:border-color .3s,box-shadow .3s,transform .3s;position:relative;overflow:hidden}[data-theme=dark] .school-card{border-width:1.5px}.school-card:after{content:"";background:linear-gradient(to right, transparent, var(--primary), transparent);opacity:0;height:1px;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.school-card:hover{border-color:var(--border);box-shadow:var(--shadow-card);transform:translateY(-3px)}[data-theme=dark] .school-card:hover{border-color:var(--primary);box-shadow:var(--shadow-card), 0 0 24px var(--primary-glow)}.school-card:hover:after{opacity:.55}.school-card h4{color:var(--text);margin-bottom:8px;font-size:1.1rem;font-weight:600}.school-card p{color:var(--muted);margin-bottom:14px;font-size:.88rem;line-height:1.65}.edu-stack{grid-template-columns:1fr 1fr;gap:20px;display:grid}.edu-card{background:var(--panel);border:1px solid var(--border-soft);border-radius:14px;padding:30px;transition:border-color .3s,box-shadow .3s,transform .3s;position:relative;overflow:hidden}[data-theme=dark] .edu-card{border-width:1.5px}.edu-card:before{content:"";background:linear-gradient(to bottom, var(--primary), transparent);opacity:0;border-radius:14px 0 0 14px;width:3px;height:100%;transition:opacity .35s;position:absolute;top:0;left:0}.edu-card:hover{border-color:var(--border);box-shadow:var(--shadow-card);transform:translateY(-3px)}[data-theme=dark] .edu-card:hover{border-color:var(--primary);box-shadow:var(--shadow-card), 0 0 20px var(--primary-glow)}.edu-card:hover:before{opacity:1}.edu-card-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.edu-card-header h3{color:var(--text);margin-bottom:4px;font-size:1.2rem;font-weight:700}.edu-degree{color:var(--muted);font-size:.88rem;font-weight:500}.edu-period{color:var(--primary);text-transform:uppercase;letter-spacing:1.5px;white-space:nowrap;flex-shrink:0;padding-top:4px;font-size:.7rem;font-weight:700}.edu-desc{color:var(--muted);margin-bottom:14px;font-size:.88rem;line-height:1.72}.edu-coursework{color:var(--muted);opacity:.65;border-top:1px solid var(--border-soft);margin-top:4px;padding-top:12px;font-size:.8rem;font-style:italic}.contact-grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:56px;display:grid}.contact-form{flex-direction:column;gap:18px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--muted);text-transform:uppercase;letter-spacing:1px;font-size:.78rem;font-weight:700}.contact-form input,.contact-form textarea{background:var(--panel);border:1px solid var(--border-soft);width:100%;color:var(--text);border-radius:10px;outline:none;padding:13px 16px;font-family:inherit;font-size:.92rem;transition:border-color .25s,box-shadow .25s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--border);box-shadow:0 0 0 3px var(--primary-dim)}.contact-form input::placeholder,.contact-form textarea::placeholder{color:var(--muted);opacity:.6}.contact-form textarea{resize:vertical;min-height:128px}.contact-info{flex-direction:column;gap:32px;padding-top:4px;display:flex}.contact-info-intro h3{color:var(--text);margin-bottom:10px;font-size:1.5rem;font-weight:700}.contact-info-intro p{color:var(--muted);font-size:.92rem;line-height:1.72}.info-items{flex-direction:column;gap:16px;display:flex}.info-box{background:var(--panel);border:1px solid var(--border-soft);border-radius:12px;align-items:center;gap:16px;padding:14px 16px;transition:border-color .25s;display:flex}.info-box:hover{border-color:var(--border)}.info-icon{background:var(--primary-dim);width:40px;height:40px;color:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.info-label{color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:2px;font-size:.7rem;font-weight:700}.info-value{color:var(--text);font-size:.88rem}.info-box a{color:var(--text);font-size:.88rem;transition:color .2s}.info-box a:hover{color:var(--primary)}.social-section{padding-top:4px}.social-section .info-label{margin-bottom:14px}.social-row{gap:12px;display:flex}.social-icon{border:1px solid var(--border-soft);width:44px;height:44px;color:var(--muted);background:var(--panel);border-radius:10px;justify-content:center;align-items:center;transition:all .25s;display:flex}.social-icon:hover{color:var(--primary);border-color:var(--border);background:var(--primary-dim);box-shadow:0 8px 20px var(--primary-glow);transform:translateY(-3px)}.footer{z-index:1;border-top:1px solid var(--border-soft);padding:36px 28px;position:relative}.footer-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1140px;margin:0 auto;display:flex}.footer-brand{color:var(--muted);letter-spacing:-.3px;font-family:Clash Display,sans-serif;font-size:.95rem;font-weight:700}.footer-brand span{color:var(--primary)}.footer p{color:var(--muted);opacity:.6;font-size:.82rem}.footer-legal{color:var(--muted);opacity:.6;cursor:pointer;background:0 0;border:none;font-size:.82rem;transition:color .2s,opacity .2s}.footer-legal:hover{color:var(--primary);opacity:1}.legal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;will-change:backdrop-filter;background:#000000b3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.legal-modal{background:var(--panel);border:1px solid var(--border);border-radius:18px;width:100%;max-width:580px;max-height:80vh;padding:40px;position:relative;overflow-y:auto}.legal-close{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;top:16px;right:16px}.legal-close:hover{color:var(--text)}.legal-modal h2{color:var(--text);margin-bottom:28px;font-size:1.5rem}.legal-section{margin-bottom:24px}.legal-section h3{color:var(--primary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px;font-size:.9rem;font-weight:700}.legal-section p{color:var(--muted);font-size:.88rem;line-height:1.7}@media (width<=1000px){.hero-grid{text-align:center;grid-template-columns:1fr;justify-items:center;gap:48px}.hero-desc{margin-left:auto;margin-right:auto}.hero-btns{justify-content:center}.hero-photo-wrapper{order:-1}.edu-stack,.school-projects-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:40px}.project-date-col{width:88px;padding-right:14px}.project-card{margin-left:14px}}@media (width<=768px){.nav-links{background:var(--panel);border-bottom:1px solid var(--border-soft);z-index:99;flex-direction:column;gap:16px;padding:20px 24px;display:none;position:absolute;top:64px;left:0;right:0}.nav-links.open{display:flex}.nav-link:after{display:none}.burger{display:flex}.hero-text h1{font-size:2.8rem}.section-title{letter-spacing:-.8px;font-size:1.9rem}.project-item{flex-direction:column}.project-date-col{text-align:left;width:auto;margin-bottom:4px;padding-top:0;padding-right:0}.project-line,.timeline-vine-wrapper{display:none}.project-card{margin-top:4px;margin-left:0}.project-card:hover{transform:none}.edu-card-header{flex-direction:column;gap:4px}.edu-period{padding-top:0}.footer-inner{text-align:center;flex-direction:column;gap:10px}}@media (width<=480px){.hero-text h1{font-size:2.1rem}.hero-photo{width:240px;height:240px}.hero-btns{flex-direction:column;align-items:center;width:100%}.btn-primary,.btn-outline{justify-content:center;width:100%}.legal-modal{padding:28px 20px}}.credit-link{color:var(--muted);margin-top:6px;font-size:.88rem;line-height:1.7}.credit-link a{color:var(--muted);font-weight:600;text-decoration:none}.credit-link a:hover{text-decoration:underline}@media (width<=768px){.hsr-bg .code-col{display:none}.hero-photo-wrapper{width:200px;height:200px}.hero-photo{width:180px;height:180px}.projects-section,.education-section,.contact-section{padding:64px 16px}.hero{padding:90px 16px 60px}}@media (width<=480px){.hero-photo-wrapper{width:160px;height:160px}.hero-photo{width:140px;height:140px}}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.form-error{color:#ef4444;margin-left:4px;font-size:.75rem;font-weight:600;display:inline-block}.form-notice{color:var(--text-primary);background-color:#3b82f61a;border-left:3px solid #3b82f6;border-radius:4px;margin-top:12px;padding:12px;font-size:.875rem;line-height:1.4}@media (width<=768px){.form-notice{padding:10px;font-size:.8125rem}.hsr-bg .code-col-inner,.hsr-bg .code-col-inner--reverse{animation:none!important}.navbar{-webkit-backdrop-filter:blur(10px)saturate(160%);backdrop-filter:blur(10px)saturate(160%)}.legal-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;background:#000000d9}.hsr-bg .code-col-inner,.hsr-bg .code-col-inner--reverse{will-change:auto;backface-visibility:visible}.motion-div{--motion-reduce:1}}@media (prefers-color-scheme:light) and (width>=769px){@supports ((-webkit-backdrop-filter:blur(0px)) or (backdrop-filter:blur(0px))){.legal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}}}@media (prefers-reduced-motion:reduce){.hsr-bg .code-col-inner,.hsr-bg .code-col-inner--reverse{animation:none!important}.navbar{-webkit-backdrop-filter:blur(10px)saturate(160%);backdrop-filter:blur(10px)saturate(160%)}}:root,[data-theme=dark]{--bg:#090912;--bg-alt:#0d0d18;--panel:#10101e;--panel-raised:#15152a;--text:#ededf0;--muted:#8080a0;--primary:#a855f7;--primary-dim:#a855f712;--primary-glow:#a855f738;--accent:#d946ef;--gold:#22d3ee;--gold-dim:#22d3ee1a;--btn-text:#fff;--border:#a855f71f;--border-soft:#ffffff0a;--shadow:0 4px 32px #0009;--shadow-card:0 2px 24px #00000073}[data-theme=light]{--bg:#f7f5ff;--bg-alt:#f0ecff;--panel:#fff;--panel-raised:#faf8ff;--text:#1a1a2e;--muted:#4a4a8a;--primary:#7c3aed;--primary-dim:#7c3aed12;--primary-glow:#7c3aed2e;--accent:#a21caf;--gold:#0891b2;--gold-dim:#0891b21a;--btn-text:#fff;--border:#7c3aed24;--border-soft:#0000000f;--shadow:0 4px 32px #0000001a;--shadow-card:0 2px 24px #00000012}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Satoshi,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6;transition:background .4s,color .4s}h1,h2,h3,h4{font-family:Clash Display,sans-serif;line-height:1.12}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}::selection{background:var(--primary);color:var(--btn-text)}
