Mobile fixes (article, guide, get-to-know, projects pages):
- Remove duplicate main.js include site-wide. footer.js emitted a
<script src=main.js> inside the footer block while pages also load one
before </body>, so DOMContentLoaded ran twice and every tap toggled the
mobile menu / article TOC twice (net no-op). Menu and TOC only worked on
the homepage. Now exactly one main.js per page, before </body>.
- Kill horizontal overflow: add overflow-x: clip to html/body (clips the
off-canvas mobile nav panel without breaking position: sticky, unlike
overflow-x: hidden).
- Reset align-items to stretch in the mobile .article-layout-container
rule; the desktop flex-start made .article-container size to max-content
width in a column flexbox and overflow the viewport.
Membership form hardening (Become a Member):
- Honeypot field + localStorage cooldown (30s gap, max 3/24h) + stronger
email regex; trilingual cooldown alert message.
- Apps Script (setup doc): per-email auto-reply dedupe + daily send cap;
applicant reply is a plain thank-you that never echoes submitted answers.
- Draft HTML welcome email (email-welcome-preview.html) for later use.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Launch the two country sections as a cultural bridge, following the
approved Phase A spec and reusing the Events & Projects structure.
Hubs (6 pages, EN/SI/MK each):
- get-to-know-slovenia and get-to-know-macedonia
- Section header + newsletter form, 6-category filter (Places & Nature,
Culture & Traditions, Food & Flavours, History & Heritage,
People & Identity), 6 launch cards, empty state, client-side pagination.
- Five cards per hub link to articles that arrive in later batches.
Articles (6 pages, EN/SI/MK each):
- Welcome to Slovenia and Welcome to Macedonia, full text with the
auto-generated table of contents and sticky mobile header.
- Real, sourced images with attribution captions (place, photographer,
source link). Wikimedia photos also link the CC BY-SA licence and note
that the image was cropped. Images center-cropped to a uniform 3:2 and
downscaled. Each article's hero image is reused on its hub card.
Site-wide:
- Wire the For Students menu links (desktop and mobile) to the new hubs on
every page and in the header templates; rename the menu label from
North Macedonia to Macedonia (formal name kept in body content).
- Placeholder styles for images and cards still awaiting a sourced photo.
- Add caption styling for the hero image and give the article table of
contents clear separation from the footer.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Pin the site header on scroll (position: absolute -> fixed) so it no
longer disappears when reading.
- Redesign the desktop table-of-contents sidebar: compact spacing and fix
the first-item clipping at 100% zoom (drop fixed-height flex centering in
the scroll container for a flex column with max-height).
- Add the article title above the desktop TOC so readers always know which
article they are in.
- Make the article TOC a site-wide standard: main.js now auto-builds the
sidebar + sticky mobile header from each page's own h1/h2 headings, so all
languages (EN/SI/MK) get it with no per-page HTML. Existing hand-written
EN labels are preserved.
- Update the URL hash to the active section while scrolling (replaceState,
no history spam, no jump).
- Add transliteration for readable anchors in every language: Slovenian
diacritics and Macedonian Cyrillic map to ASCII slugs.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>