/* Shared Recraft illustrations; keep the text and terrain of each page intact. */
.ng-subhero__copy{width:52%}
.ng-subscene{position:absolute;right:1%;bottom:0;width:min(40vw,650px);pointer-events:none}
.ng-subscene>svg{display:block;width:100%;height:auto;overflow:visible}
.ng-subscene__reveal{animation:ng-subscene-in .85s both;animation-delay:var(--delay)}
.ng-subscene__grow{transform-box:fill-box;transform-origin:50% 100%;animation:ng-subscene-grow 1.3s both;animation-delay:var(--delay)}
.ng-subscene__sway{transform-box:fill-box;transform-origin:50% 0;animation:ng-subscene-sway 5s ease-in-out infinite}
.ng-subscene__fire{transform-box:fill-box;transform-origin:50% 100%;animation:ng-subscene-fire 1.8s ease-in-out infinite}
.ng-subscene__search{transform-box:fill-box;transform-origin:80% 90%;animation:ng-subscene-search 6s ease-in-out infinite}
.ng-subscene__breathe{transform-box:fill-box;transform-origin:50% 100%;animation:ng-subscene-breathe 5.5s ease-in-out infinite}
.ng-subscene__breath-ring{transform-box:fill-box;transform-origin:center;animation:ng-subscene-ring 5.5s ease-in-out infinite}
.ng-subscene__float{animation:ng-subscene-float 5s ease-in-out infinite}
.ng-subscene--contact .ng-contact-letter{left:37%;bottom:12%;width:32%;height:25%}
@keyframes ng-subscene-in{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}
@keyframes ng-subscene-grow{from{transform:scaleY(.08)}to{transform:scaleY(1)}}
@keyframes ng-subscene-sway{0%,100%{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}
@keyframes ng-subscene-fire{0%,100%{transform:scale(1)}50%{transform:scale(1.025,1.05)}}
@keyframes ng-subscene-search{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(7deg)}}
@keyframes ng-subscene-breathe{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.025)}}
@keyframes ng-subscene-ring{0%,100%{transform:scale(.94);opacity:.35}50%{transform:scale(1.06);opacity:.8}}
@keyframes ng-subscene-float{0%,100%{transform:translate(0,0)}50%{transform:translate(8px,-12px)}}
@media(max-width:1000px) and (min-width:701px){.ng-subscene{width:40vw;right:-1%}.ng-subhero h1{font-size:clamp(52px,6.5vw,72px)}}
@media(max-width:700px){.ng-subscene{width:min(88vw,420px);right:-2%;bottom:0}.ng-subhero{height:auto;min-height:720px;padding-bottom:320px}.ng-subhero__copy{width:100%;align-self:flex-start}.ng-subhero__sun{top:auto;bottom:170px}.ng-page--kontakt .ng-subhero,.ng-page--impressum .ng-subhero,.ng-page--datenschutz .ng-subhero{min-height:680px}}
@media(prefers-reduced-motion:reduce){.ng-subscene *{animation:none!important}}

/* One shared ten-second cycle: four seconds opening, six seconds closing. */
.ng-breathing-flower{position:relative;width:100%;max-width:510px;margin:auto;container-type:inline-size;--breath-cycle:10s}
.ng-breathing-flower>svg{display:block;width:100%;height:auto}
.ng-breathing-flower__petals,.ng-breathing-flower__halo{transform-origin:240px 240px;animation:ng-breath-open var(--breath-cycle) infinite;animation-play-state:paused}
.ng-breathing-flower__halo{animation-name:ng-breath-halo}
.ng-breathing-flower__words{position:absolute;inset:0 0 auto;height:auto;aspect-ratio:1;pointer-events:none;display:grid;place-items:center}
.ng-breathing-flower__words span{grid-area:1/1;color:#fffaf1;font:400 clamp(18px,6cqw,28px)/1.2 var(--ng-serif);padding-top:8px}
.ng-breathing-flower__in{animation:ng-breath-in var(--breath-cycle) steps(1,end) infinite;animation-play-state:paused}
.ng-breathing-flower__out{opacity:0;animation:ng-breath-out var(--breath-cycle) steps(1,end) infinite;animation-play-state:paused}
.ng-breathing-flower__still{display:none}
.ng-breathing-flower>p{text-align:center;margin:4px 0 0;color:var(--ng-muted);font-size:15px;letter-spacing:.03em}
.ng-breathing-flower.is-breathing *{animation-play-state:running}
@keyframes ng-breath-open{0%,100%{transform:scale(.72);animation-timing-function:ease-in-out}40%{transform:scale(1);animation-timing-function:ease-in-out}}
@keyframes ng-breath-halo{0%,100%{transform:scale(.8);opacity:.25;animation-timing-function:ease-in-out}40%{transform:scale(1);opacity:.8;animation-timing-function:ease-in-out}}
@keyframes ng-breath-in{0%{opacity:1}40%{opacity:0}100%{opacity:1}}
@keyframes ng-breath-out{0%{opacity:0}40%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.ng-breathing-flower *{animation:none!important}.ng-breathing-flower__in,.ng-breathing-flower__out{display:none}.ng-breathing-flower__still{display:block}.ng-breathing-flower__petals{transform:scale(.88)}}
