2026-06-04 11:34:48 +02:00

210 lines
5.2 KiB
CSS

/* results.css — results page styles */
/* ════════════════════════════════════════
PAGE LAYOUT
════════════════════════════════════════ */
.results-page {
min-height: calc(100vh - var(--hh));
display: grid;
place-items: center;
padding: 60px 0;
}
.results-inner {
width: 100%;
max-width: 680px;
display: grid;
gap: 24px;
}
/* ════════════════════════════════════════
HEADER
════════════════════════════════════════ */
.results-header {
text-align: center;
}
.results-emoji {
font-size: 3.5rem;
margin-bottom: 16px;
display: block;
animation: pop-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes pop-in {
from { transform: scale(0); opacity: 0; }
to { transform: scale(1); opacity: 1; }
}
.results-title {
font-family: "Syne", sans-serif;
font-weight: 800;
font-size: clamp(2rem, 5vw, 3.4rem);
letter-spacing: -0.03em;
line-height: 1.05;
margin-bottom: 8px;
}
.results-player { font-size: 1rem; color: var(--ink-soft); }
.results-player strong { color: var(--ink); }
/* ════════════════════════════════════════
TOTAL SCORE CARD
════════════════════════════════════════ */
.score-total-card {
background: linear-gradient(135deg, var(--sea) 0%, #159fd4 50%, var(--leaf) 100%);
border-radius: var(--r-xl);
padding: 36px 40px;
text-align: center;
color: var(--white);
box-shadow: 0 16px 40px rgba(26, 127, 196, 0.3);
animation: slide-up 0.5s 0.1s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes slide-up {
from { transform: translateY(30px); opacity: 0; }
to { transform: translateY(0); opacity: 1; }
}
.score-total-label {
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
opacity: 0.78;
margin-bottom: 8px;
}
.score-total-num {
font-family: "Syne", sans-serif;
font-weight: 800;
font-size: clamp(4rem, 10vw, 6rem);
line-height: 1;
letter-spacing: -0.04em;
}
.score-total-max {
font-size: 1.4rem;
opacity: 0.6;
font-weight: 400;
}
.score-grade {
display: inline-block;
margin-top: 12px;
padding: 4px 18px;
border-radius: 999px;
background: rgba(255, 255, 255, 0.22);
font-family: "Syne", sans-serif;
font-weight: 800;
font-size: 1.1rem;
letter-spacing: 0.04em;
}
/* ════════════════════════════════════════
ROUND BREAKDOWN CARD
════════════════════════════════════════ */
.rounds-card {
background: var(--white);
border: 1px solid var(--line);
border-radius: var(--r-xl);
padding: 28px 32px;
box-shadow: var(--shadow-sm);
animation: slide-up 0.5s 0.2s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.rounds-card-title {
font-family: "Syne", sans-serif;
font-weight: 700;
font-size: 1rem;
letter-spacing: -0.01em;
margin-bottom: 20px;
color: var(--ink-soft);
}
.round-rows { display: grid; gap: 14px; }
.round-row {
display: grid;
grid-template-columns: auto 1fr auto;
align-items: center;
gap: 16px;
}
.round-row__label {
font-size: 0.82rem;
font-weight: 600;
color: var(--ink-soft);
white-space: nowrap;
}
.round-row__bar-wrap {
height: 8px;
background: var(--cream);
border-radius: 999px;
overflow: hidden;
}
.round-row__bar {
height: 100%;
border-radius: 999px;
background: linear-gradient(90deg, var(--sea), var(--leaf));
transition: width 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.round-row__score {
font-family: "Syne", sans-serif;
font-weight: 800;
font-size: 0.9rem;
color: var(--sea);
min-width: 36px;
text-align: right;
}
/* Country tags */
.countries-row {
display: flex;
flex-wrap: wrap;
gap: 8px;
margin-top: 8px;
}
.country-tag {
padding: 5px 12px;
border-radius: 999px;
background: var(--sea-dim);
color: var(--sea);
font-size: 0.8rem;
font-weight: 600;
}
/* ════════════════════════════════════════
ACTIONS
════════════════════════════════════════ */
.results-actions {
display: flex;
gap: 12px;
flex-wrap: wrap;
animation: slide-up 0.5s 0.3s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
.results-actions .btn { flex: 1 1 180px; }
/* ════════════════════════════════════════
RESPONSIVE
════════════════════════════════════════ */
@media (max-width: 600px) {
.results-page { padding: 40px 0; }
.score-total-card { padding: 28px 24px; }
.rounds-card { padding: 22px 20px; }
.results-actions .btn { flex-basis: 100%; }
}
@media (max-width: 360px) {
.score-total-num { font-size: 3.4rem; }
}