/* CSS: Reiki Buchholz Design System & Layout */

/* 1. CASCADE LAYER DECLARATION */
@layer reset, base, theme, layout, components;

/* 2. RESET LAYER */
@layer reset {
  :where(*, *::before, *::after) {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
  }
  
  html {
    scroll-behavior: smooth;
    scroll-padding-top: 5rem;
  }
  
  ul {
    list-style: none;
  }
  
  a {
    color: inherit;
    text-decoration: none;
  }
  
  img, svg {
    display: block;
    max-inline-size: 100%;
    block-size: auto;
  }
  
  textarea {
    resize: vertical;
  }
  
  button, input, select, textarea {
    font: inherit;
    color: inherit;
    background: transparent;
    border: none;
  }
}

/* 3. THEME LAYER (DESIGN TOKENS) */
@layer theme {
  :root {
    color-scheme: light dark;
    
    /* Font Families */
    --font-heading: 'Playfair Display', Georgia, serif;
    --font-body: 'Outfit', 'Inter', system-ui, sans-serif;
    
    /* Typography Scale */
    --font-size-xs: 0.75rem;
    --font-size-sm: 0.875rem;
    --font-size-base: 1rem;
    --font-size-md: 1.125rem;
    --font-size-lg: 1.25rem;
    --font-size-xl: 1.5rem;
    --font-size-xxl: 2rem;
    --font-size-hero: clamp(2rem, 1rem + 4vw, 3.5rem);
    
    /* Spacing Scale (Logical margins/paddings) */
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 2rem;
    --space-xl: 4rem;
    
    /* Layout Constants */
    --header-height: 5rem;
    --border-radius-sm: 8px;
    --border-radius-md: 16px;
    --border-radius-lg: 24px;
    --transition-duration: 0.3s;
    --transition-ease: cubic-bezier(0.4, 0, 0.2, 1);
    
    /* Shadow Levels */
    --shadow-sm: 0 2px 8px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.3));
    --shadow-md: 0 10px 30px light-dark(rgba(44, 53, 49, 0.08), rgba(0, 0, 0, 0.4));
    --shadow-lg: 0 20px 50px light-dark(rgba(44, 53, 49, 0.12), rgba(0, 0, 0, 0.6));
    
    /* Color Palette - Utilizing light-dark() for automated contrast mapping */
    --color-bg: light-dark(#FAF8F5, #111612);
    --color-bg-gradient: light-dark(#FAF8F5, #111612);
    --color-bg-subtle: light-dark(#F2EDE4, #1B211C);
    --color-bg-glass: light-dark(rgba(250, 248, 245, 0.8), rgba(17, 22, 18, 0.8));
    --color-border: light-dark(rgba(44, 53, 49, 0.1), rgba(236, 236, 230, 0.1));
    
    --color-text: light-dark(#2C3531, #ECECE6);
    --color-text-muted: light-dark(#5B6761, #A5B0AA);
    --color-text-inverse: light-dark(#FAF8F5, #111612);
    
    --color-accent: light-dark(#8F6B26, #D4AF37);
    --color-accent-dim: light-dark(rgba(181, 138, 61, 0.15), rgba(212, 175, 55, 0.15));
    --color-accent-hover: light-dark(#755527, #F3D274);
    
    /* Glow Colors for Reiki Energy SVG */
    --color-glow-start: light-dark(#EBDCC7, #4D3F23);
    --color-glow-mid: light-dark(#F5EFEB, #1D2A1C);
    --color-glow-end: light-dark(#FAF8F5, #111612);
  }

  /* ==========================================
     THEME VIBE SCHEMES (Amethyst vs. Turquoise)
     ========================================== */

  /* Theme Vibe: Amethyst (Default Dark) overrides */
  :root[style*="color-scheme: dark"]:not([data-theme-vibe="turquoise"]),
  :root[style*="color-scheme: dark"][data-theme-vibe="amethyst"] {
    --color-bg: #111612; /* Restored original dark slate background */
    --color-bg-gradient: radial-gradient(circle at 50% 25%, #18221b 0%, #111612 80%); /* Subtle elegant center glow */
    --color-bg-subtle: #1B211C;
    --color-bg-glass: rgba(17, 22, 18, 0.85);
    --color-border: rgba(236, 236, 230, 0.1);
    --color-text: #ffffff; /* Clean white text */
    --color-text-muted: #e0e0e0;
    --color-text-inverse: #111612;
    
    --color-accent: #d4af37;
    --color-accent-dim: rgba(212, 175, 55, 0.15);
    --color-accent-hover: #f3d274;
    
    --color-glow-start: #4d3f23;
    --color-glow-mid: #1d2a1c;
    --color-glow-end: #111612;
    
    --color-dust-core: rgba(255, 235, 181, 0.65);
    --color-dust-glow: rgba(212, 175, 55, 0.3);
    --color-dust-shadow: rgba(255, 212, 121, 0.5);
  }

  /* Theme Vibe: Dark Turquoise overrides (Deep Maldives Water) */
  :root[style*="color-scheme: dark"][data-theme-vibe="turquoise"] {
    --color-bg: #03252a; /* Deep Maldives ocean water */
    --color-bg-gradient: radial-gradient(circle at 50% 25%, #004d5a 0%, #02252b 60%, #011417 100%); /* Gorgeous Maldives ocean gradient */
    --color-bg-subtle: #06373e;
    --color-bg-glass: rgba(3, 37, 42, 0.85);
    --color-border: rgba(0, 229, 255, 0.15);
    --color-text: #ffffff; /* Clean white text */
    --color-text-muted: #b2dfdb;
    --color-text-inverse: #03252a;
    
    --color-accent: #00e5ff; /* Tropical turquoise/cyan */
    --color-accent-dim: rgba(0, 229, 255, 0.15);
    --color-accent-hover: #80f5ff;
    
    --color-glow-start: #006064;
    --color-glow-mid: #003b46;
    --color-glow-end: #03252a;
    
    --color-dust-core: rgba(0, 229, 255, 0.7);
    --color-dust-glow: rgba(0, 151, 167, 0.3);
    --color-dust-shadow: rgba(0, 229, 255, 0.5);
  }

  /* Theme Vibe: Light Turquoise overrides */
  :root[style*="color-scheme: light"][data-theme-vibe="turquoise"] {
    --color-bg: #f2f7f7;
    --color-bg-gradient: radial-gradient(circle at 50% 25%, #f2f7f7 0%, #e0eeee 100%);
    --color-bg-subtle: #e5eeee;
    --color-bg-glass: rgba(242, 247, 247, 0.85);
    --color-border: rgba(0, 128, 128, 0.1);
    --color-text: #0e2b30;
    --color-text-muted: #4d7a80;
    
    --color-accent: #008080;
    --color-accent-dim: rgba(0, 128, 128, 0.15);
    --color-accent-hover: #004d40;
    
    --color-glow-start: #e0f2f1;
    --color-glow-mid: #b2dfdb;
    --color-glow-end: #f2f7f7;

    --color-dust-core: rgba(0, 128, 128, 0.4);
    --color-dust-glow: rgba(30, 212, 212, 0.2);
    --color-dust-shadow: rgba(128, 226, 226, 0.3);
  }

  /* Color-shift on hero image in Turquoise theme */
  :root[data-theme-vibe="turquoise"] .hero-composite-image {
    filter: hue-rotate(115deg) saturate(1.2) brightness(0.95);
  }
}

/* 4. BASE LAYER */
@layer base {
  body {
    font-family: var(--font-body);
    font-size: var(--font-size-base);
    color: var(--color-text);
    background: var(--color-bg-gradient) no-repeat fixed;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    transition: background var(--transition-duration) var(--transition-ease),
                color var(--transition-duration) var(--transition-ease);
  }
  
  h1, h2, h3, h4 {
    font-family: var(--font-heading);
    color: var(--color-text);
    font-weight: 600;
    line-height: 1.25;
    text-wrap: balance;
  }
  
  h1 {
    font-size: var(--font-size-hero);
  }
  
  h2 {
    font-size: var(--font-size-xxl);
    margin-block-end: var(--space-md);
  }
  
  h3 {
    font-size: var(--font-size-lg);
    margin-block-end: var(--space-sm);
  }
  
  p {
    margin-block-end: var(--space-md);
    text-wrap: pretty;
  }
  
  p:last-child {
    margin-block-end: 0;
  }
  
  /* Focus States matching modern guidelines */
  :focus-visible {
    outline: 2px solid var(--color-accent);
    outline-offset: 4px;
    border-radius: var(--border-radius-sm);
  }
  
  /* Custom Scrollbar */
  ::-webkit-scrollbar {
    width: 10px;
  }
  ::-webkit-scrollbar-track {
    background: var(--color-bg-subtle);
  }
  ::-webkit-scrollbar-thumb {
    background: var(--color-accent-dim);
    border-radius: 5px;
    border: 2px solid var(--color-bg-subtle);
  }
  ::-webkit-scrollbar-thumb:hover {
    background: var(--color-accent);
  }
}

/* 5. LAYOUT LAYER */
@layer layout {
  .container {
    inline-size: 100%;
    max-inline-size: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-lg);
  }
  
  section {
    padding-block: var(--space-xl);
    border-block-end: 1px solid var(--color-border);
  }
  
  /* Grid/Flex Systems */
  .section-header {
    text-align: center;
    max-inline-size: 600px;
    margin-inline: auto;
    margin-block-end: var(--space-xl);
  }
  
  .section-lead-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    line-height: 1.6;
    margin-block-start: var(--space-xs);
  }
  
  .section-subtitle {
    font-family: var(--font-body);
    color: var(--color-accent);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
    display: block;
    margin-block-end: var(--space-sm);
  }
}

/* 6. COMPONENTS LAYER */
@layer components {
  
  /* Header & Navigation */
  .site-header {
    position: fixed;
    top: 0;
    left: 0;
    inline-size: 100%;
    block-size: var(--header-height);
    background-color: var(--color-bg-glass);
    backdrop-filter: blur(12px);
    border-block-end: 1px solid var(--color-border);
    z-index: 100;
    transition: background-color var(--transition-duration) var(--transition-ease);
  }
  
  .header-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    block-size: 100%;
  }
  
  .logo {
    display: flex;
    flex-direction: column;
  }
  
  .logo-title {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    font-weight: 700;
    color: var(--color-text);
    letter-spacing: 0.5px;
  }
  
  .logo-subtitle {
    font-size: var(--font-size-xs);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-top: -3px;
  }
  
  .primary-nav {
    display: flex;
    align-items: center;
  }
  
  .nav-list {
    display: flex;
    gap: var(--space-lg);
  }
  
  .nav-link {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--color-text-muted);
    transition: color var(--transition-duration) var(--transition-ease);
    position: relative;
    padding-block: 0.5rem;
  }
  
  .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    inline-size: 0%;
    block-size: 1px;
    background-color: var(--color-accent);
    transition: inline-size var(--transition-duration) var(--transition-ease);
  }
  
  .nav-link:hover, .nav-link.active {
    color: var(--color-text);
  }
  
  .nav-link.active::after {
    inline-size: 100%;
  }
  
  /* Mobile Menu Toggle */
  .nav-toggle {
    display: none;
    cursor: pointer;
    padding: 0.5rem;
  }
  
  .hamburger {
    display: block;
    inline-size: 24px;
    block-size: 2px;
    background-color: var(--color-text);
    position: relative;
    transition: background-color var(--transition-duration) var(--transition-ease);
  }
  
  .hamburger::before, .hamburger::after {
    content: '';
    position: absolute;
    inline-size: 100%;
    block-size: 2px;
    background-color: var(--color-text);
    transition: transform var(--transition-duration) var(--transition-ease);
  }
  
  .hamburger::before { top: -6px; }
  .hamburger::after { bottom: -6px; }
  
  /* Theme Toggle Button */
  .theme-toggle {
    cursor: pointer;
    background-color: var(--color-bg-subtle);
    color: var(--color-text);
    padding: 0.6rem;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    transition: background-color var(--transition-duration) var(--transition-ease),
                transform var(--transition-duration) var(--transition-ease);
  }
  
  .theme-toggle:hover {
    background-color: var(--color-accent-dim);
    transform: scale(1.05);
  }
  
  /* Hide the dark/light icon based on color-scheme mode */
  :root[style*="color-scheme: dark"] .sun-icon,
  :root:not([style*="color-scheme"]) .sun-icon {
    display: block;
  }
  :root[style*="color-scheme: dark"] .moon-icon,
  :root:not([style*="color-scheme"]) .moon-icon {
    display: none;
  }
  :root[style*="color-scheme: light"] .sun-icon {
    display: none;
  }
  :root[style*="color-scheme: light"] .moon-icon {
    display: block;
  }

  /* Buttons */
  .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.8rem 1.6rem;
    font-size: var(--font-size-sm);
    font-weight: 500;
    border-radius: var(--border-radius-md);
    cursor: pointer;
    transition: all var(--transition-duration) var(--transition-ease);
  }
  
  .btn-primary {
    background-color: var(--color-accent);
    color: var(--color-bg);
  }
  
  .btn-primary:hover {
    background-color: var(--color-accent-hover);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
  }
  
  .btn-secondary {
    background-color: transparent;
    color: var(--color-text);
    border: 1px solid var(--color-border);
  }
  
  .btn-secondary:hover {
    background-color: var(--color-bg-subtle);
    transform: translateY(-2px);
  }
  
  .btn-text {
    color: var(--color-accent);
    padding: 0;
    font-weight: 600;
    transition: color var(--transition-duration) var(--transition-ease);
  }
  
  .btn-text:hover {
    color: var(--color-accent-hover);
  }
  
  .btn-block {
    display: flex;
    inline-size: 100%;
  }

  /* Hero Section: Split Layout (Desktop and Mobile Responsive) */
  .hero-section {
    padding-block-start: calc(var(--header-height) + var(--space-sm));
    padding-block-end: var(--space-md);
    min-block-size: 100dvh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
  }
  
  .hero-split-container {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    align-items: center;
    gap: var(--space-xl);
    inline-size: 100%;
    max-inline-size: 1250px; /* Expanded grid width for a grander layout */
    margin-inline: auto;
    padding-inline: var(--space-md);
    position: relative;
    z-index: 2;
  }
  
  .hero-text-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    gap: var(--space-sm);
  }
  
  .hero-text-content .portal-badge {
    font-family: var(--font-body);
    color: var(--color-accent);
    font-size: var(--font-size-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 2px;
  }
  
  .hero-text-content h1.portal-heading {
    font-size: clamp(2.4rem, 1rem + 5vw, 4.2rem); /* Enlarged heading size */
    font-family: var(--font-heading);
    color: var(--color-text);
    margin-block-end: 0;
    font-weight: 600;
    line-height: 1.25;
  }
  
  .portal-description {
    font-size: 1.15rem; /* Enlarged description font size for better readability */
    color: var(--color-text-muted);
    line-height: 1.7;
    max-inline-size: 620px;
    margin-block-end: var(--space-sm);
  }
  
  .hero-actions {
    display: flex;
    gap: var(--space-md);
  }
  
  .hero-graphic-container {
    display: flex;
    align-items: center;
    justify-content: center;
    inline-size: 100%;
  }
  
  .crystal-interactive-wrapper {
    position: relative;
    inline-size: 100%;
    max-inline-size: 420px; /* Taller 2:3 portrait cutout, so a bit narrower to keep hero height reasonable */
    aspect-ratio: 1024 / 1536; /* Matches ametyst-Ziel_ohneHintergrund.webp */
    margin-inline: auto;
    isolation: isolate;
    /* Breathing motion lives on the wrapper (not the image) so the image AND the invisible
       star hotspots scale together as one unit and never drift out of alignment */
    animation: hero-image-breathe 5s ease-in-out infinite alternate;
  }

  /* New single-image hero composite, freigestellt (Amethyst-Geode & Sternenschweif, transparenter Hintergrund) */
  .hero-composite-image {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    object-fit: contain;
    pointer-events: none;
    filter: drop-shadow(0 10px 35px rgba(0, 0, 0, 0.35));
  }

  @keyframes hero-image-breathe {
    0% {
      transform: scale(1);
    }
    100% {
      transform: scale(1.015);
    }
  }

  /* Canvas layer for the live sparkle-particle stream (sits above the photo, below the hover hotspots) */
  .hero-particle-canvas {
    position: absolute;
    inset: 0;
    inline-size: 100%;
    block-size: 100%;
    pointer-events: none;
    z-index: 6;
  }

  /* Interactive overlay stars */
  .overlay-star {
    position: absolute;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Permanent soft twinkle on every real star in the photo (independent of hover) */
  .overlay-star::before {
    content: '';
    position: absolute;
    inset: 8%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 235, 181, 0.85) 0%, rgba(212, 175, 55, 0.4) 45%, transparent 75%);
    opacity: 0.25;
    mix-blend-mode: screen;
    pointer-events: none;
    animation: star-twinkle-live 2.4s ease-in-out infinite alternate;
    animation-delay: var(--twinkle-delay, 0s);
  }

  @keyframes star-twinkle-live {
    0%   { opacity: 0.15; transform: scale(0.82); }
    100% { opacity: 0.7;  transform: scale(1.18); }
  }

  .overlay-star::after {
    content: '';
    inline-size: 35%;
    block-size: 35%;
    border-radius: 50%;
    background: radial-gradient(circle, #FFEBB5 0%, rgba(212, 175, 55, 0.8) 50%, transparent 100%);
    opacity: 0; /* Completely invisible in idle state to keep the stars artwork natural */
    transition: opacity 0.3s ease, transform 0.3s ease;
    pointer-events: none;
  }
  
  .overlay-star:hover::after {
    opacity: 0.95;
    transform: scale(2.4);
    box-shadow: 0 0 15px rgba(255, 213, 79, 0.8);
  }
  
  .overlay-star:hover .star-tooltip {
    opacity: 1;
    visibility: visible;
    transform: translate3d(-50%, 0, 0);
  }
  
  /* Responsive media query adjustments */
  @media (max-width: 900px) {
    .hero-split-container {
      grid-template-columns: 1fr;
      text-align: center;
      gap: var(--space-xl);
      padding-block-start: var(--space-md);
    }
    
    .hero-text-content {
      align-items: center;
      text-align: center;
    }
    
    .hero-actions {
      justify-content: center;
    }
    
    .crystal-interactive-wrapper {
      max-inline-size: 320px; /* Enlarged slightly for mobile clickability, capped for the taller 2:3 image */
    }
  }
  
  .welcome-container {
    max-inline-size: 800px;
    margin-inline: auto;
    text-align: center;
  }
  
  .welcome-text-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
  }
  
  .welcome-text-content p {
    font-size: var(--font-size-md);
    color: var(--color-text-muted);
    line-height: 1.7;
    max-inline-size: 650px;
  }
  
  .welcome-actions {
    display: flex;
    gap: var(--space-md);
    margin-block-start: var(--space-sm);
  }
  
  /* Interactive Crystal/Amethyst Container (legacy rule, kept in sync with the primary definition above) */
  .crystal-interactive-wrapper {
    position: relative;
    inline-size: 100%;
    max-inline-size: 420px;
    aspect-ratio: 1024 / 1536;
  }
  
  .crystal-image-frame {
    position: absolute;
    left: 6vmin; /* Moved to bottom-left corner to act as the source of the rising constellation */
    bottom: 4vmin;
    inline-size: 24vmin; /* Delicate size matching the layout */
    max-inline-size: 220px;
    min-inline-size: 150px;
    aspect-ratio: 1; /* Forcing aspect-ratio prevents vertical squishing */
    display: flex;
    align-items: center;
    justify-content: center;
    isolation: isolate;
    z-index: 5;
    transform-origin: center bottom;
    transition: transform 0.6s var(--transition-ease);
  }
  
  .crystal-image {
    inline-size: 100%;
    block-size: 100%;
    transition: transform 0.6s var(--transition-ease);
  }
  
  /* Smart CSS attribute selectors apply circle cropping only for square photos, preserving transparency for geodes */
  .crystal-image[src*="crystals-circle"] {
    border-radius: 50%;
    object-fit: cover;
  }
  
  .crystal-image[src*="amethyst_transparent"] {
    border-radius: 0;
    object-fit: contain;
  }
  
  .crystal-pulse-glow {
    position: absolute;
    inset: -20px;
    border-radius: 50%;
    background: radial-gradient(circle, var(--color-accent) 0%, transparent 70%);
    opacity: 0.35;
    filter: blur(10px);
    z-index: -1;
    animation: breathe 5s ease-in-out infinite alternate;
  }
  

  
  /* Hover zoom on crystal image */
  .crystal-interactive-wrapper:hover .crystal-image-frame {
    transform: scale(1.04);
  }
  .crystal-interactive-wrapper:hover .crystal-image {
    transform: scale(1.08);
  }
  .crystal-interactive-wrapper:hover .crystal-pulse-glow {
    animation-duration: 2.5s;
    opacity: 0.45;
  }

  /* Symmetrical container locked to Amethyst dimensions to prevent layout drift on wide screens */
  .stars-container {
    position: absolute;
    left: 6vmin; /* Locked to the Amethyst's bottom-left position */
    bottom: 4vmin;
    inline-size: 24vmin;
    max-inline-size: 220px;
    min-inline-size: 150px;
    aspect-ratio: 1;
    pointer-events: none;
    z-index: 10;
  }
  
  /* 9 Interactive Stars Construction (Scaled Up & Staggered Sizes) */
  .interactive-star {
    position: absolute;
    left: 50%; /* 100% centered relative to the geode core */
    bottom: 50%; /* 100% centered relative to the geode core */
    inline-size: calc(72px * var(--star-scale, 1)); /* Reduced base size to 72px from 112px */
    block-size: calc(72px * var(--star-scale, 1));
    margin-left: calc(-36px * var(--star-scale, 1)); /* Centering offset horizontally */
    margin-bottom: calc(-36px * var(--star-scale, 1)); /* Centering offset vertically */
    color: var(--color-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
    
    /* Initial state before entrance animation */
    transform: translate(0, 0) scale(0);
    opacity: 0;
  }
  
  /* Glow behind the star */
  .star-glow {
    position: absolute;
    inset: -8px;
    background: radial-gradient(circle, var(--color-accent) 0%, transparent 70%);
    border-radius: 50%;
    opacity: 0.15;
    transform: scale(1);
    transition: all var(--transition-duration) var(--transition-ease);
    pointer-events: none;
    z-index: -1;
  }
  
  @keyframes star-sparkle {
    0%, 100% {
      filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4)) drop-shadow(0 0 4px rgba(212, 175, 55, 0.5)) brightness(0.85);
      opacity: 0.85;
    }
    50% {
      filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5)) drop-shadow(0 0 10px rgba(243, 210, 116, 0.95)) brightness(1.25);
      opacity: 1;
    }
  }
  
  .star-svg {
    inline-size: 100%;
    block-size: 100%;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4)) drop-shadow(0 0 6px rgba(212, 175, 55, 0.65));
    transition: all var(--transition-duration) var(--transition-ease);
    /* Sparkling Twinkle effect, customized asynchronously per star */
    animation: star-sparkle var(--twinkle-duration, 3s) ease-in-out infinite alternate;
    animation-delay: var(--twinkle-delay, 0s);
  }
  
  /* Tooltip box */
  .star-tooltip {
    position: absolute;
    bottom: 140%;
    left: 50%;
    transform: translate3d(-50%, 5px, 0); /* Centered alignment */
    background-color: var(--color-bg-glass);
    backdrop-filter: blur(8px);
    border: 1px solid var(--color-border);
    padding: 0.5rem 1rem; /* Slightly larger padding for a premium look */
    border-radius: var(--border-radius-sm);
    font-size: 14px; /* Very readable 14px */
    font-weight: 500;
    color: var(--color-text);
    white-space: nowrap;
    pointer-events: none;
    opacity: 0;
    box-shadow: var(--shadow-sm);
    z-index: 20;
    transition: all var(--transition-duration) var(--transition-ease);
    
    /* Anti-blur fixes for macOS / iOS Safari & Chrome */
    -webkit-font-smoothing: subpixel-antialiased;
    -moz-osx-font-smoothing: auto;
    text-rendering: optimizeLegibility;
    will-change: transform, opacity;
  }
  
  /* Hover effects: glows brighter, tooltip appears */
  .interactive-star:hover {
    color: var(--color-accent-hover);
    z-index: 15;
  }
  
  .interactive-star:hover .star-glow {
    opacity: 0.7;
    transform: scale(1.6);
  }
  
  .interactive-star:hover .star-svg {
    transform: scale(1.35) rotate(45deg);
    filter: drop-shadow(0 0 8px var(--color-accent-hover));
  }
  
  .interactive-star:hover .star-tooltip {
    opacity: 1;
    transform: translate3d(-50%, 0, 0); /* Force GPU subpixel alignment to prevent text blurriness */
  }
  
  /* Entrance shoot-out animation keyframe */
  @keyframes shoot-out {
    from {
      transform: translate3d(0, 0, 0) scale(0);
      opacity: 0;
    }
    to {
      transform: translate3d(var(--dest-x), var(--dest-y), 0) scale(1);
      opacity: 1;
    }
  }
  
  /* Floating Orbit Keyframes */
  @keyframes float-star-1 {
    0% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(-5px) scale(1); opacity: 0.95; }
    50% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(5px) translateX(-3px) scale(1.05); opacity: 1; }
    100% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(-5px) translateX(3px) scale(1); opacity: 0.95; }
  }
  
  @keyframes float-star-2 {
    0% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(5px) translateX(2px) scale(1.05); opacity: 1; }
    50% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(-5px) scale(0.95); opacity: 0.9; }
    100% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(5px) translateX(-2px) scale(1.05); opacity: 1; }
  }
  
  @keyframes float-star-3 {
    0% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateX(-4px) scale(0.95); opacity: 0.9; }
    50% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateY(6px) translateX(3px) scale(1.05); opacity: 1; }
    100% { transform: translate3d(var(--dest-x), var(--dest-y), 0) translateX(4px) scale(0.95); opacity: 0.9; }
  }
  
  /* Apply animation delay and behavior based on style attributes */
  .interactive-star[style*="--float-num: 1"] {
    animation: shoot-out 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) var(--delay) forwards,
               float-star-1 6s ease-in-out infinite alternate calc(1.2s + var(--delay));
  }
  .interactive-star[style*="--float-num: 2"] {
    animation: shoot-out 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) var(--delay) forwards,
               float-star-2 7s ease-in-out infinite alternate calc(1.2s + var(--delay));
  }
  .interactive-star[style*="--float-num: 3"] {
    animation: shoot-out 1.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) var(--delay) forwards,
               float-star-3 5.5s ease-in-out infinite alternate calc(1.2s + var(--delay));
  }
  
  /* Pause floating animation when hovering so the hover transform behaves correctly */
  .interactive-star:hover {
    animation-play-state: paused;
  }
  
  /* Hover tip under the crystal wrapper */
  .hover-tip {
    position: absolute;
    bottom: -2.5rem;
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
    font-style: italic;
    opacity: 0;
    transform: translateY(10px);
    transition: all 0.4s var(--transition-ease);
    text-align: center;
    pointer-events: none;
  }
  
  .crystal-interactive-wrapper:hover .hover-tip {
    opacity: 0.8;
    transform: translateY(0);
  }

  /* Breath pulse standard keyframe */
  @keyframes breathe {
    0% {
      transform: scale(0.94);
      opacity: 0.2;
    }
    100% {
      transform: scale(1.06);
      opacity: 0.4;
    }
  }

  /* Reduced Motion fallback */
  @media (prefers-reduced-motion: reduce) {
    .interactive-star {
      transform: translate(var(--dest-x), var(--dest-y)) scale(1) !important;
      opacity: 1 !important;
      animation: none !important;
    }
    .crystal-pulse-glow {
      animation: breathe 15s ease-in-out infinite alternate;
    }
  }

  /* Philosophie Section */
  .philosophie-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--space-xl);
    align-items: center;
  }
  
  .benefit-list {
    margin-block-start: var(--space-md);
    margin-block-end: var(--space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
  }
  
  .benefit-list li {
    position: relative;
    padding-inline-start: 1.8rem;
  }
  
  .benefit-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--color-accent);
    font-weight: 700;
  }
  
  .philosophie-quote-box {
    background-color: var(--color-bg-subtle);
    padding: var(--space-lg);
    border-radius: var(--border-radius-lg);
    border: 1px solid var(--color-border);
    position: relative;
  }
  
  .philosophie-quote {
    font-family: var(--font-heading);
    font-size: var(--font-size-md);
    font-style: italic;
    color: var(--color-text);
  }
  
  .philosophie-quote p {
    margin-block-end: var(--space-sm);
    line-height: 1.5;
  }
  
  .philosophie-quote cite {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-accent);
    font-weight: 500;
    font-style: normal;
  }

  /* Leistungen Cards Grid */
  .cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--space-lg);
  }
  
  .service-card {
    background-color: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    padding: var(--space-lg);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    transition: opacity 0.4s ease, transform 0.4s ease, border-color var(--transition-duration) var(--transition-ease), box-shadow var(--transition-duration) var(--transition-ease);
    position: relative;
  }
  
  .service-card.hidden {
    display: none;
    opacity: 0;
    transform: scale(0.9);
  }
  
  .service-card:hover {
    border-color: var(--color-accent);
    box-shadow: var(--shadow-sm);
    background-color: var(--color-bg);
  }
  
  .card-icon {
    inline-size: 2.5rem;
    block-size: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-accent);
    border: 1px solid var(--color-border);
    border-radius: 50%;
    margin-block-end: var(--space-md);
  }

  .card-icon svg {
    inline-size: 22px;
    block-size: 22px;
  }
  
  .service-card h3 {
    font-size: var(--font-size-lg);
    margin-block-end: var(--space-xs);
  }
  
  .service-duration {
    font-size: var(--font-size-sm);
    color: var(--color-accent);
    font-weight: 500;
    margin-block-end: var(--space-md);
  }
  
  .service-description {
    color: var(--color-text-muted);
    font-size: var(--font-size-sm);
    margin-block-end: var(--space-lg);
    flex-grow: 1;
  }
  
  .service-price {
    font-family: var(--font-heading);
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: var(--color-text);
    margin-block-end: var(--space-md);
  }
  
  /* Featured Card Styles */
  .service-card.featured {
    border-color: var(--color-accent);
    background-color: var(--color-bg);
    box-shadow: var(--shadow-sm);
  }
  
  .card-badge {
    position: absolute;
    top: var(--space-md);
    right: var(--space-md);
    background-color: var(--color-accent);
    color: var(--color-bg);
    font-size: var(--font-size-xs);
    font-weight: 600;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }

  /* Über mich Section */
  .about-container {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: var(--space-xl);
    align-items: center;
  }
  
  .about-visual {
    display: flex;
    justify-content: center;
    position: relative;
  }
  
  /* Portrait Frame Skeleton */
  .portrait-frame {
    position: relative;
    inline-size: 100%;
    max-inline-size: 280px;
    aspect-ratio: 0.85;
    border-radius: var(--border-radius-lg);
    overflow: visible;
  }
  
  .portrait-bg {
    position: absolute;
    inset: 0;
    background-color: var(--color-bg-subtle);
    border-radius: var(--border-radius-lg);
    border: 1px solid var(--color-border);
    z-index: 1;
  }
  
  .portrait-image {
    position: absolute;
    inset: 1rem;
    border-radius: var(--border-radius-md);
    object-fit: cover;
    border: 1px solid var(--color-border);
    z-index: 2;
    inline-size: calc(100% - 2rem);
    block-size: calc(100% - 2rem);
  }
  
  .accent-dots {
    display: none;
  }
  
  .about-text-content h2 {
    margin-block-end: var(--space-md);
  }
  
  .about-text-content p {
    color: var(--color-text-muted);
    margin-block-end: var(--space-sm);
  }
  
  .signature {
    font-family: var(--font-heading);
    font-size: var(--font-size-xl);
    font-style: italic;
    color: var(--color-accent);
    margin-block-start: var(--space-md);
  }

  /* Lineage Badge in Philosophy */
  .lineage-badge {
    background-color: var(--color-bg-glass);
    border: 1px solid var(--color-accent-dim);
    border-radius: var(--border-radius-md);
    padding: 1rem 1.25rem;
    margin-block-start: var(--space-md);
    display: flex;
    align-items: center;
    gap: var(--space-md);
    box-shadow: var(--shadow-sm);
  }
  .lineage-badge .badge-icon {
    font-size: 1.5rem;
  }
  .lineage-badge p {
    margin: 0;
    color: var(--color-text);
    font-size: 14px;
    line-height: 1.5;
  }

  /* Highlight Quote in About Me */
  .about-highlight-quote {
    font-family: var(--font-heading);
    font-size: var(--font-size-md);
    line-height: 1.6;
    color: var(--color-text);
    border-left: 2px solid var(--color-accent);
    padding-left: var(--space-md);
    margin-block: var(--space-lg) var(--space-md);
    font-style: italic;
  }

  /* Filter Controls in Leistungen */
  .filter-controls {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-xs);
    margin-block-end: var(--space-xl);
  }
  .filter-btn {
    background-color: var(--color-bg-glass);
    border: 1px solid var(--color-border);
    color: var(--color-text-muted);
    padding: 0.55rem 1.25rem;
    font-family: var(--font-body);
    font-size: 13px;
    font-weight: 500;
    border-radius: 30px;
    cursor: pointer;
    transition: all var(--transition-duration) var(--transition-ease);
    backdrop-filter: blur(4px);
  }
  .filter-btn:hover {
    border-color: var(--color-accent);
    color: var(--color-text);
    transform: translateY(-1px);
  }
  .filter-btn.active {
    background-color: var(--color-accent);
    border-color: var(--color-accent);
    color: var(--color-bg);
    box-shadow: 0 0 10px rgba(212, 175, 55, 0.3);
  }

  /* About Details prices and frames */
  .about-details-container {
    margin-block-start: var(--space-xl);
  }
  .about-details-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: var(--space-xl);
  }
  .details-card {
    background-color: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    padding: var(--space-lg);
  }
  .details-card h3 {
    font-size: var(--font-size-md);
    margin-block-end: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
    padding-bottom: var(--space-xs);
    color: var(--color-accent);
    font-weight: 600;
    letter-spacing: 0.5px;
  }
  .prices-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
  }
  .prices-list li {
    border-bottom: 1px dashed var(--color-border);
    padding-bottom: var(--space-sm);
  }
  .prices-list li:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
  .price-item-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-block-end: var(--space-xs);
    gap: var(--space-md);
  }
  .price-item-header strong {
    font-size: var(--font-size-sm);
    color: var(--color-text);
  }
  .price-tag {
    font-family: var(--font-heading);
    font-weight: 600;
    color: var(--color-accent);
    font-size: 15px;
    white-space: nowrap;
  }
  .prices-list p {
    margin: 0;
    font-size: 13px;
    color: var(--color-text-muted);
  }
  
  .info-blocks {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
  }
  .info-block-item {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
  }
  .info-block-icon {
    font-size: 1.4rem;
    line-height: 1;
    background-color: var(--color-bg-glass);
    border: 1px solid var(--color-border);
    border-radius: 50%;
    inline-size: 2.5rem;
    block-size: 2.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
  }
  .info-block-item strong {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-text);
    margin-block-end: var(--space-xs);
  }
  .info-block-item p {
    margin: 0;
    font-size: 13px;
    color: var(--color-text-muted);
    line-height: 1.5;
  }

  /* Responsive adjustments for details */
  @media (max-width: 900px) {
    .about-details-grid {
      grid-template-columns: 1fr;
      gap: var(--space-lg);
    }
  }

  /* Ambient Floating Fairy Dust */
  .ambient-dust {
    position: absolute;
    pointer-events: none;
    background: radial-gradient(circle, rgba(255, 235, 181, 0.65) 0%, rgba(212, 175, 55, 0.3) 50%, transparent 100%);
    border-radius: 50%;
    filter: drop-shadow(0 0 3px rgba(255, 212, 121, 0.5));
    z-index: 1; /* Behind content, in front of background gradient */
    will-change: transform, opacity;
  }
  
  @keyframes ambient-float {
    0% {
      transform: translate(0, 0);
      opacity: 0.1;
    }
    50% {
      transform: translate(25px, -35px);
      opacity: 0.5;
    }
    100% {
      transform: translate(-15px, -70px);
      opacity: 0.1;
    }
  }

  /* Kontakt Section */
  .kontakt-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-xl);
    align-items: start;
  }
  
  .info-details {
    margin-block-start: var(--space-lg);
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
  }
  
  .info-item {
    display: flex;
    gap: var(--space-md);
    align-items: flex-start;
  }
  
  .info-icon {
    inline-size: 2.4rem;
    block-size: 2.4rem;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-accent);
    background-color: var(--color-bg-subtle);
    border-radius: var(--border-radius-sm);
    border: 1px solid var(--color-border);
    line-height: 1;
  }
  
  .info-item strong {
    display: block;
    font-size: var(--font-size-sm);
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }
  
  .info-item p {
    color: var(--color-text);
  }
  
  .info-item a:hover {
    color: var(--color-accent);
    text-decoration: underline;
  }
  
  /* Form Styling */
  .kontakt-form-container {
    background-color: var(--color-bg-subtle);
    padding: var(--space-lg);
    border-radius: var(--border-radius-lg);
    border: 1px solid var(--color-border);
  }
  
  .kontakt-form {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
  }
  
  .form-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
  }
  
  .form-group label {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-accent);
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }
  
  .form-group input, 
  .form-group select, 
  .form-group textarea {
    background-color: var(--color-bg);
    border: 1px solid var(--color-border);
    padding: 0.8rem;
    border-radius: var(--border-radius-sm);
    color: var(--color-text);
    font-size: var(--font-size-sm);
    transition: border-color var(--transition-duration) var(--transition-ease);
  }
  
  .form-group input:focus, 
  .form-group select:focus, 
  .form-group textarea:focus {
    outline: none;
    border-color: var(--color-accent);
  }
  
  .form-feedback {
    padding: 0.8rem;
    border-radius: var(--border-radius-sm);
    font-size: var(--font-size-sm);
    text-align: center;
  }
  
  .form-feedback.success {
    background-color: rgba(44, 83, 44, 0.15);
    color: light-dark(#2e5c2e, #8cda8c);
    border: 1px solid rgba(44, 83, 44, 0.2);
  }
  
  .form-feedback.error {
    background-color: rgba(139, 35, 35, 0.15);
    color: light-dark(#8f2828, #ff8c8c);
    border: 1px solid rgba(139, 35, 35, 0.2);
  }

  /* Footer */
  .site-footer {
    padding-block: var(--space-lg);
    background-color: var(--color-bg-subtle);
    border-block-start: 1px solid var(--color-border);
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
  }
  
  .footer-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-md);
  }
  
  .footer-logo {
    font-family: var(--font-heading);
    font-size: var(--font-size-md);
    color: var(--color-text);
    font-weight: 600;
    display: block;
    margin-block-end: var(--space-xs);
  }
  
  .footer-links {
    display: flex;
    gap: var(--space-lg);
    align-items: center;
  }
  
  .footer-link:hover {
    color: var(--color-accent);
  }
  
  /* Theme Vibe Switcher in Footer */
  .theme-vibe-switcher {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    background-color: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    padding: 2px;
    border-radius: 30px;
    margin-inline-end: var(--space-sm);
  }
  
  .vibe-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    background: none;
    border: none;
    padding: 0.35rem 0.75rem;
    font-family: var(--font-body);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-muted);
    border-radius: 20px;
    cursor: pointer;
    transition: all 0.2s ease;
  }
  
  .vibe-btn:hover {
    color: var(--color-text);
  }
  
  .vibe-btn.active {
    background-color: var(--color-bg);
    color: var(--color-text);
    border: 1px solid var(--color-border);
    box-shadow: var(--shadow-sm);
  }
  
  .vibe-dot {
    inline-size: 8px;
    block-size: 8px;
    border-radius: 50%;
    display: inline-block;
  }

  /* Mock Admin Trigger Styling */
  .admin-trigger-btn {
    cursor: pointer;
    font-size: var(--font-size-xs);
    font-weight: 600;
    background-color: var(--color-border);
    color: var(--color-text-muted);
    padding: 0.4rem 0.8rem;
    border-radius: var(--border-radius-sm);
    display: flex;
    align-items: center;
    gap: 0.3rem;
    transition: all var(--transition-duration) var(--transition-ease);
  }
  
  .admin-trigger-btn:hover {
    background-color: var(--color-accent-dim);
    color: var(--color-accent);
  }
  
  /* Glassmorphic Admin Modal Popup */
  .admin-dialog-backdrop {
    position: fixed;
    inset: 0;
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-md);
  }
  
  .admin-dialog {
    background-color: var(--color-bg-glass);
    backdrop-filter: blur(20px);
    border: 1px solid var(--color-border);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
    max-inline-size: 500px;
    inline-size: 100%;
    overflow: hidden;
    animation: dialog-reveal 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  }
  
  .admin-dialog-header {
    background-color: var(--color-bg-subtle);
    padding: var(--space-md) var(--space-lg);
    border-block-end: 1px solid var(--color-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
  }
  
  .admin-dialog-close {
    font-size: 1.8rem;
    cursor: pointer;
    line-height: 1;
    color: var(--color-text-muted);
    transition: color var(--transition-duration) var(--transition-ease);
  }
  
  .admin-dialog-close:hover {
    color: var(--color-text);
  }
  
  .admin-dialog-body {
    padding: var(--space-lg);
  }
  
  .admin-intro-text {
    font-size: var(--font-size-sm);
    color: var(--color-text-muted);
    margin-block-end: var(--space-md);
  }
  
  .admin-form-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin-block-end: var(--space-md);
  }
  
  .admin-form-group label {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--color-text);
  }
  
  .admin-form-group input,
  .admin-form-group textarea {
    background-color: var(--color-bg-subtle);
    border: 1px solid var(--color-border);
    padding: 0.6rem;
    border-radius: var(--border-radius-sm);
    color: var(--color-text);
    font-size: var(--font-size-sm);
    inline-size: 100%;
  }
  
  .admin-form-group input:focus,
  .admin-form-group textarea:focus {
    outline: none;
    border-color: var(--color-accent);
  }
  
  @keyframes dialog-reveal {
    from {
      opacity: 0;
      transform: scale(0.9) translateY(10px);
    }
    to {
      opacity: 1;
      transform: scale(1) translateY(0);
    }
  }
}

/* 7. RESPONSIVE MEDIA QUERIES */
@media (max-width: 900px) {
  .hero-container {
    grid-template-columns: 1fr;
    text-align: center;
    gap: var(--space-lg);
  }
  
  .hero-text-content {
    align-items: center;
    order: 1;
  }
  
  .hero-actions {
    justify-content: center;
  }
  
  .hero-graphic-container {
    order: 0;
  }
  
  .philosophie-grid {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
  
  .about-container {
    grid-template-columns: 1fr;
    text-align: center;
    gap: var(--space-lg);
  }
  
  .about-text-content {
    order: 1;
  }
  
  .about-visual {
    order: 0;
  }
  
  .kontakt-container {
    grid-template-columns: 1fr;
    gap: var(--space-lg);
  }
  
  /* Mobile Menu Toggle Logic */
  .nav-toggle {
    display: block;
  }
  
  .primary-nav {
    position: fixed;
    top: var(--header-height);
    left: 0;
    inline-size: 100%;
    background-color: var(--color-bg);
    border-block-end: 1px solid var(--color-border);
    padding: var(--space-lg);
    transform: translateY(-150%);
    transition: transform var(--transition-duration) var(--transition-ease);
    z-index: 99;
  }
  
  .primary-nav.open {
    transform: translateY(0);
    box-shadow: var(--shadow-md);
  }
  
  .nav-list {
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
  }
  
  /* Hamburger Transformation when Active */
  .nav-toggle[aria-expanded="true"] .hamburger {
    background-color: transparent;
  }
  .nav-toggle[aria-expanded="true"] .hamburger::before {
    transform: rotate(45deg) translate(4px, 4px);
  }
  .nav-toggle[aria-expanded="true"] .hamburger::after {
    transform: rotate(-45deg) translate(4px, -4px);
  }

  .footer-links {
    flex-direction: column;
    gap: var(--space-md);
    width: 100%;
    align-items: center;
    text-align: center;
  }
  
  .theme-vibe-switcher {
    margin-inline-end: 0;
    margin-block-end: var(--space-xs);
  }
}

/* ==========================================
   8. SCROLL-DRIVEN ANIMATIONS & REVEAL EFFECT
   ========================================== */
.reveal-hidden {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 1.2s cubic-bezier(0.16, 1, 0.3, 1),
              transform 1.2s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}

.reveal-hidden.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered delay helpers for elements entering together */
.philosophie-text { transition-delay: 0.1s; }
.philosophie-grid { transition-delay: 0.2s; }
.card:nth-child(1) { transition-delay: 0.1s; }
.card:nth-child(2) { transition-delay: 0.2s; }
.card:nth-child(3) { transition-delay: 0.3s; }

/* Scroll parallax and contraction is now fully handled in JS to allow dynamic star implosions */

/* Ensure content sections are position relative so decorative stars position relative to them and don't stretch the body */
.philosophie-section, .leistungen-section, .about-section, .kontakt-section {
  position: relative;
}

/* Decorative Background Parallax Stars in side margins */
.bg-parallax-star {
  position: absolute;
  width: 52px; /* Increased from 24px to 52px */
  height: 52px;
  color: var(--color-accent);
  opacity: 0.18; /* Subtle, does not look too heavy or thick */
  pointer-events: none;
  z-index: 0; /* Behind all text cards */
  filter: drop-shadow(0 0 3px var(--color-accent));
  will-change: transform;
  transition: opacity 0.5s ease;
}

.bg-parallax-star svg {
  width: 100%;
  height: 100%;
  fill: currentColor;
  /* Twinkle sparkle effect */
  animation: star-sparkle 4s ease-in-out infinite alternate;
}

