Commit Graph

120 Commits

Author SHA1 Message Date
popovskik d048226daf Redesign gallery as Pinterest-style album collage cards
- Each album is now a compact collage card (1 large + 2 small photos) with a
  "+N" overlay on the last tile; multiple cards per row (responsive grid)
- Title + photo count + "Read the story" link under each card
- All album photos remain in the DOM (hidden) so the lightbox still browses
  the full set; clicking any tile opens the lightbox at that photo

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 14:43:04 +02:00
popovskik d085e3376a Add Gallery page (per-event albums + lightbox); remove video-thumbnail blur
- New multilingual Gallery page (en/mk/si) with 9 event albums and a
  keyboard-accessible lightbox (prev/next scoped per album)
- Reuses existing event photos; links each album to its event post
- New css/pages/_gallery.css + setupGallery() lightbox in main.js
- "Gallery" link added to the "What We Do" nav (desktop + mobile) site-wide
- Gallery URLs added to sitemap.xml with hreflang
- Landing "Every Student Has a Story": removed backdrop blur on the video
  thumbnail, kept the bluish gradient tint

Note: images/original/ (458 MB of raw source photos, gitignored + unused by
the site) moved out of the working tree to reclaim disk.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 14:28:53 +02:00
popovskik f5dfd8830e Hub redesign, per-language logos, partner carousel, footer + menu fixes
MSOS Hub page:
- "What you can do here": Porsche-style vertical image cards in a
  continuous auto-scrolling marquee with edge fades (real photos placeholders)
- "A glimpse of the space": full-bleed band of 4 connected photos
- "A space we built together": full-bleed image banner with blue gradient overlay
- "Made possible by": partner logo tiles (Cultural Association + Ministry);
  processed Ministry + Cultural Association logos from source art
- Copy/spacing polish; removed em-dashes; larger section spacing; deeper
  final-CTA gradient so it no longer blends into the footer

Branding / partners:
- Per-language MSOS logos (SVG) in header + footer across all pages
- Partner carousel: added Ministry (wide variant), Cultural Association,
  Embassy of North Macedonia, and Spletni Mojster (width-capped); de-duplicated
  logos within each marquee group so new logos appear sooner

Footer:
- Build credit line (Spletni Mojster + Kristijan), clean centered text
- Synced MK/SI footers to EN (added missing About us + Timeline links)

Landing page:
- FAQ short CTA already avatar design (FAQ page kept its Email/Viber block)
- Swapped blurry stock video thumbnail for the real team photo
- Removed the intentional hero-background blur

Navigation:
- Mobile menu: use 100dvh so the language selector is reachable with submenus open
- Desktop: dropdown parents no longer navigate to dead "/#" links

Language suggestion banner:
- Dismissible, browser-language based banner suggesting the matching locale;
  remembers choice in localStorage and waits for the cookie-consent choice
  to avoid overlapping the consent card

Removed stale *.html.bak backup files.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 14:06:53 +02:00
popovskik 04f7653001 Support page: full legal account-holder name + fix partners spacing
- Account holder on the bank card now shows the full legal name (…za
  študentsko podporo in kulturno sodelovanje), matching the Official
  information page, in all three languages
- Fix cramped spacing: the .sup-thanks rule had cut the partners section's
  bottom padding to 24px, pushing the logos against the teal CTA; raised to
  72px for clear separation

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 01:10:26 +02:00
popovskik f057e761cf Fix Official information page: hero layout, short name, SKD activity
- Fix the hero: override the global flex-row .container so the eyebrow,
  title and lead stack and centre (they were laid out in a row)
- Short name -> "Društvo MŠOS za študentsko podporo in kulturno sodelovanje"
  (official kratki naziv, normal case) instead of "MSOS"
- Add the main activity row: SKD 94.999 (activities of other membership
  organisations n.e.c.), and relabel S.15000 as the institutional sector
  (SKIS). All three languages.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 01:05:23 +02:00
popovskik 974daa59f3 Add Official information page (EN/MK/SI) + fill real bank details
New legal/registration reference page at /{lang}/legal/ with the official
details: legal name, registered office, registration number (4128133000),
tax number (44932448), VAT status, SKIS activity, registration date, bank
(NLB d.d.), IBAN SI56 0284 3026 6115 703, SWIFT LJBASI2X, representative,
and contact. New css/pages/_legal.css. Linked as "Official information" in
the footer legal bar on all pages.

Also fills the Support page's bank-transfer card with the same real IBAN/
bank/SWIFT (placeholders removed). SEO block + hreflang + sitemap (210
pages) regenerated.

MK/SI labels AI-drafted -> native review. SWIFT LJBASI2X is inferred from
the IBAN bank code (02 = NLB) -> please double-check.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 00:56:19 +02:00
popovskik de3b65fb15 Add MSOS Hub venue page (EN/MK/SI) + add to Who We Are menu
A promo page for the MSOS Hub — a renovated community/event space in
Ljubljana for gatherings up to 50 people. Sections: hero with quick facts,
the funding/partner story (Ministry of Foreign Affairs and Trade of North
Macedonia, Municipality of Ljubljana, Macedonian Cultural Association
"Macedonia"), what you can do here, what's inside (amenities), an image
placeholder gallery (photos pending — captioned), "made possible by", and a
booking CTA (mailto info@msosorg.com). New css/pages/_hub.css.

'MSOS Hub' added to the Who We Are dropdown (desktop + mobile) on all pages.
SEO block + hreflang + sitemap (207 pages) regenerated.

MK/SI translations are AI-drafted -> native review. Real photos to replace
the captioned placeholders when available.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 00:39:58 +02:00
popovskik b9dee56628 Add Support MSOS page (EN/MK/SI) and wire the header button
New donation/partnership landing page telling the MSOS story of being
community-built: hero, "built by the community" narrative, four ways to
support (partner/sponsor, donate, offer skills/space, spread the word),
"where your support goes" impact, a bank-transfer card (placeholder IBAN/
bank/SWIFT for the org to fill in), a partners thank-you marquee, and a
contact CTA (mailto info@msosorg.com). New css/pages/_support.css.

The header "Support MSOS" button (previously a dead <button>) now links to
/{lang}/support/ on all pages. SEO block + hreflang + sitemap regenerated.

MK/SI translations are AI-drafted -> native review. Bank details are
placeholders pending real IBAN/SWIFT.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 23:54:00 +02:00
popovskik 587fd3d197 Footer dedup, dual contact email, privacy-policy accuracy
- Remove the duplicate Privacy/Cookie links from the footer Organisation
  column; keep them (plus Manage cookies) in the bottom legal bar
- Show both info@msosorg.com and info.msosorg@gmail.com in the privacy +
  cookie policy prose (en/mk/si)
- Fix the privacy policy's now-false "no tracking cookies" sentence to
  reflect consent-based Google Analytics (en/mk/si)

MK/SI policy text is AI-drafted -> native review.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 23:28:04 +02:00
popovskik 7fe36cdb8e Update cookie policy to reflect Google Analytics + consent banner
The policy previously claimed the site set no tracking/analytics cookies
and showed no consent banner - both untrue after adding GA4. Updated
en/mk/si: revised "how we use cookies", added an Analytics cookie type
and a Google Analytics third-party entry (_ga/_gid, Consent Mode), and
rewrote the consent section to describe the banner + "Manage cookies"
withdrawal. Bumped last-updated date. MK/SI text AI-drafted -> review.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 23:08:56 +02:00
popovskik 8067d6a354 Add "Manage cookies" footer link (GDPR consent withdrawal)
Adds a per-language "Manage cookies" link to the footer legal bar on all
201 pages, wired to window.msosOpenConsent() so visitors can change or
withdraw their choice at any time (GDPR requirement). Verified: decline ->
re-open via link -> accept flips analytics consent to granted.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 22:17:13 +02:00
popovskik f24fc704d6 Add GDPR cookie-consent banner (Consent Mode v2)
- consent.js: self-contained, non-blocking bottom banner in EN/MK/SI,
  remembers the choice in localStorage, links to the per-language cookie
  policy. Accept -> gtag consent 'update' granted; Decline stays denied.
- Head GA snippet restores a returning visitor's prior "granted" choice
  before the first hit; loads /consent.js on every page.
- Re-openable via window.msosOpenConsent() for a "manage cookies" link.

Verified in-browser: shows for new visitors, Accept grants + remembers,
reload keeps consent without re-prompting, Slovene text + /si/ policy link.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 18:30:35 +02:00
popovskik 9a6d2c335c Add Google Analytics 4 (G-WVYV807VSS) with Consent Mode v2
- gtag.js injected on all 201 pages via tools/seo_inject.py + on 404.html
- Consent Mode v2 defaults all storage to 'denied' (EEA-safe: tag loads,
  no tracking cookies until a consent banner grants analytics_storage)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 12:52:19 +02:00
popovskik 788084e094 Add article dates, brand OG image, launch SEO checklist
- Add datePublished/dateModified to Article JSON-LD on the 11 dated
  articles (curated once from EN, applied to all languages)
- Replace og-default.jpg with the official brand OG image (1200x630)
- Add docs/launch-seo-checklist.md (go-live steps: redirects, Search
  Console, analytics, rich-result validation, monitoring)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 12:38:20 +02:00
popovskik 314667f692 SEO polish: OG image, favicons, 404, article schema, image optimization
- Add branded 1200x630 og-default.jpg; article pages use their hero as
  og:image, others use the default
- Wire the existing (previously unlinked) favicon set into every page
- Add branded 404.html with root-absolute paths + noindex
- Emit Article + localized BreadcrumbList JSON-LD on all article pages
- Convert 74 heavy served photos to WebP (28MB -> 8.5MB, -70%), rewrite
  references, add loading=lazy/decoding=async to below-fold images and
  fetchpriority=high to heroes (protect LCP)
- Stop tracking images/original/ (458MB of unused source masters; kept on
  disk, gitignored) and ignore .playwright-mcp/

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 12:15:53 +02:00
popovskik b393859467 Add technical SEO foundation, MK/SI about-us + timeline, content fixes
SEO (all 201 pages, en/mk/si):
- Inject canonical, hreflang (en/mk/sl + x-default), Open Graph, Twitter
  cards and Organization JSON-LD via idempotent SEO:START/END block
- Generate multilingual sitemap.xml (xhtml:link alternates) + robots.txt
- Curated meta descriptions for lead-less pages (home, become-a-member,
  faq, news hub, my-route); every page now has a description
- Absolute URLs target final domain msosorg.com, not the temp host
- Add reusable tools/seo_inject.py (+ README)

Content fixes:
- Translate about-us and timeline-and-milestones into MK + SI, wire up
  their pages, and repair the previously-dead "Who We Are" nav links
  across all mk/si pages
- Remove duplicate en/projects/makedonska-studentska-vecer-vo-ljubljana
  (unreferenced; already covered by macedonian-student-night-in-ljubljana)

Locale correctness:
- Normalise Slovene pages to <html lang="sl"> (correct ISO 639-1)
- Map sl->si in main.js so the language-switcher highlight and newsletter
  i18n keep working on Slovene pages (data-lang="si" still maps to /si/)

MK/SI translations and descriptions are AI-drafted; flag for native review.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 11:43:10 +02:00
popovskik 31487ad83e Add "How to open a Slovenian bank account" blog post (EN/MK/SI)
- New scrollspy article page in all three languages, with guide-style
  warning callout, sourced link list + last-checked line, and standard
  author + newsletter blocks
- Blog listing featured card now links to the article and shows the hero
  photo + read-time instead of the "coming soon" placeholder
- Add hero image and cropped MSOS emblem avatar; add .blog-read-time and
  .blog-feat-thumb--image styles

MK/SI translations are AI-produced and need a native-speaker proofread.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-02 10:37:45 +02:00
popovskik e1d596751a Pagination fixes, blog page chooser, Events & Projects redesign
Pagination
- Fix the broken mobile layout on News & Projects: page numbers on top,
  Previous / Next side-by-side below (shared .pagination component)
- Add a page chooser to the Blog: rewrite blog-filter.js to combine the
  topic filter with client-side pagination (page size 6), add the pager
  markup (all 3 languages) and .blog-pagination styles; it auto-hides
  when a topic has one page

Events & Projects — match the Blog/News design
- Hero: uppercase letter-spaced eyebrow, sentence-case bold title, lead
  subtitle, soft gradient; drop the redundant hero subscribe form and the
  placeholder copy (signup still available in the bottom newsletter CTA);
  align MK/SI titles to "Events & projects"
- Filters: News-style pills (dark active), left-aligned, with the thin
  separator line below; .filter-inner wrapper aligns pills/separator with
  the grid
- Spacing: reduce the gap under the header, add space below the filter so
  the separator / Events sub-filter no longer collide with "All our
  projects" (these hero/spacing tweaks also tidy the shared About/Get-to-know/
  Timeline heroes)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 20:30:47 +02:00
popovskik 9e8cbc5876 Homepage refresh, activities redesign + newsletter rollout
Navigation
- Replace "Donate" with a "Support MSOS ❤️" CTA site-wide
- Remove dead nav links (Gallery, Press releases)
- Turn the one-item News dropdown into a direct link

Homepage
- Replace the non-functional "Become part" contact form with a
  "Find your people in Slovenia" join CTA (blue/white gradient band,
  orange button, photo collage), in all three languages
- Fix the placeholder Activities subtitle
- Redesign Activities into card-style tabs with icons; move per-tab
  content into HTML panels and switch by index so the tabs work in
  every language (MK/SI tabs were previously dead)

Newsletter (MailerLite)
- Add the subscribe block to the News hub, news articles, and every
  events/projects page and hub, in all three languages
- Resize/rebalance the block, shrink the privacy line, add top spacing
- Standardise on honest copy (drop the "2,000+ subscribers" claim)
- Load main.js on the News hub pages (they shipped without it, so the
  form and header dropdowns didn't work there)
- Fix a dead privacy-policy link on the makedonska-vecer page
- Document the signup convention in docs/newsletter-signup.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 19:51:59 +02:00
popovskik f492a8a547 Become a Member: bento benefits, merged/redesigned join form, floating CTA, fixes
Why become a member
- Rebuild the benefits grid as a 3x3 bento: 7 icon cards + 2 real event photos
  (with captions), fixes the orphan card, adds hover motion. Swap the blank
  fa-house-heart (Pro) for fa-house-user (Free) on "Feel at home".

Join form
- Merge the duplicate "There is a place for you here" section into the form's
  path step (student / supporter cards now carry the descriptions); drop the
  separate section. New heading "There is a place for you here"; centred layout.
- Redesign the choice cards: colour-coded (student orange / supporter teal)
  icon circles, descriptions, hover lift + "Choose this" reveal.
- Fix the stray "Support MSOS" submit button showing on the path step.

Conversion + polish
- Floating "Become a member" CTA that appears after the hero and hides near the
  form/final CTA, so the ask stays reachable without scrolling to the bottom.
- More space between section titles and their cards (numbers, reals, tests,
  showcase, benefits).
- Testimonials: Elena -> Katerina (Koper); un-swap Ana (Maribor) and Marko
  (Ljubljana); remove the "sample quotes" placeholder note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 13:14:36 +02:00
popovskik 51474b2da5 Polish Become a Member hero: full-bleed gradient, button sizing + interaction, remove tag pills
- Hero gradient now spans edge to edge (full-viewport ::before band behind the
  centred content) and is more colourful/on-brand (warm peach to soft teal).
- Both hero CTAs (Become a member / See what we do) share one size so they align.
- Add hover (lift + shadow + colour shift) and active (press) states to the
  reusable .btn classes, so all buttons site-wide get consistent feedback; plus
  a focus-visible outline for keyboard users.
- Remove the confusing Community/Events/Support/... tag pills (they duplicated
  the hero lead sentence). member.js updated + now emits main.js on the member
  pages so regeneration keeps the nav working.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 12:29:59 +02:00
popovskik f6fab99ebb Remove "Get Involved" nav dropdown (dead links, duplicated the CTA buttons)
The "Get Involved" dropdown (Become a member / Support MSOS) had dead href="#"
links and only duplicated the two top-right buttons (Become a member, Donate).
Removed it site-wide (desktop + mobile, en/si/mk) - 390 blocks across 195 pages,
including the privacy-policy header the generators slice from, so regeneration
stays clean. Nav is now Who We Are / What We Do / For Students / News + the two
pill buttons.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 11:59:34 +02:00
popovskik ac09e9eff5 Update proof-of-means to 507,43 EUR, add announcement page, European number format (EN)
- Update the residence-permit "sufficient means" figure to 507,43 EUR/month
  (Slovenian basic minimum income from 1 April 2026, source gov.si) across the
  guide, FAQ, budget note, sample parent statement and my-route tip; replaces
  the old 484,88 everywhere.
- New standalone news announcement page /<lang>/news/proof-of-means-updated-2026/
  (trilingual), published 1 August 2026, with a clickable gov.si source box and a
  hero image (Pixabay, credited). news.js now supports announcement items
  (slug + body) and shows them newest-first on the homepage and News hub; the
  image doubles as the card thumbnail. Optimised 6.98MB to 255KB.
- Switch English EUR amounts to European format (comma decimal, dot thousands):
  507,43 / 9.600 / 1.000 etc. Only euro-prefixed amounts are touched, so SI/MK
  (which use a euro suffix) are unaffected. New generator eurofmt.js.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 11:48:22 +02:00
popovskik efb3c6ea39 Fix mobile nav/TOC/overflow on article pages + harden membership form
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>
2026-08-01 10:59:55 +02:00
popovskik af40ef9da9 Become a Member: add EUR10/year membership fee to the FAQ
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 00:24:58 +02:00
popovskik a21450c8c8 Add flagship Become a Member page with interactive multi-step form
New trilingual /<lang>/become-a-member/ conversion page: hero with real-photo collage, why-join benefits, animated MSOS-in-numbers, ways to participate, membership-in-real-life and projects showcase (real project photos), testimonials, who-can-join, an adaptive multi-step form (student + supporter flows, conditional fields, progress, personalised messages, validation, success screen), FAQ and final CTA. Site-wide 'Become a member' buttons now link here. Form posts to a Google Form once wired; metrics/testimonials are placeholders to confirm.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-01 00:14:13 +02:00
popovskik 5b14cc2189 News hub: add working pagination that respects the type filter
Client-side paginator (9 per page) reusing the site's pagination styling; page numbers with dots for long lists, Previous/Next with disabled states, resets to page 1 on filter change and hides when a single page.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:56:42 +02:00
popovskik ea9acc4968 Add News hub and wire homepage Latest news to a dated content index
New /<lang>/news/ hub aggregates real projects (title+image read from their pages), placeholder news announcements, and blog items, newest-first with type badges and a type filter. Homepage Latest news now shows the newest dated items as badged cards with a working See all to the hub; the News menu link points there too. Dates in news.js are placeholders to replace with real publish dates.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:50:05 +02:00
popovskik ec794a32e6 Nav cleanup + new Blog page
Remove 'Mentorship Programme' and 'Open calls' from the menus, rename 'Announcements' to 'News and Announcements', and wire the Blog link. Add a trilingual /<lang>/blog/ page with a distinct look: featured strip, client-side topic filters, and a masonry card wall with colour-coded tags (placeholder posts for now).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:39:17 +02:00
popovskik f8e4d765a3 Remove em/en dashes site-wide and fix FAQ hero cropped under fixed header
Replace em/en dashes with commas (or 'to' for number ranges, keeping the euro sign) across the FAQ, home, timeline and project pages; hyphens in compound words are left intact. Increase .faq-hero top padding so the eyebrow/title clear the fixed 80px header.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:14:45 +02:00
popovskik c2ed09544d Rebuild FAQ content from the scraped/brainstormed research set
Replace the ad-hoc FAQ questions with the curated P1 + strong-P2 set from research/faq-questions-and-rating.md: 33 questions across 9 sections, priority-ordered, including the MSOS third-country questions and concrete facts (free bachelor+master, B2 only for specific programmes, no entrance exam except art/architecture/sport/dental-prosthetics, 30 Sept renewal, 8-day address registration, non-EU quotas).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 23:01:35 +02:00
popovskik 4df3651db7 Add trilingual FAQ page and wire FAQ links site-wide
New /<lang>/faq/ page (en/si/mk) with categorised accordion Q&A that link into the Student Welcome Guide, plus a contact/Viber block. Nav 'FAQs' links and 'See all FAQs' buttons across the site now point to it.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:35:12 +02:00
popovskik 5a94c62456 Partners marquee: use real partner logos (all languages), trim logo whitespace
Add the auto-scrolling partners marquee to all three home pages (en/si/mk) with the six official partner logos (Embassy of Slovenia in Skopje, NLB, CTK, DSMP, Kampus, Povezani), trimmed to their artwork so they size consistently.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:25:48 +02:00
popovskik cc849fa6dd Vendor language flags locally and add scrolling partners marquee
Flags: replace flag-icons CDN with local SVGs (images/flags/{gb,si,mk}.svg) referenced as CSS backgrounds, so no external dependency and no per-page path issues. Partners: replace the static home-page logo row with a seamless auto-scrolling, hover-pausing marquee (CSS-only, reduced-motion aware, edge fade).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:16:54 +02:00
popovskik 95b2484117 Redesign language switcher with circular flag icons
Desktop dropdown and mobile modal now show circular country flags (flag-icons) with clean language names and an active-language highlight, driven by the page lang via main.js.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 22:06:10 +02:00
popovskik 44433d4145 Footer: correct legal name spelling and unify left-column text style
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 21:57:21 +02:00
popovskik fc3ac32e7e Rebuild site footer across all pages
Add legal name, real social links (FB/IG/LinkedIn/YouTube), clickable email, guide and section navigation, and 2026 copyright. All links depth-correct per page and translated per language.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 21:46:50 +02:00
popovskik b486a4a70d Upgrade Build My Route into a personal report generator with export and data hook
Adds role, faculty (typed), and budget fields; the configurator now navigates to a new per-language results page (my-route/) carrying the answers in the URL. The results page renders a branded, printable report: profile chips, tailored ordered steps, city/budget/role/level focus tips, key page links, a disclaimer, and a Save-as-PDF/print button (print CSS shows only the report). my-route.js also has a Google Form hook to collect the profile for demographics once configured.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:58:45 +02:00
popovskik f88a9bb6b4 Landing: add featured essentials row and make stages collapsible dropdowns
Adds a 5-card featured row (journey, deadlines, eVS apply, residence permit, accommodation) above the stages, and converts the six stage cards into native details/summary accordions (first open by default, chevron rotates). Links inside open into a compact grid. Cuts the empty white space and visual noise.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:33:41 +02:00
popovskik 13b2bb6eb2 Reorganise landing: group the 30 links into six numbered journey stages
Replaces the flat crowded quicklink wall with six numbered stage cards (Start here, Apply to study, Residence and healthcare, Move and settle in, Everyday student life, After your first year), each with an icon, a one-line description, and its topic links. New guide-cats/guide-cat styles; section retitled to Find your way through the guide.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:25:37 +02:00
popovskik ff22dc1888 Restyle eVS webinar embed: clean rounded shadowed video and first-person caption
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:15:33 +02:00
popovskik dbca25961b Embed eVS application webinar video at top of the eVS guide page
Adds a reusable {video} block (responsive 16:9 youtube-nocookie embed) rendered as a prominent orange callout with title and caption, placed right after the warning box on evs-application-guide so students see it first. Trilingual title/caption.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 12:10:24 +02:00
popovskik 1416f9f344 Fix feedback spam: lock buttons after vote, add comment box on No
Voting now locks the widget for the page view (buttons disabled, chosen one highlighted, thank-you shown); reload to vote again. Fixes the CSS bug where display:flex overrode the hidden attribute so buttons stayed clickable. On No, an optional comment box posts to a separate Comment field. Adds a guarded [hidden] rule and selected/disabled/comment styles.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:41:57 +02:00
popovskik acc39a701f Add Still need help section: contact, Viber community button, Yes/No feedback
Every guide page and the landing now end with a help section: an Email us contact, a prominent Viber community join button, and a Was this page helpful Yes/No widget. guide-feedback.js records the vote in localStorage and on No invites emailing MSOS or asking in Viber; it exposes a sendVote hook for later central collection.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:20:12 +02:00
popovskik 601df2c95e Deepen budget and academic-life: sample monthly budget table + student-rights duration
student-budget gains an illustrative monthly budget table (per-category ranges, ~EUR455-850
total) tied to the EUR484.88 means minimum. academic-life gains a section on what student
status grants and how long the rights last (one programme per level, n+1+1 extensions).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:05:40 +02:00
popovskik 02b217bbe9 Deepen application-flow: info-days practice, aptitude tests, national enrolment rounds
choose-a-programme gains concrete info-day timing (mid-Feb Fri/Sat, visit 2-3), a
question checklist, and the aptitude-test faculty list + timing. admission-and-enrolment
gains the national three-round system, omejitev vpisa (end-April), basic/additional
criteria, and July-October enrolment timing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 11:03:10 +02:00
popovskik 582aab0679 Deepen accommodation page: concrete m2 brokerage + faculty-brokered dorm contacts
Adds the hard fact that self-funded foreign degree students cannot get a subsidised
Studentski dom place, the faculty-brokered non-subsidised route (Dijaski dom Vic), and
the free m2 room-brokerage contact (Studentska hisa SRCe, 080 98 67, svetovalnica.com/sobe).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:52:20 +02:00
popovskik 36b5793e7e Deepen transport page: concrete Nomago e-bike pricing, LPP renewal dates, Urbana+IJPP
Adds student e-bike pricing (EUR30 / EUR25 ISIC, 30-min free, NAZAJVSOLO coupon),
BicikeLJ/MBajk parity, LPP 2025/26 renewal and pre-sale dates, Potniski center address,
the Slovenija intercity option, and the Urbana+IJPP unlock note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:50:57 +02:00
popovskik 18f47b344a Deepen RM/SI 3 page: concrete two-country procedure (FZOM form -> ZZZS certificate)
Splits the health-insurance pathway into the Macedonia side (getting the bilingual
RM/SI 3 from the FZOM branch) and the Slovenia side (converting it into the Potrdilo
MedZZ certificate at ZZZS), and names the actual certificate issued.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:48:31 +02:00
popovskik 6cbaf6460b Deepen residence cluster: eSamonarocanje 8-step walkthrough + sample parent statement
where-to-apply now includes the full portal appointment walkthrough (steps, Slovenian
labels, 120-minute confirmation) and an appointment-day warning. means/address gains a
sample parent support statement and the concrete EUR484.88 monthly figure.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:46:10 +02:00
popovskik dd311a9693 Deepen student-residence-permit page with comprehensive concrete content from MSOS 22-page guide
Rewrites the residence permit page from vague signposting into a full walkthrough:
per-document explanations, exact fees, EUR484.88 means rule, 8-day address
registration, 30 September renewal deadline, sub-90-day rule, and the confirmation
that permits border crossing. Corrects photo size to 33x45mm.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:40:16 +02:00
popovskik 0ba9d96197 Fix Batch 5 SI/MK: proper Slovenian diacritics and Macedonian Cyrillic on organisations page
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:14:27 +02:00
popovskik eef25bfd45 Add v3 Page 29: student organisations and extracurricular life (Batch 5)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:08:50 +02:00
popovskik 865de7aeda Integrate v3 master: work, academic life, cities, budget, wellbeing, renewal, sources (Batch 4)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-31 10:05:12 +02:00
popovskik 28d02f3994 Integrate v3 master: admission and academic-prep cluster (Batch 3)
Rewrites the ten application/admission pages to the deeper v3 English
master, trilingual: complete-student-journey (9-stage timeline),
choose-a-programme, bachelor-application, master-application,
application-deadlines (2026/2027 tables), evs-application-guide,
recognition-of-education, document-preparation, admission-and-enrolment,
tuition-and-scholarships. Adds hero placeholders, Sources sections, and
warning/macedonia/msos boxes. Tuition notes bilateral tuition-free
treatment; deadlines shown per university with verify-latest guidance.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 22:23:21 +02:00
popovskik 7b6787b39d Integrate v3 master: accommodation, arrival, admin, meals, transport (Batch 2)
Rewrites the six living/arrival/benefits pages (student-accommodation,
prepare-to-move, arrival-checklist, administrative-basics, student-meals,
student-transport) to the deeper v3 English master, trilingual, with
hero placeholders and Sources sections. Transport states subsidy applies
regardless of distance (old 2 km rule explicitly retired); meals keep the
current €5.19; dorm eligibility distinction and scam/lease checklists added.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 22:07:42 +02:00
popovskik f23110d6ae Integrate v3 master: residence and health cluster (Batch 1)
Rewrites the six residence/health pages (visa-and-residence-explained,
student-residence-permit, where-to-apply-for-residence,
means-accommodation-address, rm-si-3-health-insurance,
healthcare-in-slovenia) to the deeper v3 English master, trilingual.
Adds backward-compatible generator support for per-page hero-image
placeholders and a "Sources and further information" section, plus
.guide-last-checked styling. Owner decisions applied (student work on
the study permit vs employment permit; sufficient means shown as
"check current"). SI/MK bodies are MSOS working translations pending
native proofread.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 21:58:16 +02:00
popovskik 5c9699b9a5 Add remaining 24 Student Welcome Guide topic pages (Batches A-D)
Completes the 30-page guide: adds programme choice, recognition,
documents, admission, tuition, residence, health, accommodation,
arrival, admin basics, meals, transport, student work, academic
life, study cities, budget, wellbeing, renewal, and official
sources, each in EN/SI/MK. Landing quicklinks now list all 29
topics; adds guide-linklist styling and a links block renderer.

SI/MK bodies of dense administrative content still need a native
proofread before publishing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 12:25:22 +02:00
popovskik cee9f1da10 Add Student Welcome Guide, legal pages, and working newsletter
Student Welcome Guide (Phase 1):
- Landing + 5 topic pages (journey, bachelor, master, deadlines, eVS)
  in EN/SI/MK, reusing the article auto-TOC
- New css/pages/_guide.css components and a 3:1 hero image placeholder
- Functional client-side "Build my route" tool (student-guide.js)
- "Student Welcome Guide" menu link wired site-wide

Legal pages:
- Trilingual Privacy Policy and Cookie Policy (GDPR-oriented,
  MailerLite disclosed, IP RS complaint route)
- Footer legal strip + Organisation column links wired site-wide,
  depth-aware, plus header/footer templates

Newsletter:
- MailerLite subscribe handler in main.js upgrades both form variants
  on every page: validation, double opt-in, inline trilingual status
- Subscribe status styles in css/pages/_projects.css

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-30 02:17:35 +02:00
popovskik bf70a10a14 Finish the Macedonia stories and enrich image captions
Complete the three remaining Macedonia stories with sourced photos, so
both country sections are now fully illustrated.

Articles (EN/SI/MK each), placeholders replaced with real images:
- A Table Full of Macedonia (shared table, tavče gravče, ajvar,
  pastrmajlija).
- Music, Dance and the Moments That Bring Us Together (oro celebration,
  tapan and zurla, kopachkata, an MSOS event).
- History You Can Still Walk Through (Stobi, Heraclea Lyncestis, Kokino,
  Makedonium).
Each image is center-cropped to a uniform 3:2, downscaled, and given an
attribution caption with place, photographer where known, and source
link.

Captions:
- Replace bare one-word labels with a short descriptive phrase in all
  three languages, so a caption reads "Kokino, a prehistoric megalithic
  observatory" rather than just "Kokino". Applies across the food,
  culture, and heritage stories.
- Support an author-only credit with no external link, used for the
  photo from the MSOS archive.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-29 12:02:14 +02:00
popovskik 7502e5db27 Add the remaining Get to Know stories with sourced images
Complete the two country sections with the place, food, culture, and
heritage stories, so every hub card now leads to a full article instead
of a pending page.

Articles (EN/SI/MK each):
- Slovenia: Lake Bled Beyond the Famous View, A First Taste of Slovenian
  Food, Slovenian Habits That May Surprise You, and Slovenia's Stories in
  Stone and Tradition.
- Macedonia: Ohrid, More Than a Postcard, plus the earlier Skopje and
  Ljubljana stories that were still untracked.
- Table, Music and Dance, and History articles for Macedonia are in place
  and still use image placeholders until their photos are sourced.

Images:
- Real, sourced photos wired into every finished article, each with an
  attribution caption (place, photographer where known, source link).
  Images are center-cropped to a uniform 3:2 and downscaled; webp and
  jfif sources converted to jpg.
- Each article's hero image is reused on its hub card.
- Welcome to Macedonia now opens with Macedonia Square in Skopje; the
  Church of St. John at Kaneo photo moves to the Ohrid story.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-29 11:04:06 +02:00
popovskik 8ca03d5886 Add Get to Know Slovenia and Macedonia sections with Welcome articles
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>
2026-07-28 17:56:08 +02:00
popovskik 69a9011b0e Add five 2025 event blogs (EN/SI/MK), remove placeholders
Add the 2025 events batch to the Events & Projects section, each as a
full article page in all three languages following the established
template (auto-generated TOC, sticky mobile header, inline figures):

- Humanitarian sports tournament in Maribor (05 Apr 2025)
- Public gathering for the Kocani victims (21 Mar 2025)
- Paint & Wine at Sunset in Gorizia (08 Mar 2025, with aftermovie embed)
- Public gathering for Frosina Kulakova (08 Feb 2025)
- Watching handball together in Slovenia (25 Jan 2025)

Also:
- Add 33 event images to images/ (oversized JPGs downscaled to <=1600px).
- Add localized cards for the five events to the EN/SI/MK listing pages.
- Remove the two placeholder cards (Bill Walsh, PM mental models) and
  delete the testproject article folders they linked to.
- Convert punctuation dashes in the new copy to commas or sentence
  breaks for a more human tone; keep compound-word hyphens.
- Add docs handover brief for the future Get to know Slovenia and
  North Macedonia sections.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-28 15:44:23 +02:00
popovskik dc1653ab57 Add category filter and functional pagination to projects listing
Add a Proxify-style category filter and real client-side pagination to
the Events & Projects listing across all three languages (EN/SI/MK).

- Filter: a pill nav (All / Events / Student Life / Projects / Webinars)
  plus a contextual sub-chip row for Events (Sports / Cultural /
  Entertainment / Educational). Buttons carry stable data-filter /
  data-subfilter keys and cards carry data-category / data-subcategory,
  so a single language-agnostic handler drives all three locales.
- Pagination: replaces the hardcoded dead 1..10 links with real
  client-side paging (9 per page). Shows a single page today and grows
  automatically as content is added, with windowed page numbers,
  enabled/disabled Prev/Next, and smooth scroll-to-top. Integrates with
  the filter (resets to page 1, repaginates, hides when no matches).
- Show a localized empty-state message when a filter has no results.
- Nudge the filter block up and add space below it for even spacing.
- Drop the duplicate News pill (News has its own top-nav section) and
  retag the placeholder card from announcements to projects so it stays
  reachable.

Verified with jsdom across EN/SI/MK: filtering, sub-filtering, empty
state, single/multi-page navigation, and filter/pagination interaction.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-28 11:04:56 +02:00
Mark Poljanšek 90055985fd Homepage update
Deploy to Production on Develop Push / deploy (push) Successful in 1m43s Details
2025-09-08 22:52:15 +02:00
Mark Poljanšek 37b72526d8 Posodobljen mobilni meni
Deploy to Production on Develop Push / deploy (push) Successful in 1m7s Details
2025-09-04 20:43:28 +02:00
Mark Poljanšek c1094898b7 Popravljen mobilni meni
Deploy to Production on Develop Push / deploy (push) Successful in 59s Details
2025-09-04 16:14:35 +02:00
Mark Poljanšek 0b5d53abb9 posodobitve headerjev in optimizacija slik
Deploy to Production on Develop Push / deploy (push) Successful in 1m7s Details
2025-08-25 16:16:29 +02:00
Mark Poljanšek 4e2eda277f 2 nova članka
Deploy to Production on Develop Push / deploy (push) Successful in 1m11s Details
2025-08-25 15:43:46 +02:00
Mark Poljanšek 79150b21d2 Prvotna verzija spletne strani 2025-08-21 11:06:11 +02:00