|
1 | | -/* SAFE8-FOX — CTA rows left-aligned (desktop), centered (mobile) |
2 | | - Drop-in replacement for previous right-aligned layout. |
3 | | - Place after the base styles to ensure precedence. |
4 | | -*/ |
| 1 | +/* v0.4.4 — partners planet marquee (2x size, embossed, orbit effect) */ |
| 2 | +:root{ --bg:#070709; --ink:#f5f3eb; --muted:#b9b3a3; --glass:#0c0d11; --stroke:rgba(255,255,255,.10); |
| 3 | + --gold1:#f7e3a1; --gold2:#b88a2a; --link:#f0c65a; --link-visited:#d0b36e } |
| 4 | +*{box-sizing:border-box} html{scroll-behavior:smooth} html,body{height:100%} |
| 5 | +body{margin:0; font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; color:var(--ink); |
| 6 | + background: radial-gradient(900px 500px at 10% 15%, rgba(247,227,161,.08), transparent 60%), radial-gradient(800px 420px at 80% 8%, rgba(184,138,42,.10), transparent 60%), radial-gradient(1200px 600px at 70% 70%, rgba(255,255,255,.05), transparent 60%), var(--bg); line-height:1.6 } |
| 7 | +a{color:var(--link); text-decoration:none} a:hover{text-decoration:underline} a:visited{color:var(--link-visited)} |
| 8 | +.container{width:min(1120px, 92%); margin:0 auto} |
| 9 | +.nav-container-wide{width:min(1160px, 96%)} |
5 | 10 |
|
6 | | -.hero .cta-stack{ |
7 | | - display: grid; |
8 | | - grid-auto-rows: auto; |
9 | | - row-gap: 12px; |
10 | | - /* Left align both rows by default */ |
11 | | - justify-items: start; |
12 | | - align-content: start; |
| 11 | +/* Navbar */ |
| 12 | +.nav{position:fixed; top:0; left:0; right:0; z-index:100; border-bottom:1px solid var(--stroke); backdrop-filter:saturate(150%) blur(8px); background:rgba(7,7,9,.70); box-shadow:0 6px 18px rgba(0,0,0,.35)} |
| 13 | +.nav-inner{display:flex; align-items:center; gap:24px; padding:12px 0} |
| 14 | +.brand{display:flex; align-items:center; gap:10px; font-weight:900; margin-right:36px} |
| 15 | +.logo-mark{display:inline-grid; place-items:center; width:34px; height:34px; border-radius:10px; background:linear-gradient(135deg, var(--gold1), var(--gold2)); color:#0d1116; font-weight:900} |
| 16 | +.logo-text{font-weight:900} |
| 17 | +.nav-links{display:flex; gap:22px; margin-left:auto} |
| 18 | +.nav-links a{color:var(--muted); font-weight:600} |
| 19 | +.nav-links a:hover{color:var(--ink)} .nav-links a[aria-current="page"]{color:var(--ink)} |
| 20 | +.nav-actions{display:flex; gap:8px; margin-left:8px} |
| 21 | +.icon-btn{border:1px solid var(--stroke); background:transparent; color:var(--ink); padding:8px 10px; border-radius:10px; cursor:pointer} |
| 22 | +.burger{display:none; margin-left:8px; background:transparent; border:1px solid var(--stroke); color:var(--ink); border-radius:10px; padding:8px 10px; cursor:pointer} |
| 23 | +body.has-fixed-nav{padding-top:72px} |
| 24 | + |
| 25 | +/* Sections */ |
| 26 | +.hero{padding:96px 0 56px} |
| 27 | +.hero-inner{display:grid; grid-template-columns: 1.2fr .8fr; gap:32px; align-items:center} |
| 28 | +.hero-copy h1{font-size: clamp(36px, 5.8vw, 66px); line-height:1.06; margin:0 0 10px; font-weight:900; letter-spacing:-.02em} |
| 29 | +.grad{background:linear-gradient(90deg, var(--gold1) 0%, var(--gold2) 38%, #fff 70%); -webkit-background-clip:text; background-clip:text; color:transparent} |
| 30 | +.sub{color:var(--muted); margin:0} |
| 31 | +.cta-row{display:flex; gap:12px; margin-top:16px} |
| 32 | +.cta{display:inline-flex; align-items:center; gap:10px; text-decoration:none; font-weight:800; padding:12px 16px; border-radius:16px; border:1px solid var(--stroke); background:linear-gradient(180deg, #141414, #0f1115); color:var(--ink)} |
| 33 | +.cta:hover{transform:translateY(-1px)} .cta.ghost{background:transparent; color:var(--ink); border-color:var(--stroke)} |
| 34 | +.cta-bot{position:relative; overflow:hidden} .cta-bot .aura{position:absolute; inset:-2px; border-radius:18px; pointer-events:none; background:conic-gradient(from 0deg, rgba(247,227,161,.0), rgba(247,227,161,.35), rgba(184,138,42,.35), rgba(247,227,161,.0)); filter:blur(8px); animation:spin 3s linear infinite} |
| 35 | +@keyframes spin{to{transform:rotate(360deg)}} |
| 36 | +.glass{background:rgba(255,255,255,.03); border:1px solid var(--stroke); border-radius:18px; box-shadow:0 18px 48px rgba(0,0,0,.45); backdrop-filter: blur(10px)} |
| 37 | + |
| 38 | +.section{padding:68px 0} .section.alt{background:linear-gradient(180deg, rgba(255,255,255,.03), transparent)} |
| 39 | +.band{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.00))} |
| 40 | +.center{min-height:260px; padding:0} .band-inner{display:flex; align-items:center; min-height:260px} |
| 41 | + |
| 42 | +/* Screens */ |
| 43 | +.screens-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px} |
| 44 | +.screen{padding:16px} |
| 45 | +.viewport{border-radius:12px; border:1px solid var(--stroke); background:rgba(255,255,255,.02); overflow:hidden; aspect-ratio:16/10; display:grid; place-items:center} |
| 46 | +.viewport img{width:100%; height:100%; object-fit:cover; display:block} |
| 47 | +.viewport.placeholder{background:linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01)), radial-gradient(600px 300px at 80% 10%, rgba(247,227,161,.10), transparent 60%), rgba(0,0,0,.15)} |
| 48 | + |
| 49 | +/* Features & cards */ |
| 50 | +.features-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px} |
| 51 | +.feature{padding:16px} |
| 52 | +.cards{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px} |
| 53 | +.card{padding:18px} |
| 54 | +.card .price{font-size:22px; font-weight:900} |
| 55 | + |
| 56 | +/* Partners — planet marquee */ |
| 57 | +.logos.marquee{position:relative; overflow:hidden; perspective:1200px; |
| 58 | + background: radial-gradient(650px 120px at 50% 120%, rgba(88,140,200,.08), rgba(0,0,0,0) 70%) } |
| 59 | +.logos.marquee::before{ /* faint "earth" rim */ |
| 60 | + content:""; position:absolute; left:50%; top:50%; width:1200px; height:120px; transform:translate(-50%,-50%) rotateX(65deg); |
| 61 | + border-radius:50%; box-shadow:0 0 120px rgba(86,160,230,.18) inset; pointer-events:none; filter:blur(1px); |
| 62 | +} |
| 63 | +.logos.marquee .marquee-track{display:flex; gap:20px; align-items:center; width:max-content; animation:marquee-left 34s linear infinite; transform-style:preserve-3d} |
| 64 | +/* Reverse direction via .rtl */ |
| 65 | +.logos.marquee.rtl .marquee-track{animation-name:marquee-right} |
| 66 | + |
| 67 | +.logo{flex:0 0 auto; display:grid; place-items:center; padding:18px; height:140px; min-width:240px; |
| 68 | + border-radius:22px; border:1px solid var(--stroke); |
| 69 | + background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); |
| 70 | + box-shadow: |
| 71 | + 0 18px 48px rgba(0,0,0,.35), |
| 72 | + inset 0 1px 0 rgba(255,255,255,.10), |
| 73 | + inset 0 -8px 16px rgba(0,0,0,.25); /* embossed */ |
| 74 | + backdrop-filter: blur(8px); |
| 75 | + transform:rotateX(12deg) rotateY(10deg); |
| 76 | + animation:orbit 6s ease-in-out infinite alternate; |
13 | 77 | } |
| 78 | +.logo img{max-width:240px; max-height:112px; opacity:.97; filter:grayscale(100%) contrast(110%)} |
| 79 | +@keyframes marquee-left{ from{ transform:translateX(0) } to{ transform:translateX(-33.3333%) } } |
| 80 | +@keyframes marquee-right{ from{ transform:translateX(-33.3333%) } to{ transform:translateX(0) } } |
| 81 | +@keyframes orbit{ |
| 82 | + 0% { transform:rotateX(12deg) rotateY(10deg) translateY(0) translateZ(0) scale(1.00); box-shadow:0 18px 48px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.10), inset 0 -8px 16px rgba(0,0,0,.25) } |
| 83 | + 50% { transform:rotateX(16deg) rotateY(0deg) translateY(-6px) translateZ(26px) scale(1.04); box-shadow:0 22px 64px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.12), inset 0 -10px 18px rgba(0,0,0,.28) } |
| 84 | + 100%{ transform:rotateX(12deg) rotateY(-10deg) translateY(0) translateZ(0) scale(1.00); box-shadow:0 18px 48px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.10), inset 0 -8px 16px rgba(0,0,0,.25) } |
| 85 | +} |
| 86 | +.logos.marquee:hover .marquee-track{ animation-play-state:paused } |
| 87 | + |
| 88 | +/* How & Security */ |
| 89 | +.how-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px} |
| 90 | +.how{padding:18px; position:relative} |
| 91 | +.step{position:absolute; top:12px; right:14px; font-weight:900; opacity:.4} |
| 92 | +.security-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px} |
| 93 | +.sec{padding:18px} |
| 94 | +.sec h3{margin:0 0 8px} |
| 95 | +.sec ul{margin:0; padding-left:18px} |
| 96 | + |
| 97 | +/* Articles & Videos */ |
| 98 | +.articles{display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:16px} |
| 99 | +.post{padding:16px 18px 16px 22px} |
| 100 | +.videos-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px} |
| 101 | +.video-card{padding:12px} |
| 102 | +.video-card .thumb{position:relative; border-radius:12px; overflow:hidden; border:1px solid var(--stroke); cursor:pointer} |
| 103 | +.video-card .thumb img{display:block; width:100%; height:auto} |
| 104 | +.video-card .thumb .play{position:absolute; bottom:10px; right:10px; border:1px solid var(--stroke); background:rgba(0,0,0,.45); color:#fff; border-radius:10px; padding:6px 10px; cursor:pointer} |
| 105 | + |
| 106 | +/* Modal */ |
| 107 | +.modal[hidden]{display:none} |
| 108 | +.modal{position:fixed; inset:0; z-index:200; display:grid; place-items:center} |
| 109 | +.modal-backdrop{position:absolute; inset:0; background:rgba(0,0,0,.6)} |
| 110 | +.modal-dialog{position:relative; width:min(920px, 92%); padding:0} |
| 111 | +.modal-body{padding:10px} |
| 112 | +.modal-close{position:absolute; top:8px; right:8px; border:1px solid var(--stroke); background:rgba(0,0,0,.35); color:var(--ink); border-radius:10px; padding:6px 10px; cursor:pointer; z-index:5} |
| 113 | +.modal video{width:100%; height:auto; display:block; border-radius:12px; background:#000} |
| 114 | + |
| 115 | +/* Footer */ |
| 116 | +.footer{padding:36px 0; border-top:1px solid var(--stroke); color:var(--muted)} |
| 117 | + |
| 118 | +/* Reveal */ |
| 119 | +.reveal{opacity:0; transform:translateY(14px); will-change:opacity, transform} |
| 120 | +.reveal.in{opacity:1; transform:none; transition:opacity .6s ease, transform .6s ease} |
| 121 | + |
| 122 | +/* Mobile */ |
| 123 | +@media (max-width:900px){ |
| 124 | + .hero-inner{grid-template-columns:1fr; gap:18px} .hero{padding-top:64px} |
| 125 | + .nav-inner{flex-wrap:wrap} .nav-links{display:none; flex-direction:column; width:100%; order:3; padding:8px 0} |
| 126 | + .nav-actions{margin-left:auto} .burger{display:inline-block} .nav-links.open{display:flex} |
| 127 | + .logo{height:120px; min-width:200px} |
| 128 | + .logo img{max-height:96px; max-width:200px} |
| 129 | +} |
| 130 | + |
| 131 | +/* Light theme tweaks */ |
| 132 | +:root.light{--bg:#faf8f2; --ink:#14120e; --muted:#5a5346; --glass:#ffffff; --stroke:rgba(0,0,0,.10); --link:#916c16; --link-visited:#6d5524; background:none} |
| 133 | +:root.light body{background:var(--bg)} |
| 134 | +:root.light .nav{background:rgba(255,255,255,.90); border-bottom-color:var(--stroke); box-shadow:0 6px 18px rgba(0,0,0,.08)} |
| 135 | +:root.light .nav-links a{color:var(--muted)} :root.light .nav-links a:hover, :root.light .nav-links a[aria-current="page"]{color:var(--ink)} |
| 136 | +:root.light .icon-btn{color:var(--ink); border-color:var(--stroke)} |
| 137 | +:root.light .cta{background:linear-gradient(180deg, #ffffff, #f2efe9); color:#14120e; border-color:var(--stroke)} |
| 138 | +:root.light .cta.ghost{background:transparent; color:#14120e; border-color:var(--stroke)} |
| 139 | +:root.light .glass{background:rgba(255,255,255,.75); box-shadow:0 8px 24px rgba(0,0,0,.10)} |
| 140 | +:root.light .grad{background:linear-gradient(90deg, #14120e 0%, #14120e 40%, #b88a2a 80%); -webkit-background-clip:text; background-clip:text; color:transparent} |
14 | 141 |
|
15 | | -/* Each row of CTAs */ |
16 | | -.hero .cta-row{ |
| 142 | + |
| 143 | +/* Pricing CTA buttons */ |
| 144 | +.card .features.small{margin:8px 0 12px; padding-left:18px; color:var(--muted); font-size:14px} |
| 145 | +.card .features.small li{margin:2px 0} |
| 146 | +.card .actions{margin-top:10px; display:flex; gap:8px; flex-wrap:wrap} |
| 147 | +.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 14px; border-radius:12px; border:1px solid var(--stroke); text-decoration:none; font-weight:800; cursor:pointer} |
| 148 | +.btn.primary{background:linear-gradient(180deg, #141414, #0f1115); color:var(--ink)} |
| 149 | +.btn.accent{background:linear-gradient(180deg, var(--gold1), var(--gold2)); color:#0d1116; border-color:transparent} |
| 150 | +.btn.ghost{background:transparent; color:var(--ink)} |
| 151 | +.btn:hover{transform:translateY(-1px)} |
| 152 | + |
| 153 | + |
| 154 | +/* Sticky paywall banner */ |
| 155 | +.banner{position:sticky; top:72px; z-index:90; background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02)); border-bottom:1px solid var(--stroke); border-top:1px solid var(--stroke); box-shadow:0 14px 28px rgba(0,0,0,.22)} |
| 156 | +.banner-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:10px 0} |
| 157 | +.banner-text{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap} |
| 158 | +.banner-text .muted{color:var(--muted); font-size:14px} |
| 159 | +.banner-actions{display:flex; align-items:center; gap:8px; flex-wrap:wrap} |
| 160 | +.banner .icon-btn.banner-close{border-color:var(--stroke)} |
| 161 | +@media (max-width:900px){ .banner{top:64px} } |
| 162 | + |
| 163 | +/* Tip under hero CTA */ |
| 164 | +.hero-tip{margin-top:8px; font-size:13px; color:var(--muted)} |
| 165 | +.hero-tip.text-center{text-align:center} |
| 166 | + |
| 167 | +/* Secondary CTA row for PDF buttons */ |
| 168 | +.cta-row--secondary { |
| 169 | + margin-top: 10px; |
| 170 | + gap: 8px; |
17 | 171 | display: flex; |
18 | 172 | flex-wrap: wrap; |
19 | | - gap: 12px; |
20 | | - justify-content: flex-start; /* left align buttons within the row */ |
21 | | - align-items: center; |
| 173 | + justify-content: center; |
22 | 174 | } |
| 175 | +.cta-row--secondary .cta { min-width: 180px; } |
23 | 176 |
|
24 | | -/* Ensure buttons don't stretch unexpectedly */ |
25 | | -.hero .cta-row .btn{ |
26 | | - white-space: nowrap; |
27 | | - flex: 0 0 auto; |
| 177 | +/* Small (i) tooltip icon */ |
| 178 | +.i-tip { |
| 179 | + display: inline-flex; |
| 180 | + align-items: center; |
| 181 | + justify-content: center; |
| 182 | + width: 18px; height: 18px; |
| 183 | + border-radius: 50%; |
| 184 | + border: 1px solid rgba(229,201,122,.6); |
| 185 | + color: rgba(229,201,122,.95); |
| 186 | + font-size: 12px; |
| 187 | + line-height: 1; |
| 188 | + cursor: help; |
| 189 | + margin-top: 8px; |
| 190 | + margin-left: 8px; |
| 191 | + user-select: none; |
| 192 | +} |
| 193 | +.i-tip:hover { box-shadow: 0 0 0 2px rgba(229,201,122,.18); } |
28 | 194 | } |
| 195 | +} |
| 196 | + |
29 | 197 |
|
30 | | -/* Keep tooltip (i) unaffected; only layout adjustments here */ |
| 198 | +/* === CTA two-row alignment: share the same right edge === */ |
| 199 | +.hero .cta-stack{ |
| 200 | + display: grid; |
| 201 | + justify-items: end; /* both rows align to the same right edge */ |
| 202 | +} |
| 203 | +.hero .cta-stack .cta-row{ |
| 204 | + display: flex; |
| 205 | + flex-wrap: wrap; |
| 206 | + gap: 12px; |
| 207 | + margin-top: 16px; /* keep your vertical rhythm */ |
| 208 | +} |
| 209 | +.hero .cta-stack .cta-row .cta{ margin: 0; } /* avoid stray margins */ |
| 210 | +.hero .cta-stack .cta-row--secondary{ justify-content: flex-end; } |
31 | 211 |
|
32 | | -/* Mobile: center both rows for balance */ |
33 | | -@media (max-width: 640px){ |
34 | | - .hero .cta-stack{ |
35 | | - justify-items: center; |
36 | | - } |
37 | | - .hero .cta-row{ |
38 | | - justify-content: center; |
39 | | - } |
| 212 | +/* Mobile: center both rows */ |
| 213 | +@media (max-width: 720px){ |
| 214 | + .hero .cta-stack{ justify-items: center; } |
| 215 | + .hero .cta-stack .cta-row{ justify-content: center; } |
40 | 216 | } |
0 commit comments