:root{--bg-0: #060914;--bg-1: #0b1020;--bg-2: #12182b;--ink-0: #f2f6ff;--ink-1: #d5deef;--ink-2: #b2bfd8;--line: rgba(168, 183, 214, .24);--primary: #36d7a2;--primary-soft: rgba(54, 215, 162, .22);--accent: #4e86ff;--accent-soft: rgba(78, 134, 255, .24);--shell: min(1120px, calc(100% - 2.4rem) );--radius-lg: 24px;--radius-md: 16px;--shadow-flat: 0 18px 42px rgba(4, 8, 20, .34);--shadow-neo: 10px 10px 24px rgba(2, 6, 18, .5), -8px -8px 20px rgba(34, 44, 72, .42);--shadow-neo-inset: inset 1px 1px 1px rgba(255, 255, 255, .06), inset -2px -2px 8px rgba(0, 0, 0, .32);--ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Plus Jakarta Sans,Segoe UI,sans-serif;color:var(--ink-1);background:radial-gradient(1200px 700px at 12% -10%,rgba(78,134,255,.15),transparent 60%),radial-gradient(1000px 680px at 100% 0%,rgba(54,215,162,.14),transparent 60%),linear-gradient(145deg,var(--bg-0) 0%,var(--bg-1) 45%,var(--bg-2) 100%);line-height:1.55}.skip-link{position:absolute;left:1rem;top:-3rem;background:var(--ink-0);color:#041026;padding:.6rem .9rem;border-radius:10px;z-index:100}.skip-link:focus{top:1rem}.shell{width:var(--shell);margin:0 auto}.section-pad{padding:6.3rem 0}main section[id]{scroll-margin-top:92px}.site-header{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px);background:rgba(8,13,28,.68);border-bottom:1px solid transparent;transition:border-color .3s var(--ease),background .3s var(--ease)}.site-header.is-scrolled{border-bottom-color:var(--line);background:rgba(8,13,28,.92)}.nav-wrap{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:Sora,sans-serif;font-weight:700;letter-spacing:.22em;color:var(--ink-0);text-decoration:none}.brand-dot{width:10px;height:10px;border-radius:999px;background:linear-gradient(130deg,var(--primary),var(--accent));box-shadow:0 0 16px rgba(54,215,162,.7)}.nav-desktop{display:flex;gap:1.1rem}.nav-desktop a,.mobile-menu a{color:var(--ink-1);text-decoration:none;font-size:.84rem;letter-spacing:.08em;text-transform:uppercase;padding:.45rem .55rem;border-radius:10px;transition:color .25s var(--ease),background .25s var(--ease)}.nav-desktop a:focus-visible,.mobile-menu a:focus-visible,.hero-links a:focus-visible,.contact-links a:focus-visible{outline:2px solid rgba(78,134,255,.58);outline-offset:2px}.nav-desktop a:hover,.nav-desktop a.is-active,.mobile-menu a:hover,.mobile-menu a.is-active{color:var(--ink-0);background:rgba(255,255,255,.05)}.desktop-cta{display:inline-flex}.menu-btn{display:none;width:42px;height:42px;border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:12px;align-items:center;justify-content:center;flex-direction:column;gap:6px;cursor:pointer}.menu-btn span{display:block;width:18px;height:2px;background:var(--ink-0)}.mobile-menu{display:none}.hero{position:relative;overflow:clip}.hero-glow{position:absolute;filter:blur(60px);z-index:-1}.hero-glow-a{width:340px;height:340px;background:rgba(54,215,162,.2);top:2rem;right:4%;animation:floatY 13s ease-in-out infinite}.hero-glow-b{width:320px;height:320px;background:rgba(78,134,255,.18);left:4%;bottom:2rem;animation:floatY 15.5s ease-in-out infinite reverse}.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:2rem;align-items:center}.hero-copy h1,.hero-copy h2,.hero-copy h3{margin:0}.eyebrow{margin:0 0 .9rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.13em;font-size:.8rem}.hero-copy h1{font-family:Sora,sans-serif;font-size:clamp(2rem,5vw,3.8rem);line-height:1.05;color:var(--ink-0);max-width:18ch}.lede{margin:1.1rem 0 0;max-width:56ch;color:var(--ink-1)}.hero-actions{margin-top:1.4rem;display:flex;flex-wrap:wrap;gap:.75rem}.hero-links{margin-top:1.3rem;display:flex;flex-wrap:wrap;gap:.85rem}.hero-links a,.contact-links a{color:var(--ink-2);text-decoration:none;border-bottom:1px solid transparent}.hero-links a:hover,.contact-links a:hover{color:var(--ink-0);border-bottom-color:var(--primary)}.hero-panel{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}.neo-card{background:linear-gradient(145deg,rgba(27,35,57,.78),rgba(13,19,35,.9));border:1px solid rgba(194,208,236,.11);border-radius:var(--radius-lg);box-shadow:var(--shadow-flat)}.stat-card{padding:1rem;min-height:118px;box-shadow:var(--shadow-neo),var(--shadow-neo-inset);transition:transform .3s var(--ease),border-color .3s var(--ease)}.stat-card:hover{transform:translateY(-4px);border-color:rgba(167,201,255,.28)}.stat-card p{margin:0;color:var(--ink-2);font-size:.82rem}.stat-card h3{margin-top:.5rem;color:var(--ink-0);font-family:Sora,sans-serif;font-size:1.12rem;line-height:1.35}.btn{border:1px solid transparent;border-radius:999px;padding:.72rem 1.15rem;min-height:44px;font-weight:600;font-size:.9rem;letter-spacing:.02em;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease),background .25s var(--ease);cursor:pointer}.btn:focus-visible,.menu-btn:focus-visible,.contact-form input:focus-visible,.contact-form textarea:focus-visible,.contact-form button:focus-visible{outline:3px solid rgba(78,134,255,.45);outline-offset:2px}.btn-primary{color:#01132a;background:linear-gradient(120deg,var(--primary),#87efca);box-shadow:0 12px 26px rgba(54,215,162,.24)}.btn-primary:hover{transform:translateY(-1px)}.btn-quiet{color:var(--ink-0);border-color:rgba(200,214,239,.34);background:rgba(255,255,255,.04)}.btn-soft{color:var(--ink-1);border-color:rgba(204,217,242,.2);background:rgba(255,255,255,.02);box-shadow:var(--shadow-neo-inset)}.two-col{display:grid;grid-template-columns:1.05fr 1fr;gap:1.6rem}.section-intro h2{font-family:Sora,sans-serif;color:var(--ink-0);font-size:clamp(1.6rem,2.8vw,2.4rem);max-width:24ch}.section-intro p{margin:1rem 0 0;max-width:62ch}.about-cards{display:grid;gap:.9rem}.info-card{padding:1.2rem;border-radius:var(--radius-md)}.info-card h3{color:var(--ink-0);font-size:1rem}.info-card ul,.timeline-item ul,.skill-group ul{margin:.7rem 0 0;padding-left:1rem}.info-card li,.timeline-item li,.skill-group li{margin:.42rem 0}.timeline{margin-top:1.4rem;display:grid;gap:1rem}.timeline-item{padding:1.15rem;border-radius:var(--radius-md);border:1px solid var(--line);background:linear-gradient(130deg,rgba(16,25,44,.9),rgba(12,17,31,.82));transition:transform .25s var(--ease),border-color .25s var(--ease)}.timeline-item:hover{transform:translateY(-2px);border-color:rgba(126,189,255,.35)}.timeline-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem}.role{margin:0;color:var(--ink-0);font-family:Sora,sans-serif;font-size:1rem}.period{margin:0;color:var(--primary);font-size:.84rem;font-weight:600}.company{margin:.3rem 0 0;color:var(--ink-2)}.skills-grid{margin-top:1.4rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.skill-group{padding:1rem}.skill-group h3{color:var(--ink-0);font-size:.98rem;margin-bottom:.4rem}.skill-group li{list-style:none;display:grid;gap:.38rem;padding:.35rem 0}.meter{display:block;width:100%;height:9px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden;position:relative}.meter:before{content:"";position:absolute;inset:0 auto 0 0;width:calc(var(--level, 0) * 1%);background:linear-gradient(90deg,var(--accent),var(--primary));border-radius:inherit;transition:width 1s var(--ease)}.project-grid{margin-top:1.4rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.project-card{padding:1.1rem;min-height:180px;transition:transform .25s var(--ease),border-color .25s var(--ease)}.project-card:hover{transform:translateY(-3px);border-color:rgba(130,196,255,.36)}.project-type{margin:0;color:var(--primary);font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}.project-card h3{color:var(--ink-0);font-size:1.05rem;margin-top:.55rem}.project-card p:last-child{margin-top:.6rem}.cv-wrap{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(130deg,rgba(14,21,36,.94),rgba(12,16,30,.86));padding:1.2rem}.cv-actions{display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end}.cv-status{margin:0;min-height:1.35rem;color:var(--ink-2);font-size:.88rem}.contact-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:1.2rem}.contact-links{margin-top:1rem;display:grid;gap:.5rem}.contact-form{border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(15,22,39,.9);padding:1rem;display:grid;gap:.75rem}.contact-form label{display:grid;gap:.35rem;color:var(--ink-2);font-size:.88rem}.contact-form input,.contact-form textarea{border:1px solid rgba(205,219,245,.2);border-radius:12px;background:rgba(255,255,255,.04);color:var(--ink-0);min-height:44px;padding:.62rem .75rem;font:inherit}.contact-form textarea{min-height:120px;resize:vertical}.form-status{min-height:1.4rem;margin:0;color:var(--ink-1)}.site-footer{border-top:1px solid var(--line);padding:1.4rem 0 2rem}.footer-wrap{display:flex;flex-wrap:wrap;gap:.8rem;justify-content:space-between;color:var(--ink-2);font-size:.88rem}.reveal{opacity:0;transform:translateY(16px)}.reveal.is-visible{opacity:1;transform:translateY(0);transition:opacity .55s var(--ease),transform .55s var(--ease)}@media (hover: none),(pointer: coarse){.stat-card,.timeline-item,.project-card,.btn,.nav-desktop a,.mobile-menu a,.hero-links a,.contact-links a{transition-duration:.12s}.stat-card:hover,.timeline-item:hover,.project-card:hover,.btn-primary:hover{transform:none}.hero-glow-a,.hero-glow-b{animation:none}}.cv-dialog{width:min(1080px,calc(100% - 2rem));height:min(90vh,800px);border:1px solid rgba(185,202,236,.24);border-radius:20px;background:#e9eef6;padding:0}.cv-dialog::backdrop{background:rgba(2,6,14,.7)}.cv-dialog-head{padding:.8rem 1rem;border-bottom:1px solid rgba(13,25,46,.12);display:flex;align-items:center;justify-content:space-between}.cv-dialog-head h3{color:#102444;font-size:1rem;font-family:Sora,sans-serif}.cv-dialog-body{overflow:auto;height:calc(100% - 64px);padding:1rem}.cv-page{width:210mm;margin:0 auto;background:#fff;color:#1f2a44;border-radius:6px;box-shadow:0 10px 24px rgba(8,20,40,.16);overflow:hidden}.cv-top{padding:14mm 15mm 8mm;background:linear-gradient(130deg,#12325f,#1b4b85);color:#fff}.cv-top h1{font-family:Sora,sans-serif;font-size:8mm;margin:0}.cv-top p{margin:1.5mm 0 0}.cv-contact{margin-top:3mm;display:flex;flex-wrap:wrap;gap:2mm 4mm;font-size:3.2mm;opacity:.95}.cv-main{padding:7mm 15mm 12mm}.cv-section{margin-bottom:4mm;-moz-column-break-inside:auto;break-inside:auto;page-break-inside:auto}.cv-section:not(.cv-section-experience){-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.cv-section h2{margin:0;font-family:Sora,sans-serif;font-size:4.6mm;color:#163461;border-bottom:1px solid #d3dcee;padding-bottom:.8mm;-moz-column-break-after:avoid;break-after:avoid;page-break-after:avoid}.cv-section p,.cv-section li{font-size:3.35mm;line-height:1.52}.cv-section ul{margin:2mm 0 0;padding-left:5mm}.cv-job{margin-top:2mm;-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.cv-job ul{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.cv-job-head{display:flex;justify-content:space-between;gap:3mm}.cv-job-role{font-weight:700}.cv-job-date{color:#1f6a55;font-weight:600}.cv-edu-list{margin-top:2mm}.cv-edu-item{-moz-column-break-inside:avoid;break-inside:avoid;page-break-inside:avoid}.cv-edu-degree{margin:0;font-weight:700}.cv-edu-institution{margin:1mm 0 0}.cv-edu-date{margin:.8mm 0 0;color:#3f577f;font-weight:600}.cv-chip-wrap{margin-top:2.5mm;display:flex;flex-wrap:wrap;gap:1.8mm}.cv-chip{border:1px solid #c6d5f2;border-radius:999px;font-size:3.1mm;padding:1.3mm 2.2mm;background:#f7fbff}@media (max-width: 1040px){.hero-grid,.two-col,.contact-grid,.hero-panel,.skills-grid,.project-grid,.cv-wrap{grid-template-columns:1fr}.cv-actions{justify-content:flex-start}.desktop-cta,.nav-desktop{display:none}.menu-btn,.mobile-menu{display:flex}.mobile-menu{flex-direction:column;gap:.5rem;width:var(--shell);margin:0 auto .85rem;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s var(--ease),opacity .3s var(--ease)}.mobile-menu.is-open{max-height:360px;opacity:1}.mobile-menu a{border:1px solid rgba(255,255,255,.07)}.hero-glow-a,.hero-glow-b{animation:none;opacity:.7}.reveal.is-visible{transition-duration:.42s}.cv-dialog{width:calc(100% - 1rem);height:calc(100vh - 1rem)}.cv-page{width:100%}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{animation:none!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.hero-glow-a,.hero-glow-b{animation:none}}@media print{.cv-page{width:auto;box-shadow:none;border-radius:0}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulseSoft{0%,to{box-shadow:0 0 rgba(54,215,162,.22)}50%{box-shadow:0 0 0 8px rgba(54,215,162,0)}}
