242 lines
3.7 KiB
CSS
242 lines
3.7 KiB
CSS
/* 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;
|
||
}
|