.HomeHeroPortfolio_intro__3tUSk{position:relative;z-index:2;margin:0 auto;max-width:1000px;text-align:center}.HomeHeroPortfolio_gallery__CFjnX{position:relative;display:flex;align-items:flex-start;justify-content:center;gap:0;width:100vw;margin:60px 0 0 calc(50% - 50vw);padding:12px clamp(28px,3vw,56px) 28px;overflow:visible}.HomeHeroPortfolio_project__MIKvK{position:relative;flex:0 1 clamp(220px,22vw,290px);min-width:0;transform-origin:50% 75%;transition:transform .22s ease}.HomeHeroPortfolio_project__MIKvK+.HomeHeroPortfolio_project__MIKvK{margin-left:-46px}.HomeHeroPortfolio_project1__wnlFS{z-index:1;margin-top:28px;transform:rotate(-5deg)}.HomeHeroPortfolio_project2__9LkCu{z-index:2;margin-top:12px;transform:rotate(-2.5deg)}.HomeHeroPortfolio_project3__D_KE_{z-index:5;transform:translateY(-4px) scale(1.035)}.HomeHeroPortfolio_project4__an0hS{z-index:2;margin-top:12px;transform:rotate(2.5deg)}.HomeHeroPortfolio_project5__YDaIm{z-index:1;margin-top:28px;transform:rotate(5deg)}.HomeHeroPortfolio_project__MIKvK:focus-within,.HomeHeroPortfolio_project__MIKvK:hover{z-index:20;transform:translateY(-16px) rotate(0) scale(1.08)}@media (max-width:950px){.HomeHeroPortfolio_gallery__CFjnX{justify-content:flex-start;margin-top:48px;padding:12px 24px 28px;gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin}.HomeHeroPortfolio_project__MIKvK{flex:0 0 256px;scroll-snap-align:center}.HomeHeroPortfolio_project__MIKvK+.HomeHeroPortfolio_project__MIKvK{margin-left:0}.HomeHeroPortfolio_project1__wnlFS,.HomeHeroPortfolio_project2__9LkCu,.HomeHeroPortfolio_project3__D_KE_,.HomeHeroPortfolio_project4__an0hS,.HomeHeroPortfolio_project5__YDaIm{margin-top:0;transform:none}.HomeHeroPortfolio_project__MIKvK:focus-within,.HomeHeroPortfolio_project__MIKvK:hover{transform:none}}@media (prefers-reduced-motion:reduce){.HomeHeroPortfolio_project__MIKvK{transition:none}}.HeroKnight_overlay__wPv9D{position:absolute;inset:0;z-index:10;pointer-events:none;visibility:hidden}.HeroKnight_overlay__wPv9D[data-ready=true]{visibility:visible}.HeroKnight_knight___5A_H{position:absolute;left:0;top:0;width:42px;height:38px}.HeroKnight_facing__LkHVl,.HeroKnight_figure__fM2dM{width:100%;height:100%;overflow:visible}.HeroKnight_figure__fM2dM{display:block}.HeroKnight_body__7K4M6{transform-origin:18px 34px}.HeroKnight_backLeg__11r5Y,.HeroKnight_frontLeg__P8uOB{transform-origin:18px 25px}.HeroKnight_sword__nslRR{transform-origin:20px 19px}.HeroKnight_knight___5A_H[data-motion=run] .HeroKnight_frontLeg__P8uOB{animation:HeroKnight_stride__ooSnp .22s ease-in-out infinite alternate}.HeroKnight_knight___5A_H[data-motion=run] .HeroKnight_backLeg__11r5Y{animation:HeroKnight_stride__ooSnp .22s ease-in-out infinite alternate-reverse}.HeroKnight_knight___5A_H[data-motion=run] .HeroKnight_body__7K4M6{animation:HeroKnight_jog__zI13M .22s ease-in-out infinite alternate}.HeroKnight_knight___5A_H[data-motion=jump] .HeroKnight_frontLeg__P8uOB{transform:rotate(-22deg)}.HeroKnight_knight___5A_H[data-motion=jump] .HeroKnight_backLeg__11r5Y{transform:rotate(30deg)}.HeroKnight_knight___5A_H[data-motion=land] .HeroKnight_body__7K4M6{animation:HeroKnight_crouch__ACTvg .18s ease-out both}.HeroKnight_knight___5A_H[data-motion=fight] .HeroKnight_sword__nslRR{animation:HeroKnight_slash__n2rLQ .36s ease-in-out 2}.HeroKnight_knight___5A_H[data-motion=fight] .HeroKnight_body__7K4M6{animation:HeroKnight_lunge__Fho30 .36s ease-in-out 2}.HeroKnight_monster__wvo_z{position:absolute;top:0;left:0;width:30px;height:28px}.HeroKnight_monster__wvo_z svg{width:100%;height:100%;overflow:visible}.HeroKnight_meatball__HMtGY{transform-origin:15px 25px;animation:HeroKnight_wobble__EyduW .65s ease-in-out infinite alternate}.HeroKnight_monsterArms__L6fWd{transform-origin:15px 16px;animation:HeroKnight_wave__FXmo6 .4s ease-in-out infinite alternate}.HeroKnight_crumbs__DojHx{opacity:0;transform-origin:15px 14px}.HeroKnight_monster__wvo_z[data-defeated=true] .HeroKnight_meatball__HMtGY{animation:HeroKnight_pop__IynM4 .28s ease-out both}.HeroKnight_monster__wvo_z[data-defeated=true] .HeroKnight_crumbs__DojHx{animation:HeroKnight_crumbs__DojHx .45s ease-out both}.HeroKnight_overlay__wPv9D[data-encounter=boss] .HeroKnight_monster__wvo_z{visibility:hidden}.HeroKnight_boss__UeR2v{position:absolute;top:0;left:0;display:none;width:72px;height:60px}.HeroKnight_boss__UeR2v svg{display:block;width:100%;height:100%;overflow:visible}.HeroKnight_overlay__wPv9D[data-encounter=boss] .HeroKnight_boss__UeR2v:not([data-phase=hidden]){display:block}.HeroKnight_bossBody__64L2F{transform-origin:48px 76px;animation:HeroKnight_bossBreath__6Nitx .55s ease-in-out infinite alternate}.HeroKnight_bossArms__fEN8u{transform-origin:48px 44px}.HeroKnight_bossHurtFace__vWk69,.HeroKnight_dizzyStars__goDpe,.HeroKnight_explosion__0yIEA,.HeroKnight_fire__Boi70,.HeroKnight_notes__pAs6U,.HeroKnight_victoryStars__w4e_D,.HeroKnight_whistleMouth__OAyjs{opacity:0}.HeroKnight_notes__pAs6U{transform-origin:20px 20px}.HeroKnight_boss__UeR2v[data-phase=approach]{visibility:hidden}.HeroKnight_boss__UeR2v[data-phase=whistle] .HeroKnight_bossBody__64L2F{animation:HeroKnight_bossEntrance__DY1xN .55s cubic-bezier(.2,.8,.3,1.2) both}.HeroKnight_boss__UeR2v[data-phase=whistle] .HeroKnight_notes__pAs6U{animation:HeroKnight_whistleNotes__126lh 1.1s ease-out 2}.HeroKnight_boss__UeR2v[data-phase=whistle] .HeroKnight_whistleMouth__OAyjs{opacity:1}.HeroKnight_boss__UeR2v[data-phase=whistle] .HeroKnight_bossGrin__weymo{opacity:0}.HeroKnight_boss__UeR2v[data-phase=boss-attack] .HeroKnight_bossArms__fEN8u{animation:HeroKnight_bossPunch__6Bkh_ 1.3s ease-in-out both}.HeroKnight_boss__UeR2v[data-phase=recoil] .HeroKnight_bossBody__64L2F{animation:HeroKnight_bossRecoil__nuUNo 1s ease-out both}.HeroKnight_boss__UeR2v[data-hit=true] .HeroKnight_bossBody__64L2F{animation:HeroKnight_bossHurt__1KD9M .28s ease-out both}.HeroKnight_boss__UeR2v[data-hit=true] .HeroKnight_bossMeat__VjH9h{fill:#d99572}.HeroKnight_boss__UeR2v[data-hit=true] .HeroKnight_bossEyes__DPZuJ,.HeroKnight_boss__UeR2v[data-hit=true] .HeroKnight_bossGrin__weymo{opacity:0}.HeroKnight_boss__UeR2v[data-hit=true] .HeroKnight_bossHurtFace__vWk69{opacity:1}.HeroKnight_boss__UeR2v[data-phase=burn] .HeroKnight_fire__Boi70{opacity:1;animation:HeroKnight_flame__BvmI6 .18s ease-in-out infinite alternate;transform-origin:48px 73px}.HeroKnight_boss__UeR2v[data-phase=burn] .HeroKnight_bossMeat__VjH9h{fill:#684638}.HeroKnight_boss__UeR2v[data-phase=explode] .HeroKnight_bossBody__64L2F{opacity:0;animation:none}.HeroKnight_boss__UeR2v[data-phase=explode] .HeroKnight_explosion__0yIEA{animation:HeroKnight_bossExplosion__iKtFg .9s ease-out both;transform-origin:48px 42px}.HeroKnight_boss__UeR2v[data-phase=victory-jump],.HeroKnight_boss__UeR2v[data-phase=victory]{visibility:hidden}.HeroKnight_shield__Gt_2B{transform-origin:18px 20px}.HeroKnight_knight___5A_H[data-action=whistle] .HeroKnight_body__7K4M6{animation:HeroKnight_spawnRecoil__frUWl .55s ease-out both}.HeroKnight_knight___5A_H[data-action=boss-attack] .HeroKnight_shield__Gt_2B,.HeroKnight_knight___5A_H[data-action=whistle] .HeroKnight_shield__Gt_2B{transform:translateX(13px) rotate(-18deg)}.HeroKnight_knight___5A_H[data-action=boss-attack] .HeroKnight_body__7K4M6,.HeroKnight_knight___5A_H[data-action=knight-down] .HeroKnight_body__7K4M6,.HeroKnight_knight___5A_H[data-action=knight-rise] .HeroKnight_body__7K4M6{transform:rotate(var(--knight-tilt,0deg))}.HeroKnight_knight___5A_H[data-action=knight-down] .HeroKnight_dizzyStars__goDpe{animation:HeroKnight_dizzy__TM6YU .35s ease-in-out 2 alternate}.HeroKnight_knight___5A_H[data-action=knight-attack] .HeroKnight_sword__nslRR{animation:HeroKnight_bossSwordStrike__KJUOi 1.4s ease-in-out both}.HeroKnight_impactBurst__lOW_d{position:absolute;top:0;left:0;z-index:2;width:36px;height:36px;visibility:hidden}.HeroKnight_impactBurst__lOW_d svg{width:100%;height:100%;overflow:visible}.HeroKnight_impactBurst__lOW_d:not([data-impact=none]){visibility:visible}.HeroKnight_impactBurst__lOW_d:not([data-impact=none]) svg{animation:HeroKnight_hitSpark__OcvSL .19s ease-out both;transform-origin:center}.HeroKnight_knight___5A_H[data-action=victory-jump] .HeroKnight_frontLeg__P8uOB{transform:rotate(-22deg)}.HeroKnight_knight___5A_H[data-action=victory-jump] .HeroKnight_backLeg__11r5Y{transform:rotate(30deg)}.HeroKnight_knight___5A_H[data-action=victory] .HeroKnight_sword__nslRR{transform:rotate(-52deg)}.HeroKnight_knight___5A_H[data-action=victory] .HeroKnight_body__7K4M6{animation:HeroKnight_celebrate__a48rh .75s ease-in-out 4}.HeroKnight_knight___5A_H[data-action=victory] .HeroKnight_victoryStars__w4e_D{animation:HeroKnight_victoryTwinkle__vhRxK .75s ease-in-out 4}.HeroKnight_overlay__wPv9D[data-active=false] *{animation-play-state:paused!important}.HeroKnight_pause__umX0y{position:absolute;bottom:-32px;right:0;z-index:11;display:grid;place-items:center;width:24px;height:24px;border:1px solid #17365a30;border-radius:50%;background:#ffffffb8;color:#17365a;cursor:pointer}.HeroKnight_pause__umX0y:hover{background:white}.HeroKnight_pause__umX0y:focus-visible{outline:2px solid #087eaf;outline-offset:3px}@keyframes HeroKnight_stride__ooSnp{0%{transform:rotate(-24deg)}to{transform:rotate(24deg)}}@keyframes HeroKnight_jog__zI13M{0%{transform:translateY(0)}to{transform:translateY(-1px)}}@keyframes HeroKnight_crouch__ACTvg{0%{transform:scale(1.12,.78)}to{transform:scale(1)}}@keyframes HeroKnight_slash__n2rLQ{0%,to{transform:rotate(-35deg)}48%{transform:rotate(65deg)}}@keyframes HeroKnight_lunge__Fho30{0%,to{transform:translateX(0)}48%{transform:translateX(3px) rotate(6deg)}}@keyframes HeroKnight_wobble__EyduW{0%{transform:rotate(-5deg) scale(1.04,.96)}to{transform:rotate(5deg) scale(.97,1.03)}}@keyframes HeroKnight_wave__FXmo6{0%{transform:rotate(-6deg)}to{transform:rotate(6deg)}}@keyframes HeroKnight_pop__IynM4{0%{transform:scale(1)}35%{transform:scale(1.25,.6)}to{transform:scale(0);opacity:0}}@keyframes HeroKnight_crumbs__DojHx{0%{opacity:0;transform:scale(.4)}30%{opacity:1}to{opacity:0;transform:scale(1.5) translateY(4px)}}@keyframes HeroKnight_bossBreath__6Nitx{0%{transform:scale(1.02,.98)}to{transform:scale(.98,1.02)}}@keyframes HeroKnight_bossEntrance__DY1xN{0%{transform:scale(.15)}65%{transform:scale(1.12,.9)}to{transform:scale(1)}}@keyframes HeroKnight_spawnRecoil__frUWl{0%{transform:rotate(0)}35%{transform:rotate(-22deg)}to{transform:rotate(0)}}@keyframes HeroKnight_whistleNotes__126lh{0%{opacity:0;transform:translateY(4px)}25%{opacity:1}to{opacity:0;transform:translate(-8px,-16px) rotate(-8deg)}}@keyframes HeroKnight_bossPunch__6Bkh_{0%,to{transform:rotate(0)}28%{transform:rotate(18deg)}42%,52%{transform:rotate(-25deg)}}@keyframes HeroKnight_bossSwordStrike__KJUOi{0%,to{transform:rotate(-35deg)}20%{transform:rotate(-70deg)}42%,58%{transform:rotate(65deg)}}@keyframes HeroKnight_bossHurt__1KD9M{0%{transform:rotate(0)}35%{transform:rotate(13deg) scale(.88,1.08)}to{transform:rotate(5deg)}}@keyframes HeroKnight_hitSpark__OcvSL{0%{opacity:0;transform:scale(.25) rotate(-15deg)}25%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.25) rotate(10deg)}}@keyframes HeroKnight_dizzy__TM6YU{0%{opacity:.3;transform:translateY(0)}to{opacity:1;transform:translateY(-2px)}}@keyframes HeroKnight_bossRecoil__nuUNo{0%{transform:translateX(5px) rotate(10deg) scale(1.1,.85)}to{transform:none}}@keyframes HeroKnight_flame__BvmI6{0%{transform:scale(.94,.9)}to{transform:scale(1.04,1.05)}}@keyframes HeroKnight_bossExplosion__iKtFg{0%{opacity:0;transform:scale(.2)}20%{opacity:1;transform:scale(1.1)}55%{opacity:.9}to{opacity:0;transform:scale(1.55) rotate(12deg)}}@keyframes HeroKnight_celebrate__a48rh{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes HeroKnight_victoryTwinkle__vhRxK{0%,to{opacity:.2}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.HeroKnight_overlay__wPv9D,.HeroKnight_pause__umX0y{display:none}}.HeroVideoButton_trigger__hhY_R{position:relative;isolation:isolate;animation:HeroVideoButton_video-trigger-color-pulse__Rh5_D 3.2s ease-in-out infinite}.HeroVideoButton_onDark__NKr1J{--pulse-ring:rgb(120 214 255/90%);--pulse-fill:rgb(0 179 255/24%);--pulse-glow:rgb(0 179 255/35%)}.HeroVideoButton_onLight__zkPGs{--pulse-ring:rgb(0 119 182/75%);--pulse-fill:rgb(0 179 255/16%);--pulse-glow:rgb(0 119 182/23%)}.HeroVideoButton_trigger__hhY_R:before{position:absolute;inset:-3px;border:2px solid var(--pulse-ring);border-radius:inherit;content:"";pointer-events:none;animation:HeroVideoButton_video-trigger-ring-pulse__3bBqs 3.2s ease-out infinite}.HeroVideoButton_trigger__hhY_R:focus-visible,.HeroVideoButton_trigger__hhY_R:focus-visible:before,.HeroVideoButton_trigger__hhY_R:hover,.HeroVideoButton_trigger__hhY_R:hover:before{animation:none}.HeroVideoButton_trigger__hhY_R:focus-visible:before,.HeroVideoButton_trigger__hhY_R:hover:before{opacity:0}@keyframes HeroVideoButton_video-trigger-color-pulse__Rh5_D{0%,55%,to{background-color:transparent;box-shadow:0 0 0 0 transparent}28%{background-color:var(--pulse-fill);box-shadow:0 0 20px 3px var(--pulse-glow)}}@keyframes HeroVideoButton_video-trigger-ring-pulse__3bBqs{0%{opacity:0;transform:scale(.95)}16%{opacity:.85}60%,to{opacity:0;transform:scale(1.42)}}.HeroVideoButton_backdrop__CGJt9{background-color:rgb(0 0 0/90%);animation:HeroVideoButton_hero-video-backdrop-in__AhhYn .24s ease-out both}.HeroVideoButton_backdropClosing__gD_DF{animation:HeroVideoButton_hero-video-backdrop-out__8K7qK .24s ease-in .48s both}.HeroVideoButton_panel__Abw_y{transform-origin:50% 70%;animation:HeroVideoButton_hero-video-panel-in__d7ejs .66s cubic-bezier(.2,.8,.2,1) .22s both}.HeroVideoButton_panelClosing__uxoOe{animation:HeroVideoButton_hero-video-panel-out__lZWiK .52s cubic-bezier(.55,0,.85,.35) both}@keyframes HeroVideoButton_hero-video-backdrop-in__AhhYn{0%{background-color:transparent}to{background-color:rgb(0 0 0/90%)}}@keyframes HeroVideoButton_hero-video-backdrop-out__8K7qK{0%{background-color:rgb(0 0 0/90%)}to{background-color:transparent}}@keyframes HeroVideoButton_hero-video-panel-in__d7ejs{0%{opacity:0;transform:translate3d(0,110vh,0) rotate(-90deg) scale(.88)}to{opacity:1;transform:translateZ(0) rotate(0deg) scale(1)}}@keyframes HeroVideoButton_hero-video-panel-out__lZWiK{0%{opacity:1;transform:translateZ(0) rotate(0deg) scale(1)}to{opacity:0;transform:translate3d(0,110vh,0) rotate(-90deg) scale(.88)}}@media (prefers-reduced-motion:reduce){.HeroVideoButton_trigger__hhY_R,.HeroVideoButton_trigger__hhY_R:before{animation:none}.HeroVideoButton_trigger__hhY_R:before{opacity:0}.HeroVideoButton_backdropClosing__gD_DF,.HeroVideoButton_backdrop__CGJt9,.HeroVideoButton_panelClosing__uxoOe,.HeroVideoButton_panel__Abw_y{animation-duration:1ms;animation-delay:0s}}