/* Graskind-Welt – Kapitel kalender: Regeln für den Welt-Modus (.has-world [data-world="ready"] …) und Szenen-Ergänzungen. */

/* Bühne: DOM-Blätter und Freisteller ausblenden – die Welt zeigt sie. Die Blatt-Links bleiben per Tastatur
   erreichbar (unsichtbar, Fokus holt das Blatt in der Welt nach vorn), die Sprungleiste bleibt sichtbar. */
.has-world #kalender[data-world="ready"] .kal { pointer-events: none; }
.has-world #kalender[data-world="ready"] .kal__floaters { display: none; }
.has-world #kalender[data-world="ready"] .kal__cal {
  position: absolute; left: 0; top: 0; width: 1px; height: 1px; margin: 0; padding: 0;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.has-world #kalender[data-world="ready"] .kal .kal__tabs {
  display: flex; pointer-events: auto;
  animation: kal-tabs-in .6s var(--ease-out, ease) both;
}
.has-world #kalender[data-world="ready"] .kal__tabgroup { background: rgba(251, 247, 238, .9); backdrop-filter: blur(6px); }
@keyframes kal-tabs-in { from { opacity: 0; translate: 0 12px; } }

/* Schaustück: etwas mehr Scrollweg für Ankunft, Umlauf und Explosionszeichnung (nur im Welt-Modus) */
.has-world #kalender[data-world="ready"] .chapter__steps { padding-bottom: 36vh; padding-bottom: 36svh; }

/* Beschriftungen der Explosionszeichnung */
.world-label.kal-label {
  padding: .22rem .62rem .24rem .5rem; font-size: .76rem; font-weight: 750;
  display: inline-flex; align-items: center; gap: .4rem;
  background: rgba(251, 247, 238, .95); box-shadow: 0 3px 10px rgba(40, 26, 8, .16);
}
.world-label.kal-label::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; flex: none;
  background: var(--kal-dot, #04785C); box-shadow: 0 0 0 2px rgba(4, 120, 92, .14);
}
.world-label.kal-label--chili { --kal-dot: #B5402B; }
.world-label.kal-label--herb { --kal-dot: #5E7A3A; }

/* Titel des vordersten Blattes */
.world-label.kal-cap {
  padding: .32rem .8rem; font-size: .8rem; font-weight: 800; letter-spacing: .01em;
  color: #fff; background: rgba(4, 120, 92, .92); box-shadow: 0 6px 18px rgba(4, 60, 46, .28);
}

/* Ankunft: Kalendertitel unter den Stapeln */
.world-label.kal-stack {
  padding: .3rem .78rem; font-size: .78rem; font-weight: 800; letter-spacing: .02em;
  color: #fff; background: var(--tint, #04785C); box-shadow: 0 6px 16px rgba(40, 20, 6, .22);
}

/* Maßlinien und Bindung (technische Zeichnung) */
.world-label.kal-dim {
  padding: .14rem .5rem; border-radius: 4px; font-size: .74rem; font-weight: 800; font-variant-numeric: tabular-nums;
  color: #04785C; background: rgba(251, 247, 238, .96); box-shadow: 0 0 0 1.5px rgba(4, 120, 92, .55), 0 3px 8px rgba(40, 26, 8, .14);
}
.world-label.kal-dim--v { translate: -100% -50%; }
.world-label.kal-dim--bind { translate: -100% -50%; font-weight: 750; }

@media (max-width: 900px) {
  .world-label.kal-stack { font-size: .68rem; padding: .24rem .6rem; }
  .world-label.kal-dim { font-size: .64rem; padding: .1rem .4rem; }
  .world-label.kal-label { font-size: .66rem; padding: .16rem .5rem .18rem .4rem; gap: .3rem; }
  .world-label.kal-label::before { width: 6px; height: 6px; }
  .world-label.kal-cap { font-size: .7rem; padding: .26rem .65rem; }
}

/* DOM-Fassung (Bewegung, ohne Welt): Wandkalender etwas kürzer, damit er nicht unter die Sprungleiste reicht */
@media (min-width: 901px) {
  html:not(.has-world) .kal.is-stack .kal__cal { --ch: min(70cqh, 140cqw); top: 10cqh; }
}
