.contact-section{background:var(--color-bg-secondary);position:relative;overflow:hidden}[data-theme=dark] .contact-section{background:rgba(17,24,39,.95)}.contact-section::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 30% 20%,rgba(91,181,91,.03) 0,transparent 50%),radial-gradient(circle at 70% 80%,rgba(61,96,143,.03) 0,transparent 50%),radial-gradient(circle at 50% 50%,rgba(43,226,86,.02) 0,transparent 60%);animation:subtle-shift 25s ease-in-out infinite;pointer-events:none}[data-theme=dark] .contact-section::before{background:radial-gradient(circle at 30% 20%,rgba(43,226,86,.05) 0,transparent 50%),radial-gradient(circle at 70% 80%,rgba(59,130,246,.05) 0,transparent 50%),radial-gradient(circle at 50% 50%,rgba(141,172,225,.04) 0,transparent 60%)}@keyframes subtle-shift{0%,100%{transform:translate(0,0) scale(1)}33%{transform:translate(-10px,10px) scale(1.02)}66%{transform:translate(10px,-10px) scale(.98)}}.contact-title{color:var(--color-text-primary);position:relative}.contact-subtitle{color:var(--color-text-secondary)}.contact-card{background:var(--color-bg-primary);border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.05);position:relative;overflow:hidden;border:2px solid transparent;background-clip:padding-box;transition:all .3s ease}[data-theme=dark] .contact-card{background:var(--color-bg-card);box-shadow:0 4px 12px rgba(0,0,0,.2)}.contact-card::before{content:'';position:absolute;inset:0;border-radius:12px;padding:2px;background:linear-gradient(135deg,var(--color-primary-green) 0,var(--color-primary-blue) 100%);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none}.contact-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px rgba(0,0,0,.1)}[data-theme=dark] .contact-card:hover{box-shadow:0 12px 24px rgba(0,0,0,.3)}.contact-card::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent 0,var(--color-primary-green) 25%,var(--color-primary-blue) 50%,var(--color-primary-green) 75%,transparent 100%);animation:slide-line 8s linear infinite}@keyframes slide-line{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}.contact-label{color:var(--color-text-primary);font-weight:600}.contact-input,.contact-textarea{background:var(--color-bg-primary);border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;padding:.75rem 1rem;transition:all .3s ease}[data-theme=dark] .contact-input,[data-theme=dark] .contact-textarea{background:rgba(31,41,55,.5);border-color:rgba(75,85,99,.3)}.contact-input:focus,.contact-textarea:focus{outline:0;border-color:var(--color-primary-green);box-shadow:0 0 0 3px rgba(91,181,91,.1)}[data-theme=dark] .contact-input:focus,[data-theme=dark] .contact-textarea:focus{border-color:var(--color-primary-green);box-shadow:0 0 0 3px rgba(43,226,86,.2)}.contact-input::placeholder,.contact-textarea::placeholder{color:var(--color-text-secondary);opacity:.6}.contact-submit{background:linear-gradient(135deg,var(--color-primary-green) 0,var(--color-primary-blue) 100%);color:#fff;padding:.75rem 2rem;border-radius:8px;font-weight:600;border:none;cursor:pointer;transition:all .3s ease;position:relative;overflow:hidden}.contact-submit:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(91,181,91,.3)}[data-theme=dark] .contact-submit:hover{box-shadow:0 8px 16px rgba(43,226,86,.4)}.contact-submit::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0,rgba(255,255,255,.3) 50%,transparent 100%);transition:left .5s ease}.contact-submit:hover::before{left:100%}.alert-success{background:rgba(43,226,86,.1);border:1px solid rgba(43,226,86,.3);color:var(--color-text-primary);border-radius:8px;padding:1rem;margin-bottom:1.5rem}[data-theme=dark] .alert-success{background:rgba(43,226,86,.15);border-color:rgba(43,226,86,.4)}.alert-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--color-text-primary);border-radius:8px;padding:1rem;margin-bottom:1.5rem}[data-theme=dark] .alert-error{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4)}.connect-section{position:relative}.connect-title{color:var(--color-text-primary)}.connect-email{color:var(--color-primary-blue);font-weight:500;transition:color .2s ease}[data-theme=dark] .connect-email{color:var(--color-primary-green)}.connect-email:hover{color:var(--color-primary-green)}[data-theme=dark] .connect-email:hover{color:var(--color-primary-blue)}.connect-info{color:var(--color-text-secondary)}.email-icon-container{background:linear-gradient(135deg,var(--color-primary-green) 0,var(--color-primary-blue) 100%);position:relative;animation:pulse-glow 3s ease-in-out infinite}@keyframes pulse-glow{0%,100%{box-shadow:0 0 0 0 rgba(91,181,91,.4)}50%{box-shadow:0 0 0 8px rgba(91,181,91,0)}}.floating-element{position:absolute;border-radius:50%;background:linear-gradient(135deg,rgba(91,181,91,.1) 0,rgba(61,96,143,.1) 100%);pointer-events:none;filter:blur(60px)}[data-theme=dark] .floating-element{background:linear-gradient(135deg,rgba(43,226,86,.08) 0,rgba(59,130,246,.08) 100%)}.floating-element-1{width:400px;height:400px;top:-10%;right:-10%;animation:float-element-1 30s ease-in-out infinite}.floating-element-2{width:300px;height:300px;bottom:-5%;left:-5%;animation:float-element-2 25s ease-in-out infinite}@keyframes float-element-1{0%,100%{transform:translate(0,0) rotate(0)}50%{transform:translate(-50px,50px) rotate(180deg)}}@keyframes float-element-2{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(30px,-30px) scale(1.1)}}.field-icon{color:var(--color-text-secondary);transition:color .3s ease}.contact-input:focus~.field-icon,.contact-textarea:focus~.field-icon{color:var(--color-primary-green)}.contact-submit:disabled{opacity:.7;cursor:not-allowed}.contact-submit:disabled:hover{transform:none;box-shadow:none}@media (max-width:768px){.contact-card::before{padding:1px}.contact-section::before{animation:none}.floating-element{display:none}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation:none!important;transition:none!important}}.required-indicator{color:var(--color-primary-green)}