/* ============================================================
   BURG LEUK — Illustrationssystem (figürliche Sujets)
   Eine Farbe · massive Silhouette + feine Linie · Negativraum-Augen.
   Recolor nur über --sil / --line / --eye. --eye = Hintergrundfarbe.
   Mikroanimationen immer an, additiv, reduced-motion-sicher.
   ============================================================ */
.ill{ --sil:#1D1D1B; --line:#1D1D1B; --eye:#FDFCFA; display:block; width:100%; height:100%; overflow:visible; }
.ill.neg{ --sil:#FDFCFA; --line:#FDFCFA; --eye:#1A1611; }
.ill .sil{ fill:var(--sil); }
.ill .limb{ stroke:var(--sil); fill:none; stroke-linecap:round; stroke-linejoin:round; }
.ill .line{ stroke:var(--line); fill:none; stroke-linecap:round; stroke-linejoin:round; }
.ill .eye{ fill:var(--eye); }

/* micro-motion */
.ill .m-bob,.ill .m-sway-feet,.ill .m-breathe,.ill .m-swing,.ill .m-pendulum,.ill .m-drift,
.ill .m-sway,.ill .m-wind,.ill .m-shimmer,.ill .m-spin,.ill .m-wave,.ill .m-rise,.ill .m-nudge,.ill .m-eq{ transform-box:fill-box; }
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes swayFeet{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(1.1deg)}}
@keyframes breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.016)}}
@keyframes swing{0%,100%{transform:rotate(-3.4deg)}50%{transform:rotate(3.4deg)}}
@keyframes pendulum{0%,100%{transform:rotate(-4.5deg)}50%{transform:rotate(4.5deg)}}
@keyframes drift{0%{transform:translateX(0);opacity:.55}50%{transform:translateX(5px);opacity:.85}100%{transform:translateX(0);opacity:.55}}
@keyframes sway{0%,100%{transform:rotate(-2.6deg)}50%{transform:rotate(2.6deg)}}
@keyframes windDrift{0%{transform:translateX(-3px)}50%{transform:translateX(4px)}100%{transform:translateX(-3px)}}
@keyframes shimmer{0%,100%{opacity:.42}50%{opacity:.74}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes wave{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2.4deg)}}
@keyframes rise{0%{transform:translateY(3px);opacity:0}25%{opacity:.85}100%{transform:translateY(-22px);opacity:0}}
@keyframes nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}
@keyframes eq{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}
.ill .m-bob{animation:bob 3.6s ease-in-out infinite;transform-origin:50% 100%;}
.ill .m-sway-feet{animation:swayFeet 5.6s ease-in-out infinite;transform-origin:50% 96%;}
.ill .m-breathe{animation:breathe 4.6s ease-in-out infinite;transform-origin:50% 100%;}
.ill .m-swing{animation:swing 3.5s ease-in-out infinite;transform-origin:50% 6%;}
.ill .m-pendulum{animation:pendulum 3.2s ease-in-out infinite;transform-origin:50% 4%;}
.ill .m-drift{animation:drift 6s ease-in-out infinite;transform-origin:0% 50%;}
.ill .m-sway{animation:sway 4.4s ease-in-out infinite;transform-origin:50% 100%;}
.ill .m-wind{animation:windDrift 7s ease-in-out infinite;transform-origin:50% 50%;}
.ill .m-shimmer{animation:shimmer 4.8s ease-in-out infinite;}
.ill .m-spin{animation:spin 9s linear infinite;transform-origin:50% 50%;}
.ill .m-wave{animation:wave 3.4s ease-in-out infinite;transform-origin:0% 50%;}
.ill .m-rise{animation:rise 3.2s ease-in-out infinite;transform-origin:50% 100%;}
.ill .m-nudge{animation:nudge 2.6s ease-in-out infinite;transform-origin:50% 100%;}
.ill .m-eq{animation:eq 1.2s ease-in-out infinite;transform-origin:50% 50%;}
@media (prefers-reduced-motion: reduce){ .ill *{ animation:none !important; } }

/* ---- placement helpers ---- */
/* eyebrow-side mark: small inline sujet beside a label/title */
.illmark{ width:var(--illmark-size,64px); height:var(--illmark-size,64px); flex:none; }

/* section-corner watermark sujet (quiet accent on paper/dark) */
.illwm{ position:absolute; pointer-events:none; z-index:0; opacity:var(--illwm-op,1); }

/* agenda head sujet */
.agenda__illus{ width:96px; height:96px; flex:none; }

/* ---- per-section placements ---- */
/* Aperitivo (Vintner) — small neg mark above eyebrow on the burgundy block */
.feature__illus{ width:78px; height:78px; margin:0 0 14px -4px; }
/* Programm head (Storyteller) */
.agenda__head-l{ display:flex; align-items:center; gap:16px; }
.agenda__head-l .agenda__illus{ width:84px; height:84px; }
/* Der Ort (Traveller) — mark above eyebrow */
.ort__illus{ width:76px; height:76px; margin:0 0 14px -4px; }
/* Band (Vibes) — centered neg mark above the quote */
.band__illus{ display:block; width:88px; height:88px; margin:0 auto 18px; }
/* Besuch (Keeper) — mark above eyebrow */
.visit__illus{ width:78px; height:78px; margin:0 0 14px -4px; }
/* Footer (Walliser Flagge) — quiet neg accent near the big line */
.foot__illus{ position:absolute; top:clamp(56px,8vw,104px); right:var(--gut,48px); width:clamp(74px,8vw,104px); height:clamp(74px,8vw,104px); opacity:.92; z-index:1; }
@media (max-width:760px){ .foot__illus{ position:static; display:block; width:72px; height:72px; margin:22px 0 0; } }
