/* Santo City Regelwerk – Zusatzeffekte: Intro, Cursor-Ring, Aurora, Manifest, Körnung, Entwurf-Schalter */

/* Entwurf-Schalter (siehe boot.js) */
.final .draft-only, .final .draft-badge, .final .tag-open { display: none !important; }
.final-only { display: none; }
.final .final-only { display: inline; }
.final .statband-inner { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1080px) { .final .statband-inner { grid-template-columns: repeat(3, 1fr); } .final .stat-cell:nth-child(n+3) { border-top: 0; } .final .stat-cell:nth-child(3) { border-left: 1px solid var(--line); } }
@media (max-width: 520px) { .final .statband-inner { grid-template-columns: 1fr; } .final .stat-cell { border-left: 0 !important; border-top: 1px solid var(--line); } .final .stat-cell:first-child { border-top: 0; } }

/* Einstiegsanimation: blendet sich in jedem Fall von selbst aus */
.loader { position: fixed; inset: 0; z-index: 9990; display: grid; place-items: center; align-content: center; gap: 28px; background: #0a0b0d; animation: loader-out .7s ease 1.6s both; }
.no-intro .loader { display: none; }
.loader.done { animation: loader-out .6s ease both; }
.loader-logo { width: min(150px, 34vw); height: auto; filter: drop-shadow(0 0 30px rgba(255, 255, 255, .25)); animation: loader-pulse 1.4s ease-in-out infinite; }
.loader-bar { width: min(220px, 50vw); height: 2px; overflow: hidden; border-radius: 2px; background: rgba(255, 255, 255, .12); }
.loader-bar span { display: block; height: 100%; width: 100%; transform-origin: 0 50%; background: linear-gradient(90deg, #6b7380, #fff); animation: loader-bar 1.5s cubic-bezier(.3, .7, .2, 1) both; }
@keyframes loader-out { to { opacity: 0; visibility: hidden; } }
@keyframes loader-pulse { 50% { transform: scale(1.06); filter: drop-shadow(0 0 46px rgba(255, 255, 255, .45)); } }
@keyframes loader-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Aurora: langsam treibende Lichtflächen hinter dem Hero */
.aurora { position: absolute; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.aurora i { position: absolute; width: 46vw; height: 46vw; min-width: 340px; min-height: 340px; border-radius: 50%; filter: blur(90px); opacity: .5; }
.aurora i:nth-child(1) { left: -8%; top: -20%; background: radial-gradient(circle, rgba(150, 165, 190, .55), transparent 65%); animation: drift1 22s ease-in-out infinite alternate; }
.aurora i:nth-child(2) { right: -12%; top: 10%; background: radial-gradient(circle, rgba(255, 255, 255, .28), transparent 62%); animation: drift2 28s ease-in-out infinite alternate; }
.aurora i:nth-child(3) { left: 30%; bottom: -35%; background: radial-gradient(circle, rgba(110, 120, 140, .5), transparent 65%); animation: drift3 25s ease-in-out infinite alternate; }
@keyframes drift1 { to { transform: translate(14vw, 12vh) scale(1.2); } }
@keyframes drift2 { to { transform: translate(-16vw, 14vh) scale(.9); } }
@keyframes drift3 { to { transform: translate(-10vw, -12vh) scale(1.25); } }

/* Körnung für den Premium-Look */
body::after { content: ""; position: fixed; inset: 0; z-index: 60; pointer-events: none; opacity: .045; mix-blend-mode: overlay; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }

/* Manifest: Text leuchtet beim Scrollen Wort für Wort auf */
.manifest { padding: clamp(80px, 12vw, 160px) 0; border-bottom: 1px solid var(--line); background: radial-gradient(900px 400px at 50% 0%, rgba(255, 255, 255, .05), transparent 70%); }
.manifest .eyebrow { margin-bottom: 28px; }
.manifest-text { max-width: 24ch; margin: 0; font: 700 clamp(2rem, 5.6vw, 4.6rem)/1.08 var(--font-display); letter-spacing: -.03em; text-wrap: balance; }
.manifest-text { max-width: 1000px; }
.manifest-text .w { color: rgba(255, 255, 255, .16); transition: color .45s ease, text-shadow .45s ease; }
.manifest-text .w.lit { color: #fff; text-shadow: 0 0 40px rgba(255, 255, 255, .25); }

/* Weicherer Glanz auf Karten und Kacheln */
.tile::after, .card::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, .08) 50%, transparent 60%); background-size: 250% 100%; background-position: 130% 0; transition: background-position .8s ease; pointer-events: none; }
.tile:hover::after, .card:hover::after { background-position: -30% 0; }

/* Überschriften-Linie, die beim Erscheinen aufgeht */
.section-head h2 { position: relative; }
.section-head .eyebrow::before { transform-origin: 0 50%; transition: transform .9s cubic-bezier(.2, .8, .2, 1) .1s; }
.js .reveal:not(.in) .eyebrow::before { transform: scaleX(0); }

/* Hero-Logo reagiert zusätzlich auf Scroll (Skalierung) */
.logo-tilt { transform: translate3d(0, var(--py), 0) rotateX(var(--rx)) rotateY(var(--ry)) scale(var(--sc, 1)); }
.hero .logo-glow { opacity: var(--gl, 1); }

@media (prefers-reduced-motion: reduce) {
  .loader { display: none; }
  .aurora i { animation: none !important; }
  .manifest-text .w { color: #fff; transition: none; }
}
@media print { .loader, .aurora, body::after { display: none !important; } }
