Skip to content

Commit b4cbb8f

Browse files
Update styles.css
1 parent afaac44 commit b4cbb8f

1 file changed

Lines changed: 205 additions & 29 deletions

File tree

styles.css

Lines changed: 205 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,216 @@
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%)}
510

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;
1377
}
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}
14141

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;
17171
display: flex;
18172
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;
22174
}
175+
.cta-row--secondary .cta { min-width: 180px; }
23176

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); }
28194
}
195+
}
196+
29197

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; }
31211

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; }
40216
}

0 commit comments

Comments
 (0)