/* Sømløst tannmønster som dekker hele kontaktseksjonen, også når skjemaet åpnes. */
#KontaktomradeHolder { position: relative; isolation: isolate; overflow: hidden; }
#KontaktomradeHolder > #Kontaktholder { position: relative; z-index: 1; }
.kontakt-tannkunst { position: absolute; z-index: 0; inset: 0; width: 100%; height: 100%; pointer-events: none; user-select: none; color: #fff; opacity: .19; }
.kontakt-tannkunst path { fill: none; stroke: currentColor; stroke-width: 1.6; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.kontakt-tannkunst .kt-detalj { stroke-width: 1.1; opacity: .7; }
.kontakt-tannkunst .kt-tann { --kt-delay: 0s; }
.kontakt-tannkunst .kt-tann:nth-child(5n+2) { --kt-delay: .35s; }
.kontakt-tannkunst .kt-tann:nth-child(5n+3) { --kt-delay: .7s; }
.kontakt-tannkunst .kt-tann:nth-child(5n+4) { --kt-delay: 1.05s; }
.kontakt-tannkunst .kt-tann:nth-child(5n+5) { --kt-delay: 1.4s; }
.kontakt-tannkunst.kt-tegn .kt-kontur { animation: kt-tegn-strek 4s cubic-bezier(.4,0,.2,1) var(--kt-delay) both; }
.kontakt-tannkunst.kt-tegn .kt-detalj { animation: kt-tegn-strek 1.2s ease-out calc(2.8s + var(--kt-delay)) both; }
@keyframes kt-tegn-strek { from { stroke-dasharray: 1; stroke-dashoffset: 1; } to { stroke-dasharray: 1; stroke-dashoffset: 0; } }
/* Eget indre lag: bevegelsen endrer ikke tennenes opprinnelige plassering. */
.kontakt-tannkunst .kt-liv { transform-box: fill-box; transform-origin: center; }
.kontakt-tannkunst.kt-tegn .kt-liv { animation: kt-flyt 13s ease-in-out calc(5.8s + var(--kt-delay)) infinite; }
.kontakt-tannkunst.kt-tegn .kt-tann:nth-child(3n+2) .kt-liv { animation-name: kt-flyt-motsatt; animation-duration: 17s; }
.kontakt-tannkunst.kt-tegn .kt-tann:nth-child(3n+3) .kt-liv { animation-duration: 20s; animation-direction: reverse; }
.kontakt-tannkunst.kt-utenfor .kt-liv { animation-play-state: paused; }
@keyframes kt-flyt {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(9px, -12px) rotate(2deg); }
    66% { transform: translate(-7px, -5px) rotate(-1.5deg); }
}
@keyframes kt-flyt-motsatt {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    40% { transform: translate(-10px, 9px) rotate(-2deg); }
    75% { transform: translate(6px, 12px) rotate(1.5deg); }
}
@media (prefers-reduced-motion: reduce) { .kontakt-tannkunst.kt-tegn .kt-liv { animation: none; transform: none; } }
@media (max-width: 575px) { .kontakt-tannkunst { opacity: .14; } }
@media (prefers-reduced-motion: reduce) { .kontakt-tannkunst.kt-tegn path { animation: none; stroke-dasharray: none; stroke-dashoffset: 0; } }
