.fab-menu{position:fixed;bottom:2rem;right:2rem;z-index:999;display:flex;flex-direction:column-reverse;align-items:center;gap:0}.fab-toggle{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--primary,#5b6eff) 0,var(--primary-dark,#4854d9) 100%);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;box-shadow:0 4px 20px rgba(91,110,255,.4);transition:all .3s cubic-bezier(.4, 0, .2, 1);z-index:10;position:relative}.fab-toggle:hover{transform:scale(1.1);box-shadow:0 8px 30px rgba(91,110,255,.6)}.fab-toggle:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}.fab-toggle i{transition:transform .3s cubic-bezier(.4, 0, .2, 1)}.fab-menu.active .fab-toggle i{transform:rotate(45deg)}.fab-menu.active .fab-toggle{background:linear-gradient(135deg,#ef4444 0,#dc2626 100%);box-shadow:0 4px 20px rgba(239,68,68,.4)}.fab-items{display:flex;flex-direction:column;gap:.75rem;margin-bottom:.75rem;pointer-events:none}.fab-menu.active .fab-items{pointer-events:auto}.fab-item{width:50px;height:50px;border-radius:50%;background:#fff;color:var(--primary,#5b6eff);border:2px solid var(--primary,#5b6eff);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.15rem;box-shadow:0 4px 15px rgba(0,0,0,.15);opacity:0;visibility:hidden;transform:scale(0) translateY(10px);position:relative}.fab-menu.ready .fab-item{transition:all .3s cubic-bezier(.4, 0, .2, 1)}.fab-menu.active .fab-item{opacity:1!important;visibility:visible!important;transform:scale(1) translateY(0)}.fab-menu.active .fab-item:first-child{transition-delay:50ms}.fab-menu.active .fab-item:nth-child(2){transition-delay:0.1s}.fab-menu.active .fab-item:nth-child(3){transition-delay:0.15s}.fab-menu.active .fab-item:nth-child(4){transition-delay:0.2s}.fab-menu:not(.active) .fab-item:first-child{transition-delay:0.15s}.fab-menu:not(.active) .fab-item:nth-child(2){transition-delay:0.1s}.fab-menu:not(.active) .fab-item:nth-child(3){transition-delay:50ms}.fab-menu:not(.active) .fab-item:nth-child(4){transition-delay:0s}.fab-item:hover{background:var(--primary,#5b6eff);color:#fff;transform:scale(1.1) translateY(0);box-shadow:0 6px 20px rgba(91,110,255,.4)}.fab-item:focus-visible{outline:3px solid #f59e0b;outline-offset:3px}.fab-item::before{content:attr(data-tooltip);position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%);background:rgba(0,0,0,.85);color:#fff;padding:.5rem .75rem;border-radius:6px;font-size:.85rem;font-weight:500;white-space:nowrap;opacity:0;visibility:hidden;transition:all .2s ease;pointer-events:none}.fab-item::after{content:'';position:absolute;right:calc(100% + 4px);top:50%;transform:translateY(-50%);border:6px solid transparent;border-left-color:rgba(0,0,0,.85);opacity:0;visibility:hidden;transition:all .2s ease}.fab-menu.active .fab-item:hover::after,.fab-menu.active .fab-item:hover::before{opacity:1;visibility:visible}#fab-contact:hover{background:linear-gradient(135deg,#10b981 0,#059669 100%);border-color:#10b981}#fab-accessibility:hover{background:linear-gradient(135deg,#667eea 0,#764ba2 100%);border-color:#667eea}#fab-scroll-top:hover{background:linear-gradient(135deg,#f59e0b 0,#d97706 100%);border-color:#f59e0b}#fab-theme:hover{background:linear-gradient(135deg,#6366f1 0,#4f46e5 100%);border-color:#6366f1}.contact-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);backdrop-filter:blur(5px);z-index:1000;align-items:center;justify-content:center;animation:fadeIn .3s ease}.contact-modal.active{display:flex}.contact-modal-content{background:#fff;border-radius:1.5rem;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.3);animation:slideUp .3s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.contact-modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1rem;border-bottom:1px solid var(--gray-200,#e5e9ff)}.contact-modal-header h3{font-size:1.75rem;color:var(--gray-900,#1a1f2e);margin:0}.contact-modal-close{background:0 0;border:none;font-size:1.5rem;color:var(--gray-600,#4b5563);cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease}.contact-modal-close:hover{background:var(--gray-100,#f1f3ff);color:var(--gray-900,#1a1f2e)}#contact-form{padding:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;font-weight:600;color:var(--gray-800,#2a2f3d);margin-bottom:.5rem;font-size:.95rem}.form-group input,.form-group textarea{width:100%;padding:.875rem 1rem;border:2px solid var(--gray-200,#e5e9ff);border-radius:.75rem;font-size:1rem;font-family:inherit;transition:all .2s ease;background:var(--gray-50,#f8f9ff)}.form-group input:focus,.form-group textarea:focus{outline:2px solid transparent;border-color:var(--primary,#5b6eff);background:#fff;box-shadow:0 0 0 3px rgba(91,110,255,.2)}.form-group textarea{resize:vertical;min-height:120px}.contact-modal-footer{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem;border-top:1px solid var(--gray-200,#e5e9ff)}@media (max-width:768px){.fab-menu{bottom:1.5rem;right:1.5rem}.fab-toggle{width:55px;height:55px;font-size:1.25rem}.fab-item{width:45px;height:45px;font-size:1rem}.fab-items{gap:.6rem;margin-bottom:.6rem}.fab-item::after,.fab-item::before{display:none}.contact-modal-content{width:95%;margin:1rem}#contact-form{padding:1.5rem}.contact-modal-header{padding:1.5rem 1.5rem 1rem}}[data-theme=dark] .fab-item{background:#2d2d2d;color:#e0e0e0;border-color:#4a4a4a}[data-theme=dark] .contact-modal-content{background:#2d2d2d;color:#e0e0e0}[data-theme=dark] .contact-modal-header{border-color:#444}[data-theme=dark] .contact-modal-header h3{color:#e0e0e0}[data-theme=dark] .form-group label{color:#e0e0e0}[data-theme=dark] .form-group input,[data-theme=dark] .form-group textarea{background:#3d3d3d;border-color:#555;color:#e0e0e0}[data-theme=dark] .form-group input:focus,[data-theme=dark] .form-group textarea:focus{background:#4d4d4d;border-color:var(--primary,#5b6eff)}[data-theme=dark] .contact-modal-footer{border-color:#444}@media (prefers-reduced-motion:reduce){.contact-modal,.contact-modal-content,.fab-item,.fab-toggle,.fab-toggle i{transition:none!important;animation:none!important}.fab-menu.active .fab-item{transition-delay:0s!important}}