Files
leonm c8a75cb64a
CI / 🔍 Lint & Type Check (push) Successful in 1m7s
CI / 🐳 Build & Push Image (push) Successful in 25s
feat: navbar on top
2026-07-19 20:45:35 +02:00

1632 lines
32 KiB
CSS

@import "tailwindcss";
@import "fumadocs-ui/css/neutral.css";
@import "fumadocs-ui/css/preset.css";
:root {
--background: #090a0f;
--foreground: #f8fbff;
--muted: #b4c0d5;
--surface: #141832;
--surface-strong: #1f2244;
--cyan: #00e7ff;
--violet: #8b4dff;
--pink: #ff4dd2;
--green: #33e879;
--gold: #ffd54a;
--stone: #252932;
--stone-light: #343a45;
--dirt: #5a3b22;
--paper: #f2efe3;
--shadow-hard: 6px 6px 0 rgb(0 0 0 / 55%);
}
.dark {
--color-fd-background: #090a0f;
--color-fd-foreground: #f8fbff;
--color-fd-muted: #15182a;
--color-fd-muted-foreground: #9eabc1;
--color-fd-popover: #111426;
--color-fd-popover-foreground: #f8fbff;
--color-fd-card: #141832;
--color-fd-card-foreground: #f8fbff;
--color-fd-border: rgb(168 245 255 / 16%);
--color-fd-primary: #a8f5ff;
--color-fd-primary-foreground: #06111a;
--color-fd-secondary: #1b2039;
--color-fd-secondary-foreground: #e8f8ff;
--color-fd-accent: rgb(0 231 255 / 12%);
--color-fd-accent-foreground: #c9f9ff;
--color-fd-ring: #00e7ff;
--color-fd-overlay: rgb(0 0 0 / 62%);
}
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
body {
min-height: 100vh;
margin: 0;
background: var(--background);
color: var(--foreground);
font-family: var(--font-geist-sans), Arial, Helvetica, sans-serif;
}
a {
color: inherit;
text-decoration: none;
}
button {
font: inherit;
}
svg {
display: block;
}
::selection {
background: var(--cyan);
color: #06111a;
}
.server-docs {
min-height: 100vh;
background:
radial-gradient(circle at 82% 10%, rgb(139 77 255 / 11%), transparent 28rem),
radial-gradient(circle at 12% 85%, rgb(0 231 255 / 8%), transparent 30rem),
var(--color-fd-background);
}
.server-docs #nd-sidebar {
background: rgb(9 10 15 / 94%);
backdrop-filter: blur(18px);
}
.server-docs [data-toc-popover] {
backdrop-filter: blur(18px);
}
.docs-brand {
display: inline-flex;
align-items: center;
gap: 10px;
color: #d8fbff;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-weight: 700;
letter-spacing: -0.02em;
}
.docs-brand-mark {
display: grid;
width: 30px;
height: 30px;
place-items: center;
border: 1px solid rgb(168 245 255 / 70%);
border-radius: 7px;
background: rgb(0 231 255 / 8%);
box-shadow: 0 0 18px rgb(0 231 255 / 22%);
color: #a8f5ff;
font-size: 1.05rem;
line-height: 1;
}
*:focus-visible {
outline: 3px solid var(--gold);
outline-offset: 4px;
}
.stellar-page {
position: relative;
min-height: 100vh;
overflow: hidden;
background:
radial-gradient(ellipse at bottom, #1b2735 0%, #0d1021 48%, #05060c 100%);
}
.stellar-page::before,
.stellar-page::after {
position: fixed;
inset: 0;
z-index: 0;
content: "";
pointer-events: none;
}
.stellar-page::before {
--star-opacity-high: 1;
--star-opacity-low: 0.68;
--star-opacity-mid: 0.78;
inset: -260px -160px;
background-image:
radial-gradient(circle, rgb(255 255 255 / 90%) 1px, transparent 1.5px),
radial-gradient(circle, rgb(0 231 255 / 65%) 1px, transparent 1.5px),
radial-gradient(circle, rgb(255 255 255 / 55%) 1.5px, transparent 2px);
background-position:
0 0,
34px 74px,
88px 12px;
background-size:
86px 86px,
142px 142px,
230px 230px;
opacity: 0.82;
animation:
star-drift 105s linear infinite,
star-twinkle 5.6s ease-in-out infinite alternate;
will-change: transform, opacity, filter;
}
.stellar-page::after {
background:
radial-gradient(circle, rgb(255 255 255 / 70%) 1px, transparent 1.6px) 12px 22px / 166px 166px,
radial-gradient(circle, rgb(255 213 74 / 38%) 1px, transparent 1.8px) 72px 108px / 270px 270px,
linear-gradient(180deg, transparent 0%, rgb(0 231 255 / 6%) 58%, rgb(51 232 121 / 10%) 100%),
radial-gradient(ellipse at 30% 80%, rgb(139 77 255 / 18%), transparent 38%),
radial-gradient(ellipse at 80% 70%, rgb(0 231 255 / 13%), transparent 32%);
animation: star-glow 12s ease-in-out infinite alternate;
will-change: opacity;
}
.home-shell {
position: relative;
z-index: 1;
display: flex;
min-height: 100vh;
width: min(1120px, calc(100% - 32px));
margin: 0 auto;
padding: 32px 0 22px;
flex-direction: column;
align-items: center;
}
.home-nav {
position: relative;
isolation: isolate;
display: flex;
min-height: 76px;
width: 100%;
padding: 10px 12px;
align-items: center;
justify-content: space-between;
gap: 24px;
overflow: hidden;
border: 1px solid rgb(168 245 255 / 22%);
border-radius: 14px;
background:
linear-gradient(110deg, rgb(0 231 255 / 8%), transparent 34%),
rgb(9 14 31 / 82%);
box-shadow:
0 16px 44px rgb(0 0 0 / 32%),
inset 0 0 0 1px rgb(255 255 255 / 4%);
backdrop-filter: blur(16px);
}
.home-nav::after {
position: absolute;
right: 12%;
bottom: -1px;
left: 12%;
z-index: -1;
height: 1px;
background: linear-gradient(90deg, transparent, rgb(0 231 255 / 80%), transparent);
box-shadow: 0 0 18px rgb(0 231 255 / 70%);
content: "";
pointer-events: none;
}
.home-nav-links {
display: flex;
flex: 0 0 auto;
align-items: center;
gap: 8px;
}
.home-nav-link {
display: inline-flex;
min-height: 44px;
padding: 0 18px;
align-items: center;
justify-content: center;
border: 1px solid rgb(168 245 255 / 20%);
border-radius: 8px;
color: #d8fbff;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-weight: 700;
letter-spacing: 0.01em;
line-height: 1;
transition: border-color 160ms ease, background 160ms ease, color 160ms ease, transform 160ms ease;
}
.home-nav-link:hover {
transform: translateY(-2px);
border-color: rgb(168 245 255 / 65%);
background: rgb(0 231 255 / 10%);
color: #fff;
}
.home-nav-link[aria-current="page"] {
background: rgb(0 231 255 / 8%);
}
.home-nav-link--docs {
border-color: #fff;
background: #fff;
color: #09101f;
}
.home-nav-link--docs:hover {
border-color: #a8f5ff;
background: #a8f5ff;
color: #06111a;
}
.brand-lockup,
.minecraft-brand {
display: inline-flex;
align-items: center;
gap: 12px;
font-weight: 800;
}
.brand-lockup {
min-width: 0;
color: #a8f5ff;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-size: 1.2rem;
text-shadow: 0 0 18px rgb(0 231 255 / 45%);
}
.brand-mark {
display: grid;
flex: 0 0 auto;
width: 54px;
height: 54px;
place-items: center;
border: 2px solid rgb(168 245 255 / 85%);
border-radius: 8px;
background: rgb(7 20 36 / 72%);
box-shadow: 0 0 22px rgb(0 231 255 / 35%), inset 0 0 14px rgb(0 231 255 / 20%);
color: #a8f5ff;
font-size: 2rem;
line-height: 1;
}
.home-hero {
max-width: 920px;
margin-top: 54px;
text-align: center;
}
.home-hero h1 {
margin: 0;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-size: 4.8rem;
font-weight: 700;
line-height: 0.98;
text-shadow: 0 10px 0 rgb(0 0 0 / 32%), 0 0 26px rgb(255 255 255 / 20%);
}
.home-hero p {
max-width: 720px;
margin: 22px auto 0;
color: #c7d0e6;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-size: 1.45rem;
font-weight: 600;
line-height: 1.45;
}
.home-content {
display: flex;
flex: 1 1 auto;
width: 100%;
padding: 0;
align-items: center;
}
.service-grid {
display: grid;
width: min(1120px, 100%);
margin: 0;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 32px;
}
.service-card {
--service-accent: var(--cyan);
position: relative;
display: flex;
min-height: 314px;
padding: 32px;
flex-direction: column;
align-items: center;
justify-content: center;
overflow: hidden;
border: 3px solid var(--cyan);
border-radius: 8px;
background:
linear-gradient(180deg, rgb(20 24 50 / 88%), rgb(8 10 22 / 92%)),
radial-gradient(circle at 50% 20%, rgb(255 255 255 / 10%), transparent 34%);
box-shadow: var(--shadow-hard), inset 0 0 0 1px rgb(255 255 255 / 9%);
color: var(--foreground);
text-align: center;
transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease;
}
.service-card::before {
position: absolute;
inset: 20px;
content: "";
background-image:
radial-gradient(circle, currentColor 1.5px, transparent 2px),
radial-gradient(circle, currentColor 1px, transparent 1.5px);
background-position:
0 0,
26px 34px;
background-size:
52px 52px,
74px 74px;
opacity: 0.18;
z-index: 0;
}
.service-card > * {
position: relative;
z-index: 1;
}
.service-card:hover {
transform: translateY(-8px);
}
.service-card--jellyfin {
--service-accent: var(--violet);
border-color: var(--violet);
box-shadow: var(--shadow-hard), 0 0 28px rgb(139 77 255 / 34%), inset 0 0 0 1px rgb(255 255 255 / 9%);
color: #ae77ff;
}
.service-card--minecraft {
--service-accent: var(--green);
border-color: var(--green);
box-shadow: var(--shadow-hard), 0 0 28px rgb(51 232 121 / 28%), inset 0 0 0 1px rgb(255 255 255 / 9%);
color: #46ee89;
}
.service-card--seerr {
--service-accent: #ff6b8a;
border-color: #ff6b8a;
box-shadow: var(--shadow-hard), 0 0 28px rgb(255 107 138 / 30%), inset 0 0 0 1px rgb(255 255 255 / 9%);
color: #ff9aaa;
}
.service-card--astroneer {
--service-accent: #ffb347;
border-color: #ffb347;
box-shadow: var(--shadow-hard), 0 0 28px rgb(255 179 71 / 30%), inset 0 0 0 1px rgb(255 255 255 / 9%);
color: #ffd66b;
}
.service-status {
position: absolute;
top: 24px;
right: 24px;
width: 18px;
height: 18px;
border: 3px solid rgb(3 17 18 / 72%);
border-radius: 999px;
background: var(--green);
box-shadow: 0 0 0 4px rgb(51 232 121 / 18%), 0 0 18px rgb(51 232 121 / 80%);
}
.service-icon-shell {
position: relative;
display: grid;
width: 116px;
height: 116px;
place-items: center;
margin-bottom: 22px;
}
.service-icon-shell svg,
.service-brand-icon {
width: 94px;
height: 94px;
object-fit: contain;
filter: drop-shadow(0 8px 14px rgb(0 0 0 / 40%));
}
.service-brand-icon--minecraft,
.service-brand-icon--astroneer {
border-radius: 20px;
}
.service-copy {
position: relative;
display: grid;
gap: 10px;
width: 100%;
padding-top: 22px;
}
.service-copy::before {
position: absolute;
top: 0;
left: 18%;
right: 18%;
height: 3px;
background: currentColor;
box-shadow: 0 0 12px currentColor;
content: "";
opacity: 0.6;
}
.service-copy strong {
color: #fff;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-size: 2.05rem;
line-height: 1;
text-shadow: 0 4px 0 rgb(0 0 0 / 40%);
}
.service-copy span {
min-height: 48px;
color: #bdc8dd;
font-size: 1rem;
line-height: 1.45;
}
.service-action {
display: inline-flex;
min-height: 56px;
width: 100%;
margin-top: 24px;
padding: 0 14px;
align-items: center;
justify-content: center;
gap: 12px;
border: 2px solid rgb(255 255 255 / 20%);
border-radius: 8px;
background: var(--service-accent);
color: #fff;
font-weight: 800;
line-height: 1.2;
text-align: center;
text-shadow: 0 2px 0 rgb(0 0 0 / 24%);
}
.service-action-label {
min-width: 0;
overflow-wrap: anywhere;
}
.service-card--jellyfin .service-action {
background: linear-gradient(180deg, #a95cff, #7d3cff);
}
.service-card--seerr .service-action {
background: linear-gradient(180deg, #ffd166, #ff6b8a);
}
.service-card--minecraft .service-action {
background: linear-gradient(180deg, #35f48a, #13ca69);
}
.service-card--astroneer .service-action {
background: linear-gradient(180deg, #ffd66b, #ff9f43);
}
.service-action svg {
width: 20px;
height: 20px;
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2.5;
}
.home-footer-hint {
display: flex;
width: min(560px, 100%);
margin-top: auto;
padding-top: 42px;
align-items: center;
justify-content: center;
gap: 24px;
color: #a6b1cc;
font-family: var(--font-fredoka), var(--font-geist-sans), sans-serif;
font-size: 1.1rem;
}
.home-footer-hint span {
width: 8px;
height: 8px;
border-radius: 999px;
background: var(--cyan);
box-shadow: 0 0 14px var(--cyan);
}
.home-footer-hint span:first-child {
background: var(--violet);
box-shadow: 0 0 14px var(--violet);
}
.minecraft-page {
min-height: 100vh;
overflow-x: hidden;
background:
linear-gradient(180deg, #0c1220 0%, #11161d 42%, #1e140e 100%);
color: var(--paper);
font-family: var(--font-retro), var(--font-geist-mono), monospace;
font-size: 1.35rem;
line-height: 1.35;
}
.astroneer-page {
min-height: 100vh;
overflow-x: hidden;
background:
radial-gradient(circle at 72% 18%, rgb(109 244 255 / 22%), transparent 24%),
linear-gradient(180deg, #11102a 0%, #151a30 46%, #24170f 100%);
color: var(--paper);
font-family: var(--font-retro), var(--font-geist-mono), monospace;
font-size: 1.35rem;
line-height: 1.35;
}
.minecraft-nav {
position: sticky;
top: 0;
z-index: 30;
display: flex;
width: min(1120px, calc(100% - 24px));
margin: 12px auto 0;
align-items: center;
justify-content: space-between;
gap: 16px;
border: 4px solid #030303;
background:
linear-gradient(135deg, rgb(255 255 255 / 5%) 25%, transparent 25%) 0 0 / 22px 22px,
linear-gradient(315deg, rgb(0 0 0 / 22%) 25%, transparent 25%) 0 0 / 22px 22px,
rgb(37 41 50 / 95%);
box-shadow: var(--shadow-hard);
backdrop-filter: blur(6px);
}
.minecraft-brand {
padding: 14px 18px;
color: var(--paper);
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.78rem;
}
.minecraft-brand svg,
.minecraft-nav-links svg {
width: 26px;
height: 26px;
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2.2;
}
.minecraft-nav-links {
display: flex;
align-items: stretch;
}
.minecraft-nav-links a {
display: flex;
min-height: 56px;
padding: 0 18px;
align-items: center;
border-left: 2px solid rgb(0 0 0 / 48%);
color: #f5f1e8;
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.66rem;
transition: background 160ms ease, color 160ms ease;
}
.minecraft-nav-links a:hover {
background: rgb(255 213 74 / 12%);
color: var(--gold);
}
.minecraft-hero {
position: relative;
display: grid;
min-height: 680px;
margin-top: -72px;
padding: 148px 24px 86px;
place-items: center;
overflow: hidden;
}
.minecraft-hero::after {
position: absolute;
inset: auto 0 0;
height: 210px;
background: linear-gradient(180deg, transparent, rgb(12 18 32 / 80%) 62%, #11161d 100%);
content: "";
}
.minecraft-hero-image {
z-index: 0;
object-fit: cover;
filter: saturate(1.05) contrast(1.04);
}
.astroneer-hero {
position: relative;
display: grid;
min-height: 680px;
margin-top: -72px;
padding: 148px 24px 86px;
place-items: center;
overflow: hidden;
}
.astroneer-hero::before {
--star-opacity-high: 0.66;
--star-opacity-low: 0.42;
--star-opacity-mid: 0.5;
position: absolute;
inset: -180px;
background:
radial-gradient(circle, rgb(255 255 255 / 80%) 1px, transparent 1.5px) 0 0 / 96px 96px,
radial-gradient(circle, rgb(109 244 255 / 65%) 1px, transparent 1.5px) 44px 18px / 148px 148px;
content: "";
opacity: 0.55;
animation:
astroneer-star-drift 92s linear infinite,
star-twinkle 6.5s ease-in-out infinite alternate;
will-change: transform, opacity, filter;
}
.astroneer-hero::after {
position: absolute;
inset: auto 0 0;
height: 230px;
background: linear-gradient(180deg, transparent, rgb(17 16 42 / 80%) 58%, #151a30 100%);
content: "";
}
.astroneer-orbit {
position: absolute;
top: 64%;
left: 50%;
z-index: 1;
width: min(760px, 84vw);
aspect-ratio: 1;
border: 3px solid rgb(255 213 74 / 36%);
border-radius: 50%;
opacity: 0.72;
transform: translate(-50%, -50%) rotate(-16deg);
}
.astroneer-planet {
position: absolute;
top: 50%;
left: 50%;
width: min(320px, 48vw);
aspect-ratio: 1;
border: 6px solid #030303;
border-radius: 50%;
background:
radial-gradient(circle at 30% 28%, #6df4ff 0 7%, transparent 8%),
radial-gradient(circle at 67% 62%, #ffb347 0 10%, transparent 11%),
linear-gradient(135deg, #27315f 0 42%, #ff7a3d 42% 58%, #172341 58% 100%);
box-shadow: 14px 14px 0 rgb(0 0 0 / 42%), 0 0 60px rgb(109 244 255 / 24%);
transform: translate(-50%, -50%);
}
.astroneer-moon {
position: absolute;
top: 9%;
right: 18%;
width: 62px;
aspect-ratio: 1;
border: 5px solid #030303;
border-radius: 50%;
background: #ffd66b;
box-shadow: 8px 8px 0 rgb(0 0 0 / 36%);
}
.astroneer-rover {
position: absolute;
bottom: 14%;
left: 18%;
width: 86px;
height: 28px;
border: 5px solid #030303;
background: #6df4ff;
box-shadow: 8px 8px 0 rgb(0 0 0 / 36%);
}
.astroneer-rover::before,
.astroneer-rover::after {
position: absolute;
bottom: -18px;
width: 24px;
height: 24px;
border: 4px solid #030303;
border-radius: 50%;
background: #ff9f43;
content: "";
}
.astroneer-rover::before {
left: 8px;
}
.astroneer-rover::after {
right: 8px;
}
.astroneer-hero-content {
text-shadow: 4px 4px 0 #030303;
}
.minecraft-hero-content {
position: relative;
z-index: 2;
display: flex;
width: min(860px, 100%);
min-width: 0;
flex-direction: column;
align-items: center;
text-align: center;
text-shadow: 4px 4px 0 #030303;
}
.minecraft-hero-content h1 {
margin: 0;
color: #fff;
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 4rem;
line-height: 1.18;
text-transform: uppercase;
}
.minecraft-hero-content p {
max-width: 660px;
margin: 22px 0 26px;
color: #f4f1e8;
font-size: 1.8rem;
}
.block-panel {
border: 4px solid #030303;
background:
linear-gradient(135deg, rgb(255 255 255 / 5%) 25%, transparent 25%) 0 0 / 24px 24px,
linear-gradient(315deg, rgb(0 0 0 / 20%) 25%, transparent 25%) 0 0 / 24px 24px,
var(--stone);
box-shadow:
inset -4px -4px 0 rgb(0 0 0 / 45%),
inset 4px 4px 0 rgb(255 255 255 / 8%),
var(--shadow-hard);
}
.server-address {
display: inline-flex;
max-width: 100%;
min-width: 0;
padding: 18px 24px;
align-items: center;
justify-content: center;
gap: 16px;
color: var(--cyan);
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 1.35rem;
overflow-wrap: anywhere;
text-shadow: none;
}
.server-address svg {
width: 34px;
min-width: 34px;
height: 34px;
fill: #56e1ef;
stroke: #041314;
stroke-width: 1.4;
}
.minecraft-actions {
display: flex;
max-width: 100%;
margin-top: 22px;
flex-wrap: wrap;
justify-content: center;
gap: 18px;
text-shadow: none;
}
.copy-address-button,
.map-button,
.large-map-link,
.back-home-link {
display: inline-flex;
min-height: 58px;
max-width: 100%;
min-width: 0;
align-items: center;
justify-content: center;
gap: 12px;
border: 4px solid #030303;
box-shadow:
inset -3px -3px 0 rgb(0 0 0 / 32%),
inset 3px 3px 0 rgb(255 255 255 / 22%),
5px 5px 0 rgb(0 0 0 / 48%);
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.82rem;
line-height: 1.25;
text-align: center;
text-decoration: none;
transition: transform 160ms ease, box-shadow 160ms ease;
}
.copy-address-button span,
.map-button span,
.large-map-link span,
.back-home-link span,
.minecraft-brand span,
.minecraft-nav-links a,
.service-copy,
.service-action-label {
min-width: 0;
overflow-wrap: anywhere;
}
.copy-address-button:hover,
.map-button:hover,
.large-map-link:hover,
.back-home-link:hover {
transform: translateY(-4px);
box-shadow:
inset -3px -3px 0 rgb(0 0 0 / 32%),
inset 3px 3px 0 rgb(255 255 255 / 22%),
8px 8px 0 rgb(0 0 0 / 56%);
}
.copy-address-button,
.map-button {
padding: 0 24px;
background: var(--gold);
color: #16120a;
cursor: pointer;
}
.copy-address-button.is-copied {
background: var(--green);
}
.large-map-link {
padding: 0 24px;
background: #12c8c7;
color: #061115;
}
.copy-address-button svg,
.map-button svg,
.large-map-link svg,
.back-home-link svg {
width: 24px;
height: 24px;
fill: none;
stroke: currentColor;
stroke-linecap: round;
stroke-linejoin: round;
stroke-width: 2.2;
}
.minecraft-content {
position: relative;
z-index: 3;
width: min(1120px, calc(100% - 32px));
margin: -48px auto 0;
padding-bottom: 80px;
}
.minecraft-section {
scroll-margin-top: 100px;
margin-top: 56px;
}
.section-heading {
margin-bottom: 22px;
text-align: center;
}
.pixel-heading h2,
h2.pixel-heading {
margin: 0;
color: #fff;
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 1.45rem;
line-height: 1.35;
text-shadow: 3px 3px 0 #030303;
text-transform: uppercase;
}
.section-heading p,
.map-copy p {
margin: 8px 0 0;
color: #b8c2cf;
font-size: 1.45rem;
}
.status-panel {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
padding: 22px;
}
.status-item {
display: grid;
min-height: 92px;
padding: 12px 20px;
place-items: center;
border-right: 2px solid rgb(255 255 255 / 12%);
text-align: center;
}
.status-item:last-child {
border-right: 0;
}
.status-label {
color: #c7cbd1;
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.68rem;
text-transform: uppercase;
}
.status-value {
display: inline-flex;
max-width: 100%;
align-items: center;
justify-content: center;
gap: 10px;
color: #fff;
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.88rem;
overflow-wrap: anywhere;
}
.astroneer-info-panel .status-value {
font-size: 0.78rem;
}
.status-value--online {
color: #7aff5f;
}
.status-value--offline {
color: #ff5c5c;
}
.status-light {
width: 16px;
height: 16px;
background: currentColor;
box-shadow: 0 0 14px currentColor;
}
.status-note {
margin: 18px 0 0;
color: #ffce86;
text-align: center;
}
.whitelist-form {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 20px;
padding: 26px;
}
.form-field {
display: grid;
min-width: 0;
gap: 10px;
}
.form-field--full {
grid-column: 1 / -1;
}
.form-field label {
color: var(--gold);
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.68rem;
text-transform: uppercase;
}
.form-field input,
.form-field textarea {
width: 100%;
border: 4px solid #030303;
background: rgb(8 10 15 / 90%);
box-shadow:
inset -3px -3px 0 rgb(0 0 0 / 32%),
inset 3px 3px 0 rgb(255 255 255 / 8%);
color: var(--paper);
font-family: var(--font-geist-mono), monospace;
font-size: 1rem;
}
.form-field input {
min-height: 56px;
padding: 0 16px;
}
.form-field textarea {
min-height: 148px;
padding: 16px;
resize: vertical;
}
.form-field input::placeholder,
.form-field textarea::placeholder {
color: rgb(242 239 227 / 48%);
}
.whitelist-submit {
display: inline-flex;
min-height: 58px;
padding: 0 24px;
align-items: center;
justify-content: center;
border: 4px solid #030303;
background: var(--green);
box-shadow:
inset -3px -3px 0 rgb(0 0 0 / 32%),
inset 3px 3px 0 rgb(255 255 255 / 22%),
5px 5px 0 rgb(0 0 0 / 48%);
color: #041411;
cursor: pointer;
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.78rem;
transition: transform 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
}
.whitelist-submit:hover:not(:disabled) {
transform: translateY(-4px);
box-shadow:
inset -3px -3px 0 rgb(0 0 0 / 32%),
inset 3px 3px 0 rgb(255 255 255 / 22%),
8px 8px 0 rgb(0 0 0 / 56%);
}
.whitelist-submit:disabled {
cursor: wait;
opacity: 0.72;
}
.whitelist-message {
display: flex;
min-height: 58px;
min-width: 0;
margin: 0;
padding: 12px 16px;
align-items: center;
border: 4px solid #030303;
background: rgb(8 10 15 / 82%);
color: var(--paper);
font-family: var(--font-geist-mono), monospace;
font-size: 1rem;
line-height: 1.35;
overflow-wrap: anywhere;
}
.whitelist-message--success {
color: #7aff5f;
}
.whitelist-message--error {
color: #ffce86;
}
.steps-grid {
display: grid;
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 22px;
}
.step-card {
position: relative;
min-height: 230px;
padding: 58px 22px 24px;
}
.step-number {
position: absolute;
top: 16px;
left: 16px;
display: grid;
width: 38px;
height: 38px;
place-items: center;
border: 3px solid #030303;
background: #080a0f;
color: var(--gold);
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 1rem;
}
.step-card h3 {
margin: 0 0 12px;
color: var(--gold);
font-family: var(--font-pixel), var(--font-geist-mono), monospace;
font-size: 0.78rem;
line-height: 1.45;
text-transform: uppercase;
}
.step-card p {
margin: 0;
color: #d6d1c4;
font-size: 1.32rem;
}
.map-section {
display: grid;
grid-template-columns: 0.85fr 1fr;
gap: 28px;
align-items: stretch;
}
.map-preview {
min-height: 250px;
padding: 18px;
background:
linear-gradient(135deg, rgb(255 255 255 / 9%) 25%, transparent 25%) 0 0 / 20px 20px,
#24180f;
}
.map-island {
position: relative;
width: 100%;
height: 100%;
min-height: 214px;
border: 4px solid #120b06;
background:
linear-gradient(45deg, transparent 46%, rgb(0 0 0 / 18%) 48%, rgb(0 0 0 / 18%) 52%, transparent 54%) 0 0 / 34px 34px,
radial-gradient(circle at 24% 42%, #7fbf4d 0 9%, transparent 10%),
radial-gradient(circle at 52% 35%, #8bc95a 0 12%, transparent 13%),
radial-gradient(circle at 71% 58%, #6ead43 0 10%, transparent 11%),
linear-gradient(135deg, #2d8ac7 0 36%, #75b756 36% 64%, #2d8ac7 64% 100%);
image-rendering: pixelated;
}
.map-pin {
position: absolute;
top: 22%;
right: 18%;
width: 30px;
height: 30px;
border: 4px solid #160302;
border-radius: 50% 50% 50% 0;
background: #ff493f;
transform: rotate(-45deg);
box-shadow: 4px 4px 0 rgb(0 0 0 / 38%);
}
.map-copy {
display: flex;
padding: 34px;
flex-direction: column;
justify-content: center;
border: 4px solid #030303;
background: rgb(37 41 50 / 92%);
box-shadow: var(--shadow-hard);
}
.large-map-link {
width: 100%;
margin-top: 24px;
justify-content: space-between;
font-size: 1rem;
}
.minecraft-back {
display: flex;
margin-top: 42px;
justify-content: center;
}
.back-home-link {
padding: 0 24px;
background: var(--stone-light);
color: var(--paper);
}
@keyframes star-drift {
from {
transform: translate3d(0, 0, 0);
}
to {
transform: translate3d(-120px, -220px, 0);
}
}
@keyframes astroneer-star-drift {
from {
transform: translate3d(0, 0, 0);
}
to {
transform: translate3d(-90px, -180px, 0);
}
}
@keyframes star-twinkle {
0%,
100% {
filter: brightness(0.92);
opacity: var(--star-opacity-low, 0.68);
}
45% {
filter: brightness(1.28);
opacity: var(--star-opacity-high, 1);
}
72% {
filter: brightness(1.05);
opacity: var(--star-opacity-mid, 0.78);
}
}
@keyframes star-glow {
from {
opacity: 0.78;
}
to {
opacity: 1;
}
}
@media (max-width: 960px) {
.home-hero h1 {
font-size: 3.6rem;
}
.service-grid {
gap: 22px;
}
.minecraft-nav {
position: relative;
flex-direction: column;
align-items: stretch;
}
.minecraft-brand {
justify-content: center;
}
.minecraft-nav-links {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
}
.minecraft-nav-links a {
min-height: 48px;
justify-content: center;
border-top: 2px solid rgb(0 0 0 / 48%);
border-left: 0;
}
.minecraft-hero {
margin-top: -118px;
padding-top: 214px;
}
.astroneer-hero {
margin-top: -118px;
padding-top: 214px;
}
.service-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.status-panel,
.steps-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.status-item:nth-child(2) {
border-right: 0;
}
.status-item:nth-child(-n + 2) {
border-bottom: 2px solid rgb(255 255 255 / 12%);
}
.map-section {
grid-template-columns: 1fr;
}
}
@media (max-width: 700px) {
.minecraft-page,
.astroneer-page {
--shadow-hard: 4px 4px 0 rgb(0 0 0 / 55%);
}
.home-shell {
width: min(100% - 24px, 520px);
padding-top: 24px;
}
.home-nav {
flex-direction: column;
align-items: stretch;
gap: 10px;
}
.brand-lockup {
justify-content: center;
}
.home-nav-links {
width: 100%;
}
.home-nav-link {
flex: 1;
padding: 0 12px;
}
.home-content {
padding: 34px 0 0;
}
.brand-lockup {
font-size: 1rem;
}
.brand-mark {
width: 46px;
height: 46px;
font-size: 1.6rem;
}
.home-hero {
margin-top: 42px;
}
.home-hero h1 {
font-size: 3rem;
}
.home-hero p {
font-size: 1.18rem;
}
.service-grid {
grid-template-columns: 1fr;
}
.service-card {
min-height: 276px;
padding: 28px;
}
.home-footer-hint {
padding-top: 30px;
}
.minecraft-page {
font-size: 1.05rem;
}
.astroneer-page {
font-size: 1.05rem;
}
.minecraft-nav {
width: min(100% - 20px, 520px);
gap: 0;
}
.minecraft-brand {
padding: 12px 14px;
font-size: 0.68rem;
}
.minecraft-nav-links {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.minecraft-nav-links a {
min-height: 44px;
padding: 0 10px;
font-size: 0.52rem;
line-height: 1.25;
text-align: center;
}
.minecraft-hero {
min-height: 720px;
padding-right: 14px;
padding-left: 14px;
}
.astroneer-hero {
min-height: 720px;
padding-right: 14px;
padding-left: 14px;
}
.minecraft-hero-content h1 {
max-width: 100%;
font-size: 1.95rem;
line-height: 1.22;
overflow-wrap: anywhere;
}
.minecraft-hero-content p {
font-size: 1.12rem;
line-height: 1.45;
}
.server-address {
width: 100%;
padding: 14px 12px;
gap: 10px;
font-size: 0.68rem;
line-height: 1.35;
}
.server-address svg {
width: 26px;
min-width: 26px;
height: 26px;
}
.astroneer-orbit {
width: min(420px, 118vw);
}
.astroneer-planet {
width: 190px;
}
.minecraft-actions,
.copy-address-button,
.map-button {
width: 100%;
}
.status-panel,
.steps-grid,
.whitelist-form {
grid-template-columns: 1fr;
}
.whitelist-submit,
.whitelist-message {
width: 100%;
}
.copy-address-button,
.map-button,
.large-map-link,
.back-home-link,
.whitelist-submit {
min-height: 52px;
padding-right: 14px;
padding-left: 14px;
font-size: 0.64rem;
}
.whitelist-form,
.status-panel,
.map-copy {
padding: 18px;
}
.form-field input {
min-height: 52px;
padding: 0 12px;
}
.form-field textarea {
padding: 12px;
}
.status-item,
.status-item:nth-child(2),
.status-item:nth-child(-n + 2) {
border-right: 0;
border-bottom: 2px solid rgb(255 255 255 / 12%);
}
.status-item:last-child {
border-bottom: 0;
}
.pixel-heading h2,
h2.pixel-heading {
font-size: 0.9rem;
line-height: 1.35;
}
.section-heading p,
.map-copy p {
font-size: 1.02rem;
line-height: 1.45;
}
.large-map-link {
gap: 10px;
font-size: 0.62rem;
}
}
@media (max-width: 380px) {
.home-hero h1 {
font-size: 2.35rem;
}
.minecraft-hero-content h1 {
font-size: 1.62rem;
}
.minecraft-hero-content p,
.section-heading p,
.map-copy p {
font-size: 0.95rem;
}
.minecraft-nav-links a {
font-size: 0.48rem;
}
.server-address,
.copy-address-button,
.map-button,
.large-map-link,
.back-home-link,
.whitelist-submit {
font-size: 0.56rem;
}
}
@media (prefers-reduced-motion: reduce) {
*,
*::before,
*::after {
scroll-behavior: auto !important;
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
transition-duration: 0.01ms !important;
}
}