/* ============================================================
   Luigi Design — Stylesheet
   Selbst gehostete Fonts (kein externer Request, DSGVO-konform)
   ============================================================ */

/* ---------- Fonts ---------- */
@font-face{font-family:'Fredoka';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/fredoka-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/fredoka-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/fredoka-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/fredoka-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/fredoka-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Fredoka';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/fredoka-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/space-grotesk-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('../assets/fonts/space-grotesk-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/space-grotesk-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('../assets/fonts/space-grotesk-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/space-grotesk-500-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/space-grotesk-500-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/space-mono-400-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../assets/fonts/space-mono-400-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/space-mono-700-latin-ext.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;src:url('../assets/fonts/space-mono-700-latin.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- Base ---------- */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#0E0E14}
::selection{background:#E6FF2E;color:#0E0E14}
::-webkit-scrollbar{width:9px}
::-webkit-scrollbar-track{background:#0E0E14}
::-webkit-scrollbar-thumb{background:#23232e;border-radius:6px}

/* ---------- Keyframes ---------- */
@keyframes ldDriftA{0%,100%{transform:rotate(19deg) translateX(-36px)}50%{transform:rotate(22deg) translateX(74px)}}
@keyframes ldDriftB{0%,100%{transform:rotate(21deg) translateX(50px)}50%{transform:rotate(18deg) translateX(-62px)}}
@keyframes ldDriftC{0%,100%{transform:rotate(-26deg) translateX(-44px)}50%{transform:rotate(-21deg) translateX(68px)}}
@keyframes ldOrbA{0%,100%{transform:translate(0,0)}50%{transform:translate(46px,-34px)}}
@keyframes ldOrbB{0%,100%{transform:translate(0,0)}50%{transform:translate(-38px,30px)}}
@keyframes ldOrbC{0%,100%{transform:translate(0,0)}50%{transform:translate(34px,44px)}}
@keyframes ldFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(9px)}}
@keyframes ldFade{from{opacity:0}to{opacity:1}}
@keyframes ldPop{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}
@keyframes ldBob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}
@keyframes ldStoererSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes ldStoererBob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes ldCrownGlow{0%,100%{filter:drop-shadow(0 0 5px rgba(230,255,46,.7)) drop-shadow(0 0 16px rgba(230,255,46,.32))}50%{filter:drop-shadow(0 0 9px rgba(230,255,46,.95)) drop-shadow(0 0 26px rgba(230,255,46,.5))}}
@keyframes ldSparkLime{0%,100%{opacity:.55;transform:scale(.82);filter:drop-shadow(0 0 4px rgba(230,255,46,.55))}50%{opacity:1;transform:scale(1.12);filter:drop-shadow(0 0 11px rgba(230,255,46,.95))}}
@keyframes ldSparkPink{0%,100%{opacity:.55;transform:scale(.82);filter:drop-shadow(0 0 4px rgba(255,46,136,.55))}50%{opacity:1;transform:scale(1.12);filter:drop-shadow(0 0 11px rgba(255,46,136,.95))}}
@keyframes ldSparkCyan{0%,100%{opacity:.55;transform:scale(.82);filter:drop-shadow(0 0 4px rgba(39,224,224,.55))}50%{opacity:1;transform:scale(1.12);filter:drop-shadow(0 0 11px rgba(39,224,224,.95))}}

/* ---------- Service cards ---------- */
[data-r="g3"]>div{transition:transform .35s cubic-bezier(.16,.84,.44,1),border-top-color .35s}
[data-r="g3"]>div:hover{transform:translateY(-5px);border-top-color:#3a3a4a}
[data-r="g3"]>div:hover h3{color:#E6FF2E}
[data-r="g3"]>div h3{transition:color .3s}

/* ---------- Hover states ---------- */
.ld-logo{transition:transform .25s,box-shadow .25s}
.ld-logo:hover{transform:rotate(-4deg) scale(1.06);box-shadow:0 0 22px rgba(230,255,46,.5)}
.ld-navlink{transition:color .2s}
.ld-navlink:hover{color:#E6FF2E}
.ld-cta{transition:transform .2s,box-shadow .2s}
.ld-cta:hover{transform:translateY(-2px);box-shadow:0 0 26px rgba(230,255,46,.4)}
.ld-close{transition:border-color .2s,color .2s}
.ld-close:hover{border-color:#E6FF2E;color:#E6FF2E}
.ld-legal-btn{transition:color .2s}
.ld-legal-btn:hover{color:#E6FF2E}
.ld-card{transition:border-color .2s,box-shadow .2s,transform .2s}
.ld-card--mail:hover{border-color:#E6FF2E;box-shadow:0 0 26px rgba(230,255,46,.18);transform:translateY(-3px)}
.ld-card--call:hover{border-color:#27E0E0;box-shadow:0 0 26px rgba(39,224,224,.18);transform:translateY(-3px)}
.ld-card--wa:hover{border-color:#FF2E88;box-shadow:0 0 26px rgba(255,46,136,.18);transform:translateY(-3px)}

/* ---------- Reveal on scroll ---------- */
[data-anim]{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.16,.84,.44,1),transform .7s cubic-bezier(.16,.84,.44,1)}
[data-anim].is-visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  [data-anim]{opacity:1 !important;transform:none !important;transition:none}
  *{animation:none !important}
}

/* ---------- Modals ---------- */
.ld-modal{position:fixed;inset:0;z-index:200;display:none;place-items:center;padding:24px}
.ld-modal.is-open{display:grid}

/* ---------- Responsive ---------- */
@media(max-width:1040px){
  [data-r="g3"]{grid-template-columns:1fr 1fr !important}
}
@media(max-width:560px){
  [data-r="g3in"]{grid-template-columns:1fr !important}
}
@media(max-width:820px){
  [data-r="lead"]{flex-direction:column !important;align-items:flex-start !important;gap:36px !important}
  [data-r="stoerer"]{align-self:flex-start;margin-bottom:48px}
  [data-r="g3"]{grid-template-columns:1fr !important}
  [data-r="g3"]>div{padding-left:0 !important;padding-right:0 !important}
  [data-r="about"]{grid-template-columns:1fr !important;text-align:left}
  [data-r="about"] [data-photo]{margin:0;order:2}
  [data-r="g2"]{grid-template-columns:1fr !important}
  [data-navlinks] a{display:none !important}
}
