*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}html{scrollbar-width:thin;scrollbar-color:rgba(10,15,45,.85) transparent}*,html{scroll-behavior:smooth!important}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background-color:#0a0f2dd9;border-radius:999px;border:2px solid transparent;background-clip:padding-box}body{margin:0;color:#e6ebff;background:radial-gradient(1200px 600px at 80% -10%,#0b2a7e,#04001e 55% 100%),radial-gradient(700px 420px at 12% 22%,#6ea8ff14,#04001e00 60%),radial-gradient(820px 500px at 92% 60%,#033acd12,#04001e00 70%),radial-gradient(680px 420px at 50% 115%,#288cff0f,#04001e00 72%),#04001e;background-repeat:no-repeat;position:relative;font-size:17px;font-family:Sen,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,"Apple Color Emoji","Segoe UI Emoji";font-optical-sizing:auto;line-height:1.6;cursor:default}body:before,body:after{content:"";position:fixed;width:420px;height:420px;border-radius:50%;pointer-events:none;opacity:.12;background:radial-gradient(60% 60% at 35% 30%,#ffffff1f 0 12%,#fff0 16%),radial-gradient(70% 70% at 50% 55%,#288cff8c 0 58%,#288cff2e 72%,#288cff00 80%);mix-blend-mode:screen;filter:blur(6px) saturate(105%)}body:before{top:-120px;left:-140px}body:after{top:-40px;right:12%;width:360px;height:360px}.container:after{content:"";position:fixed;right:40px;bottom:80px;width:260px;height:260px;border-radius:50%;pointer-events:none;opacity:.1;background:radial-gradient(55% 55% at 40% 35%,#ffffff1a 0 12%,#fff0 16%),radial-gradient(70% 70% at 55% 60%,#1660ff80 0 60%,#1660ff2e 72%,#1660ff00 80%);mix-blend-mode:screen;filter:blur(5px) saturate(103%)}:root{--bg: #04001e;--panel: #0a0733;--text: #e6ebff;--muted: #9aa6e6;--company: #b9c6ff;--accent: #033acd;--link: #6ea8ff;--ring: rgba(3, 58, 205, .35);--container-px: clamp(24px, 6vw, 64px);--container-py: clamp(64px, 10vh, 120px);--scroll-offset-desktop: 108px;--scroll-offset-mobile: 60px}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}.scroll-top{display:none}.container{width:100%;padding:var(--container-py) var(--container-px)}.layout{max-width:1100px;margin:0 auto;padding:0;display:grid;grid-template-columns:1fr 1.2fr;gap:72px}@media(min-width:980px){.sidebar{position:sticky;top:var(--container-py)}.content{margin-top:15px}}@media(max-width:760px){.section{scroll-margin-top:var(--scroll-offset-mobile)}}.sidebar{display:flex;flex-direction:column;justify-content:space-between;align-self:start}.sidebar-meta{display:flex;flex-direction:column;gap:14px;color:#b8c2ff;font-size:15px;margin-top:6px}@media(max-width:980px){.layout{grid-template-columns:1fr;gap:32px}.scroll-top{position:fixed;right:24px;bottom:24px;width:50px;height:50px;border-radius:999px;border:1px solid rgba(110,168,255,.35);background:#033acd29;-webkit-backdrop-filter:blur(10px) saturate(140%);backdrop-filter:blur(10px) saturate(140%);color:#e6ebff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 22px #033acd2e,inset 0 0 0 1px #6ea8ff38;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,background-color .16s ease,border-color .16s ease;cursor:pointer;z-index:40}.scroll-top:hover{background:#033acd38;border-color:#6ea8ff80}.scroll-top:focus-visible{outline:none;box-shadow:0 0 0 2px #6ea8ff80,0 8px 22px #033acd2e}.scroll-top.show{opacity:1;pointer-events:auto;transform:translateY(0)}.sidebar{height:auto;justify-content:flex-start;flex-direction:column;gap:24px}.content{margin-top:50px}}.meta-icon{display:inline-flex;align-items:center;justify-content:center;color:#6ea8ff}.meta-text{color:#e4e8ff}.name{font-weight:700;font-size:46px;line-height:1.1;letter-spacing:.2px;color:var(--text);margin:0 0 12px}.name-link{display:inline;background:none;border:none;padding:0;margin:0;text-align:left;font:inherit;color:inherit;cursor:pointer;text-decoration:none}.name-link:hover{text-decoration:none}.name-link:focus-visible{outline:2px solid rgba(110,168,255,.6);outline-offset:2px;border-radius:6px}.role{font-weight:500;font-size:19px;margin:0;color:#dbe2ff}.role-divider{width:72px;height:1px;background:linear-gradient(90deg,#6ea8ff00,#6ea8ff73,#6ea8ff00);margin:12px 0;border-radius:999px}.local-nav{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin-bottom:auto}@media(max-width:980px){.local-nav{padding-bottom:24px;margin-bottom:0}}.nav-link{position:relative;color:#9aa7e0;padding-left:28px;transition:color .16s ease,padding-left .2s ease;text-decoration:none;cursor:pointer;display:inline-block}.nav-link:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:22px;height:1px;background:#1a2f7d;transition:width .22s ease,background-color .18s ease,opacity .18s ease}.nav-link:hover{color:#e6ebff;padding-left:52px;text-decoration:none}.nav-link:hover:before{width:40px;background:#5c70b8;opacity:.9}.nav-link.active{color:#e6ebff;font-weight:700;padding-left:52px;text-decoration:none}.nav-link.active:before{width:40px;background:#aab7ff;opacity:1}.nav-link:focus-visible{color:#e6ebff;padding-left:52px;text-decoration:none}.nav-link:focus-visible:before{width:40px;background:#aab7ff}.socials{display:flex;gap:16px;align-items:center;margin:0}.social{color:#6ea8ff;display:inline-flex;border-radius:8px;cursor:pointer}.social svg{width:24px;height:24px}.social:hover{color:#e6eef8;background:#ffffff0a;outline:1px solid rgba(255,255,255,.05)}.section--stacked .skills{margin-top:16px}.skills-group{margin-bottom:40px}.skills .title{color:#e6ebff;display:block;margin-bottom:12px}.content{display:flex;flex-direction:column;gap:100px}.section{display:grid;grid-template-columns:180px 1fr;gap:24px;scroll-margin-top:var(--scroll-offset-desktop)}.section--stacked{grid-template-columns:1fr}.section--stacked .section-header{grid-column:1/-1;padding-top:0;margin-bottom:8px}.section-header{font-weight:700;color:#aab7ff;font-size:13px;letter-spacing:2px;text-transform:uppercase;padding-top:6px;position:relative;display:inline-block}.section-header:after{content:"";position:absolute;left:0;bottom:-6px;width:40px;height:1px;border-radius:999px;opacity:.5;background:#aab7ff}.section-header--link{text-decoration:none;cursor:pointer;color:#aab7ff}.section-header--link:hover{text-decoration:none}.section-header--link:focus-visible{outline:2px solid rgba(110,168,255,.6);outline-offset:3px;border-radius:4px}.prose{color:var(--text);max-width:70ch}.prose p{margin:0 0 16px}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:28px}.timeline-item{display:grid;grid-template-columns:160px 1fr;gap:24px;position:relative;padding:16px;border-radius:14px;border:1px solid transparent;overflow:hidden;align-items:baseline;transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease;cursor:default}.timeline-item:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(220px 120px at 85% 0%,#6ea8ff29,#033acd00 60%),radial-gradient(260px 160px at 20% 120%,#033acd2e,#033acd00 70%);opacity:0;pointer-events:none;transition:opacity .22s ease}.timeline-item:hover,.timeline-item:focus-within{background:#033acd0f;border-color:#6ea8ff2e;box-shadow:0 10px 28px #033acd2e,inset 0 0 0 1px #6ea8ff1f}.timeline-item:hover:after,.timeline-item:focus-within:after{opacity:1}.timeline-item:hover .title,.timeline-item:focus-within .title{color:#fff}.timeline-item:hover .company,.timeline-item:focus-within .company{color:#f6f9ff}.timeline-item:hover .job-location,.timeline-item:focus-within .job-location{color:#f6f9ff}.timeline-item:hover .job-meta-icon,.timeline-item:focus-within .job-meta-icon{color:#f6f9ff}.timeline-item:hover .summary,.timeline-item:focus-within .summary{color:#eaf0ff}.timeline-item:hover .time,.timeline-item:focus-within .time{color:#cbd5ff}@media(prefers-reduced-motion:reduce){.timeline-item,.timeline-item:after{transition:none;transform:none}.timeline-item:hover .title,.timeline-item:focus-within .title,.timeline-item:hover .company,.timeline-item:focus-within .company,.timeline-item:hover .summary,.timeline-item:focus-within .summary{transform:none}}.time{color:#8f9be0;font-size:13px;letter-spacing:1px;text-transform:uppercase}.job-title{display:block;margin-bottom:4px}.job-meta{display:flex;gap:16px;align-items:center;margin-bottom:8px;flex-wrap:wrap}.meta-item{display:flex;align-items:center;gap:4px}.job-meta-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--company);transition:color .16s ease;flex-shrink:0}.title{font-weight:600;color:#eef2ff;display:inline-block;transition:color .16s ease}.company,.job-location{color:var(--company);display:inline;transition:color .16s ease;font-weight:400}.summary{color:var(--muted);margin:8px 0 12px;transition:color .16s ease}.tags{display:flex;flex-wrap:wrap;gap:8px}.tag{font-size:13px;color:#dbe2ff;background:#033acd1f;border:1px solid rgba(3,58,205,.35);padding:4px 10px;border-radius:999px;display:inline-flex;align-items:center;gap:6px}.tag-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0}.tags-more{font-size:13px;color:#8a94b8;display:inline-flex;align-items:center}@media(max-width:760px){.section{grid-template-columns:1fr;scroll-margin-top:var(--scroll-offset-mobile)}.timeline-item{grid-template-columns:1fr}}.contact{display:flex;flex-direction:column;gap:20px;margin:24px 0 50px;align-items:flex-start}.contact-email{display:inline-flex;align-items:center;gap:6px;color:#dbe2ff;font-size:16px;text-decoration:none}.contact-email:hover{color:#fff;text-decoration:none}.resume-social{display:inline-flex;align-items:center;gap:6px;background:none;border:none;padding:0;cursor:pointer;color:#6ea8ff;font-family:inherit;font-size:14px;transition:color .15s ease}.resume-social svg{fill:#6ea8ff;transition:fill .15s ease}.resume-social:hover{color:#fff}.resume-social:hover svg{fill:#fff}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal-content{position:relative;width:100%;max-width:900px;height:90vh;background:#0a0733;border-radius:12px;overflow:hidden;border:1px solid rgba(110,168,255,.25)}.modal-header{display:flex;align-items:center;justify-content:center;height:50px;background:#0a0733;border-bottom:1px solid rgba(110,168,255,.15);position:relative}.modal-title{font-size:16px;font-weight:600;color:#fff}.modal-close{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;border:none;background:transparent;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.modal-close:hover{background:#ffffff1a}.resume-iframe,.project-iframe{width:100%;height:calc(100% - 50px);border:none}.modal-external-link{display:inline-flex;align-items:center;gap:6px;color:#6ea8ff;font-size:14px;text-decoration:none;padding:6px 12px;border-radius:6px;background:#6ea8ff1a;position:absolute;left:12px;top:50%;transform:translateY(-50%)}.modal-external-link:hover{background:#6ea8ff33}.projects-list{display:flex;flex-direction:column;gap:16px}.project-item{display:flex;align-items:flex-start;justify-content:space-between;gap:32px;padding:20px;background:transparent;border:1px solid transparent;border-radius:12px;cursor:pointer;text-align:left;font-family:inherit;position:relative;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease}.project-item:after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(280px 180px at 80% -20%,#6ea8ff1f,#6ea8ff00 70%),radial-gradient(260px 160px at 20% 120%,#033acd2e,#033acd00 70%);opacity:0;pointer-events:none;transition:opacity .22s ease}.project-item:hover{background:#033acd0f;border-color:#6ea8ff2e;box-shadow:0 10px 28px #033acd2e,inset 0 0 0 1px #6ea8ff1f}.project-item:hover:after{opacity:1}.project-item:hover .project-item-name{color:#fff}.project-item:hover .project-item-desc{color:#eaf0ff}.project-item-info{flex:1}.project-item-name{font-size:18px;font-weight:600;color:#dbe2ff;margin:0 0 6px;transition:color .2s ease}.project-item-desc{font-size:14px;color:#a0aec0;margin:0 0 12px;line-height:1.5;transition:color .2s ease}.project-item-icon{color:#6ea8ff;flex-shrink:0;margin-top:-6px}.project-item-icon svg{width:36px;height:36px}
