:root{--primary: #3b2bee;--bg: #f6f6f8;--surface: #ffffff;--text: #0f172a;--muted: #475569;--muted-2: #64748b;--border: rgba(15, 23, 42, .1);--shadow: 0 14px 40px rgba(15, 23, 42, .08);--shadow-soft: 0 10px 30px rgba(59, 43, 238, .08);--radius: 16px;--radius-sm: 10px;--container: 1120px}@media(prefers-color-scheme:dark){:root{--bg: #121022;--surface: rgba(255, 255, 255, .04);--text: #f1f5f9;--muted: #a3b3c5;--muted-2: #94a3b8;--border: rgba(148, 163, 184, .16);--shadow: 0 14px 40px rgba(0, 0, 0, .28);--shadow-soft: 0 12px 30px rgba(59, 43, 238, .1)}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:color-mix(in oklab,var(--primary) 30%,transparent)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}a:hover{color:var(--primary)}ul{margin:0;padding:0;list-style:none}.container{width:min(100% - 48px,var(--container));margin-inline:auto}.section{padding:96px 0;position:relative;overflow:hidden}.section-alt{background:color-mix(in oklab,var(--surface) 100%,transparent)}.section-title{font-size:clamp(28px,2.6vw,40px);margin:0 0 12px;letter-spacing:-.02em}.section-subtitle{margin:0;color:var(--muted);line-height:1.6;max-width:56ch}.section-head{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;margin-bottom:48px;flex-wrap:wrap}.section-link{display:inline-flex;align-items:center;gap:6px;color:var(--primary);font-weight:800;transition:gap .2s ease}.section-link:hover{gap:10px}.section-center{text-align:center;margin-bottom:48px}.maxw{margin-inline:auto}.grid{display:grid;gap:24px}.site-header{position:fixed;inset:0 0 auto;z-index:50;border-bottom:1px solid var(--border)}.glass-nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in oklab,var(--bg) 75%,transparent)}.nav{height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:10px;font-weight:900;letter-spacing:-.02em}.brand-mark{width:32px;height:32px;border-radius:10px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:18px}.brand-name{display:none}.nav-links{display:none;gap:32px;align-items:center}.nav-links a{font-size:14px;font-weight:600;color:color-mix(in oklab,var(--text) 80%,var(--muted-2));transition:color .15s ease}.nav-links a:hover{color:var(--primary)}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--border);background:color-mix(in oklab,var(--surface) 100%,transparent);color:color-mix(in oklab,var(--text) 75%,var(--muted-2))}.nav-toggle:hover{border-color:color-mix(in oklab,var(--primary) 45%,var(--border))}@media(min-width:768px){.brand-name{display:inline}.nav-links{display:flex}.nav-toggle{display:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border-radius:14px;padding:12px 18px;font-weight:800;font-size:14px;border:1px solid transparent;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .2s ease;color:inherit}.btn--resume:hover{cursor:pointer}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--primary);color:#fff;box-shadow:0 18px 36px #3b2bee2e}.btn-primary:hover{filter:brightness(.96);color:#fff}.btn-secondary{background:color-mix(in oklab,var(--surface) 100%,transparent);border-color:var(--border);color:var(--text)}.btn-secondary:hover{background:color-mix(in oklab,var(--surface) 92%,var(--bg));border-color:color-mix(in oklab,var(--border) 60%,var(--primary))}.btn-outline{background:transparent;border-color:var(--border);color:var(--text)}.btn-outline:hover{background:color-mix(in oklab,var(--surface) 92%,var(--bg));border-color:color-mix(in oklab,var(--border) 60%,var(--primary))}.btn-lg{padding:16px 26px;border-radius:18px;font-size:15px}.btn-sm{padding:10px 14px;border-radius:12px;font-size:12px;font-weight:900}.hero{padding-top:140px;padding-bottom:120px}.hero-inner{position:relative;z-index:1}.hero-copy{max-width:760px}.availability{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;background:color-mix(in oklab,var(--primary) 12%,transparent);color:var(--primary);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;margin-bottom:22px}.status-dot{width:10px;height:10px;border-radius:999px;background:var(--primary);box-shadow:0 0 #3b2bee8c;animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 #3b2bee73}70%{box-shadow:0 0 0 14px #3b2bee00}to{box-shadow:0 0 #3b2bee00}}.hero-title{font-size:clamp(44px,5.4vw,76px);line-height:1.05;letter-spacing:-.03em;margin:0 0 18px;font-weight:900}.accent{color:var(--primary)}.hero-lead{margin:0 0 34px;color:var(--muted);font-size:clamp(16px,1.4vw,20px);line-height:1.7;max-width:62ch}.hero-actions{display:flex;flex-wrap:wrap;gap:14px}.hero-blob{position:absolute;top:52%;right:-120px;transform:translateY(-50%);width:520px;height:520px;border-radius:999px;background:color-mix(in oklab,var(--primary) 10%,transparent);filter:blur(48px);z-index:0}.projects-grid{grid-template-columns:1fr;gap:28px}@media(min-width:768px){.projects-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.projects-grid{grid-template-columns:repeat(3,1fr)}}.card{background:color-mix(in oklab,var(--surface) 100%,transparent);border:1px solid var(--border);border-radius:22px;overflow:hidden;box-shadow:none}.project-card{transition:box-shadow .2s ease,border-color .2s ease,transform .2s ease}.project-card:hover{box-shadow:var(--shadow-soft);border-color:color-mix(in oklab,var(--primary) 18%,var(--border));transform:translateY(-2px)}.card-media{aspect-ratio:16/9;overflow:hidden;background:color-mix(in oklab,var(--surface) 90%,var(--bg))}.card-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.project-card:hover .card-media img{transform:scale(1.08)}.card-body{padding:22px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.tag{font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);background:color-mix(in oklab,var(--primary) 12%,transparent);padding:6px 8px;border-radius:8px}.card-title{margin:0 0 8px;font-size:20px;font-weight:900;letter-spacing:-.01em}.card-text{margin:0 0 18px;color:var(--muted);line-height:1.6;font-size:14px}.card-actions{display:flex;gap:10px}.clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.skills-grid{grid-template-columns:repeat(2,1fr);gap:16px}@media(min-width:640px){.skills-grid{grid-template-columns:repeat(3,1fr);gap:22px}}@media(min-width:1024px){.skills-grid{grid-template-columns:repeat(4,1fr)}}.skill-card{padding:22px;text-align:center;border-radius:22px;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.skill-card:hover{border-color:color-mix(in oklab,var(--primary) 45%,var(--border));box-shadow:var(--shadow);transform:translateY(-2px)}.skill-icon{font-size:44px;color:color-mix(in oklab,var(--text) 35%,var(--muted-2));margin-bottom:12px;display:block}.skill-card:hover .skill-icon{color:var(--primary)}.skill-title{margin:0;font-weight:900}.skill-sub{margin:6px 0 0;font-size:12px;color:var(--muted-2)}.about{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}@media(min-width:1024px){.about{grid-template-columns:1fr 1fr;gap:72px}}.portrait{position:relative;width:min(420px,100%);margin-inline:auto;aspect-ratio:1/1}.portrait-ring{position:absolute;inset:0;border-radius:999px;background:color-mix(in oklab,var(--primary) 12%,transparent);animation:ringPulse 2.2s infinite}@keyframes ringPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.03);opacity:.85}}.portrait img{position:absolute;inset:18px;width:calc(100% - 36px);height:calc(100% - 36px);border-radius:999px;object-fit:cover;border:4px solid color-mix(in oklab,var(--surface) 95%,transparent);box-shadow:var(--shadow)}.experience{position:absolute;right:18px;bottom:18px;display:flex;align-items:center;gap:12px;background:color-mix(in oklab,var(--surface) 100%,transparent);border:1px solid var(--border);border-radius:18px;padding:12px 14px;box-shadow:var(--shadow)}.experience-icon{width:40px;height:40px;border-radius:999px;display:grid;place-items:center;background:color-mix(in oklab,var(--primary) 16%,transparent);color:var(--primary)}.experience-label{margin:0;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:var(--muted-2)}.experience-value{margin:2px 0 0;font-weight:900;font-size:14px}.prose p{margin:0 0 14px;color:var(--muted);line-height:1.75}.prose p:last-child{margin-bottom:0}.stats{margin-top:26px;display:flex;align-items:center;gap:22px}.stat{display:flex;flex-direction:column;gap:4px}.stat-value{font-size:28px;font-weight:900}.stat-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-2)}.stat-divider{width:1px;height:40px;background:var(--border)}.contact-icons{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;margin-top:38px}.contact-link{display:flex;flex-direction:column;align-items:center;gap:12px;transition:transform .2s ease}.contact-link:hover{transform:translateY(-4px)}.contact-tile{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:color-mix(in oklab,var(--surface) 100%,transparent);border:1px solid var(--border);color:color-mix(in oklab,var(--text) 35%,var(--muted-2));box-shadow:none;transition:border-color .2s ease,box-shadow .2s ease,color .2s ease,transform .2s ease}.contact-link:hover .contact-tile{color:var(--primary);border-color:color-mix(in oklab,var(--primary) 45%,var(--border));box-shadow:var(--shadow-soft)}.contact-svg{width:30px;height:30px;fill:currentColor}.contact-label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.14em;color:var(--muted-2)}.contact-link:hover .contact-label{color:var(--primary)}.contact-copy-btn{background:none;border:0;padding:0;cursor:pointer;font:inherit;position:relative}.copy-feedback{position:absolute;top:-10px;left:50%;transform:translate(-50%,-6px);padding:6px 10px;border-radius:10px;background:var(--text);color:var(--bg);font-size:11px;font-weight:700;letter-spacing:.04em;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;white-space:nowrap}.copy-feedback.show{opacity:1;transform:translate(-50%,-14px)}.site-footer{border-top:1px solid var(--border);padding:40px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.footer-copy{margin:0;color:var(--muted-2);font-size:14px}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-links a{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.16em;color:var(--muted-2)}.footer-links a:hover{color:var(--primary)}@media(max-width:420px){.container{width:min(100% - 32px,var(--container))}.hero{padding-top:124px;padding-bottom:96px}.hero-blob{display:none}}body.modal-open{overflow:hidden}body.modal-open #site{filter:blur(8px);transform:scale(.995)}.modal{position:fixed;inset:0;display:none;z-index:9999}.modal.is-open{display:block}.modal__overlay{position:absolute;inset:0;background:#0f0f148c}.modal__dialog{position:relative;width:min(920px,calc(100vw - 32px));height:min(85vh,1250px);margin:8vh auto 0;background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000040;overflow:hidden}@media(prefers-color-scheme:dark){.modal__dialog{background:#0f1220;box-shadow:0 20px 60px #00000080}}.modal__close{position:absolute;top:10px;right:10px;width:42px;height:42px;border:0;border-radius:12px;background:#ffffffe6;cursor:pointer;font-size:18px;line-height:1;display:grid;place-items:center;transition:transform .15s ease,background .15s ease}.modal__close:hover{transform:scale(1.05);background:#fff}@media(prefers-color-scheme:dark){.modal__close{background:#1e2337e6;color:#fff}.modal__close:hover{background:#1e2337}}.modal__content{width:100%;height:100%;overflow-y:auto;padding:20px;display:flex;flex-direction:column;align-items:center;gap:20px}.modal__image{width:100%;max-width:800px;height:auto;border-radius:12px;box-shadow:0 10px 40px #0003}.mobile-menu{position:absolute;top:64px;right:16px;width:min(240px,calc(100vw - 32px));display:flex;flex-direction:column;gap:6px;padding:10px;border:1px solid var(--border);border-radius:14px;background:color-mix(in oklab,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 18px 50px #00000040;z-index:60;opacity:0;transform:translateY(-10px) scale(.98);pointer-events:none;transition:opacity .18s ease,transform .18s ease}.mobile-menu.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.mobile-menu a{display:block;width:100%;padding:12px;border-radius:12px;font-weight:700;font-size:14px;text-align:left;color:color-mix(in oklab,var(--text) 90%,var(--muted-2));transition:background .15s ease,color .15s ease}.mobile-menu a:hover{background:color-mix(in oklab,var(--primary) 14%,transparent);color:var(--text)}@media(min-width:768px){.mobile-menu{display:none!important}}
