39016-vm/assets/css/custom.css
2026-03-05 19:57:20 +00:00

409 lines
6.9 KiB
CSS

:root {
color-scheme: light;
--bg: #fff8f2;
--surface: #fffdf9;
--border: #eadfce;
--text: #2e2118;
--muted: #7a6151;
--accent: #a54f2a;
--accent-soft: #f6e7d8;
}
* {
box-sizing: border-box;
}
body {
font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
background: radial-gradient(circle at top right, #ffe8d3 0, var(--bg) 45%);
color: var(--text);
letter-spacing: -0.01em;
}
a {
color: inherit;
}
.hero-card,
.quiz-card,
.info-card {
background: var(--surface);
border: 1px solid var(--border);
border-radius: 10px;
padding: 2rem;
box-shadow: 0 12px 30px rgba(102, 58, 28, 0.08);
}
.stat-stack {
border: 1px solid var(--border);
border-radius: 10px;
background: #fff4e8;
}
.score-badge {
background: #fff4e8;
border: 1px solid var(--border);
border-radius: 10px;
padding: 0.75rem 1rem;
min-width: 140px;
text-align: center;
}
.quiz-progress-wrap {
border: 1px solid var(--border);
border-radius: 12px;
background: #fff7ef;
padding: 0.8rem 0.95rem;
}
.quiz-progress-bar {
width: 100%;
height: 13px;
border-radius: 999px;
background: #f3dfcc;
overflow: hidden;
}
.quiz-progress-fill {
height: 100%;
width: 0;
border-radius: inherit;
background: linear-gradient(90deg, #f59e0b, #22c55e);
transition: width 0.35s ease;
}
.question-area {
border: 1px solid var(--border);
border-radius: 12px;
padding: 1.5rem;
background: #fff8f0;
}
.option-list {
margin: 0;
padding: 0;
display: grid;
gap: 0.75rem;
}
#quiz #questionText {
font-size: clamp(1.5rem, 2.3vw, 2.25rem);
line-height: 1.25;
font-weight: 700;
}
.option-item {
border: 1px solid var(--border);
background: #fffdfa;
border-radius: 10px;
padding: 1rem 1.15rem;
display: flex;
align-items: center;
gap: 0.75rem;
font-weight: 600;
font-size: 1.12rem;
min-height: 74px;
cursor: pointer;
transition: 0.2s ease;
}
.option-item:hover {
border-color: #d39a72;
transform: translateY(-1px);
}
.option-item-selected {
border-color: #c06a3a;
background: #fff1e7;
}
.option-item-correct {
border-color: #16a34a;
background: #f0fdf4;
}
.option-item-correct-pop {
animation: correctPop 0.9s cubic-bezier(0.2, 0.9, 0.28, 1.2);
box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.35);
}
.option-item-wrong {
border-color: #dc2626;
background: #fef2f2;
}
.option-index {
width: 42px;
height: 42px;
border-radius: 10px;
background: var(--accent-soft);
color: var(--accent);
display: grid;
place-items: center;
font-weight: 700;
flex: 0 0 42px;
}
.answer-pill {
background: #7a3f1f;
color: #fff;
border-radius: 999px;
padding: 0.25rem 0.75rem;
font-size: 0.75rem;
text-transform: uppercase;
letter-spacing: 0.08em;
}
.answer-figure {
width: 100%;
max-width: 360px;
}
.answer-image-trigger {
border: none;
background: transparent;
padding: 0;
width: 100%;
text-align: left;
cursor: zoom-in;
}
.answer-image,
.summary-image {
width: 100%;
height: auto;
border-radius: 10px;
border: 1px solid var(--border);
object-fit: cover;
}
.zoom-hint {
display: inline-block;
margin-top: 0.5rem;
font-size: 0.85rem;
color: var(--muted);
}
.fact-list {
margin: 0;
padding-left: 1.1rem;
color: var(--muted);
}
.fact-list li + li {
margin-top: 0.3rem;
}
.summary-image {
margin-bottom: 0.75rem;
aspect-ratio: 16 / 9;
}
.summary-list {
display: grid;
gap: 1rem;
}
.summary-item {
border: 1px solid var(--border);
border-radius: 10px;
padding: 1rem;
background: #fffdfa;
}
.summary-item p {
margin-bottom: 0.35rem;
}
.btn-primary {
background: #a54f2a;
border-color: #a54f2a;
}
.btn-primary:hover,
.btn-primary:focus {
background: #8f4321;
border-color: #8f4321;
}
.btn-dark {
background: #7a3f1f;
border-color: #7a3f1f;
}
.btn-dark:hover,
.btn-dark:focus {
background: #663419;
border-color: #663419;
}
code {
background: #fbe9da;
padding: 0.1rem 0.35rem;
border-radius: 6px;
}
@media (max-width: 767px) {
.hero-card,
.quiz-card,
.info-card {
padding: 1.5rem;
}
}
body.quiz-live .tv-extra {
display: none !important;
}
body.quiz-live main.container {
max-width: 100%;
margin-top: 0 !important;
margin-bottom: 0 !important;
padding-top: 1rem;
padding-bottom: 1rem;
}
body.quiz-live #quiz {
border: none;
box-shadow: none;
background: transparent;
padding: 0;
}
body.quiz-live #quiz .quiz-meta,
body.quiz-live #quiz #revealBtn {
display: none !important;
}
body.quiz-live #quiz .quiz-progress-wrap {
margin-bottom: 1rem !important;
padding: 0.95rem 1.1rem;
}
body.quiz-live #quiz .quiz-progress-bar {
height: 18px;
}
body.quiz-live #quiz .quiz-actions {
display: flex;
justify-content: center;
}
body.quiz-live #quiz .question-area {
min-height: 52vh;
padding: 2rem;
display: flex;
flex-direction: column;
justify-content: center;
}
body.quiz-live #quiz #questionText {
font-size: clamp(2rem, 3.8vw, 3.1rem);
margin-bottom: 1.25rem !important;
}
body.quiz-live #quiz .option-list {
gap: 1rem;
}
body.quiz-live #quiz .option-item {
font-size: clamp(1.3rem, 2.2vw, 1.9rem);
padding: 1.2rem 1.4rem;
min-height: 92px;
border-radius: 14px;
}
body.quiz-live #quiz .option-index {
width: 56px;
height: 56px;
flex-basis: 56px;
border-radius: 12px;
font-size: 1.25rem;
}
body.quiz-live #quiz #answerArea {
margin-top: 1rem !important;
}
body.lightbox-open {
overflow: hidden;
}
.image-lightbox {
position: fixed;
inset: 0;
background: rgba(41, 22, 11, 0.92);
z-index: 1060;
display: flex;
align-items: center;
justify-content: center;
padding: 1rem;
}
.image-lightbox-img {
max-width: min(96vw, 1700px);
max-height: 90vh;
border-radius: 12px;
border: 1px solid rgba(255, 255, 255, 0.18);
box-shadow: 0 24px 70px rgba(0, 0, 0, 0.5);
object-fit: contain;
}
.image-lightbox-close {
position: absolute;
top: 0.8rem;
right: 1rem;
border: none;
background: rgba(255, 255, 255, 0.14);
color: #fff;
font-size: 2rem;
line-height: 1;
width: 2.4rem;
height: 2.4rem;
border-radius: 999px;
}
.correct-spark {
position: fixed;
width: var(--size, 14px);
height: var(--size, 14px);
border-radius: 5px;
pointer-events: none;
z-index: 1100;
box-shadow: 0 0 14px rgba(255, 180, 75, 0.75);
transform: translate(-50%, -50%) scale(0.55);
animation: sparkBurst 1.15s ease-out forwards;
}
@keyframes correctPop {
0% {
transform: scale(1);
box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.42);
}
35% {
transform: scale(1.1);
box-shadow: 0 0 0 28px rgba(34, 197, 94, 0);
}
65% {
transform: scale(1.04);
}
100% {
transform: scale(1);
box-shadow: 0 0 0 0 rgba(34, 197, 94, 0);
}
}
@keyframes sparkBurst {
0% {
opacity: 0;
transform: translate(-50%, -50%) scale(0.45) rotate(0deg);
}
18% {
opacity: 1;
}
100% {
opacity: 0;
transform: translate(calc(-50% + var(--dx)), calc(-50% + var(--dy))) scale(0.25) rotate(var(--rot));
}
}