ninelands-reddit/src/client/game.css
Lukas Müllner 50d4394364 feat: Hinweis und hervorgehobener End-game-Knopf, wenn kein Zug mehr Gold bringt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 16:52:52 +01:00

234 lines
3.5 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-ink);
}
.goal .of {
color: var(--px-parchment-dim);
}
/* Erreichtes Ziel: golden wie im Hauptspiel */
.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-gold);
font-family: var(--font-pixel);
margin-right: 0.2rem;
}
.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;
}