diff --git a/index.html b/index.html index 5abef83..a05dff0 100644 --- a/index.html +++ b/index.html @@ -37,7 +37,7 @@ } *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } -html { scroll-behavior: smooth; } +html { scroll-behavior: smooth; scroll-padding-top: 64px; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } @@ -53,7 +53,17 @@ a { color: var(--blue); text-decoration: none; } a:hover { text-decoration: underline; } -a:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 4px; } +a:focus-visible, button:focus-visible, [role="button"]:focus-visible { + outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 4px; +} + +.nav-brand, .nav-links a, .btn-ghost, .btn-solid, .btn-hero-primary, .btn-hero-secondary, .feature-cta, .faq-q { + transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); +} +.nav-brand:active, .nav-links a:active, .btn-ghost:active, .btn-solid:active, +.btn-hero-primary:active, .btn-hero-secondary:active, .feature-cta:active, .faq-q:active { + transform: scale(0.97); +} .skip-link { position: absolute; top: -40px; left: 1rem; @@ -82,9 +92,10 @@ .nav-brand span { color: var(--text); font-weight: 700; } .nav-links { display: flex; align-items: center; gap: .25rem; flex: 1; } .nav-links a { + display: inline-block; font-size: .875rem; font-weight: 500; color: var(--gray-700); padding: .5rem .875rem; border-radius: 6px; - transition: background .15s, color .15s; + transition: background .15s, color .15s, transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); white-space: nowrap; } .nav-links a:hover { background: var(--gray-100); color: var(--text); text-decoration: none; } @@ -93,17 +104,19 @@ flex-shrink: 0; } .btn-ghost { + display: inline-block; font-size: .875rem; font-weight: 500; color: var(--blue); padding: .5rem 1.25rem; border-radius: 8px; border: 1.5px solid var(--blue); - transition: background .15s, color .15s; + transition: background .15s, color .15s, transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .btn-ghost:hover { background: var(--blue-pale); text-decoration: none; } .btn-solid { + display: inline-block; font-size: .875rem; font-weight: 500; color: var(--white) !important; padding: .5rem 1.25rem; border-radius: 8px; background: var(--blue); - transition: background .15s, box-shadow .15s; + transition: background .15s, box-shadow .15s, transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .btn-solid:hover { background: #1557b0; box-shadow: var(--shadow-sm); text-decoration: none; } @@ -167,7 +180,7 @@ font-size: .9375rem; font-weight: 600; padding: .875rem 2rem; border-radius: var(--radius-pill); box-shadow: var(--shadow-md); - transition: transform .15s, box-shadow .15s; + transition: transform .15s cubic-bezier(0.4, 0, 0.2, 1), box-shadow .15s; } .btn-hero-primary:hover { transform: translateY(-1px); box-shadow: var(--shadow-lg); text-decoration: none; } .btn-hero-secondary { @@ -176,7 +189,7 @@ font-size: .9375rem; font-weight: 500; padding: .875rem 2rem; border-radius: var(--radius-pill); border: 1.5px solid rgba(255,255,255,.35); - transition: background .15s, border-color .15s; + transition: background .15s, border-color .15s, transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .btn-hero-secondary:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.6); text-decoration: none; } @@ -289,7 +302,7 @@ margin-top: 1.5rem; color: var(--blue) !important; font-size: .9375rem; font-weight: 600; border-bottom: 2px solid transparent; - transition: border-color .15s; + transition: border-color .15s, transform 0.15s cubic-bezier(0.4, 0, 0.2, 1); } .feature-cta:hover { border-color: var(--blue); text-decoration: none; } .feature-cta::after { content: '→'; transition: transform .15s; }