.skills-section#skills{border-top:1px solid var(--border);padding-block:60px 48px;display:block}.skills-heading{z-index:1;justify-content:space-between;align-items:flex-end;gap:40px;display:flex;position:relative}.skills-kicker{color:#aebdc5;letter-spacing:2px;margin-bottom:20px;font-size:9px}.skills-heading h2{letter-spacing:-2px;font-size:clamp(34px,4vw,52px);font-weight:450;line-height:1.18}.skills-heading h2 span{color:#a4dcef}.skills-invitation{color:#aebdc5;margin-bottom:5px;font-size:12px;line-height:1.9}.skills-stage{isolation:isolate;border-radius:8px;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);align-items:center;gap:76px;min-height:550px;margin:24px -30px 0;padding:58px 30px 64px;display:grid;position:relative;overflow:visible}.skills-stage>.stellar-field{border-radius:inherit}.skills-detail,.skills-collection{z-index:1;min-width:0;position:relative}.skills-detail{min-height:300px;padding:12px 12px 0 0}.skills-detail-marker{background:#b2eaff;width:34px;height:1px;margin-bottom:24px;display:block;box-shadow:0 0 12px #78b3c74d}.skills-detail-category{color:#b5cfdb;letter-spacing:1.5px;font-size:8px;line-height:1.8}.skills-detail h3{letter-spacing:-1px;margin-top:12px;font-size:clamp(29px,3vw,40px);font-weight:450}.skills-detail-description{color:#d0dce2;overflow-wrap:anywhere;max-width:320px;margin-top:18px;font-size:13px;line-height:1.9}.skills-detail-context{color:#9dafb9;overflow-wrap:anywhere;max-width:320px;margin-top:20px;font-size:11px;line-height:1.85}.skills-detail-content{width:100%;animation:.32s cubic-bezier(.16,1,.3,1) both skill-detail-enter}.skill-group+.skill-group{margin-top:32px}.skill-group-heading{border-bottom:1px solid #93cce324;align-items:baseline;gap:12px;padding-bottom:13px;display:flex}.skill-group-index{color:#9fbac7;font-size:9px}.skill-group-heading h3{letter-spacing:-.5px;font-size:18px;font-weight:500}.skill-group-heading p{color:#a4b6c0;margin-left:auto;font-size:10px;line-height:1.6}.skill-list{flex-wrap:wrap;gap:4px 9px;margin:10px -9px 0;padding:0;list-style:none;display:flex}.skill-button{color:#b3c3ce;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:9px;font-size:13px;transition:color .2s,border-color .2s;display:inline-flex;position:relative}.skill-button-dot{background:#829faf;border-radius:50%;width:3px;height:3px}.skill-button:before{content:"";opacity:0;pointer-events:none;background:radial-gradient(#86cdea1c,#0000 72%);border-radius:10px;transition:opacity .2s;position:absolute;inset:-4px}.skill-button[aria-pressed=true],.skill-button:hover{color:#dcf6ff}.skill-button[aria-pressed=true]{border-color:#94c8df55}.skill-button[aria-pressed=true]:before,.skill-button:hover:before{opacity:1}.skill-button[aria-pressed=true] .skill-button-dot{background:#b0e7ff;box-shadow:0 0 6px #98daf0aa}.skill-button:focus-visible{outline-offset:3px;outline:2px solid #b0e7ff}body[data-page-hidden=true] .skills-detail-content{animation-play-state:paused}@keyframes skill-detail-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translate(0,0)}}@media (max-width:1050px){.skills-stage{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:35px}.skill-group-heading p{display:none}}@media (max-width:760px){.skills-section#skills{padding-block:42px 32px}.skills-heading{display:block}.skills-heading h2{letter-spacing:-1.4px;font-size:36px}.skills-kicker{margin-bottom:16px;font-size:8px}.skills-invitation{margin-top:20px;font-size:11px}.skills-stage{flex-direction:column;align-items:stretch;gap:40px;min-height:0;margin:22px -20px 0;padding:30px 20px 45px;display:flex}.skills-detail{order:2;min-height:300px;padding:10px 0 0}.skills-detail-description,.skills-detail-context{max-width:400px}.skills-detail h3{font-size:32px}.skill-group+.skill-group{margin-top:25px}.skill-list{gap:3px 6px}.skill-button{font-size:12px}}@media (prefers-reduced-motion:reduce){.skills-detail-content{animation:none}.skill-button,.skill-button:before{transition:none}}
.stellar-field{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:clip}.stellar-depth,.stellar-nebula-depth,.stellar-trail-depth,.stellar-planet-depth,.stellar-orbit-depth{position:absolute;inset:-28px}.stellar-stars{animation:38s ease-in-out infinite alternate paused stellar-coast;position:absolute;inset:0}.stellar-depth--1 .stellar-stars{animation-duration:29s;animation-direction:alternate-reverse}.stellar-depth--2 .stellar-stars{animation-duration:24s}.stellar-star{left:var(--star-x);top:var(--star-y);width:var(--star-size);height:var(--star-size);opacity:.48;background:#c9edff;border-radius:50%;position:absolute}.stellar-depth--0 .stellar-star{opacity:.3}.stellar-depth--2 .stellar-star{opacity:.72;box-shadow:0 0 8px 1px #85ccea45}.stellar-nebula{background:radial-gradient(at 28% 70%,#4b91c322,#0000 50%),radial-gradient(at 80% 35%,#76c4e311,#0000 36%);animation:23s ease-in-out infinite alternate paused stellar-breathe;position:absolute;inset:0}.stellar-planet{border-radius:50%;width:760px;height:760px;position:absolute;top:255px;left:-200px;transform:rotate(-22deg)}.stellar-atmosphere{border-radius:inherit;opacity:.7;background:radial-gradient(circle,#0000 62%,#6ec5ef10 66%,#8ad9fc4a 68%,#79c5f01a 69%,#0000 72%);position:absolute;inset:-18px}.stellar-planet-surface{border-radius:inherit;background:radial-gradient(at 53% 0,#40779766,#102d3e66 16%,#0a0e16d9 37%,#0a0a0ad9 65%);border-top:1px solid #abddf59c;position:absolute;inset:0;box-shadow:0 -5px 26px -11px #a5e5ff8c,inset 0 6px 22px -8px #a5e5ff2e}.stellar-orbit-plane{width:950px;height:290px;position:absolute;top:304px;left:-220px;transform:rotate(-17deg)}.stellar-orbit-ring{border:1px solid #84c7e532;border-radius:50%;position:absolute;inset:0}.stellar-orbit-ring:after{content:"";border:1px solid #84c7e51b;border-radius:50%;position:absolute;inset:14px -34px}.stellar-orbit-trace{border:1px solid #0000;border-color:#b0e6ff6e #0000 #8dc9e41f;border-radius:50%;animation:16s ease-in-out infinite alternate paused stellar-ring-breathe;position:absolute;inset:-1px}.stellar-trail{opacity:0;background:linear-gradient(90deg,#0000,#a0ddf28c);border-radius:50%;width:140px;height:1px;animation:16s linear -1s infinite paused stellar-crossing;position:absolute}.stellar-trail--one{top:14%;left:18%}.stellar-trail--two{width:90px;animation-duration:23s;animation-delay:-12s;top:36%;left:55%}.space-scene[data-space-active=true] .stellar-stars,.space-scene[data-space-active=true] .stellar-nebula,.space-scene[data-space-active=true] .stellar-orbit-trace,.space-scene[data-space-active=true] .stellar-trail{animation-play-state:running}body[data-page-hidden=true] .stellar-field *,body[data-page-hidden=true] .stellar-field :before,body[data-page-hidden=true] .stellar-field :after{animation-play-state:paused!important}.hero-device-depth{pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.hero-art .stellar-field{z-index:-1;inset:-35px -25px;-webkit-mask-image:radial-gradient(#000 45%,#0000 72%);mask-image:radial-gradient(#000 45%,#0000 72%)}.hero-art .stellar-nebula{background:radial-gradient(at 30% 45%,#71bad331,#0000 53%),radial-gradient(at 74% 62%,#599abf1a,#0000 43%)}.hero-art .art-grid{display:none}@keyframes stellar-coast{0%{opacity:.75;transform:translate(-9px,12px)}to{opacity:1;transform:translate(12px,-12px)}}@keyframes stellar-breathe{0%{opacity:.6;transform:scale(.98)translate(-10px,4px)}to{opacity:1;transform:scale(1.04)translate(12px,-8px)}}@keyframes stellar-ring-breathe{0%{opacity:.5;transform:translate(-8px,3px)scale(.98)}to{opacity:1;transform:translate(12px,-4px)scale(1.02)}}@keyframes stellar-crossing{0%,72%,to{opacity:0;transform:translate(-150px,-60px)rotate(23deg)scaleX(.4)}77%{opacity:.7}85%{opacity:0;transform:translate(220px,100px)rotate(23deg)scaleX(1)}}@media (max-width:760px){.hero-art .art-caption{display:none}.stellar-planet{width:640px;height:640px;top:515px;left:-215px}.stellar-orbit-plane{width:770px;height:230px;top:610px;left:-195px}.stellar-depth--0 .stellar-star:nth-child(n+13),.stellar-depth--2 .stellar-star:nth-child(n+7),.stellar-trail--two{display:none}}@media (prefers-reduced-motion:reduce){.stellar-field *{animation:none!important}.stellar-trail{display:none}}
.space-scene{--space-scroll-distance:18px}.space-scene .space-depth{--space-depth:.5;transform:translate3d(calc(var(--space-x,0px) * var(--space-depth)), calc((var(--space-y,0px) + var(--space-scroll,0px)) * var(--space-depth)), 0)}.space-scene[data-space-active=true] .space-depth{will-change:transform}.space-scene[data-space-active=false] .space-depth{will-change:auto;animation-play-state:paused!important}@supports (animation-timeline:view()) and (view-timeline-name:--space-scene) and (animation-range:entry 0% exit 100%){.space-scene[data-space-scroll=native]{view-timeline-name:--space-scene;view-timeline-axis:block}.space-scene[data-space-scroll=native] .space-depth{animation:1s linear both paused space-view-depth;animation-timeline:--space-scene;animation-range:entry exit}.space-scene[data-space-scroll=native][data-space-active=true] .space-depth{animation-play-state:running}}@keyframes space-view-depth{0%{transform:translate3d(calc(var(--space-x,0px) * var(--space-depth)), calc((var(--space-y,0px) + var(--space-scroll-distance)) * var(--space-depth)), 0)}to{transform:translate3d(calc(var(--space-x,0px) * var(--space-depth)), calc((var(--space-y,0px) - var(--space-scroll-distance)) * var(--space-depth)), 0)}}@media (max-width:760px),(pointer:coarse){.space-scene{--space-scroll-distance:10px}}@media (prefers-reduced-motion:reduce){.space-scene .space-depth{will-change:auto;animation:none!important;transform:none!important}}
.hero-art{perspective:1200px}.hero-scroll-rig{pointer-events:none;transform-origin:50%;transform:translate3d(0, var(--hero-scroll-drop,0px), var(--hero-scroll-retreat,0px)) scale(var(--hero-scroll-scale,1));opacity:var(--hero-scroll-opacity,1);place-items:center;display:grid;position:absolute;inset:0}.hero-art[data-hero-motion-active=true] .hero-scroll-rig{will-change:transform, opacity}.hero-art-entry{position:relative}.hero-art .device{box-shadow:none;perspective:850px;background:0 0;border:0;overflow:visible}.device-frame{border-radius:inherit;transform-style:preserve-3d;transform:rotateX(var(--hero-scroll-pitch,0deg)) rotateZ(var(--hero-scroll-spin,0deg)) rotateY(calc(-8deg + var(--hero-scroll-yaw,0deg)));position:absolute;inset:0}.hero-art[data-hero-motion-active=true] .device-frame{will-change:transform}.device-screen,.device-backplate,.device-rim{border-radius:inherit;position:absolute;inset:0}.device-rim{background:linear-gradient(90deg,#263b45,#899ea7 48%,#3a515e 92%)}.device-screen,.device-backplate{backface-visibility:hidden;border:1px solid #829ca6;overflow:hidden;box-shadow:inset 0 0 0 4px #0003}.device-screen{background:linear-gradient(155deg,#263840,#111a1f 50%,#0d1317);transform:translateZ(8px)}.device-backplate{background:linear-gradient(145deg,#2c4654,#14232c 58%,#1e343e);border-color:#7897a4;transform:rotateY(180deg)translateZ(8px)}.device-edge{background:linear-gradient(90deg,#1b2d36,#8aa5af 48%,#304650);position:absolute}.device-edge-left,.device-edge-right{width:16px;top:31px;bottom:31px;transform:rotateY(90deg)}.device-edge-left{left:-8px}.device-edge-right{right:-8px}.device-edge-top,.device-edge-bottom{height:16px;left:31px;right:31px;transform:rotateX(90deg)}.device-edge-top{top:-8px}.device-edge-bottom{bottom:-8px}.device-rear-camera{background:#0b1722;border:1px solid #78939b66;border-radius:15px;width:53px;height:57px;position:absolute;top:17px;left:17px;box-shadow:2px 3px 4px #0006,inset 0 0 0 2px #3e586644}.device-rear-camera i{background:radial-gradient(circle at 40% 35%,#436b92,#050a15 55%);border:3px solid #3b505c;border-radius:50%;width:18px;height:18px;position:absolute}.device-rear-camera i:first-child{top:6px;left:6px}.device-rear-camera i:nth-child(2){bottom:6px;left:6px}.device-rear-camera i:nth-child(3){top:19px;right:5px}.device-rear-camera span{background:#b8c8b9;border-radius:50%;width:6px;height:6px;position:absolute;top:8px;right:10px}.device-rear-brand{text-align:center;letter-spacing:-.7px;color:#8db6c6;font-size:22px;font-weight:600;position:absolute;inset:45% 0 auto}.device-rear-label{bottom:30px;text-align:center;letter-spacing:1px;color:#839fae;font-size:5px;position:absolute;inset-inline:0}@media (min-width:761px) and (max-width:1280px){.hero-scroll-rig{transform-origin:100%}}@media (max-width:760px),(pointer:coarse){.hero-scroll-rig{transform-origin:50%}.hero-art .device-back{display:none}.hero-art .device-front{animation-name:float-phone;transform:translateY(9px)rotate(-12deg)}}@keyframes float-phone{0%,to{transform:translateY(9px)rotate(-12deg)}50%{transform:translateY(-4px)rotate(-10deg)}}@media (prefers-reduced-motion:reduce){.hero-scroll-rig{opacity:1;will-change:auto;transform:none}.device-frame{will-change:auto;transform:rotateY(-8deg)}}
.contact-section.contact-section{border-block:1px solid var(--border);background:radial-gradient(ellipse at 88% 75%, #78b3c714, transparent 58%), linear-gradient(180deg, var(--background), #0b1012);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(32px,4vw,64px);width:100%;max-width:none;margin-inline:0;padding:clamp(72px,7vw,112px) max(56px,50% - 600px);display:grid}.contact-section.contact-section:before{background:0 0}.contact-section.contact-section>div{min-width:0}.contact-section.contact-section h2{letter-spacing:-.055em;margin-top:24px;font-size:clamp(48px,5.8vw,80px);font-weight:400;line-height:1.08}.contact-section .contact-link{gap:clamp(18px,2.4vw,34px);min-width:0;max-width:100%;margin-block:0 8px;padding-block:8px;font-size:clamp(15px,1.4vw,19px);line-height:1.5}.contact-section .contact-link>span:first-child{overflow-wrap:anywhere;min-width:0}.contact-section .contact-arrow{background:#78b3c70a;border-color:#78b3c766;flex:0 0 62px;width:62px;height:62px;transition:transform .35s cubic-bezier(.16,1,.3,1),background-color .2s,border-color .2s}.contact-section .contact-arrow svg{width:23px;height:23px}.contact-section .contact-link:hover .contact-arrow,.contact-section .contact-link:focus-visible .contact-arrow{border-color:var(--accent);background:#78b3c71f}@media (max-width:1050px){.contact-section.contact-section{gap:28px;padding-inline:36px}.contact-section .contact-arrow{flex-basis:54px;width:54px;height:54px}}@media (max-width:760px){.contact-section.contact-section{grid-template-columns:minmax(0,1fr);gap:32px;padding:56px 20px 52px}.contact-section.contact-section h2{letter-spacing:-.05em;margin-top:20px;font-size:clamp(36px,8.2vw,56px)}.contact-section .contact-link{justify-content:space-between;gap:16px;margin:0;padding-block:4px;font-size:15px}.contact-section .contact-arrow{flex-basis:48px;width:48px;height:48px}.contact-section .contact-arrow svg{width:20px;height:20px}}@media (prefers-reduced-motion:reduce){.contact-section .contact-arrow{transition:none}.contact-section .contact-link:hover .contact-arrow{transform:none}}
.contact-cube{--contact-cube-size:56px;right:max(24px, env(safe-area-inset-right));bottom:max(24px, env(safe-area-inset-bottom));z-index:9;width:84px;height:84px;position:fixed}body:has(.consent-banner) .contact-cube{visibility:hidden;pointer-events:none}body:has(.contact-cube) .site-footer{padding-block:24px max(112px, calc(env(safe-area-inset-bottom) + 100px))}.contact-cube-trigger{color:#d6ecf3;perspective:360px;cursor:pointer;touch-action:manipulation;background:0 0;border:0;border-radius:12px;place-items:center;width:100%;height:100%;padding:0;display:grid;position:relative}.contact-cube-trigger:before{content:"";pointer-events:none;background:radial-gradient(circle,#78b3c71f,#0000 67%);border-radius:50%;position:absolute;inset:-12px}.contact-cube-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.contact-cube-rig{width:var(--contact-cube-size);height:var(--contact-cube-size);transform-style:preserve-3d;transform:rotateX(var(--contact-cube-pitch,-20deg)) rotateY(var(--contact-cube-yaw,-28deg));pointer-events:none;display:block;position:relative}.contact-cube-face{color:#edfaff;font-family:var(--font-manrope), Arial, sans-serif;letter-spacing:-.1px;backface-visibility:hidden;text-shadow:0 1px 4px #000000b3;background:linear-gradient(140deg,#c0ebfa33,#78b3c70d 38%,#78b3c71a 72%,#c0ebfa2e);border:1px solid #afe1f18a;place-items:center;font-size:10px;font-weight:600;line-height:1;transition:border-color .2s;display:grid;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #dcf5ff0d,inset 0 0 16px #78b3c712}.contact-cube-face:before{content:"";pointer-events:none;background:linear-gradient(125deg,#0000 15%,#dcf5ff17 16%,#0000 17% 58%,#dcf5ff0d 59%,#0000 72%);position:absolute;inset:0}.contact-cube-face--front{transform:translateZ(calc(var(--contact-cube-size) / 2))}.contact-cube-face--right{transform:rotateY(90deg) translateZ(calc(var(--contact-cube-size) / 2));background:linear-gradient(130deg,#78b3c721,#78b3c708)}.contact-cube-face--top{transform:rotateX(90deg) translateZ(calc(var(--contact-cube-size) / 2));background:linear-gradient(145deg,#cdeffa3d,#78b3c714)}.contact-cube-face--back{transform:rotateY(180deg) translateZ(calc(var(--contact-cube-size) / 2))}.contact-cube-face--left{transform:rotateY(-90deg) translateZ(calc(var(--contact-cube-size) / 2));background:linear-gradient(145deg,#78b3c70a,#c0ebfa24)}.contact-cube-face--bottom{transform:rotateX(-90deg) translateZ(calc(var(--contact-cube-size) / 2));background:#78b3c70d}.contact-cube-face-mark{color:var(--accent);font-size:20px;font-weight:300}.contact-cube-trigger:hover .contact-cube-face,.contact-cube-trigger:focus-visible .contact-cube-face{border-color:#b4d9e5}.contact-cube-toggle{color:#c1e2ed;pointer-events:none;background:#142730c7;border:1px solid #afe1f16b;border-radius:50%;place-items:center;width:20px;height:20px;display:grid;position:absolute;bottom:0;right:0}.contact-cube-toggle svg{width:12px;height:12px;transition:transform .2s}.contact-cube[data-open=true] .contact-cube-toggle svg{transform:rotate(45deg)}.contact-cube-panel{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f191fe0;border:1px solid #afe1f140;border-radius:12px;width:264px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 148px);padding:8px 12px 12px;position:absolute;bottom:calc(100% + 12px);right:0;overflow:auto;box-shadow:inset 0 1px #dcf5ff14,0 12px 32px #0000004d}.contact-cube-panel[hidden]{display:none}.contact-cube-panel-heading{justify-content:space-between;align-items:center;gap:12px;padding-left:8px;display:flex}.contact-cube-panel-heading p{color:var(--accent);letter-spacing:1.7px;font-size:9px;font-weight:600}.contact-cube-close{width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;padding:0;display:grid}.contact-cube-close svg{width:17px;height:17px}.contact-cube-close:hover{color:var(--foreground);background:#78b3c712}.contact-cube .contact-cube-links{gap:4px;font-size:13px;display:grid}.contact-cube-links a{min-width:0;min-height:58px;color:var(--foreground);border-radius:7px;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;transition:background-color .2s;display:flex}.contact-cube-links a>span{min-width:0}.contact-cube-links strong{font-size:13px;font-weight:500;line-height:1.4;display:block}.contact-cube-links small{color:var(--muted);overflow-wrap:anywhere;margin-top:3px;font-size:10px;line-height:1.5;display:block}.contact-cube-links svg{width:17px;height:17px;color:var(--accent)}.contact-cube-links a:hover,.contact-cube-links a:focus-visible{color:#c1e2ed;background:#78b3c712}.contact-cube-links a:focus-visible,.contact-cube-close:focus-visible{outline:1px solid var(--accent);outline-offset:0}@media (max-width:760px){.contact-cube{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom))}.contact-cube-panel{max-height:calc(100dvh - 132px)}}@media (prefers-reduced-motion:reduce){.contact-cube-rig{transform:rotateX(-20deg)rotateY(-28deg)}.contact-cube-face,.contact-cube-toggle svg,.contact-cube-links a{transition:none}}
