diff --git a/frontend/src/pages/LandingPage.tsx b/frontend/src/pages/LandingPage.tsx index baede37..2faac51 100644 --- a/frontend/src/pages/LandingPage.tsx +++ b/frontend/src/pages/LandingPage.tsx @@ -1,3 +1,4 @@ +import { useState } from 'react' import { Link } from 'react-router-dom' import { Scissors, @@ -14,6 +15,8 @@ import { Gem, Pen, FileOutput, + Menu, + X, } from 'lucide-react' const tools = [ @@ -34,6 +37,8 @@ const steps = [ ] export default function LandingPage() { + const [mobileMenuOpen, setMobileMenuOpen] = useState(false) + return (
{/* ── CSS ─────────────────────────────────────────────── */} @@ -52,6 +57,10 @@ export default function LandingPage() { from { transform: rotate(0deg); } to { transform: rotate(360deg); } } + @keyframes slideDown { + from { opacity: 0; transform: translateY(-8px); } + to { opacity: 1; transform: translateY(0); } + } .anim-reveal { animation: reveal .8s cubic-bezier(.16,1,.3,1) both; } .anim-d1 { animation-delay: .08s; } @@ -59,6 +68,7 @@ export default function LandingPage() { .anim-d3 { animation-delay: .24s; } .anim-d4 { animation-delay: .36s; } .anim-fade { animation: fade .6s ease both; } + .anim-slide-down { animation: slideDown .2s ease both; } /* Dot grid texture */ .dot-grid { @@ -66,12 +76,15 @@ export default function LandingPage() { background-size: 24px 24px; } - /* Crystal prism */ + /* Crystal prism – scales down on mobile */ .prism { - width: 340px; - height: 340px; + width: 220px; + height: 220px; position: relative; } + @media (min-width: 768px) { + .prism { width: 340px; height: 340px; } + } .prism::before { content: ''; position: absolute; @@ -117,98 +130,138 @@ export default function LandingPage() { box-shadow: 0 16px 48px -12px rgba(0,0,0,.5), 0 0 0 1px rgba(96,165,250,.08); } - /* Step connector dash */ - .step-connector { - width: 100%; - height: 1px; - background: repeating-linear-gradient( - 90deg, - rgba(96,165,250,.2) 0px, - rgba(96,165,250,.2) 6px, - transparent 6px, - transparent 12px - ); + /* Mobile nav links */ + .mobile-nav-link { + display: block; + padding: 0.875rem 1.5rem; + font-size: 1rem; + font-weight: 500; + color: rgba(148,163,184,1); + border-bottom: 1px solid rgba(255,255,255,.04); + transition: color .15s ease, background .15s ease; + } + .mobile-nav-link:hover { + color: #fff; + background: rgba(255,255,255,.03); } `} {/* ── Ambient glow ───────────────────────────────────── */}
-
-
+
+
{/* ── Nav ────────────────────────────────────────────── */} -