-
Plan BPiano BPlano BPlan BПлан БプランB
-
Plan B备用计划Plan B플랜 BPlan Bयोजना बी
-
Piano BPlan BΣχέδιο ΒPlano Bخطة بPlan B
-
Plan Bתוכנית בプランBPlan BПлан БPlan B
-
备用计划Plan BPiano B플랜 BPlan BPlano B
-
Plan Bयोजना बीPlan Bخطة بΣχέδιο ΒPlan B
-
Plan BプランBPlan BПлан БPlan BPiano B
+
Plan BPiano BPlano BPlan BПлан БプランBPlan B备用计划
+
Plan B备用计划Plan B플랜 BPlan Bयोजना बीPlano BPlan B
+
Piano BPlan BΣχέδιο ΒPlano Bخطة بPlan BプランBPlan B
+
Plan Bתוכנית בプランBPlan BПлан БPlan BPiano B플랜 B
+
备用计划Plan BPiano B플랜 BPlan BPlano BПлан БPlan B
+
Plan Bयोजना बीPlan Bخطة بΣχέδιο ΒPlan BPiano Bתוכנית ב
+
Plan BプランBPlan BПлан БPlan BPiano B备用计划Plan B
+
플랜 BPlan BPlano BPlan Bयोजना बीΣχέδιο ΒPlan BPiano B
+
Plan Bخطة بPlan BプランBPlan BПлан БPiano BPlan B
+
Plan Bתוכנית ב备用计划Plan BΣχέδιο ΒPlano BPlan Bयोजना बी
@@ -1221,6 +1254,17 @@ function restartQuiz() {
}
window.scrollTo({ top: 0, behavior: 'smooth' })
+
+ // Replay the page-bg-pattern row-slide and the hero fadeUp cascade
+ // when returning home from quiz/results. We remove .intro-done for
+ // a frame, then re-add it on the next animation frame — the
+ // animation-name change retriggers each keyframe from scratch.
+ document.body.classList.remove('intro-done')
+ requestAnimationFrame(() => {
+ requestAnimationFrame(() => {
+ document.body.classList.add('intro-done')
+ })
+ })
}
// ══════════════════════════════════════
diff --git a/src/styles.css b/src/styles.css
index 79ea0fb..b39ff04 100644
--- a/src/styles.css
+++ b/src/styles.css
@@ -64,6 +64,7 @@ body { background: #FAFAFA; color: var(--text); font-family: var(--font-body); f
font-size: 20px;
letter-spacing: 0.02em;
color: var(--white);
+ text-decoration: none;
}
.logo .b { color: var(--red); }
.header-right { display: flex; align-items: center; gap: 12px; }
@@ -151,9 +152,10 @@ body { background: #FAFAFA; color: var(--text); font-family: var(--font-body); f
white-space: nowrap;
font-family: var(--font-display);
font-weight: 400;
- /* Mobile floor 42px → desktop ceiling 60px so the embossed pattern
- reads comfortably across viewport sizes. */
- font-size: clamp(42px, 8vw, 60px);
+ /* 25% larger than before — mobile floor 52px, desktop ceiling 75px.
+ Keeps the embossed pattern readable on small screens and scales
+ up assertively on wide ones. */
+ font-size: clamp(52px, 10vw, 75px);
letter-spacing: 0.04em;
/* Emboss: text colour matches the panel (#FAFAFA on every page now);
only the shadows render — white highlight top-left, faint dark
@@ -185,13 +187,16 @@ body.intro-done .page-bg-pattern .bg-row:nth-child(odd) {
body.intro-done .page-bg-pattern .bg-row:nth-child(even) {
animation: bgRowSlideRight 1.1s cubic-bezier(0.22, 0.61, 0.36, 1) forwards;
}
-body.intro-done .page-bg-pattern .bg-row:nth-child(1) { animation-delay: 0.00s; }
-body.intro-done .page-bg-pattern .bg-row:nth-child(2) { animation-delay: 0.12s; }
-body.intro-done .page-bg-pattern .bg-row:nth-child(3) { animation-delay: 0.24s; }
-body.intro-done .page-bg-pattern .bg-row:nth-child(4) { animation-delay: 0.36s; }
-body.intro-done .page-bg-pattern .bg-row:nth-child(5) { animation-delay: 0.48s; }
-body.intro-done .page-bg-pattern .bg-row:nth-child(6) { animation-delay: 0.60s; }
-body.intro-done .page-bg-pattern .bg-row:nth-child(7) { animation-delay: 0.72s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(1) { animation-delay: 0.00s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(2) { animation-delay: 0.10s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(3) { animation-delay: 0.20s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(4) { animation-delay: 0.30s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(5) { animation-delay: 0.40s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(6) { animation-delay: 0.50s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(7) { animation-delay: 0.60s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(8) { animation-delay: 0.70s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(9) { animation-delay: 0.80s; }
+body.intro-done .page-bg-pattern .bg-row:nth-child(10) { animation-delay: 0.90s; }
@keyframes bgRowSlideLeft {
from { opacity: 0; transform: translateX(-160px); }
to { opacity: 1; transform: translateX(0); }
@@ -318,6 +323,14 @@ html[lang="en"] .hero h1 { font-size: calc((100vw - 32px) / 5.2); }
color: transparent;
padding: 0.12em 0.08em 0.2em;
}
+/* Mobile — swap to the lighter paint-gloss filter so the drop shadow
+ is dialled back. Same gradient + gloss, gentler shadow underneath. */
+@media (max-width: 767px) {
+ .hero h1.paint-3d {
+ filter: url(#paintGlossLight);
+ -webkit-filter: url(#paintGlossLight);
+ }
+}
.hero-sub {
position: relative; z-index: 1;
font-family: var(--font-body);