@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap";:root{--background:#101827;--section-background:#17243a;--panel:#20334c;--accent:#5694e8;--button:#3675cc;--sunset:#e8d6cf;--line:#8fb0d81a;--muted:#b4c4d8;--text:#f8faff;--motion-ease:cubic-bezier(.22, 1, .36, 1);color:var(--text);background:var(--background);font-synthesis:none;-webkit-font-smoothing:antialiased;font-family:Manrope,sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;line-height:1.65}img{max-width:100%}a{text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}.container{max-width:1120px;margin:0 auto;padding:0 28px}.section{border-top:1px solid var(--line);padding:88px 0;scroll-margin-top:76px}.section h2{letter-spacing:-.045em;color:#f8faff;margin:0 0 18px;font-size:clamp(28px,3.3vw,42px);font-weight:600;line-height:1.3}.section .kicker{text-transform:uppercase;letter-spacing:.15em;color:var(--sunset);margin-bottom:14px;font-size:11px;font-weight:800;display:block}.section p{color:var(--muted);max-width:730px;margin:0 0 1.75em;font-size:15px;line-height:1.8}#about{background:linear-gradient(#101827 0%,#142137 58%,#17243a 100%)}#skills{background:var(--section-background)}#projects{background:linear-gradient(#17243a 0%,#142137 53%,#101827 100%)}#certifications{background:linear-gradient(#101827,#17243a)}:where(a,button,summary,[tabindex]):focus-visible{outline-offset:3px;outline:2px solid #9dc7fb}button:disabled{cursor:not-allowed}.reveal{transition:opacity .64s var(--motion-ease), translate .64s var(--motion-ease);transition-delay:var(--reveal-delay,0s)}.motion-enabled .reveal:not(.is-visible){opacity:0;translate:0 18px}.motion-enabled .reveal.is-visible{opacity:1;translate:0}@media (width<=921px){body{font-size:14.592px}}@media (width<=740px){.container{padding-left:22px;padding-right:22px}.section{padding:67px 0;scroll-margin-top:68px}#about{background:linear-gradient(#101827,#17243a)}#projects{background:linear-gradient(#17243a,#101827)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.motion-enabled .reveal{opacity:1!important;translate:none!important}.btn:hover span,.project-link:hover span{transform:none!important}}.header[data-v-d24c7aa1]{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;background:#101827f2;border-bottom:1px solid #8fb0d829;height:77px;position:sticky;top:0}.header-content[data-v-d24c7aa1]{justify-content:space-between;align-items:center;height:100%;display:flex}.logo[data-v-d24c7aa1]{letter-spacing:-.65px;color:#f6f8ff;white-space:nowrap;font-size:18px;font-weight:800}.logo strong[data-v-d24c7aa1]{color:#86b8f6;font-weight:800}.nav[data-v-d24c7aa1]{align-items:center;gap:32px;display:flex}.nav a[data-v-d24c7aa1]{color:#e7f0fa;font-size:12px;font-weight:600;transition:color .2s;position:relative}.nav a[data-v-d24c7aa1]:hover,.nav a[data-v-d24c7aa1]:focus-visible{color:#8eb9f4}.nav a[data-v-d24c7aa1]:after{content:"";height:2px;transition:transform .24s var(--motion-ease);background:#83b7fa;border-radius:3px;position:absolute;bottom:-10px;left:0;right:0;transform:scaleX(0)}.nav a[data-v-d24c7aa1]:hover:after,.nav a[data-v-d24c7aa1]:focus-visible:after,.nav a[aria-current][data-v-d24c7aa1]:after{transform:scaleX(1)}.nav a[aria-current][data-v-d24c7aa1],.mobile-menu a[aria-current][data-v-d24c7aa1]{color:#a5cdff}.mobile-nav[data-v-d24c7aa1]{display:none}@media (width<=950px){.nav[data-v-d24c7aa1]{gap:18px}}@media (width<=740px){.header[data-v-d24c7aa1]{height:68px}.nav[data-v-d24c7aa1]{display:none}.mobile-nav[data-v-d24c7aa1]{display:block;position:relative}.mobile-nav summary[data-v-d24c7aa1]{cursor:pointer;color:#f8faff;border:1px solid #293754;border-radius:7px;justify-content:center;align-items:center;width:42px;height:40px;font-size:21px;list-style:none;display:flex}.mobile-nav summary[data-v-d24c7aa1]::-webkit-details-marker{display:none}.mobile-menu[data-v-d24c7aa1]{background:var(--section-background);border:1px solid #334d68;border-radius:10px;flex-direction:column;gap:4px;width:230px;padding:13px;display:flex;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 14px 50px #0000004d}.mobile-menu a[data-v-d24c7aa1]{color:#edf3ff;border-radius:5px;padding:11px 13px;font-size:14px;font-weight:650}.mobile-menu a[data-v-d24c7aa1]:hover{background:var(--panel)}}@media (width<=390px){.logo[data-v-d24c7aa1]{font-size:16px}}.footer[data-v-c87bbf08]{background:var(--background);color:#7f8da3;border-top:1px solid #8fb0d81f;padding:27px 0;font-size:12px}.footer .container[data-v-c87bbf08]{justify-content:space-between;gap:20px;display:flex}.footer a[data-v-c87bbf08]{color:#c1d8f4}.back-to-top[data-v-c87bbf08]{z-index:99;color:#fff;background:#046bd2;border-radius:2px;justify-content:center;align-items:center;width:31.5px;height:31.5px;display:flex;position:fixed;bottom:30px;right:30px}@media (width<=390px){.footer .container[data-v-c87bbf08]{flex-direction:column}}.skills[data-v-e2c75d8a]{flex-wrap:wrap;gap:12px;margin-top:26px;display:flex}.skill-chip[data-v-e2c75d8a]{background:var(--panel);color:#ebf3fc;min-height:47px;transition:transform .25s var(--motion-ease), border-color .25s, background .25s, box-shadow .25s;border:1px solid #37536f;border-radius:9px;align-items:center;gap:10px;padding:11px 15px;font-size:13px;font-weight:600;line-height:1.3;display:inline-flex}.skill-chip.reveal[data-v-e2c75d8a]{transition:opacity .64s var(--motion-ease), translate .64s var(--motion-ease), transform .25s var(--motion-ease), border-color .25s, background .25s, box-shadow .25s}.skill-icon[data-v-e2c75d8a]{object-fit:contain;width:23px;height:23px;transition:transform .25s var(--motion-ease);flex-shrink:0;display:inline-block}.monochrome[data-v-e2c75d8a]{filter:brightness(0)invert();opacity:.94}.skill-name[data-v-e2c75d8a]{white-space:nowrap}@media (hover:hover) and (pointer:fine){.skill-chip[data-v-e2c75d8a]:hover{border-color:var(--accent);background:#27415e;transform:translateY(-3px);box-shadow:0 8px 18px #030a1838}.skill-chip:hover .skill-icon[data-v-e2c75d8a]{transform:scale(1.12)}}@media (width<=740px){.skills[data-v-e2c75d8a]{gap:9px}.skill-chip[data-v-e2c75d8a]{gap:8px;min-height:43px;padding:10px 12px}.skill-icon[data-v-e2c75d8a]{width:21px;height:21px}}@media (prefers-reduced-motion:reduce){.skill-chip[data-v-e2c75d8a]:hover,.skill-chip:hover .skill-icon[data-v-e2c75d8a]{transform:none}}.projects-header[data-v-8c811c91]{justify-content:space-between;align-items:end;gap:24px;margin-bottom:27px;display:flex}.projects-header h2[data-v-8c811c91]{margin-bottom:0}.carousel-controls[data-v-8c811c91]{flex-shrink:0;align-items:center;gap:12px;display:flex}.carousel-count[data-v-8c811c91]{text-align:center;color:#9ba8bc;min-width:66px;font-size:12px;font-weight:700}.carousel-arrow[data-v-8c811c91]{appearance:none;background:var(--panel);color:var(--text);width:62px;height:44px;transition:transform .22s var(--motion-ease), background .22s, box-shadow .22s;border:1px solid #496787;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:23px;font-weight:500;line-height:1;display:inline-flex}.carousel-arrow[data-v-8c811c91]:hover:not(:disabled),.carousel-arrow[data-v-8c811c91]:focus-visible{background:var(--button)}.carousel-arrow[data-v-8c811c91]:hover:not(:disabled){transform:translateY(-2px)}.carousel-arrow[data-v-8c811c91]:disabled{opacity:.35;cursor:not-allowed}.carousel-viewport[data-v-8c811c91]{width:100%;margin-bottom:-18px;padding-top:5px;padding-bottom:18px;overflow:hidden}.projects-list[data-v-8c811c91]{transition:transform .5s var(--motion-ease);align-items:stretch;gap:22px;margin-top:24px;display:flex}.project-card[data-v-8c811c91]{background:var(--panel);min-width:0;transition:transform .3s var(--motion-ease), border-color .25s, box-shadow .3s;border:1px solid #385573;border-radius:12px;flex-direction:column;flex:0 0 calc(50% - 11px);padding:15px 18px;display:flex}.project-card[data-v-8c811c91]:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #5694e830}.project-image[data-v-8c811c91]{object-fit:contain;object-position:center;border-radius:8px;width:100%;height:clamp(115px,15vw,185px);margin:0 0 13px;display:block}.project-type[data-v-8c811c91]{color:#88b9f4;letter-spacing:.08em;font-size:9px;font-weight:800}.project-title[data-v-8c811c91]{letter-spacing:-.035em;color:#f7faff;margin:7px 0 9px;font-size:clamp(17px,1.6vw,22px);font-weight:600;line-height:1.2}.project-card .project-intro[data-v-8c811c91]{color:#c2d0e0;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 7px;font-size:12px;line-height:1.48;display:-webkit-box;overflow:hidden}.read-more-btn[data-v-8c811c91]{color:#94c5ff;font-size:12px;font-weight:800;line-height:inherit;background:0 0;border:0;align-items:center;margin:1px 0 8px;padding:0;display:inline-flex}.project-description p[data-v-8c811c91]{color:#c2d0e0;margin:0 0 10px;font-size:12px;line-height:1.55}.project-tech[data-v-8c811c91]{flex-wrap:wrap;align-items:center;gap:6px;margin:7px 0 9px;display:flex}.project-tech span[data-v-8c811c91]{color:#88b9f4;font-size:10px;font-weight:750}.project-tech span[data-v-8c811c91]:not(:last-child):after{content:"•";color:#5287da;padding-left:6px}.project-team[data-v-8c811c91]{color:#aab9d1;margin:0 0 10px;font-size:11px;line-height:1.45}.team-heading[data-v-8c811c91]{display:inline}.team-heading strong[data-v-8c811c91]{color:#e9f1ff}.team-heading strong[data-v-8c811c91]:after{content:":"}.team-members[data-v-8c811c91]{display:inline}.team-members em[data-v-8c811c91]{font-synthesis:style}.team-heading strong[data-v-8c811c91]:after{white-space:pre;content:": "}.team-toggle[data-v-8c811c91]{display:none}.project-links[data-v-8c811c91]{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.project-link[data-v-8c811c91]{color:#fff;transition:background .22s, transform .22s var(--motion-ease), box-shadow .22s;background:#2c5d9d;border:1px solid #5084cb;border-radius:6px;align-items:center;gap:12px;padding:8px 12px;font-size:11px;font-weight:800;display:inline-flex}.project-link[data-v-8c811c91]:hover{background:var(--button);transform:translateY(-2px);box-shadow:0 10px 22px #060d1c45}.project-link span[data-v-8c811c91]{transition:transform .22s var(--motion-ease)}.project-link:hover span[data-v-8c811c91]{transform:translate(3px)}@media (hover:hover) and (pointer:fine){.project-card[data-v-8c811c91]:hover{border-color:var(--accent);transform:translateY(-5px);box-shadow:0 19px 35px #030a1845}}@media (width<=921px){.carousel-arrow[data-v-8c811c91]{width:58px}}@media (width<=740px){.projects-list[data-v-8c811c91]{gap:14px}.project-card[data-v-8c811c91]{flex-basis:100%}.project-team[data-v-8c811c91]{margin-bottom:12px}.team-heading[data-v-8c811c91]{align-items:center;gap:12px;display:flex}.team-toggle[data-v-8c811c91]{font:inherit;color:#54a2ff;background:0 0;border:0;align-items:center;padding:3px 0;font-size:11px;font-weight:800;display:inline-flex}.team-members[data-v-8c811c91]{padding-top:7px;line-height:1.6;display:none}.team-expanded .team-members[data-v-8c811c91]{display:block}}@media (width<=640px){.projects-header[data-v-8c811c91]{flex-wrap:wrap;align-items:center;gap:10px}.carousel-controls[data-v-8c811c91]{margin-left:auto}.carousel-arrow[data-v-8c811c91]{width:58px;height:37px}.project-card[data-v-8c811c91]{padding:10px}.project-image[data-v-8c811c91]{height:100px}.project-title[data-v-8c811c91]{overflow-wrap:anywhere;font-size:14px}.project-tech span[data-v-8c811c91]{font-size:9px}.project-link[data-v-8c811c91]{padding:7px 9px;font-size:10px}}@media (width<=544px){.carousel-arrow[data-v-8c811c91]{width:50px}}@media (prefers-reduced-motion:reduce){.project-card[data-v-8c811c91]:hover,.project-link[data-v-8c811c91]:hover,.carousel-arrow[data-v-8c811c91]:hover:not(:disabled){transform:none}}.education-content[data-v-cd5490c6]{background:var(--panel);border:1px solid #39546f;border-radius:11px;width:100%;margin-top:30px;overflow-x:auto}.education-table[data-v-cd5490c6]{border-collapse:collapse;text-align:left;width:100%;min-width:740px;margin:0 0 1.5em}.education-table thead[data-v-cd5490c6]{background:#294563}.education-table th[data-v-cd5490c6]{color:#f7faff;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;border-bottom:2px solid #2872f0;border-bottom-color:var(--accent);padding:21px 22px;font-size:13px;font-weight:800}.education-table td[data-v-cd5490c6]{color:#cddae9;padding:20px 22px;font-size:13px;line-height:1.5}.education-table .institution-cell[data-v-cd5490c6]{color:#9dc7fb;font-weight:700}.institution-cell a[data-v-cd5490c6]{color:inherit}.institution-cell a[data-v-cd5490c6]:hover{text-decoration:underline}.education-table tbody tr[data-v-cd5490c6]:hover{background:#5694e817}@media (width<=800px){.education-table th[data-v-cd5490c6],.education-table td[data-v-cd5490c6]{padding:15px 17px;font-size:12px}.education-content[data-v-cd5490c6]{margin-top:23px}}.contact-section[data-v-a876dadc]{background:linear-gradient(#17243a 0%,#142137 55%,#101827 100%);padding:82px 0}.contact-section .container[data-v-a876dadc]{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:start;gap:72px;display:grid}.contact-section .kicker[data-v-a876dadc]{letter-spacing:.12em;margin-bottom:18.2px;font-size:12px}.contact-section h2[data-v-a876dadc]{margin-bottom:26.2px;font-size:clamp(35px,3.8vw,49px);line-height:1.17}.contact-section p[data-v-a876dadc]{color:var(--muted);margin:0;font-size:16px;line-height:1.75}.form-panel[data-v-a876dadc]{background:var(--panel);border:1px solid #3b5876;border-radius:16px;width:100%;padding:24px;transition:border-color .24s,box-shadow .24s;box-shadow:0 18px 38px #040b1626}.form-panel.reveal[data-v-a876dadc]{transition:opacity .64s var(--motion-ease), translate .64s var(--motion-ease), border-color .24s, box-shadow .24s}.form-panel[data-v-a876dadc]:focus-within{border-color:var(--accent);box-shadow:0 18px 40px #040b1633,0 0 0 2px #5694e826}.contact-form[data-v-a876dadc]{width:100%;margin:0}.name-row[data-v-a876dadc]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;display:grid}.form-group[data-v-a876dadc]{min-width:0;margin:0 0 17px}.form-group label[data-v-a876dadc]{color:#f1f5fd;margin:0 0 8px;font-size:14px;font-weight:700;line-height:1.4;display:block}.form-group label span[data-v-a876dadc]{color:#22d3ee}.form-group input[data-v-a876dadc],.form-group textarea[data-v-a876dadc]{background:var(--background);width:100%;max-width:100%;color:var(--text);box-shadow:none;border:1px solid #45617f;border-radius:7px;padding:12px 14px;font-size:14px;line-height:1.5;transition:border-color .2s,box-shadow .2s,background .2s;display:block}.form-group textarea[data-v-a876dadc]{resize:vertical;min-height:140px}.form-group input[data-v-a876dadc]{height:40px}.form-group input[data-v-a876dadc]:focus,.form-group textarea[data-v-a876dadc]:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #5694e82e}.submit-btn[data-v-a876dadc]{background:var(--button);color:#fff;min-height:46px;transition:transform .22s var(--motion-ease), background .22s, box-shadow .22s;border:0;border-radius:9px;padding:0 25px;font-size:14px;font-weight:800;line-height:1}.submit-btn[data-v-a876dadc]:hover{background:#4786db;transform:translateY(-2px);box-shadow:0 10px 22px #060d1c45}@media (width>=741px) and (width<=1050px){.contact-section .container[data-v-a876dadc]{gap:35px}.contact-section h2[data-v-a876dadc]{margin-bottom:34.4px}}@media (width<=740px){.contact-section[data-v-a876dadc]{background:linear-gradient(#17243a,#101827);padding:62px 0}.contact-section .container[data-v-a876dadc]{grid-template-columns:minmax(0,1fr);gap:27px}.contact-section .kicker[data-v-a876dadc]{margin-bottom:13px}.contact-section h2[data-v-a876dadc]{margin-bottom:8px}.contact-section p[data-v-a876dadc]{font-size:15px}.name-row[data-v-a876dadc]{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.submit-btn[data-v-a876dadc]:hover{transform:none}}.hero[data-v-4b7939ce]{isolation:isolate;background-color:var(--background);background-image:linear-gradient(90deg,#09101e9e 0%,#09101e66 43%,#09101e14 82%),linear-gradient(#1018270a 0%,#10182703 48%,#10182752 72%,#101827d4 92%,#101827 100%),url(/wordpress/mountain-sunset.jpg);background-position:50%;background-repeat:no-repeat;background-size:cover;grid-template-columns:1.12fr .88fr;align-items:center;gap:80px;width:100%;max-width:none;min-height:calc(100svh - 77px);padding:70px max(28px,50% - 532px) 74px;scroll-margin-top:77px;display:grid;position:relative}.hero-copy[data-v-4b7939ce]{z-index:2;min-width:0;position:relative}.hero-copy[data-v-4b7939ce],.portrait-wrap[data-v-4b7939ce]{animation:hero-enter-4b7939ce .75s var(--motion-ease) both}.portrait-wrap[data-v-4b7939ce]{animation-delay:.11s}@keyframes hero-enter-4b7939ce{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.eyebrow[data-v-4b7939ce]{color:var(--sunset);letter-spacing:.11em;background:#122134bd;border:1px solid #e8d6cf59;border-radius:100px;align-items:center;gap:8px;padding:7px 11px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.eyebrow[data-v-4b7939ce]:before{content:"";background:#2f78ed;border-radius:50%;width:7px;height:7px}.hero h1[data-v-4b7939ce]{letter-spacing:-.052em;color:var(--text);text-shadow:0 3px 22px #050c19a3;margin:28px 0 27px;font-size:clamp(51px,5.35vw,78px);font-weight:800;line-height:1.115}.highlight[data-v-4b7939ce]{color:#83b7fa}.hero-description[data-v-4b7939ce]{color:#f0f5fc;text-shadow:0 2px 13px #040914a3;max-width:490px;margin:0 0 28px;font-size:16px;font-weight:400;line-height:1.72}.hero-actions[data-v-4b7939ce]{flex-wrap:wrap;align-items:center;gap:13px;display:flex}.btn[data-v-4b7939ce]{min-height:48px;transition:transform .22s var(--motion-ease), background .22s, border-color .22s, box-shadow .22s;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:0 23px;font-size:13px;font-weight:800;display:inline-flex}.btn[data-v-4b7939ce]:hover{transform:translateY(-2px);box-shadow:0 10px 22px #060d1c45}.btn span[data-v-4b7939ce]{transition:transform .22s var(--motion-ease);display:inline-block}.btn:hover span[data-v-4b7939ce]{transform:translate(3px)}.btn-primary[data-v-4b7939ce]{background:var(--button);color:#fff;box-shadow:0 10px 24px #2563eb21}.btn-primary[data-v-4b7939ce]:hover{background:#4786db}.btn-outline[data-v-4b7939ce]{border:1px solid var(--sunset);color:var(--sunset);background:#10182740}.btn-outline[data-v-4b7939ce]:hover{background:#e8d6cf1a}.portrait-wrap[data-v-4b7939ce]{justify-self:end;width:100%;max-width:430px;position:relative;top:-30px}.profile-img[data-v-4b7939ce]{aspect-ratio:auto;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 8px 16px #09101e1f)drop-shadow(0 24px 30px #09101e1f);background:0 0;border:0;border-radius:0;width:100%;height:auto;display:block;-webkit-mask-image:linear-gradient(#000 0% 70%,#000000f0 76%,#00000087 89%,#0000 100%);mask-image:linear-gradient(#000 0% 70%,#000000f0 76%,#00000087 89%,#0000 100%)}@media (width<=950px){.hero[data-v-4b7939ce]{grid-template-columns:1fr .88fr;gap:44px}.hero h1[data-v-4b7939ce]{font-size:clamp(42px,6.4vw,65px)}}@media (width>=741px) and (width<=1050px){.hero[data-v-4b7939ce]{padding-left:34px;padding-right:34px}}@media (width<=740px){.hero[data-v-4b7939ce]{background-image:linear-gradient(90deg,#09101e9e 0%,#09101e59 62%,#09101e2b 100%),linear-gradient(#10182708 0%,#10182714 51%,#1018279e 87%,#101827 100%),url(/wordpress/mountain-sunset.jpg);background-position:57%;flex-direction:column;align-items:stretch;gap:40px;min-height:0;padding:72px 22px 80px;scroll-margin-top:68px;display:flex}.hero h1[data-v-4b7939ce]{margin:25px 0 23px;font-size:clamp(43px,9vw,64px);line-height:1.12}.hero-description[data-v-4b7939ce]{max-width:550px;font-size:15px}.portrait-wrap[data-v-4b7939ce]{align-self:center;width:min(88%,390px);max-width:none;margin-top:15px;top:-14px}}@media (prefers-reduced-motion:reduce){.btn[data-v-4b7939ce]:hover{transform:none}}@media (width<=390px){.hero h1[data-v-4b7939ce]{font-size:40px}.btn[data-v-4b7939ce]{min-height:44px;padding:0 16px;font-size:12px}.portrait-wrap[data-v-4b7939ce]{width:92%}}
