diff --git a/assets/hero_mockup.png b/assets/hero_mockup.png new file mode 100644 index 0000000..fa122a5 Binary files /dev/null and b/assets/hero_mockup.png differ diff --git a/css/styles.css b/css/styles.css index 08caccc..b669886 100644 --- a/css/styles.css +++ b/css/styles.css @@ -199,12 +199,14 @@ a:hover { position: relative; padding-block: clamp(3rem, 8vw, 6rem); overflow: hidden; + isolation: isolate; } .hero::before { content: ""; position: absolute; inset: 0; + z-index: 0; background: radial-gradient( ellipse 80% 60% at 50% -20%, @@ -219,20 +221,55 @@ a:hover { pointer-events: none; } -.hero__watermark { - position: absolute; - right: 12%; - top: 50%; - transform: translateY(-50%); - width: min(18rem, 40vw); - height: auto; - opacity: 0.06; - pointer-events: none; +.hero__inner { + position: relative; + z-index: 1; + display: flex; + flex-wrap: nowrap; + align-items: center; + justify-content: space-between; + gap: clamp(1rem, 2vw, 1.5rem); } .hero__content { position: relative; - max-width: 42rem; + flex: 0 1 24rem; + min-width: 0; + max-width: 28rem; +} + +.hero__visual { + position: relative; + z-index: 1; + flex: 0 1 46rem; + min-width: 0; + width: 100%; + max-width: 46rem; + height: auto; +} + +@media (max-width: 64rem) { + .hero__inner { + flex-wrap: wrap; + width: min(100% - 2rem, var(--max-width)); + } + + .hero__content { + flex: 1 1 100%; + max-width: none; + } + + .hero__highlights { + display: flex; + flex-wrap: wrap; + gap: 0.5rem 0.75rem; + } + + .hero__visual { + flex: 1 1 100%; + max-width: 30rem; + margin-inline: auto; + } } .hero__badge { @@ -250,28 +287,28 @@ a:hover { } .hero h1 { - margin: 0 0 1.25rem; - font-size: clamp(2rem, 5vw, 3rem); + margin: 0 0 1rem; + font-size: clamp(1.75rem, 4vw, 2.35rem); font-weight: 700; line-height: 1.15; letter-spacing: -0.03em; } .hero__highlights { - display: flex; - flex-wrap: wrap; - gap: 0.5rem 0.75rem; + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.5rem; margin: 0; padding: 0; list-style: none; } .hero__highlights li { - padding: 0.375rem 0.75rem; + padding: 0.3rem 0.6rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); - font-size: 0.875rem; + font-size: 0.8125rem; font-weight: 500; color: var(--text); } @@ -285,18 +322,12 @@ a:hover { } .hero__sub { - margin: 2rem 0 2rem; - font-size: clamp(1rem, 2vw, 1.125rem); + margin: 1.25rem 0 1.25rem; + font-size: 0.9375rem; color: var(--muted); - line-height: 1.7; + line-height: 1.6; } -.hero__actions-row { - display: flex; - flex-wrap: wrap; - align-items: flex-end; - gap: 1rem 1.25rem; -} .link-group { display: flex; diff --git a/index.html b/index.html index 6ab6859..15e9368 100644 --- a/index.html +++ b/index.html @@ -49,72 +49,25 @@
-
- +

Free & open source

-

Self-hosted crypto shop

-
    -
  • Non-custodial
  • -
  • No JS
  • -
  • No accounts
  • -
  • Clearnet & Tor onion
  • -
+

Privacy-first, self-hosted crypto commerce

Complete, privacy-focused crypto e-commerce solution. Built with a mission to support the crypto economy.

-
- - - See features -
+ See features
+ NullCart storefront on desktop and mobile