Slogan: „Personality · Impact · Success“ steht nicht mehr im Hero unter dem Monogramm, sondern als dunkle Plakette mit Goldrand mittig auf der Naht zwischen Cover und Abschnitt 01 – auf beiden Sprachfassungen englisch (lang="en"). Neue optionale `lead`-Stelle in <Section/>; Inhalt unter `positioning.slogan`. Das Monogramm hat ab lg wieder seine alte Größe, das Cover ist 2.5 rem kürzer als der Viewport, damit die Plakette schon auf dem ersten Bildschirm ganz zu sehen ist. Unter lg hält `pb-10` den Kennenlern-Knopf frei von der halben Plakette. Headline: Anelias Wortlaut „Mit starker Persönlichkeit und souveräner Wirkung zum Erfolg!“ – drei Betonungen, Gold-Verlauf nur auf „Erfolg“. Englisch: „Strong personality, assured impact – your way to success!“. AGENTS.md und globals.css beschreiben die Trias-Ausnahme jetzt mit dem Slogan auf der Naht. Trainings: viertes Modul „HR-Teambuilding & Konfliktlösung“ aus ihrer Nachricht (Dauer offen, Text braucht ihre Freigabe – CONTENT_TODO), vierte Bremse, Subline und Meta-Beschreibung mit HR; „Konflikte“ wandert aus dem Leadership- Modul ins HR-Modul. Messeseite (Themenzeile 02) und „Für wen“ auf der Startseite ziehen mit. Die englische Modultabelle zeigt jetzt englische Spaltenköpfe (`modules.labels`, „Audience“ passt einzeilig) statt „Modul | Ziel | Für wen“. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
52 lines
3.1 KiB
Markdown
52 lines
3.1 KiB
Markdown
<!-- BEGIN:nextjs-agent-rules -->
|
||
|
||
# This is NOT the Next.js you know
|
||
|
||
This version has breaking changes — APIs, conventions, and file structure may all differ from your training data. Read the relevant guide in `node_modules/next/dist/docs/` (resolved from this file's directory; in monorepos the `next` package may not be visible from the repo root) before writing any code. Heed deprecation notices.
|
||
|
||
This block is written and re-added by `next dev` — verify at `node_modules/next/dist/server/lib/generate-agent-files.js`. Removing it from a diff only re-creates the uncommitted change; committing it with your work keeps the tree clean.
|
||
|
||
<!-- END:nextjs-agent-rules -->
|
||
|
||
# Anelia Wolf – Projektregeln
|
||
|
||
Dieser Abschnitt steht bewusst UNTER dem generierten Block oben (`next dev`
|
||
schreibt den Block neu, dieser Teil bleibt).
|
||
|
||
## Harte Regeln
|
||
|
||
- `src/components/brand/WolfMark.tsx` wird **nie** bearbeitet.
|
||
- Kein `localStorage`, kein `sessionStorage`, keine Cookies.
|
||
- Keine externen Requests, Skripte, Schriften oder iframes – die
|
||
Datenschutzerklärung sagt das zu (`src/content/legal.ts`, Ziffer 2/3/6).
|
||
- Radius 0, keine Schatten, kein Fettdruck.
|
||
- Playfair Display (`font-display`) nie unter 28 px. Unter `lg` weicht Text auf
|
||
`font-sans` (Source Sans 3) aus, statt die Display-Schrift zu verkleinern.
|
||
- Betonungswort einer Headline: genau ein `<em>`. Kursiv, und auf `data-theme="dark"`
|
||
zusätzlich golden – das macht eine Regel in `globals.css`, nicht die Komponente.
|
||
Auf hellem Grund bleibt es rein typografisch (Gold-Verlauf auf Elfenbein = 2,4:1).
|
||
Einzige Ausnahme: eine Headline, die eine Aufzählung IST – die Trias der Startseite
|
||
(„Mit starker *Persönlichkeit* und souveräner *Wirkung* zum *Erfolg*!“, Anelias
|
||
Wortlaut), weil sie den Slogan „Personality · Impact · Success“ auf der Naht darunter
|
||
aufnimmt. Dann trägt jedes Wort ein `<em>`, den Gold-Verlauf aber weiterhin nur
|
||
eines; die übrigen bekommen `em-plain` (`Headline.parts[].gold` im Inhalt steuert das).
|
||
- Der Slogan steht NICHT im Hero, sondern als Plakette auf der Naht Cover → 01
|
||
(`positioning.slogan`, `<SloganPlate/>` in Positioning.tsx; Entscheidung 02.10.2026).
|
||
- Goldene Schrift nur auf `[data-theme="dark"]`; auf Ivory gilt `--gold-deep`.
|
||
- Sichtbare Copy lebt ausschließlich in `src/content/*.ts`, nie im JSX.
|
||
|
||
## Konventionen
|
||
|
||
- Jeder Top-Level-Block malt seinen eigenen Grund (`data-theme` + Regel in
|
||
`globals.css`); die Naht zwischen zwei Gründen ist die goldene Haarlinie.
|
||
- Scroll-Reveals animieren **nur** `opacity` (+ `y`) – nie `autoAlpha` oder
|
||
`visibility`, sonst fallen Links aus der Tab-Reihenfolge.
|
||
- Alle Animationen laufen über `gsap.matchMedia` mit `MM.reduce`/`MM.ok`;
|
||
GSAP ist die einzige Animations-Runtime im Bundle.
|
||
- Ein Ankersprung nutzt genau einen Offset: `anchorOffset()` in
|
||
`TransitionLink.tsx` bzw. `scroll-margin-top` in `globals.css`.
|
||
- `ScrollTrigger.refresh()` nur über `refreshSoon()` aus `@/lib/gsap`.
|
||
- Jede `<section>` braucht eine Überschrift (notfalls das Eyebrow als `<h2>`).
|
||
- Platzhalter immer über `ph()`; der Build-Guard in `src/lib/legal.ts` stoppt
|
||
den Launch-Flip, solange irgendwo noch ein „[…]“ steht.
|