Footer: curved top edge with scroll-to-top button
- SVG curved top notch matching the Figma (page color shows through the dip)
- Centered scroll-to-top button (ChevronsUp) with smooth scroll, gold hover
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
three-globe globe (hex polygons + arcs), navbar chevron cleanup
- Globe: real three-globe World via r3f <primitive> (no JSX augmentation),
hex-polygon countries + animated steel-trade arcs, bundled Natural Earth data
- Header: type nav Section.Icon as LucideIcon (fixes r3f JSX type clash);
remove chevron from non-dropdown items (only radar/media dropdowns keep it)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
Home polish: brand copy, footer, section reorg, smaller reports, split casts
- Tab title -> "اندیشکده فولاد آینده"; header/footer subtitle -> The Steel Futures Institute
- Footer: brand description, social links (LinkedIn/Twitter/Aparat/Telegram), drop nav links
- Remove de-zoom HeroSection; SpreadFeatures is now the hero
- Comment out InternalNewsSection + RiskSection (restorable)
- Move IntegrationsSection under RadarTechSection
- FactoryReportsScroll: compact 4-up row instead of large masonry
- Split Videocast and Podcast into separate full-width sections (only prop)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@
Security fixes:
- JWT_SECRET/ADMIN_PASSWORD fail-fast on missing/weak values
- Switch admin auth from localStorage to httpOnly cookie
- Rate limiting on login (10/15min) and contact form (3/10min)
- CORS whitelist via ALLOWED_ORIGINS env var
- Helmet with CSP, frameguard
- Escape HTML in contact email and admin panel innerHTML
- Remove SVG from upload whitelist
- err.message no longer leaked in API responses
- MAIL_TO moved to env var
- JWT expiry 7d → 24h
Navbar:
- Rename: رادار آینده → آیندهپژوهی و رصد هوشمند
- Rename: مرز فناوری → فناوری و نوآوری
- Rename: نبض صنعت → بازار و زنجیره فولاد
- Add: پایداری و فولاد سبز (/sustainability)
- Add: ژئوپلیتیک و اقتصاد جهانی (/geopolitics)
- Remove: رویدادها
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Shift design tokens from warm beige/brown to cool off-white + slate inks
with vivid corporate red/amber/green accents
- Rename brand from "اندیشکده فولاد ایران" / "Iran Steel Policy Institute"
to "اندیشکده فولاد آینده" / "Future Steel Policy Institute"
- Replace JS-clone seamless-loop in RiskSection with JSX-doubled items,
immune to StrictMode double-invocation that was leaving the ticker blank
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Header: replaced 3-bar masthead with slim dark meta strip + 68px main bar
(brand · centered nav · search/CTA actions). ~60% shorter than before.
- Home: added numbered SectionLabel chapter markers (01–07) between
sections with red accent bar; alternated paper/paper-2 backgrounds
for clearer section separation.
- Typography: wrapped base h1–h4 and p element styles in @layer base so
Tailwind utilities (text-white, etc.) can override defaults. Previously
unlayered p { color: var(--ink-3) } was overriding all carousel white
titles, making them appear grey-brown.
- Carousel: removed pagination arrows; strengthened title gradient,
added top centered red category badge, text-shadow + generous padding
so titles never crash into card edges. Modal hero received same
treatment with overflow-safe inset positioning.
- PlansSection: rewrote with compact shadcn-pricing pattern; price
reduced from 42px to 26px; featured plan elevated with translateY
and shadow; star badge for "Popular" plan.
- TeamSection: redesigned member cards more compact (avatar 60→44px,
reports count moved to top-end, line-clamp on bio).
- Removed inline padding overrides across all sections so Tailwind
max-md:px-5 mobile responsiveness actually works.