slop game oder so

This commit is contained in:
2026-09-24 17:57:54 +02:00
commit 4c997eee21
166 changed files with 14976 additions and 0 deletions
+231
View File
@@ -0,0 +1,231 @@
/*
* Glory Defense – Seiten- und Overlay-Styles.
* Das Spiel selbst zeichnet Phaser ins Canvas; hier liegen nur Seitenrahmen,
* der Disclaimer und die HTML-Overlays (Dialoge, Namenseingabe).
*/
:root {
--gd-navy: #0d1321;
--gd-navy-2: #1b2438;
--gd-crimson: #c1121f;
--gd-gold: #f2c14e;
--gd-cream: #f4ecd8;
--gd-muted: #a9b1c4;
/* Nur Systemschriften: nichts wird mitgeliefert, keine Lizenzfragen. */
--gd-font: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Black", sans-serif;
--gd-font-body: "Segoe UI", system-ui, -apple-system, sans-serif;
}
* { box-sizing: border-box; }
html, body {
margin: 0;
height: 100%;
background: var(--gd-navy);
color: var(--gd-cream);
font-family: var(--gd-font-body);
}
a { color: var(--gd-gold); }
/* ------------------------------------------------------------------ Spielseite */
.game-page { overflow: hidden; }
#game-shell {
position: relative;
width: 100vw;
height: 100vh;
height: 100dvh;
}
#game {
position: absolute;
inset: 0;
}
/* Canvas nicht auswählbar/verschiebbar, sonst stört das beim schnellen Klicken. */
#game canvas {
display: block;
user-select: none;
-webkit-user-select: none;
touch-action: none;
}
.boot-message {
position: absolute;
inset: auto 0 45% 0;
margin: 0;
text-align: center;
font-family: var(--gd-font);
letter-spacing: 0.08em;
color: var(--gd-gold);
}
.boot-message--error { color: #ff8a8a; }
/* ------------------------------------------------------------------ Overlays */
#overlay-root {
position: absolute;
inset: 0;
pointer-events: none;
}
.overlay {
position: absolute;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
padding: 16px;
background: rgba(8, 11, 20, 0.72);
pointer-events: auto;
}
.overlay__panel {
width: min(720px, 100%);
max-height: 100%;
overflow-y: auto;
padding: 28px 32px;
background: var(--gd-navy-2);
border: 3px solid var(--gd-gold);
box-shadow: 0 0 0 6px var(--gd-crimson), 0 18px 48px rgba(0, 0, 0, 0.6);
}
.overlay__actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
margin-top: 24px;
}
/* ------------------------------------------------------------------ Disclaimer */
.disclaimer__title {
margin: 0 0 12px;
font-family: var(--gd-font);
font-size: 1.6rem;
letter-spacing: 0.06em;
color: var(--gd-gold);
text-transform: uppercase;
}
.disclaimer__lead { font-size: 1.15rem; }
.disclaimer__list {
margin: 0;
padding-left: 1.2em;
line-height: 1.55;
}
.disclaimer__list li + li { margin-top: 8px; }
/* ------------------------------------------------------------------ Formulare */
.button {
display: inline-block;
padding: 10px 22px;
border: 2px solid var(--gd-gold);
background: var(--gd-crimson);
color: var(--gd-cream);
font: 700 1rem var(--gd-font-body);
letter-spacing: 0.06em;
text-transform: uppercase;
text-decoration: none;
cursor: pointer;
}
.button:hover, .button:focus-visible {
background: var(--gd-gold);
color: var(--gd-navy);
outline: none;
}
.button--secondary { background: transparent; }
.field {
display: flex;
flex-direction: column;
gap: 6px;
margin-top: 16px;
}
.field__label {
font-weight: 700;
letter-spacing: 0.03em;
color: var(--gd-gold);
}
.field__input {
padding: 10px 12px;
border: 2px solid var(--gd-muted);
background: var(--gd-navy);
color: var(--gd-cream);
font-size: 1.1rem;
}
.field__input:focus { border-color: var(--gd-gold); outline: none; }
.field__hint { color: var(--gd-muted); font-size: 0.9rem; }
.field__error { color: #ff8a8a; min-height: 1.2em; }
/* ------------------------------------------------------------------ Game Over */
.stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
gap: 10px;
margin: 18px 0 8px;
}
.stats__row {
padding: 10px 12px;
background: var(--gd-navy);
border-left: 4px solid var(--gd-crimson);
}
.stats dt { color: var(--gd-muted); font-size: 0.85rem; }
.stats dd { margin: 4px 0 0; font: 600 1.35rem var(--gd-font); color: var(--gd-gold); }
.highscore-list {
margin: 16px 0 0;
padding: 0;
list-style: none;
}
.highscore-list li {
display: grid;
grid-template-columns: 3em 1fr auto 4em;
gap: 12px;
padding: 6px 10px;
border-bottom: 1px solid rgba(169, 177, 196, 0.2);
}
.highscore-list__score, .highscore-list__wave { text-align: right; font-variant-numeric: tabular-nums; }
.highscore-list__own { background: rgba(242, 193, 78, 0.18); color: var(--gd-gold); font-weight: 600; }
/* ------------------------------------------------------------------ Eigenständige Seiten */
.page {
display: flex;
align-items: center;
justify-content: center;
min-height: 100vh;
padding: 16px;
}
.page__panel {
width: min(760px, 100%);
padding: 32px;
background: var(--gd-navy-2);
border: 3px solid var(--gd-gold);
box-shadow: 0 0 0 6px var(--gd-crimson);
}
.page__actions { margin-top: 28px; }
@media (max-width: 600px) {
.overlay__panel, .page__panel { padding: 20px 18px; }
.disclaimer__title { font-size: 1.25rem; }
}