.page_container__5YXRc{max-width:1280px;margin:0 auto;padding:3rem 1rem}.page_section__Amuph{margin-bottom:3rem}.page_section__Amuph:last-child{margin-bottom:0}.page_grid__YiGyj{display:grid;grid-gap:2rem;gap:2rem}@media (min-width:768px){.page_grid__YiGyj{grid-template-columns:1fr 1fr}}.page_heading__UJ5gw{font-size:2.25rem;font-weight:700;margin-bottom:1.5rem;color:var(--foreground)}@media (max-width:480px){.page_container__5YXRc{padding:1.5rem 1rem}.page_heading__UJ5gw{font-size:1.25rem}}.contact_form__OKD5W{display:flex;flex-direction:column}.contact_formItem__UYUOc{margin-bottom:1.5rem}.contact_formItem__UYUOc:last-child{margin-bottom:0}.contact_textareaCustom__M_rkb{min-height:120px}.contact_card__eGKiC{padding:1.5rem}.contact_section__s6lha{margin-bottom:1.5rem}.contact_section__s6lha:last-child{margin-bottom:0}.contact_innerSection__4hIDv{margin-bottom:1rem}.contact_innerSection__4hIDv:last-child{margin-bottom:0}.contact_contactRow__XTVP1{display:flex;align-items:flex-start;gap:1rem}.contact_icon__6ZIsE{height:1.25rem;width:1.25rem;margin-top:.25rem;color:var(--primary)}.contact_heading__T4Axr{font-size:1.25rem;font-weight:600;margin-bottom:1.5rem;color:var(--foreground)}.contact_subheading__jdD7i{font-weight:500;margin:0}.contact_text__z6Lqi{color:var(--muted-foreground)}.button_base__VTTbh{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--border-radius);font-size:.875rem;font-weight:500;transition:background-color .2s ease,color .2s ease;outline:none}.button_base__VTTbh:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ring),0 0 0 4px var(--ring-offset)}.button_base__VTTbh:disabled{opacity:.5;pointer-events:none}@media (max-width:480px){.button_base__VTTbh{font-size:.75rem;padding:.4rem .75rem;border-radius:calc(var(--border-radius) - 2px)}}@media (min-width:481px) and (max-width:768px){.button_base__VTTbh{font-size:.8125rem;padding:.45rem .85rem}}@media (min-width:769px){.button_base__VTTbh{font-size:.875rem;padding:.5rem 1rem}}.button_default__RCLqk{background-color:var(--primary);color:var(--primary-foreground)}.button_default__RCLqk:hover{background-color:hsla(var(--primary),.9)}.button_destructive__zIn3N{background-color:var(--destructive);color:var(--destructive-foreground)}.button_destructive__zIn3N:hover{background-color:hsla(var(--destructive),.9)}.button_outline__GLVO8{border:1px solid var(--input);background-color:transparent;color:var(--foreground)}.button_outline__GLVO8:hover{background-color:var(--accent);color:var(--accent-foreground)}.button_secondary__vL_rb{background-color:var(--secondary);color:var(--secondary-foreground)}.button_secondary__vL_rb:hover{background-color:hsla(var(--secondary),.8)}.button_ghost__duuzn{background-color:transparent;color:var(--foreground)}.button_ghost__duuzn:hover{background-color:var(--accent);color:var(--accent-foreground)}.button_link__5qt0J{background-color:transparent;color:var(--primary);text-decoration:underline;text-underline-offset:.25rem}.button_link__5qt0J:hover{text-decoration:underline}.button_sizeDefault__VROei{height:2.5rem;padding:.5rem 1rem}.button_sizeSm___Rrso{height:2.25rem;padding:0 .75rem;border-radius:var(--border-radius)}.button_sizeLg__6HgDW{height:2.75rem;padding:0 2rem;border-radius:var(--border-radius)}.button_sizeIcon__2gvsw{height:2.5rem;width:2.5rem;padding:0}@keyframes dropdown-menu_fadeIn__F6vAY{0%{opacity:0}to{opacity:1}}@keyframes dropdown-menu_fadeOut__IPDqO{0%{opacity:1}to{opacity:0}}@keyframes dropdown-menu_zoomIn__xJukR{0%{transform:scale(.95)}to{transform:scale(1)}}@keyframes dropdown-menu_zoomOut__qpfV6{0%{transform:scale(1)}to{transform:scale(.95)}}@keyframes dropdown-menu_slideInFromTop__3_UN7{0%{transform:translateY(-.5rem)}to{transform:translateY(0)}}@keyframes dropdown-menu_slideInFromBottom__5Oh_7{0%{transform:translateY(.5rem)}to{transform:translateY(0)}}@keyframes dropdown-menu_slideInFromLeft__Ix_hH{0%{transform:translateX(-.5rem)}to{transform:translateX(0)}}@keyframes dropdown-menu_slideInFromRight__cJcuL{0%{transform:translateX(.5rem)}to{transform:translateX(0)}}.dropdown-menu_content__gY0Qs{z-index:50;min-width:8rem;overflow:hidden;border:1px solid var(--border);background-color:var(--popover);padding:.25rem;color:var(--popover-foreground);box-shadow:0 4px 6px rgba(0,0,0,.1)}.dropdown-menu_content__gY0Qs[data-state=open]{animation:dropdown-menu_fadeIn__F6vAY .2s ease-out,dropdown-menu_zoomIn__xJukR .2s ease-out,dropdown-menu_slideInFromTop__3_UN7 .2s ease-out}.dropdown-menu_content__gY0Qs[data-state=closed]{animation:dropdown-menu_fadeOut__IPDqO .2s ease-out,dropdown-menu_zoomOut__qpfV6 .2s ease-out}.dropdown-menu_content__gY0Qs[data-side=bottom]{animation:dropdown-menu_slideInFromTop__3_UN7 .2s ease-out}.dropdown-menu_content__gY0Qs[data-side=top]{animation:dropdown-menu_slideInFromBottom__5Oh_7 .2s ease-out}.dropdown-menu_content__gY0Qs[data-side=left]{animation:dropdown-menu_slideInFromRight__cJcuL .2s ease-out}.dropdown-menu_content__gY0Qs[data-side=right]{animation:dropdown-menu_slideInFromLeft__Ix_hH .2s ease-out}.dropdown-menu_item__L6I8r{position:relative;display:flex;align-items:center;border-radius:.125rem;padding:.375rem .5rem;font-size:.875rem;outline:none;cursor:default;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s ease,color .2s ease}.dropdown-menu_item__L6I8r:focus{background-color:var(--accent);color:var(--accent-foreground)}.dropdown-menu_item__L6I8r[data-disabled]{pointer-events:none;opacity:.5}.dropdown-menu_itemInset__zPMc0{padding-left:2rem}.dropdown-menu_label__WLcGc{padding:.375rem .5rem;font-size:.875rem;font-weight:600}.dropdown-menu_labelInset__bEcOb{padding-left:2rem}.dropdown-menu_separator__deTN4{margin:.25rem -.25rem;height:1px;background-color:var(--border)}.dropdown-menu_shortcut__7TmrD{margin-left:auto;font-size:.75rem;letter-spacing:.1em;opacity:.6}.form_formItem__QBKDB{display:flex;flex-direction:column;gap:.5rem}.form_formLabel__wSBI_{font-size:.875rem;font-weight:500;line-height:1;cursor:default}.form_formLabel__wSBI_.form_required__P4HGI:after{content:"*";margin-left:.125rem;color:var(--destructive)}.form_formLabel__wSBI_:disabled{cursor:not-allowed;opacity:.7}.form_formMessage__DcGAm{font-size:.875rem;font-weight:500;color:var(--destructive)}.card_card__Nqjkx{border-radius:var(--border-radius);border:1px solid var(--border);background-color:var(--card);color:var(--card-foreground);box-shadow:0 1px 3px rgba(0,0,0,.1)}.card_cardHeader__Tm_1e{display:flex;flex-direction:column;gap:.375rem;padding:1.5rem}.card_cardTitle___nh7O{font-size:1.5rem;font-weight:600;line-height:1;letter-spacing:-.025em;color:var(--card-foreground)}.card_cardDescription__gXXXw{font-size:.875rem;color:var(--muted-foreground)}.card_cardContent__pLIdp{padding:0 1.5rem 1.5rem}.card_cardFooter__itl6L{display:flex;align-items:center;padding:0 1.5rem 1.5rem}.tech-stack_section__SFl1X{padding:3rem 0}.tech-stack_container__it5Rn{max-width:1280px;margin:0 auto;padding:0 1rem}.tech-stack_title__L3s5G{font-size:1.875rem;font-weight:700;text-align:center;margin-bottom:3rem;color:var(--foreground)}.tech-stack_techList__IgSuK{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.tech-stack_badge__JM1no{font-size:1.125rem;padding:.5rem 1rem;transition:background-color .2s ease}.tech-stack_badge__JM1no:hover{background-color:hsla(var(--primary),.1)}.tech-stack_badgeOutline__CVeDU{border:1px solid var(--border);color:var(--foreground);background-color:transparent}.badge_base__Hhnr5{display:inline-flex;align-items:center;border-radius:9999px;border:1px solid transparent;padding:.125rem .625rem;font-size:.75rem;font-weight:600;transition:background-color .2s ease,color .2s ease;outline:none}.badge_base__Hhnr5:focus-visible{outline:none;box-shadow:0 0 0 2px var(--ring),0 0 0 4px var(--ring-offset)}.badge_default__Zn2s4{background-color:var(--primary);color:var(--primary-foreground)}.badge_default__Zn2s4:hover{background-color:hsla(var(--primary),.8)}.badge_secondary__PTvYP{background-color:var(--secondary);color:var(
    --secondary-foreground
  )}.badge_secondary__PTvYP:hover{background-color:hsla(var(--secondary),.8)}.badge_destructive__Nc0YH{background-color:var(--destructive);color:var(
    --destructive-foreground
  )}.badge_destructive__Nc0YH:hover{background-color:hsla(var(--destructive),.8)}.badge_outline__qU_1r{background-color:transparent;border:1px solid var(--input);color:var(--foreground)}.badge_outline__qU_1r:hover{background-color:var(--accent);color:var(
    --accent-foreground
  )}