diff --git a/index.html b/index.html
index ee50424..b330a95 100644
--- a/index.html
+++ b/index.html
@@ -1594,13 +1594,6 @@
diff --git a/src/js/19-milestone-alert.js b/src/js/19-milestone-alert.js
index c63b534..7742cf2 100644
--- a/src/js/19-milestone-alert.js
+++ b/src/js/19-milestone-alert.js
@@ -1,59 +1,24 @@
// ============================================================
- // FEATURE: "Wait for It" — Milestone Countdown Alert
+ // FEATURE: Milestone Crossing Flash Overlay
// ============================================================
- const MILESTONE_ALERT_THRESHOLD_SECS = 120;
const milestoneAlertShown = new Set(); // ids of milestones already flashed this session
function checkMilestoneAlert() {
const tokens = getCurrentTokens();
const next = getNextMilestone(tokens, MILESTONES);
- const bannerEl = document.getElementById('milestone-alert-banner');
- const msgEl = document.getElementById('milestone-alert-msg');
- const countEl = document.getElementById('milestone-alert-countdown');
- const iconEl = document.getElementById('milestone-alert-icon');
- if (!bannerEl) return;
-
- if (!next) {
- if (!bannerEl.hidden) bannerEl.hidden = true;
- return;
- }
+ if (!next) return;
const secsToNext = (next.tokens - tokens) / TOKENS_PER_SECOND;
- if (secsToNext > MILESTONE_ALERT_THRESHOLD_SECS) {
- if (!bannerEl.hidden) bannerEl.hidden = true;
- return;
- }
-
if (secsToNext <= 0) {
// Milestone just crossed — fire flash once per milestone
if (!milestoneAlertShown.has(next.id)) {
milestoneAlertShown.add(next.id);
- bannerEl.hidden = true;
showMilestoneFlash(next);
awardBadge('witness');
}
- return;
- }
-
- // Within alert window — show / update the banner
- bannerEl.hidden = false;
- if (iconEl) iconEl.textContent = next.icon;
- if (msgEl) {
- msgEl.textContent =
- '\u26A0\uFE0F ' + next.name + ' threshold crossing imminent \u2014 stay to witness it!';
- }
- if (countEl) {
- const s = Math.ceil(secsToNext);
- if (s < 60) {
- countEl.textContent = s + 's';
- } else {
- const mins = Math.floor(s / 60);
- const secs = String(s % 60).padStart(2, '0');
- countEl.textContent = `${mins}m\u00A0${secs}s`;
- }
}
}
diff --git a/styles/social.css b/styles/social.css
index 953b70c..42763e3 100644
--- a/styles/social.css
+++ b/styles/social.css
@@ -124,70 +124,6 @@
.event-log { scroll-behavior: auto; }
}
-/* ---- Milestone Countdown Alert Banner ---- */
-
-.milestone-alert-banner {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- z-index: 1800;
- background: linear-gradient(135deg, #2a0505, #1a0000);
- border-bottom: 2px solid var(--accent);
- padding: 0.55rem 1.25rem;
- display: flex;
- align-items: center;
- gap: 0.75rem;
- justify-content: center;
- flex-wrap: wrap;
- font-size: 0.88rem;
- color: var(--text);
- box-shadow: 0 2px 24px rgba(255, 51, 51, 0.4);
- animation: alert-slide-down 0.35s ease-out;
-}
-
-:root[data-theme="light"] .milestone-alert-banner {
- background: linear-gradient(135deg, #5a0000, #3a0000);
-}
-
-@keyframes alert-slide-down {
- from { transform: translateY(-100%); }
- to { transform: translateY(0); }
-}
-
-.milestone-alert-icon {
- font-size: 1.4rem;
- line-height: 1;
-}
-
-.milestone-alert-msg {
- font-size: 0.85rem;
- color: #ffcccc;
- flex: 1;
- min-width: 0;
- text-align: center;
-}
-
-.milestone-alert-countdown {
- font-family: 'Orbitron', monospace;
- font-size: 1.1rem;
- font-weight: 900;
- color: var(--accent);
- min-width: 3.5rem;
- text-align: right;
- animation: countdown-tick 1s ease-in-out infinite alternate;
-}
-
-@keyframes countdown-tick {
- from { text-shadow: 0 0 8px var(--accent-glow); }
- to { text-shadow: 0 0 22px var(--accent-glow); }
-}
-
-@media (prefers-reduced-motion: reduce) {
- .milestone-alert-banner { animation: none; }
- .milestone-alert-countdown { animation: none; }
-}
-
/* ---- Milestone Crossing Flash Overlay ---- */
.milestone-flash-overlay {
@@ -266,7 +202,6 @@
@media (max-width: 600px) {
.milestone-flash-content { padding: 1.5rem 1.25rem; }
- .milestone-alert-msg { font-size: 0.78rem; }
}
@media (prefers-reduced-motion: reduce) {