Private
Public Access
1
0
Files
MineSeeker/assets/css/style.homepage.scss

592 lines
14 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// ── Reset ────────────────────────────────────────────────────────────────────
* {
outline: none;
padding: 0;
margin: 0;
box-sizing: border-box;
}
html {
// Grid lives on html so it tiles across all pages including content pages
background-color: #07090d;
background-image:
linear-gradient(rgba(35, 111, 135, 0.1) 1px, transparent 1px),
linear-gradient(90deg, rgba(35, 111, 135, 0.1) 1px, transparent 1px);
background-size: 46px 46px;
width: 100%;
height: 100%;
}
body {
background: transparent;
width: 100%;
height: 100%;
}
// ── Hero ─────────────────────────────────────────────────────────────────────
header {
position: relative;
width: 100%;
overflow: hidden;
// Minesweeper grid texture
background-color: #07090d;
background-image:
linear-gradient(rgba(35, 111, 135, 0.1) 1px, transparent 1px),
linear-gradient(90deg, rgba(35, 111, 135, 0.1) 1px, transparent 1px);
background-size: 46px 46px;
}
// Deep radial vignette grid fades toward the centre
header::before {
content: '';
position: absolute;
inset: 0;
background: radial-gradient(
ellipse 85% 75% at 50% 50%,
#07090d 10%,
transparent 75%
);
z-index: 0;
pointer-events: none;
}
// Smoke at the bottom so header bleeds into body
header::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 160px;
background: linear-gradient(to bottom, transparent, #07090d);
z-index: 1;
pointer-events: none;
}
// ── Hero section ─────────────────────────────────────────────────────────────
.hero {
position: relative;
z-index: 2;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
min-height: 100vh;
padding: 80px 40px 160px;
gap: 0;
}
// Decorative glow blobs in opposite corners
.hero::before {
content: '';
position: absolute;
top: -60px;
left: -60px;
width: 420px;
height: 420px;
border-radius: 50%;
background: radial-gradient(circle, rgba(173, 10, 5, 0.09) 0%, transparent 65%);
pointer-events: none;
z-index: 0;
}
.hero::after {
content: '';
position: absolute;
bottom: 100px;
right: -60px;
width: 380px;
height: 380px;
border-radius: 50%;
background: radial-gradient(circle, rgba(35, 111, 135, 0.1) 0%, transparent 65%);
pointer-events: none;
z-index: 0;
}
// Logo
.hero-logo {
display: block;
margin-bottom: 72px;
position: relative;
z-index: 1;
animation: appear 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.hero-logo img {
width: 400px;
max-width: 82vw;
filter:
drop-shadow(0 0 40px rgba(35, 111, 135, 0.35))
drop-shadow(0 6px 20px rgba(0, 0, 0, 0.8));
}
// Body text block
.hero-body {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
}
.hero-sub {
font: 300 17px 'Rajdhani', sans-serif;
color: rgba(149, 207, 245, 0.9);
letter-spacing: 3px;
text-transform: uppercase;
margin-bottom: 18px;
animation: rise 0.8s 0.15s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.hero-sub strong {
font-weight: 600;
color: #95cff5;
}
.hero-avatar {
width: 36px;
height: 36px;
border-radius: 50%;
border: 2px solid rgba(149, 207, 245, 0.25);
vertical-align: middle;
margin-right: 10px;
margin-bottom: 2px;
}
.hero h1 {
font: 800 58px 'Rajdhani', sans-serif;
color: #ffffff;
line-height: 1.1;
letter-spacing: 1px;
margin-bottom: 56px;
text-shadow: 0 4px 30px rgba(0, 0, 0, 0.7);
animation: rise 0.8s 0.28s cubic-bezier(0.22, 1, 0.36, 1) both;
}
// ── CTA button ───────────────────────────────────────────────────────────────
.hero-cta {
position: relative;
display: inline-block;
font: 800 28px 'Rajdhani', sans-serif;
text-transform: uppercase;
letter-spacing: 6px;
text-decoration: none;
color: #ffffff;
padding: 22px 100px 20px;
border-radius: 4px;
border: 1px solid rgba(246, 125, 82, 0.25);
background: linear-gradient(to bottom, #b30c06 0%, #d63d15 50%, #f67d52 100%);
box-shadow:
0 0 0 1px rgba(173, 10, 5, 0.2),
0 0 30px rgba(173, 10, 5, 0.35),
0 6px 24px rgba(0, 0, 0, 0.5),
inset 0 1px 0 rgba(255, 255, 255, 0.12);
transition: transform 220ms ease, box-shadow 220ms ease, letter-spacing 220ms ease;
animation: rise 0.8s 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}
// Outer glow layer (blurred duplicate, always visible)
.hero-cta::before {
content: '';
position: absolute;
inset: -4px;
border-radius: 7px;
background: linear-gradient(to bottom, #ad0a05, #f67d52);
filter: blur(18px);
opacity: 0.3;
z-index: -1;
transition: opacity 220ms ease;
}
.hero-cta:hover {
transform: translateY(-4px);
letter-spacing: 8px;
box-shadow:
0 0 0 1px rgba(246, 125, 82, 0.3),
0 0 50px rgba(173, 10, 5, 0.65),
0 10px 32px rgba(0, 0, 0, 0.45),
inset 0 1px 0 rgba(255, 255, 255, 0.15);
}
.hero-cta:hover::before {
opacity: 0.55;
}
.hero-cta:active {
transform: translateY(-1px);
}
// Version / copyright line
.hero-meta {
position: relative;
z-index: 1;
font: 400 12px 'Rajdhani', sans-serif;
color: rgba(255, 255, 255, 0.5);
letter-spacing: 0.5px;
margin-top: 58px;
animation: rise 0.8s 0.55s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.hero-meta a {
color: rgba(149, 207, 245, 0.65);
text-decoration: none;
transition: color 180ms;
}
.hero-meta a:hover {
color: #95cff5;
}
// ── Compact hero (sub-pages) ─────────────────────────────────────────────────
.hero--compact {
min-height: unset;
padding: 36px 60px 48px;
flex-direction: row;
align-items: center;
justify-content: center;
text-align: left;
gap: 52px;
&::before, &::after { display: none; }
.hero-logo {
flex-shrink: 0;
margin-bottom: 0;
img { width: 180px; }
}
.hero-body {
align-items: flex-start;
}
.hero-sub {
font-size: 14px;
letter-spacing: 2px;
margin-bottom: 10px;
}
h1 {
font-size: 26px;
margin-bottom: 24px;
letter-spacing: 0;
}
.hero-cta {
padding: 12px 52px 10px;
font-size: 18px;
letter-spacing: 4px;
}
.hero-meta {
margin-top: 20px;
}
}
// Also shrink the bottom fade on sub-pages
header:has(.hero--compact)::after {
height: 60px;
}
// ── Animations ───────────────────────────────────────────────────────────────
@keyframes appear {
from { opacity: 0; transform: scale(0.94); }
to { opacity: 1; transform: scale(1); }
}
@keyframes rise {
from { opacity: 0; transform: translateY(16px); }
to { opacity: 1; transform: translateY(0); }
}
// ── Content pages (terms, privacy, contact) ──────────────────────────────────
main div.txt {
color: rgba(255, 255, 255, 0.85);
max-width: 900px;
margin: 0 auto;
padding: 60px 40px 80px;
}
main div.txt h2 {
font: bold 28px 'Rajdhani', sans-serif;
color: #ffffff;
margin-bottom: 30px;
letter-spacing: 1px;
}
main div.txt h3 {
font: bold 17px 'Rajdhani', sans-serif;
color: rgba(149, 207, 245, 0.9);
margin: 28px 0 10px;
letter-spacing: 0.5px;
}
main div.txt p,
main div.txt li {
font: 400 15px 'Rajdhani', sans-serif;
color: rgba(255, 255, 255, 0.72);
line-height: 1.75;
}
main div.txt a {
color: #95cff5;
text-decoration: none;
transition: color 180ms;
&:hover { color: #c5e8ff; }
}
// ── Technologies strip ────────────────────────────────────────────────────────
main {
background: #07090d;
}
.tech-section {
padding: 48px 20px 72px;
text-align: center;
border-top: 1px solid rgba(255, 255, 255, 0.04);
}
.tech-label {
font: 600 11px 'Rajdhani', sans-serif;
text-transform: uppercase;
letter-spacing: 6px;
color: rgba(255, 255, 255, 0.14);
margin-bottom: 28px;
}
.tech-logos img {
display: inline-block;
width: 52px;
height: 52px;
object-fit: contain;
margin: 8px 24px;
// Force all logos to white, then tint with the game's blue
filter: brightness(0) invert(1) opacity(0.35);
transition: filter 220ms ease, transform 220ms ease;
}
.tech-logos img:hover {
// Bright white → blue-tinted on hover
filter:
brightness(0) invert(1)
sepia(1) saturate(3) hue-rotate(175deg) brightness(1.1)
opacity(0.9);
transform: translateY(-4px);
}
// ── Footer ───────────────────────────────────────────────────────────────────
footer {
background: #040608;
border-top: 1px solid rgba(35, 111, 135, 0.12);
width: 100%;
}
.footer-inner {
display: flex;
align-items: flex-start;
justify-content: space-between;
max-width: 1100px;
margin: 0 auto;
padding: 60px 60px 52px;
gap: 40px;
}
// Left: brand block
.footer-brand {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
.footer-logo {
width: 72px;
height: 72px;
opacity: 0.55;
filter:
drop-shadow(0 0 12px rgba(35, 111, 135, 0.4))
brightness(1.1);
transition: opacity 250ms ease, filter 250ms ease;
&:hover {
opacity: 0.9;
filter:
drop-shadow(0 0 20px rgba(35, 111, 135, 0.65))
brightness(1.2);
}
}
.footer-name {
font: 700 22px 'Rajdhani', sans-serif;
color: rgba(255, 255, 255, 0.75);
letter-spacing: 2px;
text-transform: uppercase;
margin-top: 4px;
}
.footer-tagline {
font: 400 13px 'Rajdhani', sans-serif;
color: rgba(149, 207, 245, 0.7);
letter-spacing: 0.5px;
max-width: 240px;
line-height: 1.5;
}
// Right: navigation
.footer-nav-label {
font: 700 11px 'Rajdhani', sans-serif;
text-transform: uppercase;
letter-spacing: 4px;
color: rgba(255, 255, 255, 0.5);
margin-bottom: 18px;
text-align: left;
}
.footer-nav ul {
list-style: none;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
min-width: 180px;
}
.footer-nav ul li a {
display: block;
font: 500 15px 'Rajdhani', sans-serif;
color: rgba(255, 255, 255, 0.7);
text-decoration: none;
text-transform: uppercase;
letter-spacing: 1.5px;
white-space: nowrap;
padding: 6px 0;
transition: color 180ms ease, letter-spacing 180ms ease;
&:hover {
color: #95cff5;
letter-spacing: 2px;
}
}
// Bottom copyright bar
.footer-copy {
border-top: 1px solid rgba(255, 255, 255, 0.05);
padding: 16px 60px;
max-width: 1100px;
margin: 0 auto;
p {
font: 400 11px 'Rajdhani', sans-serif;
color: rgba(255, 255, 255, 0.45);
letter-spacing: 0.5px;
text-align: center;
}
a {
color: rgba(149, 207, 245, 0.6);
text-decoration: none;
transition: color 180ms;
&:hover { color: #95cff5; }
}
}
// ── Responsive ───────────────────────────────────────────────────────────────
@media screen and (max-width: 768px) {
.hero--compact {
flex-direction: column;
text-align: center;
padding: 36px 24px 44px;
gap: 28px;
.hero-body { align-items: center; }
}
.footer-inner {
flex-direction: column;
align-items: center;
text-align: center;
padding: 48px 30px 36px;
}
.footer-brand {
align-items: center;
}
.footer-tagline {
text-align: center;
}
.footer-nav-label {
text-align: center;
}
.footer-nav ul {
align-items: center;
}
.footer-copy {
padding: 16px 30px;
}
}
@media screen and (max-width: 900px) {
.hero h1 {
font-size: 44px;
}
.hero-cta {
padding: 20px 72px 18px;
font-size: 24px;
letter-spacing: 5px;
}
}
@media screen and (max-width: 550px) {
.hero {
padding: 60px 24px 140px;
}
.hero-logo img {
width: 260px;
}
.hero-logo {
margin-bottom: 52px;
}
.hero h1 {
font-size: 32px;
margin-bottom: 40px;
}
.hero-sub {
font-size: 14px;
letter-spacing: 2px;
}
.hero-cta {
padding: 18px 48px 16px;
font-size: 20px;
letter-spacing: 4px;
}
}