/* =========================================================================
   Skoleværkstedet · fælles grundlag
   Reset, tokens, valgskærmen (tovejs forside) og de to indgangsanimationer.
   Verdenernes egne temaer ligger i school.css og kids.css.
   ========================================================================= */

:root {
  /* skrifter */
  --font-serif: "Fraunces", "Iowan Old Style", Georgia, serif;
  --font-sans: "IBM Plex Sans", "Segoe UI", system-ui, -apple-system, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --font-fat: "Bricolage Grotesque", "Arial Black", Impact, system-ui, sans-serif;
  --font-round: "Nunito", system-ui, -apple-system, sans-serif;

  /* skolens verden */
  --navy: #0a1b2e;
  --navy-deep: #06111d;
  --paper: #ffffff;
  --grid: rgba(10, 27, 46, .07);
  --grid-strong: rgba(10, 27, 46, .14);
  --signal: #b2360f;

  /* børnenes verden */
  --ink: #111111;
  --yellow: #ffd400;
  --pink: #ff3d8b;
  --lime: #c6ff3d;
  --orange: #ff5d3d;
  --blue: #1157ff;
  --aqua: #6ce6d7;

  /* rytme i spring af 4 */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px;

  --header-h: 72px;
  --teeth: 28px;
  --focus: #1157ff;

  /* bevægelse */
  --ease-out: cubic-bezier(.2, .72, .2, 1);
  --ease-calm: cubic-bezier(.45, .05, .25, 1);
  --ease-boing: cubic-bezier(.2, 1.6, .4, 1);
}

*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + var(--s4));
  background: #fff;
}

body {
  margin: 0;
  min-height: 100dvh;
  background: #fff;
  color: var(--navy);
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

body[data-scroll-lock="on"] { overflow: hidden; }

h1, h2, h3, h4 { margin: 0; line-height: 1.1; text-wrap: balance; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
dl, dd { margin: 0; }
img { display: block; }
svg { display: block; }
button { font: inherit; color: inherit; }
a { color: inherit; }

:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  z-index: 90;
  left: var(--s4);
  top: -100px;
  padding: var(--s3) var(--s5);
  background: var(--navy);
  color: #fff;
  font-weight: 600;
  text-decoration: none;
  transition: top .18s ease-out;
}
.skip-link:focus { top: var(--s4); }

.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* tekst der endnu ikke er en bekræftet oplysning */
.placeholder {
  font-style: normal;
  border-bottom: 2px dashed currentColor;
  opacity: .8;
}

/* bogstaver der deles op af scriptet (titler der hopper) */
.lt-word { display: inline-block; white-space: nowrap; }
.lt { display: inline-block; }

/* =======================================================================
   VALGSKÆRMEN
   ======================================================================= */

.chooser {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  background: var(--paper);
}

.chooser__mark {
  position: absolute;
  inset-inline: 0;
  top: var(--s5);
  z-index: 8;
  display: grid;
  justify-items: center;
  gap: var(--s1);
  pointer-events: none;
  text-align: center;
}

.chooser__wordmark {
  display: block;
  padding: var(--s2) var(--s5);
  background: var(--ink);
  color: #fff;
  font-family: var(--font-sans);
  font-size: clamp(18px, 2.5vw, 30px);
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.chooser__lead {
  display: block;
  padding: 2px var(--s2);
  background: #fff;
  color: var(--ink);
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
}

.chooser__panels {
  display: grid;
  grid-template-rows: auto auto;
  min-height: 100dvh;
}
.chooser__panels > .panel { min-height: 50dvh; }

@media (min-width: 768px) {
  .chooser__panels > .panel { min-height: 100dvh; }
  .chooser__panels {
    grid-template-rows: none;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  }
}

.panel {
  position: relative;
  display: grid;
  align-content: end;
  padding: calc(var(--s9) + var(--s4)) var(--s5) var(--s7);
  overflow: hidden;
  text-decoration: none;
  isolation: isolate;
  transition: transform .5s var(--ease-out), opacity .3s ease-out;
}

@media (min-width: 768px) {
  .panel { align-content: center; padding: var(--s9) var(--s7); }
}
@media (min-width: 1024px) {
  .panel { padding: var(--s9) var(--s8); }
}

.panel__body {
  position: relative;
  z-index: 2;
  display: grid;
  justify-items: start;
  gap: var(--s4);
  max-width: 30rem;
  pointer-events: none;
}

.panel__kicker,
.panel__title,
.panel__line { display: block; }

.panel__go {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  min-height: 48px;
}

/* ---------- den legende halvdel ---------- */

.panel--kids {
  z-index: 2;
  background: var(--yellow);
  color: var(--ink);
  font-family: var(--font-round);
  cursor: grab;
  margin-block-end: calc(var(--teeth) * -1);
  padding-block-end: calc(var(--s7) + var(--teeth));
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 24px), 95.83% 100%, 91.67% calc(100% - 24px), 87.50% 100%, 83.33% calc(100% - 24px), 79.17% 100%, 75.00% calc(100% - 24px), 70.83% 100%, 66.67% calc(100% - 24px), 62.50% 100%, 58.33% calc(100% - 24px), 54.17% 100%, 50.00% calc(100% - 24px), 45.83% 100%, 41.67% calc(100% - 24px), 37.50% 100%, 33.33% calc(100% - 24px), 29.17% 100%, 25.00% calc(100% - 24px), 20.83% 100%, 16.67% calc(100% - 24px), 12.50% 100%, 8.33% calc(100% - 24px), 4.17% 100%, 0.00% calc(100% - 24px));
  --focus: var(--ink);
}
.panel--kids.is-grabbing { cursor: grabbing; }

@media (min-width: 768px) {
  .panel--kids {
    margin-block-end: 0;
    margin-inline-end: calc(var(--teeth) * -1);
    padding-block-end: var(--s9);
    padding-inline-end: calc(var(--s7) + var(--teeth));
    clip-path: polygon(0 0, calc(100% - 28px) 0, 100% 2.27%, calc(100% - 28px) 4.55%, 100% 6.82%, calc(100% - 28px) 9.09%, 100% 11.36%, calc(100% - 28px) 13.64%, 100% 15.91%, calc(100% - 28px) 18.18%, 100% 20.45%, calc(100% - 28px) 22.73%, 100% 25.00%, calc(100% - 28px) 27.27%, 100% 29.55%, calc(100% - 28px) 31.82%, 100% 34.09%, calc(100% - 28px) 36.36%, 100% 38.64%, calc(100% - 28px) 40.91%, 100% 43.18%, calc(100% - 28px) 45.45%, 100% 47.73%, calc(100% - 28px) 50.00%, 100% 52.27%, calc(100% - 28px) 54.55%, 100% 56.82%, calc(100% - 28px) 59.09%, 100% 61.36%, calc(100% - 28px) 63.64%, 100% 65.91%, calc(100% - 28px) 68.18%, 100% 70.45%, calc(100% - 28px) 72.73%, 100% 75.00%, calc(100% - 28px) 77.27%, 100% 79.55%, calc(100% - 28px) 81.82%, 100% 84.09%, calc(100% - 28px) 86.36%, 100% 88.64%, calc(100% - 28px) 90.91%, 100% 93.18%, calc(100% - 28px) 95.45%, 100% 97.73%, calc(100% - 28px) 100.00%, 0 100%);
  }
}

.panel__physics {
  position: absolute;
  inset: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.panel--kids .panel__kicker {
  padding: var(--s1) var(--s3);
  background: var(--ink);
  color: var(--yellow);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
  rotate: -3deg;
}

.panel--kids .panel__title {
  font-family: var(--font-fat);
  font-size: clamp(3rem, 10.5vw, 7.5rem);
  font-weight: 800;
  line-height: .86;
  letter-spacing: -.04em;
  text-transform: uppercase;
  color: var(--ink);
  -webkit-text-stroke: 0;
  text-shadow: 5px 5px 0 #fff;
}

.panel--kids .panel__line {
  max-width: 28ch;
  font-size: 19px;
  font-weight: 800;
  line-height: 1.4;
}

.panel--kids .panel__go {
  padding: 0 var(--s5);
  min-height: 56px;
  background: var(--ink);
  color: var(--yellow);
  border-radius: 999px;
  font-size: 19px;
  font-weight: 900;
  box-shadow: 5px 5px 0 var(--pink);
  transition: transform .18s var(--ease-boing), box-shadow .18s ease-out;
}
.panel--kids .panel__go .od-icon { --od-icon-size: 22px; }

.panel__hint {
  position: absolute;
  z-index: 2;
  top: calc(var(--s9) + var(--s2));
  right: calc(var(--s5) + var(--teeth));
  padding: var(--s1) var(--s3);
  background: #fff;
  border: 3px solid var(--ink);
  border-radius: 999px;
  font-family: var(--font-round);
  font-size: 14px;
  font-weight: 900;
  rotate: 6deg;
  pointer-events: none;
}
@media (max-width: 767px) { .panel__hint { display: none; } }

/* hoppende bogstaver i titlen */
@media (prefers-reduced-motion: no-preference) {
  .panel--kids .panel__title .lt {
    animation: wobble 1.6s ease-in-out infinite;
    animation-delay: calc(var(--n, 0) * -120ms);
  }
}
@keyframes wobble {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-8px) rotate(4deg); }
}

@media (hover: hover) {
  .panel--kids:hover .panel__go { transform: rotate(-3deg) scale(1.06); box-shadow: 8px 8px 0 var(--pink); }
}
.panel--kids:focus-visible { outline: 4px solid var(--ink); outline-offset: -10px; }

/* ---------- den seriøse halvdel ---------- */

.panel--school {
  z-index: 1;
  background:
    linear-gradient(var(--grid-strong) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(90deg, var(--grid-strong) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0 / 24px 24px,
    var(--paper);
  color: var(--navy);
  font-family: var(--font-sans);
  cursor: crosshair;
  padding-block-start: calc(var(--s9) + var(--s4) + var(--teeth));
  --focus: var(--navy);
}

@media (min-width: 768px) {
  .panel--school {
    padding-block-start: var(--s9);
    padding-inline-start: calc(var(--s7) + var(--teeth));
  }
}
@media (min-width: 1024px) {
  .panel--school { padding-inline-start: calc(var(--s8) + var(--teeth)); }
}

.panel--school .panel__kicker {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--signal);
}

.panel--school .panel__title {
  font-family: var(--font-serif);
  font-size: clamp(2.2rem, 5.2vw, 3.8rem);
  font-weight: 600;
  letter-spacing: -.02em;
  line-height: 1.02;
}

.panel--school .panel__line {
  max-width: 34ch;
  font-size: 17px;
  color: #3d4d5c;
}

.panel--school .panel__go {
  padding-bottom: 2px;
  border-bottom: 1px solid currentColor;
  font-size: 16px;
  font-weight: 600;
  min-height: 44px;
}
.panel--school .panel__go .od-icon { --od-icon-size: 20px; transition: transform .25s var(--ease-out); }

@media (hover: hover) {
  .panel--school:hover .panel__go .od-icon { transform: translateX(6px); }
}
.panel--school:focus-visible { outline: 1px solid var(--navy); outline-offset: -14px; }

.panel__drawing {
  position: absolute;
  z-index: 1;
  inset-block-start: calc(var(--s9) + var(--teeth));
  inset-inline-end: var(--s4);
  width: min(56%, 300px);
  height: auto;
  pointer-events: none;
}

@media (min-width: 768px) {
  .panel__drawing {
    inset-block-start: var(--s9);
    inset-inline-end: var(--s6);
    width: min(62%, 420px);
  }
}

@media (max-width: 767px) {
  .panel--school .panel__body { margin-top: var(--s9); }
}

.panel__drawing text {
  fill: currentColor;
  stroke: none;
  font-family: var(--font-mono);
  font-size: 11px;
}

.panel__drawing .ln { stroke-dasharray: 100; stroke-dashoffset: 0; }
.panel__drawing .dim { opacity: 0; transition: opacity .4s ease-out; }

@media (prefers-reduced-motion: no-preference) {
  .panel__drawing .ln { animation: draw-stroke 1.6s var(--ease-calm) both; }
  .panel__drawing .ln:nth-child(3n+2) { animation-delay: .2s; }
  .panel__drawing .ln:nth-child(3n) { animation-delay: .4s; }
}

.panel--school:hover .panel__drawing .dim,
.panel--school:focus-visible .panel__drawing .dim { opacity: 1; }

.panel__titleblock {
  position: absolute;
  z-index: 2;
  inset-block-end: var(--s5);
  inset-inline-end: var(--s5);
  display: grid;
  grid-template-columns: repeat(3, auto);
  border: 1px solid var(--navy);
  background: #fff;
  font-family: var(--font-mono);
  font-size: 11.5px;
  pointer-events: none;
}
.panel__titleblock span { display: block; padding: var(--s1) var(--s3); }
.panel__titleblock span + span { border-inline-start: 1px solid var(--navy); }
@media (max-width: 479px) { .panel__titleblock { display: none; } }

/* sigtekorset der følger musen */
.bp-cross {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0;
  transition: opacity .2s ease-out;
}
.panel--school.is-aiming .bp-cross { opacity: 1; }

.bp-cross__x,
.bp-cross__y {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  background: var(--navy);
  opacity: .55;
}
.bp-cross__x { width: 100%; height: 1px; transform: translate3d(0, var(--cy, 0px), 0); }
.bp-cross__y { width: 1px; height: 100%; transform: translate3d(var(--cx, 0px), 0, 0); }

.bp-cross__label {
  position: absolute;
  left: 0;
  top: 0;
  display: block;
  padding: 2px var(--s2);
  background: var(--navy);
  color: #fff;
  font-family: var(--font-mono);
  font-size: 11.5px;
  white-space: nowrap;
  transform: translate3d(calc(var(--cx, 0px) + 12px), calc(var(--cy, 0px) + 12px), 0);
}

/* sømmen */
.chooser__seam {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 7;
  display: grid;
  place-items: center;
  width: 72px;
  height: 72px;
  transform: translate(-50%, -50%) rotate(-10deg);
  background: var(--ink);
  color: #fff;
  border: 4px solid #fff;
  border-radius: 50%;
  font-family: var(--font-round);
  font-size: 16px;
  font-weight: 900;
  pointer-events: none;
}

/* =======================================================================
   OVERGANG 1 — den rolige (skoler): siden tegnes op
   ======================================================================= */

/* børnesiden glider stille ud til venstre, papiret bliver */
.chooser.is-to-school .panel--kids {
  transform: translateX(-104%);
  transition: transform .6s var(--ease-calm);
}
@media (max-width: 767px) {
  .chooser.is-to-school .panel--kids { transform: translateY(-104%); }
}
.chooser.is-to-school .chooser__seam,
.chooser.is-to-school .chooser__mark,
.chooser.is-to-school .panel--school .panel__body,
.chooser.is-to-school .panel__titleblock,
.chooser.is-to-school .bp-cross {
  opacity: 0;
  transition: opacity .35s ease-in;
}

.blueprint {
  position: fixed;
  inset: 0;
  z-index: 60;
  pointer-events: none;
  color: var(--navy);
}

.blueprint__paper {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(var(--grid-strong) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(90deg, var(--grid-strong) 1px, transparent 1px) 0 0 / 96px 96px,
    linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 24px 24px,
    linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0 / 24px 24px,
    var(--paper);
  opacity: 0;
  transition: opacity .4s ease-out;
}

.blueprint__svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
  transition: opacity .7s ease-in;
}

.blueprint__svg .guide {
  stroke: var(--navy);
  stroke-width: 1;
  opacity: .28;
  stroke-dasharray: var(--len) var(--len);
  stroke-dashoffset: var(--len);
  animation: draw-stroke .9s var(--ease-calm) both;
  animation-delay: var(--d, 0ms);
}

.blueprint__svg .box {
  fill: none;
  stroke: var(--navy);
  stroke-width: 1.25;
  stroke-dasharray: var(--len) var(--len);
  stroke-dashoffset: var(--len);
  animation: draw-stroke .8s var(--ease-calm) both;
  animation-delay: var(--d, 0ms);
}

.blueprint__svg .hatch {
  stroke: var(--navy);
  stroke-width: .75;
  opacity: 0;
  animation: fade-to .5s ease-out both;
  animation-delay: var(--d, 0ms);
  --to: .35;
}

.blueprint__svg .dimline {
  stroke: var(--signal);
  stroke-width: 1;
  fill: none;
  opacity: 0;
  animation: fade-to .4s ease-out both;
  animation-delay: var(--d, 0ms);
  --to: 1;
}

.blueprint__svg text {
  fill: var(--signal);
  font-family: var(--font-mono);
  font-size: 11px;
  opacity: 0;
  animation: fade-to .4s ease-out both;
  animation-delay: var(--d, 0ms);
  --to: 1;
}

.blueprint__stamp {
  position: absolute;
  right: var(--s5);
  bottom: var(--s5);
  padding: var(--s1) var(--s3);
  border: 1px solid var(--navy);
  background: #fff;
  font-family: var(--font-mono);
  font-size: 12px;
  opacity: 0;
  transition: opacity .4s ease-out;
}

.blueprint[data-state="draw"] .blueprint__paper,
.blueprint[data-state="draw"] .blueprint__stamp { opacity: 1; }
.blueprint[data-state="settle"] .blueprint__paper { opacity: 0; transition: opacity .8s var(--ease-calm); }
.blueprint[data-state="settle"] .blueprint__stamp { opacity: 0; }
.blueprint[data-state="fade"] .blueprint__paper { opacity: 0; }
.blueprint[data-state="fade"] .blueprint__svg { opacity: 0; }

@keyframes draw-stroke { to { stroke-dashoffset: 0; } }
@keyframes fade-to { to { opacity: var(--to, 1); } }

/* =======================================================================
   OVERGANG 2 — den vilde (børn): ryst, sug, eksplosion, farvebølger
   ======================================================================= */

.chooser.is-to-kids { animation: shake .42s linear both; }
.chooser.is-to-kids .panel--school {
  transform: translateX(110%) rotate(6deg);
  transition: transform .45s cubic-bezier(.6, 0, .9, .4);
}
@media (max-width: 767px) {
  .chooser.is-to-kids .panel--school { transform: translateY(110%) rotate(-6deg); }
}
.chooser.is-to-kids .chooser__seam {
  transform: translate(-50%, -50%) rotate(380deg) scale(0);
  transition: transform .4s cubic-bezier(.6, 0, .9, .4);
}
.chooser.is-to-kids .panel--kids .panel__title { animation: swell .4s ease-in both; }

@keyframes shake {
  0%, 100% { transform: translate3d(0, 0, 0); }
  10% { transform: translate3d(-10px, 4px, 0) rotate(-.6deg); }
  20% { transform: translate3d(12px, -6px, 0) rotate(.8deg); }
  30% { transform: translate3d(-14px, 8px, 0); }
  40% { transform: translate3d(10px, -4px, 0) rotate(-.8deg); }
  55% { transform: translate3d(-8px, 6px, 0); }
  70% { transform: translate3d(6px, -6px, 0) rotate(.5deg); }
  85% { transform: translate3d(-3px, 2px, 0); }
}
@keyframes swell {
  to { transform: scale(1.25) rotate(-4deg); }
}

.boom {
  position: fixed;
  inset: 0;
  z-index: 70;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

/* =======================================================================
   INDHOLD DER KOMMER TIL SYNE
   ======================================================================= */

.world { display: block; }

.world section[id],
.world [data-anchor] { scroll-margin-top: calc(var(--header-h) + var(--s4)); }

.reveal { opacity: 0; }

/* skolesiden står klar bag tegningen, men er usynlig */
.world--school.is-staged { opacity: 0; }

.world--school.is-revealed .reveal {
  animation: rise .9s var(--ease-calm) both;
  animation-delay: calc(var(--i, 0) * 110ms);
}

/* kun 'backwards': efter landingen må verdenen ikke beholde en transform,
   ellers mister raketten og farvesporet deres faste plads */
.world--kids.is-revealed { animation: drop .75s var(--ease-boing) backwards; }
.world--kids.is-revealed .reveal {
  animation: pop .6s var(--ease-boing) both;
  animation-delay: calc(250ms + var(--i, 0) * 90ms);
}
.world--kids.is-revealed [data-letters] .lt {
  animation: slam .55s var(--ease-boing) both;
  animation-delay: calc(180ms + var(--n, 0) * 28ms);
}

@keyframes rise {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}
@keyframes pop {
  from { opacity: 0; transform: translate3d(0, 60px, 0) scale(.85) rotate(-3deg); }
  to { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0deg); }
}
@keyframes drop {
  from { transform: translate3d(0, -40vh, 0); }
  to { transform: translate3d(0, 0, 0); }
}
@keyframes slam {
  0% { opacity: 0; transform: translate3d(0, -60px, 0) scale(2.6) rotate(var(--r, 12deg)); }
  60% { opacity: 1; }
  100% { opacity: 1; transform: translate3d(0, 0, 0) scale(1) rotate(0deg); }
}

/* stregtegningen i skolens hero tegner sig selv */
.draw .ln { stroke-dasharray: 100; stroke-dashoffset: 100; }
.world--school.is-revealed .draw .ln {
  animation: draw-stroke 1.4s var(--ease-calm) both;
  animation-delay: calc(300ms + var(--d, 0ms));
}

/* =======================================================================
   MINDRE BEVÆGELSE — alt bliver til korte fades
   ======================================================================= */

@media (prefers-reduced-motion: reduce) {
  .panel { transition: opacity .2s linear; }
  .chooser.is-to-kids,
  .chooser.is-to-kids .panel--kids .panel__title { animation: none; }
  .chooser.is-to-school .panel--kids,
  .chooser.is-to-kids .panel--school { transform: none; }
  .draw .ln,
  .panel__drawing .ln { stroke-dashoffset: 0; animation: none !important; }
  .blueprint, .boom { display: none !important; }
  .reveal,
  .world--school.is-revealed .reveal,
  .world--kids.is-revealed .reveal,
  .world--kids.is-revealed [data-letters] .lt {
    opacity: 1;
    transform: none;
    animation: none !important;
  }
  .world--kids.is-revealed { animation: none; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .12s !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- skoledelen på pause: stempel i stedet for link ---------- */
.panel--school.is-paused { cursor: default; }
.soon-sticker {
  position: absolute;
  z-index: 3;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  width: clamp(230px, 30vw, 400px);
  aspect-ratio: 1;
  max-width: 78%;
  container-type: inline-size;
  display: grid;
  place-items: center;
  pointer-events: none;
  transform: translate(-50%, -50%) rotate(-12deg);
  filter: drop-shadow(6px 8px 0 rgba(10, 27, 46, .28));
}
.soon-sticker__bg { position: absolute; inset: 0; width: 100%; height: 100%; }
.soon-sticker__text {
  position: relative;
  display: grid;
  justify-items: center;
  font-family: var(--font-fat);
  font-weight: 800;
  font-size: 12.2cqw;
  line-height: .9;
  letter-spacing: -.02em;
  text-transform: uppercase;
  text-align: center;
  color: #fff;
  text-shadow: .05em .05em 0 #7a0010;
}
.soon-sticker__maybe {
  color: #ffd23f;
  font-size: .78em;
  transform: rotate(4deg);
  margin-block: .08em;
}
@media (max-width: 767px) {
  .soon-sticker { inset-block-start: 58%; }
}
@media (prefers-reduced-motion: no-preference) {
  .soon-sticker { animation: sticker-slap .55s var(--ease-boing) .5s both; }
  .soon-sticker__bulbs { animation: bulbs 1.2s steps(2, jump-none) infinite; }
}
@keyframes sticker-slap {
  from { opacity: 0; transform: translate(-50%, -50%) rotate(-30deg) scale(1.6); }
  to   { opacity: 1; transform: translate(-50%, -50%) rotate(-12deg) scale(1); }
}
@keyframes bulbs { 50% { fill: #ffd23f; } }
