:root{--ink:#0b0c0f;--paper:#f4f5f7;--cobalt:#2f5bff;--ease:cubic-bezier(.22, 1, .36, 1);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:20px;--space-5:32px;--space-6:52px;--space-7:84px;--space-8:136px;--radius-sm:20px;--radius-lg:40px;--radius-pill:999px}*,:before,:after{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:80px}body{background:var(--paper);min-width:320px;min-height:100%;color:var(--ink);font-family:var(--font-onest), sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-weight:400;overflow-x:hidden}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}img{display:block}::selection{background:var(--cobalt);color:var(--paper)}:focus-visible{outline:2px solid var(--cobalt);outline-offset:5px}.skip-link{top:var(--space-4);left:var(--space-4);z-index:100;border-radius:var(--radius-pill);background:var(--paper);color:var(--ink);transition:transform .32s var(--ease);padding:12px 20px;position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-loader{z-index:1000;background:var(--ink);color:var(--paper);pointer-events:none;opacity:1;place-items:center;transition:opacity .24s ease-out;display:grid;position:fixed;inset:0}.page-loader[data-phase=leaving]{opacity:0}.page-loader-signature{justify-items:center;gap:22px;display:grid}.page-loader-mark{width:52px;height:52px}.page-loader-signature>span{letter-spacing:-.015em;color:#b5b9c4;font-size:14px}.page-loader-track{background:#282c35;border-radius:2px;width:112px;height:2px;margin-top:4px;overflow:hidden}.page-loader-track>span{border-radius:inherit;background:#7f98ff;width:48px;height:100%;animation:1s ease-in-out infinite loader-sweep;display:block}@keyframes loader-sweep{0%{transform:translate(-48px)}to{transform:translate(112px)}}@media (prefers-reduced-motion:reduce){.page-loader{transition:none}.page-loader-track>span{width:100%;animation:none}}.scroll-rail{z-index:90;touch-action:none;cursor:grab;outline-offset:-8px;width:44px;height:clamp(176px,34vh,320px);display:none;position:fixed;top:50%;right:0;transform:translateY(-50%)}.scroll-rail[data-scrollable=false]{visibility:hidden}.scroll-rail[data-dragging=true]{cursor:grabbing}.scroll-rail:focus-visible{outline:none}.scroll-rail-track{border-radius:var(--radius-pill);width:6px;transition:background-color .36s var(--ease);background:#2f5bff38;position:absolute;top:0;bottom:0;right:6px}.scroll-rail-thumb{border-radius:var(--radius-pill) 0 0 var(--radius-pill);background:var(--cobalt);opacity:.82;width:6px;min-height:58px;transition:width .42s var(--ease), opacity .32s var(--ease), box-shadow .42s var(--ease);will-change:transform;position:absolute;top:0;right:0;box-shadow:-5px 0 18px #2f5bff29}.scroll-rail[data-theme=dark] .scroll-rail-track{background:#f4f5f72e}.scroll-rail[data-theme=dark] .scroll-rail-thumb{opacity:1;box-shadow:0 0 0 1px #f4f5f738,-7px 0 22px #2f5bff52}.scroll-rail:hover .scroll-rail-thumb,.scroll-rail:focus-visible .scroll-rail-thumb,.scroll-rail[data-active=true] .scroll-rail-thumb,.scroll-rail[data-dragging=true] .scroll-rail-thumb{opacity:1;width:10px;box-shadow:-8px 0 24px #2f5bff47}.scroll-mobile{left:50%;bottom:calc(8px + env(safe-area-inset-bottom));z-index:95;border-radius:var(--radius-pill);background:#f4f5f7f5;border:1px solid #0b0c0f26;width:164px;height:44px;padding:0 14px;transition:box-shadow .2s;display:none;position:fixed;transform:translate(-50%);box-shadow:0 3px 16px #0b0c0f1f}.scroll-mobile:not([data-scrollable=true]){visibility:hidden}body:has(.site-header[data-menu-open=true]) .scroll-mobile{visibility:hidden}.scroll-mobile:focus-within,.scroll-mobile[data-active=true]{box-shadow:0 3px 18px #0b0c0f2e}.scroll-mobile-input{--scroll-progress:0%;appearance:none;cursor:ew-resize;touch-action:none;background:0 0;width:100%;height:42px;margin:0;padding:0;display:block}.scroll-mobile-input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--cobalt) var(--scroll-progress), #c6cbd6 var(--scroll-progress));border-radius:4px;height:4px}.scroll-mobile-input::-webkit-slider-thumb{appearance:none;border:2px solid var(--paper);background:var(--cobalt);border-radius:8px;width:24px;height:14px;margin-top:-5px;box-shadow:0 1px 4px #0b0c0f3d}.scroll-mobile-input::-moz-range-track{background:#c6cbd6;border-radius:4px;height:4px}.scroll-mobile-input::-moz-range-progress{background:var(--cobalt);border-radius:4px;height:4px}.scroll-mobile-input::-moz-range-thumb{border:2px solid var(--paper);background:var(--cobalt);border-radius:8px;width:20px;height:10px;box-shadow:0 1px 4px #0b0c0f3d}.scroll-mobile-input:focus-visible{outline-offset:3px;border-radius:6px}@media (hover:hover) and (pointer:fine){html[data-scroll-rail-ready=true]{scrollbar-width:none}html[data-scroll-rail-ready=true]::-webkit-scrollbar{width:0;display:none}.scroll-rail{display:block}}@media (hover:none),(pointer:coarse),(max-width:767px){html[data-scroll-rail-ready=true]{scrollbar-width:none}html[data-scroll-rail-ready=true]::-webkit-scrollbar{width:0;display:none}.scroll-rail{display:none}.scroll-mobile{display:block}}@media (prefers-reduced-motion:reduce){.scroll-rail-thumb{transition:none}}.site-header{--header-background:transparent;--header-border:#f4f5f72e;--header-foreground:var(--paper);--header-muted:#f4f5f7ad;z-index:100;border-bottom:1px solid var(--header-border);background:var(--header-background);width:100%;min-height:76px;color:var(--header-foreground);transition:background-color .42s var(--ease), border-color .42s var(--ease), color .42s var(--ease), backdrop-filter .42s var(--ease);grid-template-columns:1fr auto 1fr;align-items:center;padding:16px clamp(20px,3.6vw,52px);display:grid;position:fixed;top:0;left:0}.site-header[data-theme=light]{--header-background:#f4f5f7e0;--header-border:#0b0c0f24;--header-foreground:var(--ink);--header-muted:#0b0c0f9e;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.site-header[data-theme=dark],.site-header[data-menu-open=true]{--header-background:transparent;--header-border:#f4f5f72e;--header-foreground:var(--paper);--header-muted:#f4f5f7ad;-webkit-backdrop-filter:none;backdrop-filter:none}.site-header[data-menu-open=true]{--header-background:var(--ink)}.brand-mark{width:44px;height:44px;color:var(--header-foreground);justify-content:center;align-items:center;display:inline-flex}.brand-mark-icon{width:33px;height:33px;transition:color .42s var(--ease);display:block}.desktop-nav{align-items:center;gap:clamp(20px,2.2vw,32px);display:flex}.desktop-nav a,.language-switch{min-height:44px;color:var(--header-muted);cursor:pointer;transition:color .32s var(--ease), transform .52s var(--ease);background:0 0;border:0;align-items:center;font-size:14px;display:inline-flex;position:relative}.desktop-nav a:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:7px;left:0;transform:scaleX(0)}.desktop-nav a:hover,.language-switch:hover{color:var(--header-foreground)}.desktop-nav a:hover:after{transform-origin:0;transform:scaleX(1)}.header-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);display:flex}.language-switch{gap:5px;padding:0 8px}.language-switch strong{color:var(--header-foreground);font-weight:400}.header-contact{isolation:isolate;border-radius:var(--radius-pill);background:var(--header-foreground);min-height:44px;color:var(--header-background,var(--ink));transition:color .32s var(--ease), transform .62s var(--ease);justify-content:center;align-items:center;padding:0 20px;font-size:13px;display:inline-flex;position:relative;overflow:hidden}.site-header[data-theme=dark] .header-contact,.site-header[data-menu-open=true] .header-contact{background:var(--paper);color:var(--ink)}.site-header[data-theme=light] .header-contact{background:var(--ink);color:var(--paper)}.header-contact:before{content:"";z-index:-1;transform-origin:0;background:var(--cobalt);transition:transform .5s var(--ease);position:absolute;inset:0;transform:scaleX(0)}.header-contact:hover{transform:translateY(-2px)}.site-header .header-contact:hover{color:var(--paper)}.header-contact:hover:before{transform:scaleX(1)}.mobile-menu,.menu-button,.mobile-nav,.menu-icon-close{display:none}html[data-reveal-ready=true] [data-reveal-pending=true]{opacity:0;transform:translateY(18px)}html[data-reveal-ready=true] [data-reveal]{transition:opacity .65s var(--ease), transform .75s var(--ease)}html[data-reveal-ready=true] [data-reveal-visible=true]{opacity:1;transform:none}html[data-reveal-ready=true] [data-reveal=portrait] img{transition:transform 1s var(--ease)}html[data-reveal-ready=true] [data-reveal=portrait][data-reveal-pending=true] img{transform:scale(1.035)}@media (prefers-reduced-motion:reduce){html[data-reveal-ready=true] [data-reveal-pending=true]{opacity:1;transform:none}html[data-reveal-ready=true] [data-reveal=portrait] img{transform:none}}.button{isolation:isolate;border-radius:var(--radius-pill);min-height:48px;transition:color .32s var(--ease), transform .62s var(--ease);justify-content:center;align-items:center;gap:10px;padding:0 22px;font-size:14px;line-height:1;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";z-index:-1;transform-origin:0;transition:transform .5s var(--ease);position:absolute;inset:0;transform:scaleX(0)}.button svg{transition:transform .52s var(--ease)}.button:hover{transform:translateY(-2px)}.button:hover:before{transform:scaleX(1)}.button:hover svg{transform:translate(2px,-2px)}.button-solid{background:var(--cobalt);color:var(--paper)}.button-solid:before{background:var(--paper)}.button-solid:hover{color:var(--ink)}.button-outline{background:0 0;border:1px solid}.button-outline-dark{color:#f2f1edcc}.button-outline-dark:before{background:var(--paper)}.button-outline-dark:hover{color:var(--ink)}.section{background:var(--paper);padding:clamp(84px,9vw,136px) clamp(20px,4vw,64px)}.section-heading-wide{gap:var(--space-5);margin-bottom:var(--space-7);grid-template-columns:minmax(130px,.55fr) minmax(0,1.5fr) minmax(250px,.8fr);align-items:start;display:grid}.section-label{color:#0b0c0f94;letter-spacing:.18em;text-transform:uppercase;margin:8px 0 0;font-size:12px;line-height:1.8}.section-heading h2,.about-heading h2{letter-spacing:-.04em;text-wrap:balance;-webkit-hyphens:none;hyphens:none;margin:0;font-size:clamp(2.8rem,5.7vw,6.6rem);font-weight:300;line-height:.92}.section-intro{text-wrap:pretty;max-width:42ch;margin:8px 0 0;font-size:clamp(15px,1.15vw,18px);line-height:1.6}.section-work{padding-bottom:var(--space-8)}.project-layout{grid-template-columns:minmax(0,1fr) minmax(380px,.92fr);align-items:start;gap:clamp(32px,5vw,84px);display:grid}.project-preview-shell{border-radius:var(--radius-lg);background:var(--ink);height:min(72svh,760px);min-height:520px;position:sticky;top:88px;overflow:hidden}.project-preview-media{animation:preview-in .7s var(--ease) both;position:absolute;inset:0}.project-preview-media:after{content:"";-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#0b0c0f1f;height:22%;position:absolute;inset:auto 0 0;-webkit-mask-image:linear-gradient(#0000 0%,#000 100%);mask-image:linear-gradient(#0000 0%,#000 100%)}.project-preview-media img,.project-mobile-image img{object-fit:cover;object-position:top center;transition:transform .8s var(--ease)}.project-preview-shell:hover .project-preview-media img{transform:scale(1.025)}.project-preview-index{left:var(--space-4);bottom:var(--space-4);z-index:2;color:var(--paper);letter-spacing:.18em;font-size:12px;position:absolute}@keyframes preview-in{0%{opacity:0;transform:translate(30px)scale(1.02)}to{opacity:1;transform:translate(0)scale(1)}}.project-list{border-bottom:1px solid #0b0c0f38}.project-row{padding:var(--space-5) 0 var(--space-6);opacity:.54;transition:opacity .32s var(--ease), transform .62s var(--ease);border-top:1px solid #0b0c0f38;position:relative}.project-row[data-active=true],.project-row:focus-within,.project-row:hover{opacity:1;transform:translate(8px)}.project-row-heading{align-items:center;gap:var(--space-4);display:flex}.project-row-heading span,.project-row-heading p{letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:12px;line-height:1.8}.project-row-heading span{color:var(--cobalt)}.project-row h3{margin:var(--space-4) 0 0;letter-spacing:-.04em;font-size:clamp(2.5rem,4.4vw,5.5rem);font-weight:300;line-height:.92}.project-description{max-width:50ch;margin:var(--space-4) 0 0;text-wrap:pretty;font-size:16px;line-height:1.6}.project-tech{margin:var(--space-5) 0 0;flex-wrap:wrap;gap:8px 18px;padding:0;list-style:none;display:flex}.project-tech li{color:#0b0c0f99;font-size:13px}.project-links,.about-links{gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.project-links a,.text-action{align-items:center;gap:8px;min-height:44px;font-size:14px;display:inline-flex;position:relative}.project-links a:after,.text-action:after{content:"";transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease);background:currentColor;position:absolute;bottom:4px;left:0;transform:scaleX(0)}.project-links a:hover:after,.text-action:hover:after{transform-origin:0;transform:scaleX(1)}.project-links svg,.text-action svg{transition:transform .52s var(--ease)}.project-links a:hover svg,.text-action:hover svg{transform:translate(2px,-2px)}.project-mobile-image{display:none;position:relative}.section-about{border-top:1px solid #0b0c0f33}.about-layout{gap:var(--space-7) clamp(52px, 8vw, 136px);grid-template:"heading portrait""body portrait"1fr/minmax(280px,.9fr) minmax(360px,1.1fr);min-height:0;display:grid}.about-heading{grid-area:heading}.about-body{padding-top:var(--space-7);grid-area:body}.about-portrait-column{grid-area:portrait;min-width:0;position:relative}.about-portrait{width:100%;position:sticky;top:104px;overflow:hidden}.about-portrait-frame{background:#d7dce4;height:min(72svh,780px);position:relative;overflow:hidden}.about-portrait img{object-fit:cover;object-position:center 40%}.about-copy{gap:var(--space-4);display:grid}.about-copy p{text-wrap:pretty;max-width:58ch;margin:0;font-size:clamp(16px,1.45vw,21px);line-height:1.6}.stack-list{gap:var(--space-5);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid #0b0c0f38;grid-column:1/-1;grid-template-columns:minmax(220px,.55fr) 1.45fr;display:grid}.stack-list h3{margin:5px 0 0;font-size:14px;font-weight:400}.stack-list ul{margin:0;padding:0;list-style:none}.stack-list li{letter-spacing:-.02em;border-bottom:1px solid #0b0c0f2e;grid-template-columns:60px 1fr;align-items:center;min-height:68px;font-size:clamp(19px,2.2vw,30px);display:grid}.stack-list li span{color:var(--cobalt);letter-spacing:.16em;font-size:12px}.section-experience,.section-work,.section-reviews{border-top:1px solid #0b0c0f33}.section-reviews{background:#fff}.experience-list{border-bottom:1px solid #0b0c0f38}.experience-overview{gap:var(--space-5);display:grid}.experience-overview .section-intro{margin-top:8px}.experience-total{padding-top:var(--space-4);border-top:1px solid #0b0c0f38;display:grid}.experience-total strong{letter-spacing:-.04em;text-wrap:balance;font-size:clamp(2.2rem,3.8vw,4.5rem);font-weight:300;line-height:.95}.experience-total span{margin-top:var(--space-3);font-size:14px}.experience-total small{margin-top:var(--space-1);color:#0b0c0f94;font-size:12px}.experience-item{gap:var(--space-5);padding:var(--space-6) 0;border-top:1px solid #0b0c0f38;grid-template-columns:minmax(80px,.25fr) minmax(250px,.75fr) minmax(0,1.15fr);align-items:start;display:grid}.experience-number{color:var(--cobalt);letter-spacing:.16em;font-size:12px}.experience-role h3{letter-spacing:-.035em;max-width:20ch;margin:0;font-size:clamp(1.7rem,2.8vw,3.2rem);font-weight:300;line-height:1}.experience-role p{margin:var(--space-4) 0 0;font-size:15px}.experience-role time{margin-top:var(--space-2);color:#0b0c0f94;font-size:13px;display:block}.experience-item ul{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.experience-item li{text-wrap:pretty;max-width:62ch;padding-left:22px;font-size:16px;line-height:1.55;position:relative}.experience-item li:before{content:"";border-radius:var(--radius-pill);background:var(--cobalt);width:6px;height:6px;position:absolute;top:.7em;left:0}.section-learning{background:#fff;border-top:1px solid #0b0c0f33}.current-education{gap:var(--space-5);border-radius:0 0 var(--radius-lg) 0;background:var(--ink);color:var(--paper);padding:var(--space-5);grid-template-columns:minmax(130px,.55fr) minmax(0,1.5fr) minmax(250px,.8fr);align-items:end;display:grid}.current-education p,.current-education h3,.current-education span{margin:0}.current-education p{color:#f4f5f78f;letter-spacing:.18em;text-transform:uppercase;font-size:12px;line-height:1.8}.current-education h3{letter-spacing:-.035em;text-wrap:balance;max-width:30ch;font-size:clamp(1.65rem,3vw,3.5rem);font-weight:300;line-height:1.04}.current-education span{color:#f4f5f7b8;text-wrap:pretty;font-size:15px;line-height:1.55}.certificate-list{margin-top:var(--space-6);border-bottom:1px solid #0b0c0f38}.certificate-item{gap:var(--space-5);padding:var(--space-6) 0;border-top:1px solid #0b0c0f38;grid-template-columns:minmax(52px,.2fr) minmax(150px,.45fr) minmax(300px,1.15fr) minmax(170px,.5fr);align-items:start;display:grid}.certificate-index{color:var(--cobalt);letter-spacing:.16em;font-size:12px}.certificate-meta p{margin:0;font-size:14px;line-height:1.45}.certificate-meta time{margin-top:var(--space-2);color:#0b0c0f94;font-size:12px;line-height:1.5;display:block}.certificate-content h3{letter-spacing:-.035em;text-wrap:balance;-webkit-hyphens:none;hyphens:none;max-width:26ch;margin:0;font-size:clamp(1.65rem,2.7vw,3.1rem);font-weight:300;line-height:1.02}.certificate-content ul{gap:var(--space-2);max-width:62ch;margin:var(--space-5) 0 0;padding:0;list-style:none;display:grid}.certificate-content li{text-wrap:pretty;padding-left:18px;font-size:15px;line-height:1.55;position:relative}.certificate-content li:before{content:"";border-radius:var(--radius-pill);background:var(--cobalt);width:5px;height:5px;position:absolute;top:.67em;left:0}.certificate-actions{align-content:start;display:grid}.certificate-actions a{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;transition:color .32s var(--ease), padding-left .5s var(--ease);border-bottom:1px solid #0b0c0f38;font-size:13px;display:flex}.certificate-actions a:hover,.certificate-actions a:focus-visible{color:var(--cobalt);padding-left:var(--space-2)}.certificate-actions svg{transition:transform .52s var(--ease);flex:none}.certificate-actions a:hover svg,.certificate-actions a:focus-visible svg{transform:translate(2px,-2px)}.reviews-slider{border-radius:var(--radius-lg);background:#fff;overflow:hidden}.reviews-track{overscroll-behavior-x:contain;scroll-behavior:smooth;scroll-snap-type:x mandatory;scrollbar-width:none;touch-action:pan-x pan-y pinch-zoom;cursor:grab;grid-auto-columns:100%;grid-auto-flow:column;align-items:stretch;display:grid;overflow:auto hidden}.reviews-track:focus-visible{outline-offset:-4px}.reviews-track::-webkit-scrollbar{display:none}.reviews-track[data-dragging=true]{scroll-behavior:auto;scroll-snap-type:none;-webkit-user-select:none;user-select:none;cursor:grabbing}.review-slide{gap:var(--space-6);height:100%;min-height:clamp(440px,42vw,620px);padding:var(--space-6) var(--space-6) var(--space-7);scroll-snap-align:start;scroll-snap-stop:always;background:#fff;border-top:1px solid #0b0c0f38;grid-template-columns:minmax(180px,.55fr) minmax(0,1.45fr);margin:0;display:grid}.review-slide-meta{align-items:flex-start;gap:var(--space-4);font-size:13px;display:flex}.review-slide-meta span{color:var(--cobalt);letter-spacing:.14em;font-size:11px}.review-slide-copy{gap:var(--space-6);flex-direction:column;min-width:0;height:100%;display:flex}.review-slide blockquote{white-space:pre-line;letter-spacing:-.04em;max-width:38ch;margin:0;font-size:clamp(2rem,4vw,5.2rem);font-weight:300;line-height:1.04}.reviews-plaque{align-items:center;gap:var(--space-5);background:var(--ink);min-height:104px;color:var(--paper);padding:var(--space-4) var(--space-5);grid-template-columns:1fr auto auto;display:grid}.reviews-plaque-title{align-items:baseline;gap:var(--space-4);display:flex}.reviews-plaque-title strong{font-size:18px;font-weight:400}.reviews-plaque-title span{color:#f4f5f78f;font-size:12px}.reviews-dots,.reviews-controls{align-items:center;gap:var(--space-2);display:flex}.review-dot,.reviews-controls button{min-width:44px;min-height:44px;color:var(--paper);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.review-dot:before{content:"";border-radius:var(--radius-pill);width:7px;height:7px;transition:width .42s var(--ease), background .32s var(--ease);background:#f4f5f752;flex:none}.review-dot[data-active=true]:before{background:var(--cobalt);width:32px}.reviews-controls button{border-radius:var(--radius-pill);transition:background .32s var(--ease), color .32s var(--ease);border:1px solid #f4f5f742}.reviews-controls .reviews-autoplay[data-playing=true]{background:var(--cobalt);color:var(--paper);border-color:#0000}.reviews-controls button:hover{background:var(--paper);color:var(--ink)}.reviews-controls button svg{transition:transform .52s var(--ease)}.reviews-controls button:first-child:hover svg{transform:translate(-3px)}.reviews-controls button:last-child:hover svg{transform:translate(3px)}@media (pointer:coarse){.review-slide{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}}.contact-section{background:var(--ink);color:var(--paper);padding:clamp(84px, 9vw, 136px) clamp(20px, 4vw, 64px) var(--space-5)}.section-label-light{color:#f2f1ed8f}.contact-top{gap:var(--space-5);grid-template-columns:minmax(150px,.55fr) minmax(0,1.95fr);display:grid}.contact-top h2{letter-spacing:-.045em;text-wrap:balance;-webkit-hyphens:none;hyphens:none;max-width:14ch;margin:0;font-size:clamp(3.1rem,8vw,9rem);font-weight:300;line-height:.88}.contact-top p:not(.section-label){max-width:52ch;margin:var(--space-5) 0 0;color:#f2f1edad;text-wrap:pretty;font-size:clamp(15px,1.2vw,18px);line-height:1.6}.contact-email{gap:var(--space-5);min-height:112px;margin-top:var(--space-6);transition:color .32s var(--ease);border-top:1px solid #f2f1ed38;border-bottom:1px solid #f2f1ed38;grid-template-columns:minmax(150px,.55fr) minmax(0,1.75fr) auto;align-items:center;display:grid;position:relative}.contact-email:before{content:"";transform-origin:bottom;background:var(--cobalt);transition:transform .5s var(--ease);position:absolute;inset:0;transform:scaleY(0)}.contact-email>*{z-index:1;position:relative}.contact-email:hover:before{transform:scaleY(1)}.contact-email span{font-size:13px}.contact-email strong{overflow-wrap:anywhere;letter-spacing:-.035em;min-width:0;font-size:clamp(1.5rem,3.8vw,4.8rem);font-weight:300;line-height:1}.contact-email svg{transition:transform .52s var(--ease)}.contact-email:hover svg{transform:translate(5px,-5px)}.contact-links{gap:var(--space-3);margin-top:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.contact-links a{color:#f2f1edb8;min-height:64px;transition:color .32s var(--ease), transform .62s var(--ease);border-bottom:1px solid #f2f1ed38;justify-content:space-between;align-items:center;display:flex}.contact-links a:hover{color:var(--paper);transform:translateY(-3px)}.contact-links svg{transition:transform .52s var(--ease)}.contact-links a:hover svg{transform:translate(3px,-3px)}.footer-line{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-7);color:#f2f1ed85;font-size:12px;display:flex}.footer-line p{margin:0}.footer-line p span{margin-left:var(--space-4)}.footer-line a{align-items:center;gap:var(--space-2);min-height:44px;transition:color .32s var(--ease);display:inline-flex}.footer-line a:hover{color:var(--paper)}@media (max-width:1023px){.site-header{grid-template-columns:1fr auto}.brand-mark,.language-switch{z-index:3;position:relative}.desktop-nav,.header-contact{display:none}.mobile-menu{display:block;position:relative}.menu-button{z-index:4;width:44px;height:44px;color:var(--header-foreground);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;list-style:none;display:inline-flex;position:relative}.menu-button::-webkit-details-marker{display:none}.mobile-menu[open] .menu-icon-open{display:none}.mobile-menu[open] .menu-icon-close{display:inline-flex}.mobile-nav{z-index:2;background:var(--ink);min-height:100dvh;color:var(--paper);padding:max(112px, calc(92px + env(safe-area-inset-top))) clamp(20px, 6vw, 52px) max(32px, env(safe-area-inset-bottom));animation:mobile-menu-in .62s var(--ease) both;flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.mobile-nav a{letter-spacing:-.035em;min-height:clamp(64px,11vh,96px);transition:color .32s var(--ease), padding-left .5s var(--ease);border-bottom:1px solid #f4f5f72e;align-items:center;font-size:clamp(2rem,6.5vw,4rem);font-weight:300;display:flex}.mobile-nav a:hover,.mobile-nav a:focus-visible{padding-left:var(--space-3);color:#f4f5f7ad}.mobile-nav a:last-child{border-radius:var(--radius-pill);background:var(--cobalt);min-height:56px;color:var(--paper);padding:0 var(--space-4);letter-spacing:0;border:0;justify-content:center;margin-top:auto;font-size:15px;font-weight:400}.mobile-nav a:last-child:hover,.mobile-nav a:last-child:focus-visible{padding-left:var(--space-4);color:var(--paper)}.section-heading-wide{grid-template-columns:.55fr 1.45fr}.section-intro{grid-column:2}.project-layout{display:block}.project-preview-shell{display:none}.project-row{opacity:1}.project-row[data-active=true],.project-row:focus-within,.project-row:hover{transform:none}.project-mobile-image{aspect-ratio:16/10;width:100%;margin-bottom:var(--space-5);border-radius:var(--radius-sm);background:var(--ink);display:block;overflow:hidden}.project-row:hover .project-mobile-image img{transform:scale(1.025)}.experience-item{grid-template-columns:52px minmax(210px,.8fr) minmax(0,1.2fr)}.current-education{grid-template-columns:.55fr 1.45fr}.current-education span{grid-column:2}.certificate-item{grid-template-columns:52px minmax(150px,.45fr) minmax(0,1.25fr)}.certificate-actions{grid-column:3}.review-slide{padding-right:var(--space-5);padding-left:var(--space-5);grid-template-columns:minmax(150px,.45fr) minmax(0,1.55fr)}.about-layout{gap:var(--space-6)}.about-portrait-frame{height:min(66svh,680px)}}@keyframes mobile-menu-in{0%{opacity:0;clip-path:inset(0 0 100%)}to{opacity:1;clip-path:inset(0)}}@media (max-width:767px){.hero{min-height:560px}.site-header{min-height:68px;padding:calc(12px + env(safe-area-inset-top)) var(--space-4) 12px}.hero-editorial{padding:max(88px, calc(76px + env(safe-area-inset-top))) var(--space-4) 0;grid-template-rows:auto minmax(0,1fr) auto auto;grid-template-columns:1fr}.hero-eyebrow{letter-spacing:.14em;grid-column:1;font-size:10px;line-height:1.55}.hero-main{min-height:0;padding:var(--space-4) 0;flex-direction:column;grid-column:1;justify-content:center;display:flex}.hero-title{align-self:flex-start;max-width:10ch;font-size:clamp(2.75rem,14.5vw,4.5rem);line-height:.86}.hero[data-locale=ru] .hero-title{font-size:clamp(2.45rem,12.8vw,4rem)}.hero-lead{max-width:50ch;margin-top:var(--space-4);padding:0;font-size:12.5px;line-height:1.45}.code-reveal{display:none}.hero-bottom{padding:var(--space-3) 0;grid-column:1}.hero-actions{gap:var(--space-2);flex-wrap:nowrap}.button{min-height:44px;padding:0 15px;font-size:12px}.section{padding:var(--space-7) var(--space-4)}.section-heading-wide{margin-bottom:var(--space-6);display:block}.section-label{margin:0 0 var(--space-4)}.section-heading h2,.about-heading h2{font-size:clamp(2.75rem,13vw,4.6rem);line-height:.92}.section-intro{margin-top:var(--space-4)}.project-row{padding:var(--space-4) 0 var(--space-6)}.project-row h3{font-size:clamp(2.6rem,13vw,4.8rem)}.project-links{gap:var(--space-3)}.section-about{display:block}.about-layout{flex-direction:column;gap:0;min-height:0;display:flex}.about-portrait-column{margin-top:var(--space-6);order:2}.about-heading{order:1}.about-portrait{position:relative;top:auto}.about-portrait-frame{aspect-ratio:4/5;height:auto}.about-body{padding-top:var(--space-6);order:3}.stack-list{margin-top:var(--space-7);display:block}.stack-list h3{margin-bottom:var(--space-4)}.stack-list li{grid-template-columns:48px 1fr}.experience-item{padding:var(--space-5) 0;display:block}.experience-number{margin-bottom:var(--space-4)}.experience-role h3{font-size:clamp(2rem,9vw,3rem)}.experience-item ul,.experience-overview{margin-top:var(--space-5)}.experience-overview .section-intro{grid-column:auto;max-width:38ch}.experience-total{max-width:320px}.current-education{padding:var(--space-5) var(--space-4);display:block}.current-education h3{margin-top:var(--space-5)}.current-education span{margin-top:var(--space-4);display:block}.certificate-list{margin-top:var(--space-5)}.certificate-item{gap:var(--space-4);padding:var(--space-5) 0;grid-template-columns:44px minmax(0,1fr);display:grid}.certificate-meta,.certificate-content,.certificate-actions{grid-column:2}.certificate-content h3{font-size:clamp(1.9rem,8.7vw,3rem)}.certificate-content ul{margin-top:var(--space-4)}.certificate-actions{margin-top:var(--space-2)}.review-slide{height:auto;min-height:420px;padding:var(--space-4) var(--space-4) var(--space-5);border-top:0;display:block}.review-slide-copy{height:auto;min-height:0;margin-top:var(--space-5)}.review-slide blockquote{font-size:clamp(1.75rem,8.3vw,3.5rem);line-height:1.08}.reviews-plaque{gap:var(--space-3);min-height:0;padding:var(--space-4);grid-template-columns:1fr auto}.reviews-plaque-title{align-items:flex-start;gap:var(--space-2);flex-direction:column}.reviews-dots{grid-area:2/1/auto/-1;justify-content:flex-start}.reviews-controls{grid-area:1/2}.section-reviews{padding-top:var(--space-6);padding-bottom:var(--space-6)}.section-reviews .section-heading-wide{margin-bottom:var(--space-4)}.contact-section{padding:var(--space-7) var(--space-4) var(--space-4)}.contact-top{display:block}.contact-top h2{font-size:clamp(3.2rem,14.7vw,5rem)}.contact-email{gap:var(--space-3);min-height:104px;margin-top:var(--space-6);padding:var(--space-4) 0;grid-template-columns:1fr auto;display:grid}.contact-email span{grid-column:1/-1}.contact-email strong{font-size:clamp(1.1rem,5vw,1.6rem)}.contact-links{grid-template-columns:1fr;gap:0}.footer-line{margin-top:var(--space-6);align-items:flex-start}.footer-line p span{margin:var(--space-2) 0 0;display:block}}@media (max-width:374px){.hero-title{font-size:2.55rem}.hero[data-locale=ru] .hero-title{font-size:2.3rem}.hero-lead{font-size:13px}.hero-actions .button{padding:0 11px;font-size:11px}}@media (max-width:374px) and (max-height:650px){.hero-editorial{padding-top:76px}.hero-title{font-size:2.1rem;line-height:.9}.hero[data-locale=ru] .hero-title{font-size:1.95rem}.hero-lead{margin-top:6px;font-size:11.5px;line-height:1.4}.hero-main{padding:10px 0}.hero-bottom{padding:0}.hero-actions .button{min-height:44px;padding:0 9px;font-size:10.5px}}@media (hover:none),(pointer:coarse){.code-reveal{display:none}}@media (min-width:700px) and (max-height:600px){.hero{height:100svh;min-height:100svh}.hero-editorial{padding-top:82px}.hero-title{font-size:clamp(3rem,7vw,5rem)}.hero[data-locale=ru] .hero-title{font-size:clamp(2.35rem,4.8vw,3rem)}.hero-lead{max-width:48ch;margin-top:var(--space-2);font-size:13px;line-height:1.45}.hero-main{padding:var(--space-3) 0}.code-reveal{height:min(150px,28vh);margin-top:18px}.hero-bottom{padding:var(--space-2) 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-delay:0s!important}html[data-reveal-ready=true] [data-reveal]{opacity:1;filter:none;clip-path:none;transform:none}html[data-reveal-ready=true] [data-reveal=portrait] .about-portrait{opacity:1;clip-path:none}html[data-reveal-ready=true] [data-reveal=portrait] .about-portrait img{transform:none}.code-reveal{cursor:default}.code-reveal-grid span[data-static=true]{opacity:0}}.intro{background:var(--ink);min-height:max(640px,100svh);color:var(--paper);align-items:center;padding:128px clamp(24px,5vw,88px) 100px;display:flex;position:relative;overflow:clip}.intro-layout{grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);align-items:center;gap:clamp(40px,6vw,100px);width:100%;max-width:1600px;margin-inline:auto;display:grid}.intro-identity{margin:0 0 36px;font-size:16px;line-height:1.6}.intro-identity span{color:#9da2b0;font-size:14px;display:block}.intro-copy{min-width:0;container-type:inline-size}.intro h1{letter-spacing:-.055em;text-wrap:balance;margin:0;font-size:clamp(1.8rem,11.5cqw,6rem);font-weight:400;line-height:1.04}.intro h1>span{white-space:nowrap;text-wrap:balance;display:block}.intro-lead{color:#b5b9c4;text-wrap:pretty;max-width:43ch;margin:28px 0 0;font-size:clamp(16px,1.2vw,19px);line-height:1.6}.intro-actions{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.intro-availability{color:#b5b9c4;align-items:center;gap:9px;margin:24px 0 0;font-size:12px;line-height:1.5;display:flex}.intro-availability>span{background:#7f98ff;border-radius:50%;flex:none;width:6px;height:6px}.intro-project{perspective:1200px;min-width:0;animation:intro-arrive .9s var(--ease) both;display:block}.intro-project-favourite{color:#becbff;align-items:center;gap:8px;margin-bottom:20px;font-size:13px;line-height:1.5;display:inline-flex}.intro-project-favourite svg{fill:currentColor}.intro-project-window{transition:transform .8s var(--ease), border-color .4s var(--ease);background:#171920;border:1px solid #343842;border-radius:14px;overflow:hidden;transform:rotateY(-8deg)rotateX(3deg);box-shadow:0 32px 80px #0000004d}.intro-project:hover .intro-project-window,.intro-project:focus-visible .intro-project-window{border-color:#647aca;transform:rotateY(0)rotateX(0)translateY(-6px)}.intro-project-toolbar{color:#c5c9d3;justify-content:space-between;align-items:center;height:42px;padding:0 16px;font-size:11px;display:flex}.intro-window-dots{gap:5px;display:flex}.intro-window-dots i{background:#777e8d;border-radius:50%;width:5px;height:5px}.intro-project-image{aspect-ratio:1.32;position:relative;overflow:hidden}.intro-project-image img{object-fit:cover;object-position:top left}.intro-project-caption{color:#b5b9c4;justify-content:space-between;gap:20px;margin-top:24px;font-size:12px;line-height:1.5;display:flex}.intro-project-caption>span:last-child{color:#969dab}.intro-scroll{color:#aeb4c1;align-items:center;gap:20px;min-height:44px;font-size:12px;display:inline-flex;position:absolute;bottom:32px;left:clamp(24px,5vw,88px)}.intro-scroll svg{transition:transform .35s var(--ease)}.intro-scroll:hover svg{transform:translateY(4px)}@keyframes intro-arrive{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:1023px){.intro{min-height:100svh;padding-top:124px}.intro-layout{grid-template-columns:1fr;max-width:700px}.intro-project{display:none}.intro-lead{max-width:46ch}}@media (max-width:767px){.intro{padding:106px 24px 80px}.intro-identity{margin-bottom:28px;font-size:15px}.intro-identity span{font-size:12px}.intro h1{line-height:1.07}.intro-lead{margin-top:22px;font-size:15px;line-height:1.55}.intro-actions{gap:10px;margin-top:26px}.intro-actions .button{min-height:48px;padding-inline:18px;font-size:13px}.intro-availability{margin-top:20px;font-size:11px}.intro-scroll{bottom:14px;left:24px}}@media (max-height:650px){.intro{min-height:100svh;padding-top:92px;padding-bottom:64px}.intro-identity{margin-bottom:18px}.intro-lead{margin-top:16px}.intro-actions{margin-top:20px}.intro-scroll{bottom:8px}}@media (max-width:767px) and (max-height:650px){.intro{padding-top:88px;padding-bottom:48px}.intro-identity{margin-bottom:16px;font-size:13px}.intro-lead{margin-top:16px;font-size:13px;line-height:1.5}.intro-actions{margin-top:18px}.intro-actions .button{min-height:44px;padding-inline:14px;font-size:12px}.intro-availability{margin-top:16px;font-size:10px}.intro-scroll{font-size:11px;bottom:2px}}@media (min-width:768px) and (max-height:500px){.intro{padding-top:100px;padding-bottom:56px}.intro-copy{grid-template-columns:1.1fr 1fr;align-items:start;gap:14px 36px;display:grid}.intro-identity{grid-column:1;margin-bottom:0}.intro h1{grid-area:2/1/5;font-size:clamp(1.5rem,4.6cqw,2.4rem)}.intro-lead{grid-area:2/2;margin:0;font-size:14px}.intro-actions{grid-area:3/2;margin:0}.intro-availability{grid-area:4/2;margin:0;font-size:11px}.intro-project{display:none}.intro-layout{grid-template-columns:1fr;max-width:1000px}}@media (prefers-reduced-motion:reduce){.intro-project{animation:none}.intro-project-window,.intro-project:hover .intro-project-window,.intro-project:focus-visible .intro-project-window{transform:none}}.section-heading-wide{grid-template-columns:minmax(0,1.4fr) minmax(240px,.65fr);align-items:end;gap:20px 60px;margin-bottom:52px}.section-heading-wide>.section-label{grid-column:1/-1}.section-label{letter-spacing:0;text-transform:none;color:#626874;margin:0;font-size:13px}.section-heading h2,.about-heading h2{letter-spacing:-.045em;font-size:clamp(2.6rem,4.2vw,5rem);font-weight:400;line-height:1.08}.section-intro{color:#535a66;font-size:16px;line-height:1.6}.about-layout{align-items:start;gap:32px clamp(40px,7vw,112px)}.about-body{padding-top:0}.about-heading .section-label{margin-bottom:24px}.about-copy p{max-width:45ch;font-size:clamp(17px,1.3vw,20px)}.about-portrait-frame{border-radius:16px;height:min(62svh,650px)}.stack-list{margin-top:48px;display:block}.stack-list h3{color:#535a66;margin:0 0 20px}.stack-list ul{flex-wrap:wrap;gap:12px 32px;display:flex}.stack-list li{border:0;min-height:0;font-size:clamp(17px,1.6vw,23px);line-height:1.6;display:block}.experience-overview{gap:20px}.experience-total{border-top:0;padding-top:0}.experience-total strong{font-size:36px;font-weight:400;line-height:1.1}.experience-role h3{font-size:clamp(24px,2.2vw,32px);font-weight:400;line-height:1.18}.experience-item{grid-template-columns:minmax(240px,.9fr) minmax(0,1.3fr);gap:40px;padding-block:36px}.experience-item li{color:#414955}.project-row{opacity:1}.project-row-heading p{letter-spacing:0;text-transform:none;color:#626874;font-size:13px}.project-row h3{font-size:clamp(32px,3.2vw,48px);font-weight:400;line-height:1.1}.project-preview-shell{border-radius:16px;height:min(62svh,650px);min-height:380px}.project-preview-media:after{display:none}.project-preview-index{background:var(--ink);border-radius:40px;padding:8px 12px}.contact-top .section-label{color:#aeb4c1}.contact-top h2{font-weight:400;line-height:1.06}.desktop-nav{gap:8px}.desktop-nav a{border-radius:30px;padding-inline:14px}.desktop-nav a:before{content:"";border-radius:inherit;opacity:0;transition:transform .4s var(--ease), opacity .3s var(--ease);background:currentColor;position:absolute;inset:4px 0;transform:scale(.8)}.desktop-nav a:hover:before,.desktop-nav a:focus-visible:before{opacity:.08;transform:scale(1)}.desktop-nav a:after{background:var(--cobalt);border-radius:3px;width:12px;height:3px;bottom:3px;left:calc(50% - 6px)}.nav-label{height:1.5em;line-height:1.5;display:grid;overflow:hidden}.nav-label>span{transition:transform .45s var(--ease);grid-area:1/1}.nav-label>span:last-child{transform:translateY(110%)}.desktop-nav a:hover .nav-label>span:first-child,.desktop-nav a:focus-visible .nav-label>span:first-child{transform:translateY(-110%)}.desktop-nav a:hover .nav-label>span:last-child,.desktop-nav a:focus-visible .nav-label>span:last-child{transform:translateY(0)}.desktop-nav a:focus-visible:after{transform:scaleX(1)}.site-header[data-theme=dark]{--header-background:#0b0c0ff5}.button:active,.header-contact:active{transform:scale(.97)}.button-solid:hover svg{transform:translateY(3px)}.cursor-accent{z-index:150;pointer-events:none;opacity:0;transition:opacity .18s;position:fixed;top:0;left:0}.cursor-accent[data-visible=true]{opacity:1}.cursor-accent>span{width:28px;height:28px;transition:transform .3s var(--ease), background-color .3s;border:1px solid #7f98ff;border-radius:50%;margin:-14px;display:block}.cursor-accent[data-interactive=true]>span{background:#7f98ff1a;transform:scale(1.6)}@media (max-width:1023px){.section-heading-wide{grid-template-columns:1.2fr .8fr;gap:20px 32px}.experience-item{grid-template-columns:.9fr 1.1fr;gap:32px}}@media (max-width:767px){.section{padding-block:64px}.section-heading-wide{margin-bottom:32px;display:block}.section-heading-wide>.section-label{margin-bottom:20px}.section-heading h2,.about-heading h2{font-size:clamp(32px,9vw,48px);line-height:1.1}.section-intro{margin-top:20px;font-size:15px}.about-portrait-column{margin-top:28px}.about-body{padding-top:28px}.about-portrait-frame{aspect-ratio:4/4.5;height:auto}.stack-list{margin-top:32px}.stack-list ul{gap:10px 22px}.experience-item{padding-block:28px;display:block}.experience-role h3{font-size:26px}.experience-item ul,.experience-overview{margin-top:24px}.experience-total strong{font-size:30px}.section-reviews{padding-block:48px}.contact-top h2{font-size:clamp(36px,10vw,56px)}}@media (hover:none),(pointer:coarse),(max-width:767px){html[data-scroll-rail-ready=true] .contact-section{padding-bottom:calc(80px + env(safe-area-inset-bottom))}}@media (pointer:coarse),(hover:none),(prefers-reduced-motion:reduce),(forced-colors:active){.cursor-accent{display:none}}@media (prefers-reduced-motion:reduce){.nav-label>span,.desktop-nav a:hover .nav-label>span:first-child,.desktop-nav a:focus-visible .nav-label>span:first-child{transform:none}.nav-label>span:last-child{display:none}}.section-learning{background:#fff}.current-education{background:var(--paper);color:var(--ink);border-radius:16px;padding:28px 32px;display:block}.current-education p{color:#626874;letter-spacing:0;text-transform:none;font-size:13px}.current-education h3{letter-spacing:-.025em;text-wrap:pretty;max-width:42ch;margin-top:12px;font-size:clamp(20px,2vw,28px);font-weight:400;line-height:1.3}.current-education span{color:#626874;margin-top:12px;font-size:14px;display:block}.learning-list{border-bottom:1px solid #d8dbe1;margin-top:36px}.learning-course{border-top:1px solid #d8dbe1}.learning-course summary{cursor:pointer;grid-template-columns:minmax(180px,.5fr) minmax(0,1.3fr) 36px;align-items:center;gap:28px;min-height:108px;padding:24px 8px;list-style:none;display:grid}.learning-course summary::-webkit-details-marker{display:none}.learning-provider{color:#404651;font-size:14px;line-height:1.6}.learning-provider>span{color:#626874;font-size:12px;display:block}.learning-title{letter-spacing:-.025em;font-size:clamp(19px,2vw,28px);font-weight:400;line-height:1.3;transition:color .22s}.learning-course summary:hover .learning-title{color:var(--cobalt)}.learning-toggle{background:var(--paper);border-radius:50%;width:36px;height:36px;position:relative}.learning-toggle:before,.learning-toggle:after{content:"";width:12px;height:1px;transition:transform .35s var(--ease);background:currentColor;position:absolute;top:17px;left:12px}.learning-toggle:after{transform:rotate(90deg)}.learning-course[open] .learning-toggle:after{transform:rotate(0)}.learning-detail{margin-left:calc(27.7778% + 10.4444px);padding:0 64px 28px 0}.learning-detail ul{color:#535a66;gap:10px;max-width:64ch;margin:0;padding-left:18px;font-size:15px;line-height:1.6;display:grid}.learning-detail li::marker{color:var(--cobalt)}.learning-links{flex-wrap:wrap;gap:12px 28px;margin-top:18px;display:flex}.learning-course[open] .learning-detail{animation:learning-open .35s var(--ease)}@keyframes learning-open{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:767px){.current-education{padding:24px}.current-education h3{margin-top:12px}.learning-course summary{grid-template-columns:1fr 36px;gap:12px;padding:24px 0}.learning-provider{grid-column:1}.learning-title{grid-column:1;font-size:21px}.learning-toggle{grid-area:1/2/3}.learning-detail{margin-left:0;padding:0 12px 24px 0}}.taskhub-release{isolation:isolate;color:#fff;background:#2f52ff;border-radius:4px;flex-direction:column;justify-content:flex-end;height:100%;min-height:400px;padding:clamp(24px,4vw,56px);display:flex;position:relative;overflow:hidden}.release-edition{font-size:14px;line-height:1.5;position:absolute;top:28px;left:clamp(24px,4vw,56px)}.release-wordmark{z-index:1;letter-spacing:-.065em;justify-content:space-between;align-items:baseline;gap:8px;font-size:clamp(40px,5.5vw,88px);line-height:1.1;display:flex;position:relative}.release-wordmark>span{transition:transform .4s var(--ease);font-size:.65em}.intro-project:hover .release-wordmark>span,.intro-project:focus-visible .release-wordmark>span{transform:translate(4px,-4px)}.release-message{z-index:1;white-space:pre-line;letter-spacing:-.025em;margin:20px 0 32px;font-size:clamp(18px,2vw,28px);line-height:1.3;position:relative}.release-footnote{border-top:1px solid #ffffff59;padding-top:18px;font-size:12px;position:relative}.release-firework{z-index:-1;width:0;height:0;position:absolute;top:31%;left:76%;transform:rotate(-12deg)}.release-firework span{opacity:.35;width:3px;height:24px;transform:rotate(var(--ray)) translateY(calc(-1 * var(--distance)));background:#fff;border-radius:2px;position:absolute}.intro-project .taskhub-release{min-height:460px}@media (prefers-reduced-motion:no-preference){.intro-project .release-firework span{animation:1.6s cubic-bezier(.16,1,.3,1) .5s backwards release-burst}.intro-project:hover .release-firework,.intro-project:focus-visible .release-firework{transform:rotate(6deg)}.release-firework{transition:transform .9s var(--ease)}}@keyframes release-burst{0%{opacity:0;transform:rotate(var(--ray)) translateY(-8px) scaleY(.2)}25%{opacity:.9}to{opacity:.35;transform:rotate(var(--ray)) translateY(calc(-1 * var(--distance)))}}.project-preview-media:has(.taskhub-release):after{display:none}.project-preview-media .taskhub-release{padding-bottom:72px}.project-release-note{color:#2442c5;align-items:center;gap:8px;margin:16px 0 0;font-size:13px;display:inline-flex}.project-release-note:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.intro-release-mobile{display:none}@media (max-width:1023px),(max-height:500px){.intro-release-mobile{color:#fff;border-block:1px solid #424a68;justify-content:space-between;align-items:center;gap:12px;max-width:340px;min-height:44px;margin-top:18px;padding-block:10px;font-size:14px;display:flex}.intro-release-mobile>span>span{color:#b8c5ff;margin-left:10px;font-size:12px}.project-mobile-image .taskhub-release{min-height:0;padding:24px;position:absolute;inset:0}.project-mobile-image .release-edition{font-size:12px;top:18px;left:24px}.project-mobile-image .release-message{margin:12px 0 0;font-size:18px}.project-mobile-image .release-footnote{display:none}.project-mobile-image .release-firework{transform:scale(.65)}}@media (min-width:768px) and (max-height:500px){.intro-release-mobile{grid-area:5/2;margin:0}}@media (prefers-reduced-motion:reduce){.release-wordmark>span{transition:none}}
@font-face{font-family:onest;src:url(../media/onest_variable-s.p.3dmychjxlj9_n.woff2)format("woff2");font-display:swap;font-weight:100 900;font-style:normal}@font-face{font-family:onest Fallback;src:local(Arial);ascent-override:91.42%;descent-override:28.75%;line-gap-override:0.0%;size-adjust:106.1%}.onest_9aa88d81-module__Ldml6a__className{font-family:onest,onest Fallback;font-style:normal}.onest_9aa88d81-module__Ldml6a__variable{--font-onest:"onest", "onest Fallback"}
