diff --git a/primegrading-web/html/index.html b/primegrading-web/html/index.html
index 9a3b172..ab6be76 100644
--- a/primegrading-web/html/index.html
+++ b/primegrading-web/html/index.html
@@ -4,7 +4,18 @@
PrimeGrading.dk — Kortgradering med kant
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -12,6 +23,21 @@
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
+ --bg: #f5f0e5;
+ --surface: #ece7db;
+ --border: #d8d2c4;
+ --gold: #c9a84c;
+ --gold-light:#e6c860;
+ --red: #cc2222;
+ --text: #2c2820;
+ --muted: #7a7262;
+ --text-light:#f0eef0;
+ --holo1: #3ab0a0;
+ --holo2: #8a4ec5;
+ --holo3: #d04e4e;
+ }
+
+ .dark-mode {
--bg: #0a0a0f;
--surface: #111118;
--border: #1e1e2e;
@@ -20,6 +46,7 @@
--red: #cc2222;
--text: #e8e6f0;
--muted: #7a7890;
+ --text-light:#e8e6f0;
--holo1: #5af0d8;
--holo2: #b06ef5;
--holo3: #f06e6e;
@@ -34,6 +61,7 @@
font-weight: 400;
line-height: 1.6;
overflow-x: hidden;
+ transition: background 0.3s, color 0.3s;
}
/* ── NAV ── */
@@ -41,26 +69,48 @@
position: fixed; top: 0; left: 0; right: 0; z-index: 100;
display: flex; align-items: center; justify-content: space-between;
padding: 1rem 2.5rem;
- background: rgba(10,10,15,0.85);
+ background: rgba(245,244,240,0.85);
backdrop-filter: blur(12px);
border-bottom: 1px solid var(--border);
+ transition: background 0.3s;
+ }
+
+ .dark-mode nav {
+ background: rgba(10,10,15,0.85);
}
.logo {
- font-family: 'Cinzel', serif;
- font-weight: 900;
- font-size: 1.3rem;
- letter-spacing: 0.08em;
- background: linear-gradient(135deg, var(--gold), var(--gold-light), var(--gold));
- -webkit-background-clip: text;
- -webkit-text-fill-color: transparent;
- background-clip: text;
+ display: flex;
+ align-items: center;
text-decoration: none;
+ height: 48px;
}
- .logo span {
- color: var(--red);
- -webkit-text-fill-color: var(--red);
+ .logo img {
+ display: block;
+ height: 48px;
+ width: auto;
+ }
+
+ @media (max-width: 600px) {
+ .logo { height: 38px; }
+ .logo img { height: 38px; }
+ }
+
+ .nav-right {
+ display: flex; align-items: center; gap: 1rem;
+ }
+
+ .theme-toggle {
+ background: none; border: 1px solid var(--border);
+ color: var(--muted); cursor: pointer;
+ font-size: 1rem; padding: 0.4rem 0.6rem;
+ border-radius: 4px; line-height: 1;
+ transition: border-color 0.2s, color 0.2s;
+ }
+
+ .theme-toggle:hover {
+ border-color: var(--gold); color: var(--gold);
}
.hamburger {
@@ -79,7 +129,7 @@
width: 24px;
height: 2px;
background: var(--text);
- transition: transform 0.3s, opacity 0.3s;
+ transition: transform 0.3s, opacity 0.3s, background 0.3s;
}
.hamburger.active span:nth-child(1) {
@@ -114,13 +164,14 @@
/* ── MOBILE NAV ── */
@media (max-width: 768px) {
.hamburger { display: flex; }
+ nav { padding: 1rem 1.25rem; }
nav ul {
position: fixed; top: 0; right: -100%;
width: 260px; height: 100vh;
flex-direction: column;
gap: 0;
- background: rgba(10,10,15,0.97);
+ background: rgba(245,244,240,0.98);
backdrop-filter: blur(16px);
border-left: 1px solid var(--border);
padding: 5rem 2rem 2rem;
@@ -128,6 +179,10 @@
z-index: 100;
}
+ .dark-mode nav ul {
+ background: rgba(10,10,15,0.98);
+ }
+
nav ul.open { right: 0; }
nav ul a {
@@ -153,6 +208,13 @@
.hero-glow {
position: absolute; inset: 0; z-index: 0;
+ background:
+ radial-gradient(ellipse 60% 40% at 50% 30%, rgba(201,168,76,0.06) 0%, transparent 70%),
+ radial-gradient(ellipse 40% 30% at 20% 80%, rgba(58,176,160,0.03) 0%, transparent 60%),
+ radial-gradient(ellipse 40% 30% at 80% 70%, rgba(138,78,197,0.03) 0%, transparent 60%);
+ }
+
+ .dark-mode .hero-glow {
background:
radial-gradient(ellipse 60% 40% at 50% 30%, rgba(201,168,76,0.08) 0%, transparent 70%),
radial-gradient(ellipse 40% 30% at 20% 80%, rgba(90,240,216,0.04) 0%, transparent 60%),
@@ -185,8 +247,7 @@
h1 .line1 {
display: block;
- background: linear-gradient(135deg, #fff 30%, var(--gold-light));
- -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
+ color: var(--text);
}
h1 .line2 {
@@ -250,23 +311,46 @@
border-radius: 6px;
position: relative;
overflow: hidden;
- border: 1px solid rgba(255,255,255,0.08);
+ border: 1px solid rgba(0,0,0,0.08);
cursor: pointer;
transition: transform 0.3s, box-shadow 0.3s;
}
+ .dark-mode .holo-card { border-color: rgba(255,255,255,0.08); }
+
.holo-card:hover {
transform: translateY(-8px) rotate(-1deg);
+ box-shadow: 0 20px 40px rgba(0,0,0,0.15), 0 0 20px rgba(201,168,76,0.15);
+ }
+
+ .dark-mode .holo-card:hover {
box-shadow: 0 20px 40px rgba(0,0,0,0.5), 0 0 20px rgba(201,168,76,0.2);
}
.holo-card .card-bg {
position: absolute; inset: 0;
+ background: linear-gradient(135deg, #e8e6f0, #dddae8, #ccc8e0);
+ }
+
+ .dark-mode .holo-card .card-bg {
background: linear-gradient(135deg, #1a1a2e, #16213e, #0f3460);
}
.holo-card .card-shine {
position: absolute; inset: 0;
+ background: linear-gradient(
+ 115deg,
+ transparent 20%,
+ rgba(58,176,160,0.1) 35%,
+ rgba(138,78,197,0.1) 50%,
+ rgba(208,78,78,0.1) 65%,
+ transparent 80%
+ );
+ opacity: 0;
+ transition: opacity 0.3s;
+ }
+
+ .dark-mode .holo-card .card-shine {
background: linear-gradient(
115deg,
transparent 20%,
@@ -275,8 +359,6 @@
rgba(240,110,110,0.15) 65%,
transparent 80%
);
- opacity: 0;
- transition: opacity 0.3s;
}
.holo-card:hover .card-shine { opacity: 1; }
@@ -287,10 +369,10 @@
color: #0a0a0f;
font-family: 'Cinzel', serif;
font-weight: 900;
- font-size: 1.1rem;
- width: 28px; height: 28px;
- display: flex; align-items: center; justify-content: center;
+ font-size: 0.85rem;
+ padding: 3px 8px;
border-radius: 2px;
+ letter-spacing: 0.04em;
}
.holo-card .card-label {
@@ -299,9 +381,12 @@
font-weight: 600;
letter-spacing: 0.1em;
text-transform: uppercase;
- color: rgba(255,255,255,0.6);
+ color: rgba(0,0,0,0.5);
+ text-shadow: 0 0 4px rgba(0,0,0,0.15), 0 0 8px rgba(0,0,0,0.1);
}
+ .dark-mode .holo-card .card-label { color: rgba(255,255,255,0.85); font-size: 0.55rem; text-shadow: 0 0 6px rgba(0,0,0,0.5), 0 0 12px rgba(0,0,0,0.3); }
+
.holo-card .card-art {
position: absolute; inset: 20px 8px 40px;
display: flex; align-items: center; justify-content: center;
@@ -390,7 +475,7 @@
.grade-chip.prime-grade {
grid-column: 1 / -1;
- background: linear-gradient(135deg, rgba(201,168,76,0.08), rgba(240,110,110,0.04), rgba(90,240,216,0.04));
+ background: linear-gradient(135deg, rgba(201,168,76,0.08), rgba(208,78,78,0.04), rgba(58,176,160,0.04));
border-color: rgba(201,168,76,0.5);
display: flex; align-items: center; gap: 1.5rem;
padding: 1.25rem 1.5rem;
@@ -399,6 +484,14 @@
.grade-chip.prime-grade:hover {
border-color: var(--gold);
+ background: linear-gradient(135deg, rgba(201,168,76,0.12), rgba(208,78,78,0.06), rgba(58,176,160,0.06));
+ }
+
+ .dark-mode .grade-chip.prime-grade {
+ background: linear-gradient(135deg, rgba(201,168,76,0.08), rgba(240,110,110,0.04), rgba(90,240,216,0.04));
+ }
+
+ .dark-mode .grade-chip.prime-grade:hover {
background: linear-gradient(135deg, rgba(201,168,76,0.12), rgba(240,110,110,0.06), rgba(90,240,216,0.06));
}
@@ -530,11 +623,16 @@
.team-avatar {
width: 72px; height: 72px;
border-radius: 50%;
- background: linear-gradient(135deg, var(--border), #2a2a3e);
+ background: linear-gradient(135deg, var(--border), #d0ced8);
margin: 0 auto 1rem;
display: flex; align-items: center; justify-content: center;
font-size: 1.8rem;
border: 2px solid var(--border);
+ transition: background 0.3s;
+ }
+
+ .dark-mode .team-avatar {
+ background: linear-gradient(135deg, var(--border), #2a2a3e);
}
.team-name {
@@ -566,22 +664,28 @@
.team-tag.pokemon {
background: rgba(240,200,50,0.15);
- color: #f0c832;
+ color: #b8941e;
border: 1px solid rgba(240,200,50,0.25);
}
+ .dark-mode .team-tag.pokemon { color: #f0c832; }
+
.team-tag.onepiece {
background: rgba(80,180,240,0.15);
- color: #50b4f0;
+ color: #2068a0;
border: 1px solid rgba(80,180,240,0.25);
}
+ .dark-mode .team-tag.onepiece { color: #50b4f0; }
+
.team-tag.ceo {
background: rgba(201,168,76,0.2);
- color: var(--gold-light);
+ color: #8a6e20;
border: 1px solid rgba(201,168,76,0.4);
}
+ .dark-mode .team-tag.ceo { color: var(--gold-light); }
+
.team-bio {
font-size: 0.8rem;
color: var(--muted);
@@ -768,25 +872,57 @@
}
#toast.show { opacity: 1; transform: translateY(0); }
+
+ /* ── SCROLL TO TOP ── */
+ #scroll-top {
+ position: fixed; bottom: 2rem; left: 2rem; z-index: 999;
+ width: 42px; height: 42px;
+ border: 1px solid var(--gold);
+ background: var(--surface);
+ color: var(--gold);
+ font-size: 1.2rem;
+ cursor: pointer;
+ border-radius: 4px;
+ display: flex; align-items: center; justify-content: center;
+ opacity: 0;
+ transform: translateY(12px);
+ pointer-events: none;
+ transition: opacity 0.3s, transform 0.3s, background 0.2s;
+ line-height: 1;
+ }
+
+ #scroll-top.visible {
+ opacity: 1;
+ transform: translateY(0);
+ pointer-events: auto;
+ }
+
+ #scroll-top:hover {
+ background: var(--gold);
+ color: #0a0a0f;
+ }
@@ -808,36 +944,36 @@
Pokémon TCG
- 💔
- K10
+ ✨
+ HVAD
-
+
One Piece TCG
-
☠️
-
K9
+
➰
+
BØJ
-
+
Pokémon TCG
-
🔥
-
K8
-
-
-
-
-
One Piece TCG
-
⚓
+
💥
KNÆK
-
+
+
+
One Piece TCG
+
💧
+
VÅD
+
+
+
Pokémon TCG
-
💧
-
V10
+
⚰️
+
RIP
@@ -879,7 +1015,6 @@
Fra en let bøjning til total, uigenkaldelig destruktion — her er hvad du kan forvente.
-
💀
@@ -897,7 +1032,7 @@
V10Vandbad Premium
V7Vandbad Standard
R5Ridset m. Kærlighed
-
M1Mild Berøring
+
M1Mistet på lager
@@ -1131,6 +1266,7 @@
+