ninelands-reddit/src/client/game.css
Lukas Müllner 51d47cd0d0 feat: Realm-Auswahl (Farbe, Volk, Thema, Banner), Freischaltungen, Flair, Ergebnis als Kommentar
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 17:33:53 +01:00

242 lines
3.7 KiB
CSS
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.

/* Spielansicht: oben Ziele, in der Mitte das Brett, unten Figuren – passt hochkant auf ein Handy. */
#app {
height: 100%;
max-width: 34rem;
margin: 0 auto;
padding: 0.5rem 0.6rem;
display: flex;
flex-direction: column;
gap: 0.4rem;
}
.top {
display: flex;
align-items: center;
gap: 0.5rem;
}
.top .title {
font-size: 1.2rem;
color: var(--px-gold);
}
.top .spacer {
flex: 1;
}
.goals {
display: flex;
gap: 0.4rem;
justify-content: space-between;
font-size: 0.95rem;
}
.goal {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
gap: 0.15rem;
padding: 0.2rem 0.3rem;
background: var(--px-wood-dark);
border: 2px solid var(--px-ink);
white-space: nowrap;
}
.goal-star {
color: var(--px-gold);
font-family: var(--font-pixel);
margin-right: 0.2rem;
}
.goal .of {
color: var(--px-parchment-dim);
}
/* Erreichtes Ziel: golden wie im Hauptspiel (goal-chip.done) – alles in Tinte, sonst Gold auf Gold */
.goal.done {
color: var(--px-ink);
background: var(--px-gold);
box-shadow: inset 0 -3px 0 var(--px-gold-dark);
}
.goal.done .of,
.goal.done .goal-star {
color: var(--px-ink);
}
.law {
font-family: var(--font-text);
font-size: 0.8rem;
text-align: left;
background: var(--px-wood-dark);
color: var(--px-parchment-dim);
border-width: 2px;
box-shadow: none;
padding: 0.25rem 0.5rem;
}
.law b {
color: var(--px-parchment);
}
.practice {
margin: 0;
font-size: 0.8rem;
text-align: center;
color: var(--px-gold);
}
/* Brett und Hinweis gemeinsam mittig im freien Raum; das Brett so groß wie möglich, aber quadratisch */
.board-area {
flex: 1 1 auto;
min-height: 0;
container-type: size;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 0.3rem;
}
#app .board-host {
/* 3.2em = Platz für die Hinweiszeile darunter */
width: min(100cqw, 100cqh - 3.2em);
height: auto;
flex: none;
}
.hint {
margin: 0;
min-height: 2.6em;
font-size: 0.85rem;
text-align: center;
width: 100%;
}
.hint.bad {
color: #ff9a8f;
}
.hint.good {
color: var(--px-green);
}
.hint.warn {
color: var(--px-gold);
}
.toolbar {
display: flex;
gap: 0.35rem;
align-items: stretch;
}
.tools {
flex: 1;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 0.35rem;
}
.tool {
display: grid;
justify-items: center;
gap: 0.05rem;
padding: 0.25rem 0.1rem;
font-size: 0.75rem;
background: var(--px-parchment-dim);
}
.tool.active {
background: var(--px-gold);
outline: 2px solid var(--px-parchment);
}
.tool-sprite {
width: 32px;
height: 32px;
image-rendering: pixelated;
}
.tool-cost {
font-size: 0.7rem;
opacity: 0.8;
}
.actions {
display: grid;
gap: 0.35rem;
grid-template-rows: 1fr auto;
}
.actions button.icon {
font-size: 1.4rem;
}
button.end {
font-size: 0.65rem;
padding: 0.2rem 0.3rem;
background: var(--px-parchment-dim);
white-space: nowrap;
}
button.end.suggest {
background: var(--px-gold);
animation: pulse 1.2s steps(2) infinite;
}
@keyframes pulse {
50% {
outline: 2px solid var(--px-parchment);
}
}
@media (prefers-reduced-motion: reduce) {
button.end.suggest {
animation: none;
}
}
button.end.armed {
background: var(--px-red);
color: var(--px-parchment);
}
/* Ergebnis */
.result {
text-align: center;
}
.result .stars.big {
font-size: 2.6rem;
margin: 0;
line-height: 1;
}
.result-nums {
font-size: 1.15rem;
}
.rank {
font-size: 1.1rem;
color: var(--px-parchment);
}
.small {
font-size: 0.8rem;
}
.rules ul {
margin: 0;
padding-left: 1.2rem;
font-size: 0.9rem;
}
.unlocked {
margin: 0;
padding: 0.3rem 0.5rem;
background: var(--px-gold);
color: var(--px-ink);
font-size: 0.85rem;
}