.btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.875rem 1.5rem;font-weight:600;text-decoration:none;border-radius:var(--radius-btn);transition:transform 0.2s ease,background-color 0.2s ease,box-shadow 0.2s ease}.btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(255,127,50,0.3)}.btn--primary{background-color:var(--color-orange-accent);color:var(--color-white)}.btn--primary:hover{background-color:var(--color-orange-hover)}.btn--secondary{background-color:transparent;color:var(--color-blue-dark);border:2px solid var(--color-blue-dark)}.btn--secondary:hover{background-color:var(--color-blue-dark);color:var(--color-white);box-shadow:0 4px 12px rgba(26,43,72,0.2)}.btn--shake{animation:shake-attention 6s infinite}.btn--shake:hover{animation:none}.fab-wrapper{position:fixed;bottom:2rem;right:2rem;display:flex;align-items:center;gap:0.75rem;z-index:1000;opacity:0;visibility:hidden;transform:translateY(10px) scale(0.9);pointer-events:none;transition:all var(--transition-speed) ease}.fab-wrapper.is-visible{opacity:1;visibility:visible;transform:translateY(0) scale(1);pointer-events:auto}.fab-link{width:56px;height:56px;background-color:var(--color-orange-accent);color:var(--color-white);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(255,127,50,0.4);transition:transform var(--transition-speed) ease}.fab-link:not(.fab-link--top){animation:pulse-attention 2.5s infinite}.fab-link:hover{transform:translateY(-4px);animation:none}.fab-link--top{width:44px;height:44px;background-color:var(--color-white);color:var(--color-blue-dark);box-shadow:var(--shadow-base);border:1px solid #E2E8F0}.badge{background-color:rgba(255,127,50,0.1);color:var(--color-orange-accent);padding:0.25rem 0.6rem;border-radius:99px;font-size:0.75rem;font-weight:600;white-space:nowrap;flex-shrink:0;transition:transform 0.2s ease}.badge--live{background-color:rgba(46,204,113,0.1);color:#2ecc71}.progress-wrapper{margin-top:1.5rem}.progress-wrapper label{display:flex;justify-content:space-between;align-items:center;font-size:0.875rem;margin-bottom:0.5rem;font-weight:500}.progress-wrapper label a{color:var(--color-blue-dark);text-decoration:underline;text-decoration-color:rgba(26,43,72,0.3);text-underline-offset:3px;overflow-wrap:anywhere;transition:color 0.3s ease,text-decoration-color 0.3s ease}.progress-wrapper label a:hover{color:var(--color-orange-accent);text-decoration-color:var(--color-orange-accent)}.progress-text{font-family:var(--font-heading);color:var(--color-orange-accent);font-weight:700;font-size:1rem;transition:color 0.3s ease}.progress-text.is-complete{color:#2ecc71}progress{appearance:none;width:100%;height:10px;border-radius:99px;border:none;background-color:#E2E8F0}progress::-webkit-progress-bar{background-color:#E2E8F0;border-radius:99px}progress::-webkit-progress-value{background-color:var(--color-orange-accent);border-radius:99px;transition:background-color 0.3s ease}progress.is-complete::-webkit-progress-value{background-color:#2ecc71}progress::-moz-progress-bar{background-color:var(--color-orange-accent);border-radius:99px;transition:background-color 0.3s ease}progress.is-complete::-moz-progress-bar{background-color:#2ecc71}.carousel-dots{display:flex;justify-content:center;gap:0.5rem;margin-top:1.5rem}.carousel-dot{width:10px;height:10px;border-radius:50%;background-color:#CBD5E1;border:none;cursor:pointer;transition:background-color 0.3s ease,transform 0.3s ease;padding:0}.carousel-dot.active{background-color:var(--color-orange-accent);transform:scale(1.3)}