@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-cyrillic-wght-normal-DqGufNeO.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-ext-wght-normal-DlzME5K_.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-greek-wght-normal-CkhJZR-_.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-vietnamese-wght-normal-CBcvBZtf.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./sora-latin-ext-wght-normal-CawQDOvP.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(./sora-latin-wght-normal-DdqRvwsR.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--color-bg: #0e0e1c;--color-bg-elevated: #16162c;--color-surface: rgba(255, 255, 255, .035);--color-surface-hover: rgba(255, 255, 255, .06);--color-border: rgba(255, 255, 255, .09);--color-border-strong: rgba(255, 255, 255, .16);--color-text: #eef1f8;--color-text-muted: rgba(238, 241, 248, .64);--color-text-subtle: rgba(238, 241, 248, .42);--color-primary: #4db5ff;--color-primary-strong: #7cc9ff;--color-primary-soft: rgba(77, 181, 255, .14);--color-accent: #a78bfa;--color-accent-soft: rgba(167, 139, 250, .14);--color-success: #4ade80;--color-danger: #f87171;--color-on-primary: #08111c;--gradient-brand: linear-gradient(120deg, var(--color-primary), var(--color-accent));--glow-primary: radial-gradient(circle at 50% 50%, rgba(77, 181, 255, .22), transparent 68%);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow-md: 0 12px 32px rgba(0, 0, 0, .32);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .45);--font-display: "Sora Variable", "Sora", system-ui, sans-serif;--font-body: "Inter Variable", "Inter", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: clamp(1.25rem, .5vw + 1.1rem, 1.5rem);--text-2xl: clamp(1.5rem, 1vw + 1.2rem, 2rem);--text-3xl: clamp(2rem, 2vw + 1.4rem, 2.75rem);--text-4xl: clamp(2.5rem, 4vw + 1.2rem, 4rem);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--space-10: 8rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 999px;--transition-fast: .16s cubic-bezier(.4, 0, .2, 1);--transition-base: .28s cubic-bezier(.4, 0, .2, 1);--transition-slow: .62s cubic-bezier(.16, 1, .3, 1);--container-max: 1180px;--container-gutter: clamp(1.25rem, 5vw, 4rem);--nav-height: 4.25rem}[data-theme=light]{color-scheme:light;--color-bg: #f5f7fc;--color-bg-elevated: #ffffff;--color-surface: rgba(14, 14, 28, .028);--color-surface-hover: rgba(14, 14, 28, .055);--color-border: rgba(14, 14, 28, .1);--color-border-strong: rgba(14, 14, 28, .2);--color-text: #14162b;--color-text-muted: rgba(20, 22, 43, .68);--color-text-subtle: rgba(20, 22, 43, .48);--color-primary: #0a6fbd;--color-primary-strong: #075799;--color-primary-soft: rgba(10, 111, 189, .1);--color-accent: #6d3fe0;--color-accent-soft: rgba(109, 63, 224, .1);--color-success: #15803d;--color-danger: #b91c1c;--color-on-primary: #ffffff;--glow-primary: radial-gradient(circle at 50% 50%, rgba(10, 111, 189, .14), transparent 68%);--shadow-sm: 0 1px 2px rgba(20, 22, 43, .06);--shadow-md: 0 12px 32px rgba(20, 22, 43, .08);--shadow-lg: 0 24px 60px rgba(20, 22, 43, .12)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--space-7);-webkit-text-size-adjust:100%}body{min-height:100dvh;font-family:var(--font-body);font-size:var(--text-base);line-height:1.7;color:var(--color-text);background-color:var(--color-bg);background-image:radial-gradient(60rem 40rem at 78% -8%,var(--color-accent-soft),transparent 60%),radial-gradient(52rem 34rem at 8% 4%,var(--color-primary-soft),transparent 62%);background-attachment:fixed;-webkit-font-smoothing:antialiased;transition:background-color var(--transition-base),color var(--transition-base)}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:600;line-height:1.18;letter-spacing:-.02em;text-wrap:balance}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-xl)}p{text-wrap:pretty}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-strong)}ul,ol{list-style:none}img,svg,video{display:block;max-width:100%}img{height:auto}button,input,textarea,select{font:inherit;color:inherit}button{background:none;border:0;cursor:pointer}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}::selection{background:var(--color-primary);color:var(--color-on-primary)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-gutter)}.section{padding-block:var(--space-9);scroll-margin-top:var(--space-6)}.section__header{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-bottom:var(--space-7);text-align:center}.section__eyebrow{font-size:var(--text-sm);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-subtle)}.section__title{position:relative;background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.text-muted{color:var(--color-text-muted)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.7rem 1.35rem;font-size:var(--text-sm);font-weight:500;color:var(--color-text);white-space:nowrap;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast),color var(--transition-fast)}.btn:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-hover);border-color:var(--color-primary);transform:translateY(-2px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.btn--primary:hover:not(:disabled){color:var(--color-on-primary);background:var(--color-primary-strong);border-color:var(--color-primary-strong)}.btn--ghost{background:transparent;border-color:transparent;color:var(--color-text-muted)}.btn--ghost:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-border)}.btn--sm{padding:.45rem .9rem;font-size:var(--text-xs)}.card{position:relative;height:100%;padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);backdrop-filter:blur(12px);transition:border-color var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base),background var(--transition-base)}.card--interactive:hover,.card--interactive:focus-within{transform:translateY(-4px);border-color:var(--color-border-strong);background:var(--color-surface-hover);box-shadow:var(--shadow-md)}.badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:.2rem .6rem;font-size:var(--text-xs);font-weight:500;line-height:1.6;color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full)}.badge--primary{color:var(--color-primary);background:var(--color-primary-soft);border-color:transparent}.badge--accent{color:var(--color-accent);background:var(--color-accent-soft);border-color:transparent}.grid{display:grid;gap:var(--space-5)}.grid--auto{grid-template-columns:repeat(auto-fit,minmax(min(19rem,100%),1fr))}.js .reveal{opacity:0;transform:translateY(24px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion: reduce){.js .reveal{opacity:1;transform:none}}.back-to-top{position:fixed;inset-block-end:var(--space-6);inset-inline-end:var(--space-5);z-index:40;display:grid;place-items:center;width:2.75rem;height:2.75rem;color:var(--color-text);background:color-mix(in srgb,var(--color-bg-elevated) 90%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-md);backdrop-filter:blur(12px);opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity var(--transition-base),transform var(--transition-base),border-color var(--transition-fast)}.back-to-top.is-visible{opacity:1;transform:none;pointer-events:auto}.back-to-top:hover{border-color:var(--color-primary)}@media (max-width: 1024px){.back-to-top{inset-block-end:5.5rem}}.footer{margin-top:var(--space-9);padding-block:var(--space-7) calc(var(--space-7) + 3rem);background:var(--color-surface);border-top:1px solid var(--color-border)}.footer__inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-5);text-align:center}.footer__logo{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--color-text)}.footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2) var(--space-5)}.footer__links a{font-size:var(--text-sm);color:var(--color-text-muted)}.footer__links a:hover{color:var(--color-primary)}.footer__socials{display:flex;gap:var(--space-3)}.footer__socials a{display:grid;place-items:center;width:2.5rem;height:2.5rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.footer__socials a:hover{color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-2px)}.footer__legal{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-2) var(--space-4);font-size:var(--text-xs);color:var(--color-text-subtle)}.footer__source{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-text-subtle)}.footer__source:hover{color:var(--color-primary)}.footer__domain{font-family:var(--font-display);letter-spacing:.04em}.mobile-nav{position:fixed;inset-block-end:max(1rem,env(safe-area-inset-bottom));inset-inline:0;z-index:45;display:none;gap:var(--space-1);width:max-content;max-width:calc(100% - 2rem);margin-inline:auto;padding:.4rem;background:color-mix(in srgb,var(--color-bg-elevated) 88%,transparent);border:1px solid var(--color-border);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);backdrop-filter:blur(16px)}.mobile-nav a{display:grid;place-items:center;width:2.4rem;height:2.4rem;font-size:1.05rem;color:var(--color-text-muted);border-radius:var(--radius-full);transition:color var(--transition-fast),background var(--transition-fast)}.mobile-nav a.is-active{color:var(--color-on-primary);background:var(--color-primary)}@media (max-width: 1024px){.mobile-nav{display:flex}}.skip-link{position:fixed;inset-block-start:var(--space-3);inset-inline-start:50%;z-index:100;padding:.6rem 1.2rem;font-size:var(--text-sm);font-weight:500;color:var(--color-on-primary);background:var(--color-primary);border-radius:var(--radius-full);transform:translate(-50%,-180%);transition:transform var(--transition-base)}.skip-link:focus-visible{color:var(--color-on-primary);transform:translate(-50%)}.topbar{position:fixed;inset-block-start:0;inset-inline:0;z-index:40;height:var(--nav-height);display:flex;align-items:center;border-bottom:1px solid transparent;transition:background var(--transition-base),border-color var(--transition-base),backdrop-filter var(--transition-base)}.topbar--scrolled{background:color-mix(in srgb,var(--color-bg) 82%,transparent);border-bottom-color:var(--color-border);backdrop-filter:blur(14px)}.topbar__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}.topbar__logo{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--color-text);font-family:var(--font-display);font-weight:600}.topbar__logo-mark{display:grid;place-items:center;width:2.25rem;height:2.25rem;font-size:var(--text-sm);letter-spacing:.02em;color:var(--color-on-primary);background:var(--gradient-brand);border-radius:var(--radius-md)}.topbar__nav ul{display:flex;align-items:center;gap:var(--space-1)}.topbar__nav a{display:inline-block;padding:.4rem .75rem;font-size:var(--text-sm);color:var(--color-text-muted);border-radius:var(--radius-full);transition:color var(--transition-fast),background var(--transition-fast)}.topbar__nav a:hover{color:var(--color-text);background:var(--color-surface)}.topbar__nav a.is-active{color:var(--color-primary);background:var(--color-primary-soft)}.topbar__actions{display:flex;align-items:center;gap:var(--space-2)}.topbar__action{display:inline-flex;align-items:center;gap:var(--space-1);padding:.45rem .65rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:color var(--transition-fast),border-color var(--transition-fast),background var(--transition-fast)}.topbar__action:hover{color:var(--color-text);border-color:var(--color-border-strong);background:var(--color-surface)}.topbar__action-label{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em}@media (max-width: 1024px){.topbar__nav,.topbar__logo-text{display:none}}.topbar__icon{display:none;line-height:0}[data-theme=dark] .topbar__icon--dark,[data-theme=light] .topbar__icon--light{display:inline-flex}.about{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:var(--space-8)}.about__portrait{position:relative;aspect-ratio:1;padding:.5rem;background:var(--gradient-brand);border-radius:var(--radius-xl);rotate:-3deg;transition:rotate var(--transition-base)}.about__portrait:hover{rotate:0deg}.about__portrait img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius-xl) - .25rem)}.about__content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-5)}.about__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3);width:100%}.about__stat{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-4) var(--space-2);text-align:center}.about__stat-icon{font-size:1.35rem;color:var(--color-primary)}.about__stat strong{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.1}.about__stat span{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.4}.about__bio{display:flex;flex-direction:column;gap:var(--space-3);color:var(--color-text-muted)}@media (max-width: 900px){.about{grid-template-columns:1fr;gap:var(--space-6)}.about__portrait{width:min(20rem,80%);margin-inline:auto}.about__content{align-items:center;text-align:center}}@media (max-width: 480px){.about__stats{grid-template-columns:1fr}.about__stat{flex-direction:row;justify-content:flex-start;gap:var(--space-3);text-align:start}}.certifications__grid{align-items:stretch}.certification{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.certification__badge{width:6.5rem;height:6.5rem;object-fit:contain}.certification__title{font-size:var(--text-base)}.certification__issuer{flex:1;font-size:var(--text-xs);color:var(--color-text-subtle)}.certifications__pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-1);margin-top:var(--space-6)}.certifications__page{min-width:2.25rem;height:2.25rem;font-size:var(--text-sm);color:var(--color-text-muted);border:1px solid transparent;border-radius:var(--radius-full);transition:color var(--transition-fast),background var(--transition-fast),border-color var(--transition-fast)}.certifications__page:hover{color:var(--color-text);border-color:var(--color-border)}.certifications__page.is-active{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.certifications__footer{margin-top:var(--space-5);text-align:center}.contact__intro{max-width:38rem;margin:calc(var(--space-6) * -1) auto var(--space-6);text-align:center}.contact{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:var(--space-6)}.contact__channels{display:flex;flex-direction:column;gap:var(--space-3)}.contact__channel{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center}.contact__channel-icon{font-size:1.5rem;color:var(--color-primary)}.contact__channel-value{font-size:var(--text-sm);color:var(--color-text-muted);overflow-wrap:anywhere}.contact__channel-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}.contact__form{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}.contact__field{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted)}.contact__field input,.contact__field textarea{padding:.75rem 1rem;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);resize:vertical;transition:border-color var(--transition-fast),background var(--transition-fast)}.contact__field input:focus,.contact__field textarea:focus{border-color:var(--color-primary);outline:none}.contact__field input:focus-visible,.contact__field textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.contact__status:empty{display:none}.contact__status span{display:inline-flex;align-items:center;gap:var(--space-2);padding:.6rem .9rem;font-size:var(--text-sm);border-radius:var(--radius-md)}.contact__status--success{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,transparent)}.contact__status--error{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 12%,transparent)}.contact__honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media (max-width: 900px){.contact{grid-template-columns:1fr}.contact__channels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(14rem,100%),1fr))}}.hero{position:relative;display:flex;align-items:center;min-height:100svh;padding-block:calc(var(--nav-height) + var(--space-7)) var(--space-9);overflow:hidden}.hero:before{content:"";position:absolute;inset-block-start:-18%;inset-inline-end:-12%;width:46rem;height:46rem;background:var(--glow-primary);pointer-events:none}.hero__inner{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:var(--space-8)}.hero__content{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);animation:hero-enter var(--transition-slow) both}.hero__availability{display:inline-flex;align-items:center;gap:var(--space-2);padding:.3rem .85rem;font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full)}.hero__pulse{width:.45rem;height:.45rem;background:var(--color-success);border-radius:var(--radius-full);box-shadow:0 0 color-mix(in srgb,var(--color-success) 60%,transparent);animation:pulse 2.4s ease-out infinite}.hero__greeting{margin-bottom:calc(var(--space-3) * -1);font-size:var(--text-lg);color:var(--color-text-muted)}.hero__name{background:var(--gradient-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.hero__role{font-family:var(--font-display);font-size:var(--text-xl);font-weight:500;color:var(--color-text)}.hero__tagline{max-width:34rem;color:var(--color-text-muted)}.hero__actions{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-top:var(--space-2)}.hero__socials{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.hero__socials a{display:grid;place-items:center;width:2.6rem;height:2.6rem;font-size:1.1rem;color:var(--color-text-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);transition:color var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.hero__socials a:hover{color:var(--color-primary);border-color:var(--color-primary);transform:translateY(-3px)}.hero__portrait{position:relative;justify-self:center;width:min(24rem,100%);aspect-ratio:4 / 5;border-radius:var(--radius-xl);background:var(--gradient-brand);animation:hero-enter var(--transition-slow) .12s both}.hero__portrait:after{content:"";position:absolute;inset:0;border-radius:inherit;border:1px solid var(--color-border-strong);pointer-events:none}.hero__portrait img{width:100%;height:100%;object-fit:cover;object-position:top center;border-radius:inherit}.hero__scroll{position:absolute;inset-block-end:var(--space-5);inset-inline-start:50%;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-subtle);transform:translate(-50%)}.hero__scroll:after{content:"";width:2.5rem;height:1px;background:currentColor;animation:scroll-hint 2s ease-in-out infinite}@keyframes hero-enter{0%{opacity:0;transform:translateY(28px)}}@keyframes pulse{70%{box-shadow:0 0 0 .5rem transparent}to{box-shadow:0 0 0 0 transparent}}@keyframes scroll-hint{50%{transform:translate(6px)}}@media (max-width: 900px){.hero__inner{grid-template-columns:1fr;gap:var(--space-6);text-align:center}.hero__content{align-items:center}.hero__portrait{order:-1;width:min(16rem,70%)}.hero__scroll{display:none}}.projects__filters{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-6)}.projects__filter.is-active{color:var(--color-on-primary);background:var(--color-primary);border-color:var(--color-primary)}.projects__grid{align-items:stretch}.project{display:flex;flex-direction:column;gap:var(--space-3);overflow:hidden}.project:before{content:"";position:absolute;inset-block-start:0;inset-inline:0;height:2px;background:var(--gradient-brand);opacity:0;transition:opacity var(--transition-base)}.project:hover:before,.project:focus-within:before{opacity:1}.project__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.project__year{margin-inline-start:auto;font-size:var(--text-xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.project__title{font-size:var(--text-lg)}.project__summary{flex:1;font-size:var(--text-sm);color:var(--color-text-muted)}.project__stack{display:flex;flex-wrap:wrap;gap:var(--space-1)}.project__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);padding-top:var(--space-2);margin-top:auto;border-top:1px solid var(--color-border)}.projects__empty,.projects__footer{margin-top:var(--space-6);text-align:center}.service{display:flex;flex-direction:column;gap:var(--space-4)}.service__head{display:flex;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.service__icon{flex-shrink:0;padding:.55rem;font-size:2.35rem;color:var(--color-primary);background:var(--color-primary-soft);border-radius:var(--radius-md)}.service__pitch{font-size:var(--text-sm);color:var(--color-text-muted)}.service__list{display:flex;flex-direction:column;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted)}.service__list li{display:flex;gap:var(--space-2);line-height:1.55}.service__check{flex-shrink:0;margin-top:.3rem;font-size:.85rem;color:var(--color-primary)}.services__footer{margin-top:var(--space-6);text-align:center}.skill-group__title{display:flex;align-items:center;gap:var(--space-2);padding-bottom:var(--space-3);margin-bottom:var(--space-3);font-size:var(--text-lg);border-bottom:1px solid var(--color-border)}.skill-group__icon{flex-shrink:0;font-size:1.15rem;color:var(--color-primary)}.skill-group__list{display:flex;flex-direction:column;gap:var(--space-3)}.skill{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:var(--space-2)}.skill__check{margin-top:.35rem;font-size:.85rem;color:var(--color-primary)}.skill__name{font-size:var(--text-sm);font-weight:500;line-height:1.4}.skill__detail{font-size:var(--text-xs);line-height:1.5;color:var(--color-text-subtle)}.skill__level{align-self:center;white-space:nowrap}.skill__level--advanced{color:var(--color-primary);background:var(--color-primary-soft);border-color:transparent}@media (max-width: 480px){.skill{grid-template-columns:auto minmax(0,1fr)}.skill__level{grid-column:2;justify-self:start}}@font-face{font-family:swiper-icons;src:url(data:application/font-woff;charset=utf-8;base64,\ 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);font-weight:400;font-style:normal}:root{--swiper-theme-color: #007aff}:host{position:relative;display:block;margin-left:auto;margin-right:auto;z-index:1}.swiper{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1;display:block}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function, initial);box-sizing:content-box}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform;display:block}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{transform:translateZ(0);-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-slide,.swiper-3d .swiper-cube-shadow{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{width:100%;min-width:1px;height:var(--swiper-centered-offset-after)}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top,.swiper-3d .swiper-slide-shadow-bottom{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-3d .swiper-slide-shadow{background:#00000026}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,#00000080,#0000)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,#00000080,#0000)}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;box-sizing:border-box;border:4px solid var(--swiper-preloader-color, var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader,.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader{animation:swiper-preloader-spin 1s infinite linear}.swiper-lazy-preloader-white{--swiper-preloader-color: #fff}.swiper-lazy-preloader-black{--swiper-preloader-color: #000}@keyframes swiper-preloader-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translateZ(0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-pagination-fraction,.swiper-pagination-custom,.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal{bottom:var(--swiper-pagination-bottom, 8px);top:var(--swiper-pagination-top, auto);left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));height:var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));display:inline-block;border-radius:var(--swiper-pagination-bullet-border-radius, 50%);background:var(--swiper-pagination-bullet-inactive-color, #000);opacity:var(--swiper-pagination-bullet-inactive-opacity, .2)}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{opacity:var(--swiper-pagination-bullet-opacity, 1);background:var(--swiper-pagination-color, var(--swiper-theme-color))}.swiper-vertical>.swiper-pagination-bullets,.swiper-pagination-vertical.swiper-pagination-bullets{right:var(--swiper-pagination-right, 8px);left:var(--swiper-pagination-left, auto);top:50%;transform:translate3d(0,-50%,0)}.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet{margin:var(--swiper-pagination-bullet-vertical-gap, 6px) 0;display:block}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap, 4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translate(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color, inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color, var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite{width:100%;height:var(--swiper-pagination-progressbar-size, 4px);left:0;top:0}.swiper-vertical>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite{width:var(--swiper-pagination-progressbar-size, 4px);height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.testimonials{padding-bottom:var(--space-7)!important}.testimonials .swiper-slide{height:auto}.testimonial{display:flex;flex-direction:column;gap:var(--space-4);height:100%;padding:var(--space-6) var(--space-5)}.testimonial__quote{position:relative;flex:1;font-size:var(--text-sm);line-height:1.75;color:var(--color-text-muted)}.testimonial__quote:before{content:"“";display:block;font-family:var(--font-display);font-size:3rem;line-height:.6;color:var(--color-primary);opacity:.5}.testimonial__author{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border)}.testimonial__author img{width:3rem;height:3rem;object-fit:cover;border-radius:var(--radius-full);border:1px solid var(--color-border-strong)}.testimonial__author span{display:flex;flex-direction:column;line-height:1.35}.testimonial__author strong{font-size:var(--text-sm);font-weight:600}.testimonial__author small{font-size:var(--text-xs);color:var(--color-text-subtle)}.testimonials .swiper-pagination-bullet{background:var(--color-text-subtle);opacity:1}.testimonials .swiper-pagination-bullet-active{width:1.5rem;background:var(--color-primary);border-radius:var(--radius-full)}
