
/* 1. Globale Einstellungen */
:root{
  --navy:#08213a;--blue:#0d6fa6;--sky:#62d7ff;--green:#55cf88;--yellow:#ffd766;
  --orange:#ff9e4a;--pink:#ff7ca8;--white:#f9fdff;--muted:#c8e2f1;--bad:#ff6e73;
}

*{
	box-sizing:border-box
}

body{
  margin:0;font-family:system-ui,-apple-system,Segoe UI,Arial,sans-serif;color:var(--white);
  min-height:100vh;background:
    radial-gradient(circle at 20% 0%,#1c79b3 0,transparent 28%),
    radial-gradient(circle at 85% 10%,#7a4cc9 0,transparent 23%),
    linear-gradient(180deg,#0b3459,#071a2f 60%,#04111d);
}

button,
select{
	font:inherit
}


/* 2. Allgemeines Layout */

.wrap{
	max-width:1120px;margin:auto;padding:20px
}

.top{
	display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap
}

/* Kopfbereich */

.logo{
	font-size:clamp(36px,6vw,64px);font-weight:1000;letter-spacing:1px
}

.logo span{
	color:var(--yellow)
}

.slogan{
	font-weight:900;color:#d6f3ff
}

.stats{
	display:flex;gap:8px;flex-wrap:wrap
}

.pill{
	background:#041725c7;border:1px solid #ffffff25;border-radius:999px;padding:9px 13px;font-weight:900
}

.card{
  margin-top:18px;padding:22px;border-radius:26px;
  background:linear-gradient(145deg,#113c61e8,#0b2742ef);
  border:1px solid #ffffff20;box-shadow:0 22px 60px #0007;
}

.center{
	text-align:center
}

/* Allgemeine Typografie */

.big{
	font-size:clamp(28px,4.5vw,46px);margin-bottom:8px
}

.subtitle{
	max-width:790px;margin:0 auto 18px;color:var(--muted);line-height:1.55
}

html,
body{
  width:100%;
  max-width:100%;
  overflow-x:hidden;
}

@supports (overflow:clip){
  html,
  body{
    overflow-x:clip;
  }
}

#start{
  padding-top:10px;
}

/* 3. Buttons und Formulare */

.primary,
.secondary{
  border:0;border-radius:16px;padding:14px 20px;font-weight:1000;cursor:pointer;transition:.18s transform;
}

.primary{background:linear-gradient(135deg,var(--yellow),var(--orange));color:#183049;box-shadow:0 10px 28px #ffb13d40}

.secondary{background:#ffffff12;color:#fff;border:1px solid #ffffff28}

.primary:hover,
.secondary:hover{
	transform:translateY(-2px)
}

.controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin:18px 0}

.gameBack{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.gameBack svg{
  display:block;
  flex:0 0 auto;
  width:24px;
  height:24px;
}

.iconButton{
  display:grid;
  place-items:center;

  width:48px;
  height:48px;
  padding:0;

  color:#fff;
  line-height:1;
}

.iconButton svg{
  display:block;
  width:26px;
  height:26px;
}

/* Formulare und Spieleinstellungen */

.selectWrap{background:#ffffff0f;border:1px solid #ffffff22;border-radius:16px;padding:9px 12px;font-weight:900}

select{background:#0b2d4b;color:#fff;border:0;border-radius:10px;padding:8px;font-weight:900}

.gradeHint{margin:8px auto 0;max-width:700px;background:#ffffff0b;border-radius:14px;padding:10px 12px;color:#e8f7ff}

/* Themen-Badges */

.badgeRow{
	display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0
}

.badge{
	padding:8px 11px;border-radius:999px;background:#ffffff0d;border:1px solid #ffffff1f;font-weight:800;color:#dff5ff
}


/* 4. Globus auf der Startseite */

.globe{
  position:relative;width:min(68vw,500px);aspect-ratio:1;margin:22px auto;border-radius:50%;overflow:hidden;
  border:8px solid #ffffff18;box-shadow:inset -35px -25px 80px #00172d99,0 24px 55px #0008;
  cursor:pointer;transition:.25s transform,.25s box-shadow;background:#0b3459;
	-webkit-tap-highlight-color:transparent;
}

.globe:hover{
	transform:scale(1.025);box-shadow:inset -35px -25px 80px #00172d99,0 30px 70px #000a,0 0 42px #62d7ff45
}

.globe:focus-visible{
	outline:4px solid var(--yellow);outline-offset:8px
}

.globeHint{
	margin:-10px 0 8px;color:#dff6ff;font-weight:900;font-size:14px
}

.globeHint span{
	display:inline-block;background:#06192ba6;border:1px solid #ffffff28;padding:7px 11px;border-radius:999px
}

.globeSlot,	/* globeSLot: der Container des kleinen Startseiten-Globus */
#globeHost{ /* globeHost: der eigentliche Three.js-/Globe-Container */
	width:100%;height:100%
}

#globeHost.homePreview{pointer-events:none}

#globeHost canvas{display:block}

.globeLoading{
  position:absolute;inset:0;z-index:4;display:grid;place-items:center;pointer-events:none;
  color:#eaf9ff;font-weight:1000;text-shadow:0 3px 12px #000;background:#06192b33;
}

.globeLoading.hidden{display:none}


/* 5. Reisefortschritt */

.travelProgress{
  width:min(100%, 560px);
  margin:14px auto 20px;
  padding:14px 16px;
  border:1px solid #ffffff25;
  border-radius:18px;
  background:#06192b80;
  text-align:left;
}

.travelProgressHeader{
  display:flex;
  justify-content:flex-start;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  color:#eaf9ff;
  font-weight:900;
}

.travelProgressHeader strong{
  color:var(--yellow);
  white-space:nowrap;
	margin-left:0;
}

.travelProgressTrack{
  height:16px;
  overflow:hidden;
  border-radius:999px;
  background:#ffffff14;
  box-shadow:inset 0 2px 5px #0005;
}

.travelProgressBar{
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(
    90deg,
    var(--sky),
    var(--green),
    var(--yellow)
  );
  transition:width .5s ease;
}


/* 6. Großer Globus */

.globeOverlay{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;overflow:hidden;
  background:
    radial-gradient(circle at 50% 45%,#0c4775 0,transparent 34%),
    radial-gradient(circle at 15% 18%,#4b2d7b 0,transparent 24%),
    linear-gradient(180deg,#020812,#061629 65%,#020711);
  opacity:0;visibility:hidden;transition:.28s opacity,.28s visibility;
}

.globeOverlay.open{
	opacity:1;
	visibility:visible
}

.globeOverlay:before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.75;
  background-image:
    radial-gradient(circle,#fff 0 1px,transparent 1.4px),
    radial-gradient(circle,#83dfff 0 1px,transparent 1.4px);
  background-size:73px 73px,121px 121px;background-position:0 0,22px 41px;
}

.globeStage{
  position:relative;
  z-index:2;

  width:min(92vw,88vh,1000px);
  height:auto;
  aspect-ratio:1;

  overflow:hidden;
  border:2px solid gray;
  border-radius:50%;

  touch-action:none;
  user-select:none;

  transform:translateY(
    clamp(20px, 3vh, 40px)
  );

  box-shadow:
    0 0 35px #62d7ff20;
}

.globeTopbar{
  position:absolute;
  left:20px;
  right:20px;
  top:18px;
  z-index:6;
  display:flex;
  align-items:center;
  pointer-events:none;
}

.globeTopbar .iconButton{
  position:relative;
  z-index:2;
  pointer-events:auto;
}

.globeTitle{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  font-weight:1000;
  font-size:clamp(20px,3vw,34px);
  text-align:center;
  white-space:nowrap;
  text-shadow:0 4px 16px #000;
}

.globeBack{
  position:relative;
  z-index:2;
  pointer-events:auto;
  display:grid;
  place-items:center;
  width:52px;
  height:48px;
  border:1px solid #ffffff30;
  border-radius:15px;
  background:#071c31dd;
  color:#fff;
  font-size:27px;
  font-weight:1000;
  cursor:pointer;
  box-shadow:0 8px 24px #0005;
  transition:
    transform .18s ease,
    background .18s ease;
}

.globeBack svg{
  display:block;
  width:27px;
  height:27px;
}

.globeBack:hover{
  background:#123958ee;
  transform:translateX(-3px);
}

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

.globeTip{
	position:absolute;top:76px;left:50%;transform:translateX(-50%);z-index:7;background:#06192bbd;
	border:1px solid #ffffff24;border-radius:999px;padding:8px 13px;font-weight:900;white-space:nowrap
}

.globeInfo{
  position:absolute;left:24px;bottom:24px;z-index:7;max-width:min(430px,70vw);
  background:#06192bd9;border:1px solid #ffffff25;border-radius:18px;padding:13px 16px;backdrop-filter:blur(10px);
  box-shadow:0 14px 35px #0007
}

.globeInfo strong{
	display:block;color:var(--yellow);font-size:19px;margin-bottom:2px
}

.globeInfo small{
	color:#d4edf9;line-height:1.35
}

.globeControls{
  position:absolute;

  left:calc(
    50% - min(46vw,44vh,500px) - 70px
  );

  right:auto;
  top:50%;
  bottom:auto;

  z-index:8;

  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;

  transform:translateY(-50%);
	
	--globe-control-size:64px;
  --globe-control-icon-size:42px;
}

.globeControls button{
  width:var(--globe-control-size);
  min-width:var(--globe-control-size);
  max-width:var(--globe-control-size);

  height:var(--globe-control-size);
  min-height:var(--globe-control-size);
  max-height:var(--globe-control-size);

  padding:0;

  flex:
    0 0
    var(--globe-control-size);

  display:grid;
  place-items:center;

  border:1px solid #ffffff2b;
  border-radius:17px;
  background:#071b30d9;
  color:white;

  font-size:30px;
  font-weight:1000;
  line-height:1;

  cursor:pointer;
  box-shadow:0 8px 24px #0005;

  appearance:none;
  -webkit-appearance:none;

  touch-action:none;
  user-select:none;
  -webkit-user-select:none;
  -webkit-touch-callout:none;
}

.globeControls button img{
  display:block;

  width:var(--globe-control-icon-size);
  height:var(--globe-control-icon-size);

  margin:0;
  padding:0;

  border-radius:50%;
  object-fit:contain;
  pointer-events:none;
}

.globeControls button svg{
  display:block;

  width:
    calc(
      var(--globe-control-size) * 0.55
    );

  height:
    calc(
      var(--globe-control-size) * 0.55
    );

  fill:none;
  stroke:currentColor;
  stroke-width:2.2;
  stroke-linecap:round;
  stroke-linejoin:round;

  pointer-events:none;
}

.globeControls button:disabled{
  opacity:.38;
  cursor:default;
}

.homeGlobeScene{
  position:relative;

  width:100%;

  display:grid;
  place-items:center;

  margin:20px auto;

  overflow:visible;
  isolation:isolate;
}

.homeGlobeDecoration{
  position:absolute;
  left:50%;
  top:50%;

  width:min(78vw,620px);
  height:auto;

  transform:translate(-14%,-42%);

  z-index:2; /* vor dem Globus */

  object-fit:contain;
  pointer-events:none;
  user-select:none;
}

.homeGlobeScene .globe{
  position:relative;
  z-index:1; /* hinter dem Bild */
  margin:0;
}

.globeMobileUi{
  display:contents;
}

/* 7. Rucksack */

.travelBackpack{
  position:absolute;
  right:24px;
  top:50%;
  z-index:7;
  width:220px;
  padding:16px;
  border:1px solid #ffffff2b;
  border-radius:22px;
  background:#06192be8;
  box-shadow:0 18px 45px #0009;
  backdrop-filter:blur(12px);
  transform:translateY(-50%);
	
  display:flex;
  flex-direction:column;
  min-height:0;
  max-height:min(70vh, 620px);
  overflow:hidden;
}

.backpackHeader{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:14px;
	flex:0 0 auto;
}

.backpackIcon{
  font-size:34px;
}

.backpackHeader strong{
  display:block;
  color:var(--yellow);
  font-size:18px;
}

.backpackHeader small{
  display:block;
  margin-top:2px;
  color:#c8e2f1;
}

.backpackItems::-webkit-scrollbar{
  width:8px;
}

.backpackItems::-webkit-scrollbar-track{
  background:rgba(0,0,0,.2);
  border-radius:4px;
}

.backpackItems::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,.5);
  border-radius:4px;
}

.backpackItems::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,.75);
}

.backpackItems{
  display:grid;
  grid-template-columns:repeat(2, 82px);
  grid-auto-rows:96px;

  justify-content:center;
  align-content:start;
  gap:8px;

  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;

  padding:4px 8px 10px;
}

.backpackSlot{
  width:82px;
  height:96px;
  min-width:0;
  min-height:96px;

  padding:5px;

  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;

  border-radius:11px;
}

.backpackSlotImage{
	display:block;
	flex:0 0 65px;
	
  width:100%;
  height:65px;
  min-height:65px;

  padding:1px;
  object-fit:contain;

  border-radius:8px;
  background:rgba(255,255,255,.1);
}

.backpackSlotName{
  display:block;
  flex:0 0 12px;

  width:100%;
  min-height:12px;
  margin-top:5px;

  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;

  color:white;
  font-size:10px;
  line-height:12px;
  text-align:center;
}

.backpackSlot.locked .backpackSlotName{
  display:block;
  color:#91a0aa;
}

.backpackSlot.unlocked{
  cursor:pointer;
}

.backpackSlot.locked{
  cursor:not-allowed;
}

.backpackSlot:disabled{
  opacity:1;
}

.backpackSlot.locked
.backpackSlotImage{
  filter:grayscale(1) brightness(.42);
  opacity:.48;
}

.backpackSlot.unlocked{
  border-color:#ffd76680;
  background:linear-gradient(
    145deg,
    #ffd76620,
    #55cf8815
  );
  box-shadow:0 0 18px #ffd76620;
}

.backpackSlot.unlocked:hover{
  z-index:2;

  border-color:var(--yellow);
  background:#ffd76625;

  transform:
    translateY(-3px)
    scale(1.03);
}

.backpackSlot.unlocked:focus-visible{
  outline:3px solid var(--yellow);
  outline-offset:3px;
}

.backpackSlot.unlocked
.backpackSlotImage{
  filter:none;
  opacity:1;
}

/* 8. Missionsauswahl und Minispiele */

.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}

#startGameButton{
  position:relative;
  z-index:20;

  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  user-select:none;
  -webkit-user-select:none;
}

.mapBack{
  display:grid;
  place-items:center;

  width:48px;
  height:48px;
  padding:0;

  color:#fff;
}

.mapBack svg{
  display:block;
  width:26px;
  height:26px;
}

.level{
  position:relative;
  min-height:165px;
  padding:16px;
  text-align:left;
  color:white;
  cursor:pointer;
  border-radius:20px;

  background:linear-gradient(145deg,#19507d,#0b2d50);
  border:1px solid #ffffff22;

  box-shadow:none;

  transition:none;
}

.levelStatus{
  display:block;
  width:100%;
  grid-column:1 / -1;
  margin-top:7px;
}

.level:hover:not(:disabled){
	transform:translateY(-4px)
}

.level:disabled{
	opacity:.42;cursor:not-allowed
}

.levelStars{ 
	position:absolute;
	top:12px; right:12px;
	margin:0; color:var(--yellow);
	font-size:24px;
	line-height:1;
	letter-spacing:3px;
	text-shadow:0 3px 8px #0007;
}

.level:disabled .levelStars{
  opacity:.55;
  filter:grayscale(1);
}

.emoji{font-size:42px}

.mission{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
  align-items:start;
}

.scene{
  height:360px;position:relative;overflow:hidden;border-radius:22px;
  background:linear-gradient(#72d9ff 0 60%,#b9e78f 60%);border:1px solid #ffffff22;
}

.scene:after{
	content:"☁️   ☁️";position:absolute;top:55px;left:8%;font-size:35px;opacity:.7;letter-spacing:80px
}

.sceneTitle{
	position:absolute;top:12px;left:12px;z-index:3;background:#08203cd9;padding:8px 12px;border-radius:12px;font-weight:1000
}

.obj{
	position:absolute;z-index:2;left:50%;bottom:24px;transform:translateX(-50%);font-size:145px;transition:.45s all
}

.kangaroo{
	left:7%;transform:none;font-size:82px
}

.finish{
	position:absolute;z-index:2;right:8%;bottom:18px;font-size:64px
}

.missionReward{
  width:min(100%,360px);
  margin:16px auto 20px;
  padding:12px;

  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;

  border:2px solid #55cf88;
  border-radius:16px;

  background:
    linear-gradient(
      135deg,
      #55cf8825,
      #0b263d
    );

  box-shadow:
    0 8px 24px #0005,
    0 0 20px #55cf8835;
}

.missionReward.hidden{
  display:none;
}

.missionRewardImage{
  width:72px;
  height:72px;
  flex:0 0 72px;

  padding:4px;

  border-radius:12px;
  background:#ffffff18;

  object-fit:contain;
}

.missionRewardText{
  min-width:0;
  text-align:left;
}

.missionRewardText small{
  display:block;
  margin-bottom:3px;

  color:#55cf88;
  font-weight:900;
}

.missionRewardText strong{
  display:block;

  color:white;
  font-size:18px;
}

.missionRewardText span{
  display:block;
  margin-top:4px;

  color:var(--muted);
  font-size:12px;
  line-height:1.3;
}

/* Aufgaben und Antworten */

.qbox{
	background:#06192ba8;border:1px solid #ffffff20;border-radius:22px;padding:21px;display:flex;flex-direction:column;justify-content:center
}

.type{
	color:var(--yellow);font-size:13px;text-transform:uppercase;letter-spacing:1.4px;font-weight:1000
}

.question{
	font-size:clamp(22px,3.7vw,38px);font-weight:1000;line-height:1.22;margin:10px 0 16px
}

.geometryIcon{
	font-size:88px;margin:4px 0
}

.answers{
	display:grid;grid-template-columns:1fr 1fr;gap:10px
}

.ans{
  min-height:58px;background:#ffffff10;color:#fff;border:1px solid #ffffff25;border-radius:16px;
  padding:13px;font-size:20px;font-weight:1000;cursor:pointer
}

.ans:hover{
	background:#ffffff1a
}

.ans.good{
	background:#168159
}

.ans.bad{
	background:#a03a48
}

/* Fortschritt und Spielzeit */

.progress,
.timer{
	background:#ffffff12;border-radius:999px;overflow:hidden
}

.progress{
	height:15px;margin:10px 0 14px
}
	
.timer{
	height:8px
}

.progress>div{
	height:100%;background:linear-gradient(90deg,var(--sky),var(--green));transition:.3s
}

.timer>div{
	height:100%;background:linear-gradient(90deg,var(--green),var(--yellow),var(--bad));transition:.25s
}

.feedback{
	min-height:29px;margin-top:12px;font-weight:1000
}


/* 9. Freiheitsstatue */

.libertyScene{
  position:absolute;
  inset:0;
  overflow:hidden;
}

.libertyStatue{
  opacity:1;
  z-index:2;
  filter:
    drop-shadow(0 10px 10px #00172d80)
    sepia(.15);
}

.libertyGlow{
  position:absolute;
  left:43%;
  top:50%;
  width:110px;
  height:110px;
  border-radius:50%;
  opacity:.1;
  transform:translate(-50%,-50%) scale(.3);
  transform-origin:center;
  background:radial-gradient(
    circle,
    #fffbd1 0%,
    #ffd766 25%,
    #ff9e4a80 50%,
    transparent 72%
  );
  transition:
    opacity .4s ease,
    transform .4s ease;
  pointer-events:none;
  z-index:1;
}

.libertyTorch{
  position:absolute;
  left:43%;
  top:40%;
  z-index:3;
  font-size:42px;
  transform:translateX(-50%) scale(.75);
  transform-origin:center bottom;
  transition:
    transform .4s ease,
    filter .4s ease;
  pointer-events:none;
}

/* Hilfsklassen */

.hidden{
	display:none!important
}

/* Footer */

.footer{
	text-align:center;color:#95bbd1;font-size:13px;padding:20px
}

/* Elternbereich */

.parentModal{
  position:fixed;
  inset:0;
  z-index:12000;

  display:grid;
  place-items:center;

  padding:18px;

  background:#010914d9;
  backdrop-filter:blur(7px);
}

.parentModal.hidden{
  display:none;
}

.parentModalContent{
  position:relative;

  width:min(100%, 520px);
  max-height:90dvh;
  overflow-y:auto;

  padding:24px;

  border:2px solid #55cf88;
  border-radius:20px;

  background:#071b30;
  color:white;

  text-align:center;

  box-shadow:
    0 20px 60px #0009,
    0 0 28px #55cf8835;
}

.parentModalContent h2{
  margin-top:0;
  color:var(--yellow);
}

.parentModalContent p{
  line-height:1.5;
}

.parentModalClose{
  position:absolute;
  top:10px;
  right:10px;

  width:40px;
  height:40px;

  border:1px solid #ffffff33;
  border-radius:12px;

  background:#ffffff12;
  color:white;

  font-size:25px;
  line-height:1;
  cursor:pointer;
}

.parentModalButtons{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:10px;

  margin-top:20px;
}

.parentDonationButton{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  margin:20px auto 26px;

  text-decoration:none;
}

.parentSettingsGroup{
  margin:16px 0;
  padding:14px;

  border:1px solid #ffffff25;
  border-radius:14px;

  background:#ffffff0b;
  text-align:left;
}

.parentSettingsGroup h3{
  margin:0 0 10px;
  color:var(--yellow);
}

.parentSettingsGroup label{
  display:flex;
  align-items:center;
  gap:9px;

  padding:7px 0;
}

.parentSettingsGroup input{
  width:20px;
  height:20px;
}

.parentSettingsGroup small{
  margin-left:auto;
  color:var(--muted);
  font-size:10px;
}

/* Checkboxen ausschließlich im Elternbereich */

#parentArea input[type="checkbox"]{
  appearance:none;
  -webkit-appearance:none;

  width:24px;
  min-width:24px;
  height:24px;
  min-height:24px;
  flex:0 0 24px;
  margin:0;

  display:grid;
  place-items:center;

  border:2px solid #ff6b6b;
  border-radius:7px;
  background:#5c2028;

  color:white;
  cursor:pointer;

  transition:
    background-color .18s ease,
    border-color .18s ease,
    transform .18s ease,
    box-shadow .18s ease;
}


/* Anklickbar, aber nicht ausgewählt:
   rot und ohne X */

#parentArea input[type="checkbox"]:not(:checked):not(:disabled){
  border-color:#ff6b6b;
  background:#5c2028;
}

#parentArea input[type="checkbox"]:not(:checked):not(:disabled)::before{
  content:"";
}


/* Nicht anklickbar und nicht ausgewählt:
   dunkelrot mit X */

#parentArea input[type="checkbox"]:not(:checked):disabled{
  border-color:#8f4148;
  background:#35181d;
  cursor:not-allowed;
  opacity:1;
}

#parentArea input[type="checkbox"]:not(:checked):disabled::before{
  content:"×";

  display:block;

  color:#e99a9f;
  font-size:20px;
  font-weight:900;
  line-height:1;

  transform:translateY(-1px);
}


/* Ausgewählt:
   grün mit Häkchen */

#parentArea input[type="checkbox"]:checked{
  border-color:#55cf88;
  background:#17653d;
  box-shadow:0 0 0 3px #55cf8830;
}

#parentArea input[type="checkbox"]:checked::before{
  content:"✓";

  display:block;

  color:white;
  font-size:17px;
  font-weight:900;
  line-height:1;
}


/* Ausgewählt und nicht bearbeitbar */

#parentArea input[type="checkbox"]:checked:disabled{
  cursor:not-allowed;
  opacity:1;
}


/* Maus-Effekt nur bei bedienbaren Checkboxen */

#parentArea input[type="checkbox"]:not(:disabled):hover{
  transform:scale(1.08);
}


/* Tastaturfokus */

#parentArea input[type="checkbox"]:focus-visible{
  outline:3px solid #ffd84d;
  outline-offset:3px;
}


/* 10. Responsive Anpassungen */

/* Tablets */

@media(max-width:760px){
	.mission{grid-template-columns:1fr}
	
	.globeStage{
		width:min(88vw, 68vh);
		height:auto;
		aspect-ratio:1;
		transform:translate(-35px, 10px);
  }
}

/* Smartphones */

@media(max-width:680px){
	
	.globeStage{
		width:min(96vw,78vh);
		height:auto;
		transform:translateY(35px);
	}
	
	.globeMobileUi{
    position:absolute;
    left:50%;
    bottom:
      max(
        12px,
        env(safe-area-inset-bottom)
      );

    z-index:8;

    width:min(94vw,520px);

    display:flex;
    flex-direction:column;
    align-items:center;
    gap:10px;

    transform:translateX(-50%);
  }

  .globeMobileUi .globeControls{
    position:static;

    left:auto;
    right:auto;
    top:auto;
    bottom:auto;

    transform:none;

    display:flex;
    flex-direction:row;
    justify-content:center;
    align-items:center;
  }

  .globeMobileUi .globeInfo{
    position:static;

    left:auto;
    right:auto;
    top:auto;
    bottom:auto;

    width:100%;
    max-width:520px;

    transform:none;
  }
	
	.globeInfo{
    left:12px;
    right:12px;
    bottom:76px;

    max-width:none;
    padding:10px 12px;
  }
	
  .globeControls{
    position:absolute;

    left:50%;
    right:auto;
    top:auto;
    bottom:14px;

    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:9px;

    transform:translateX(-50%);
		
		--globe-control-size:46px;
    --globe-control-icon-size:27px;
  }
	
  .globeControls button{
    border-radius:14px;
    font-size:25px;
  }
	
	.globeControls button img{
    width:27px;
    height:27px;
  }
	
	.globeTopbar{
    left:12px;
    right:12px;
    top:10px;

    display:grid;
    grid-template-columns:44px minmax(0,1fr) 44px;
    align-items:center;
    gap:8px;
  }

  .globeBack{
    grid-column:1;
    width:44px;
    height:44px;
  }
	
	.globeBack svg{
    width:25px;
    height:25px;
  }

  .globeTitle{
    position:static;
    grid-column:2;

    min-width:0;

    transform:none;

    font-size:clamp(17px,5vw,21px);
    line-height:1.15;
    text-align:center;
    white-space:normal;
    text-wrap:balance;
  }
	
  .globeTip{top:70px;font-size:12px;max-width:82vw;white-space:normal;text-align:center}
	
	.travelBackpack{
    left:12px;
    right:12px;
    top:72px;

    width:auto;
    padding:10px 12px;

    min-height:0;
    max-height:140px;

    transform:translateY(-10px);
  }

	.backpackHeader{
    margin-bottom:8px;
  }

  .backpackIcon{
    font-size:25px;
  }

  .backpackHeader strong{
    font-size:15px;
  }

  .backpackHeader small{
    display:none;
  }

  .backpackItems{
    grid-template-columns:repeat(4, 64px);
    justify-content:center;
    gap:6px;

    max-height:90px;
  }

  .backpackSlot{
    width:64px;
    height:82px;
    min-width:0;
    padding:4px;
    border-radius:10px;
  }

  .backpackSlotImage{
    width:100%;
    height:56px;
    min-height:56px;
    object-fit:contain;
  }
	
	.backpackItems::-webkit-scrollbar {
    width: 8px;
  }

  .backpackItems::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 4px;
  }

  .backpackItems::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.5);
    border-radius: 4px;
  }

  .backpackItems::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.75);
  }

	.backpackSlotName{
		display:block;

		width:100%;
		margin-top:3px;

		color:white;
		font-size:10px;
		line-height:12px;

		overflow:hidden;
		text-overflow:ellipsis;
		white-space:nowrap;
		text-align:center;
	}

	.backpackSlot.locked .backpackSlotName{
		display:block;
		color:#91a0aa;
	}

  .backpackSlotUnlocked{
    top:2px;
    right:2px;
    width:17px;
    height:17px;
    font-size:9px;
  }
	
	.backpackSlot.unlocked:hover {
    transform: none;
  }
	
	.backpackSlot.locked .backpackSlotName {
    display: block;
    color: #91a0aa;
    font-size: 10px;
    margin-top: 3px;
  }
	
	.level:hover:not(:disabled){
    transform:none;
  }
	
	body.missionPageActive .siteHeader{
    display:none;
  }
	
	  body.missionPageActive .wrap{
    padding-top:4px;
  }

  body.missionPageActive #game{
    margin-top:0;
    padding-top:15px;
  }

  body.missionPageActive #game > .top{
    margin-top:0;
    padding-top:0;
    margin-bottom:8px;
  }

  body.missionPageActive #loc{
    margin-top:0;
    line-height:1.2;
  }

  body.missionPageActive #missionTitle{
    margin:2px 0 6px !important;
  }
	
  body.missionPageActive .scene{
    width:100%;

    height:30vh !important;
    height:30svh !important;

    min-height:0 !important;
    max-height:none;

    aspect-ratio:auto;
  }
	
	.homeGlobeScene{
    margin:10px auto;
  }

  .homeGlobeDecoration{
    height:54vw;
    max-height:300px;
    transform:translate(-11%, -45%);
  }

  .libertyTorch{
    left:33%;
    top:30%;

    font-size:38px;
    transform:
      translateX(-50%)
      scale(.75);
  }
	
	.libertyGlow{
		left:33%;
		top:40%;
		
		transform:
      translateX(-50%)
      scale(.75);
	}

  .missionReward{
    margin:10px auto 12px;
    padding:8px 10px;
    gap:9px;
  }

  .missionRewardImage{
    width:54px;
    height:54px;
    flex-basis:54px;
  }

  .missionRewardText strong{
    font-size:15px;
  }

  .missionRewardText span{
    font-size:11px;
  }
	
	/* Elternbereich */
	
  .parentModalContent{
    padding:20px 14px;
  }

  .parentModalContent h2{
    font-size:21px;
  }

}

/* Besonders kleine Smartphones */

@media(max-width:560px){
	
  .travelProgressHeader{
    align-items:flex-start;
    flex-direction:column;
    gap:4px;
  }
	
}

/* Smartphones im Querformat */

@media
  (orientation:landscape)
  and (max-height:600px)
  and (pointer:coarse){

  .globeStage{
		/* Fallback für ältere Browser */
       width:min(74vw, 112vh);

    /* Dynamische sichtbare Browserhöhe */
       width:min(74vw, 112dvh);
			 
    width:min(72vw, 90vh);
    width:min(72vw, 90dvh);

    height:auto;
    max-width:none;

    aspect-ratio:1;
		
		/* Allgemeines translateY überschreiben */
    transform:translateY(5px);
  }
	
	.globeTitle{
    display:none;
  }
	
  .globeControls{
    position:absolute;

    left:10px;
    right:auto;
    top:50%;
    bottom:auto;

    display:grid;
    grid-template-columns:repeat(4, 42px);
    grid-template-rows:repeat(2, 42px);
    gap:6px;

    align-items:center;
    justify-items:center;

    transform:translateY(-50%);
    z-index:10;
  }

  .globeControls button{
    width:42px;
    min-width:42px;
    max-width:42px;

    height:42px;
    min-height:42px;
    max-height:42px;

    padding:0;
    font-size:21px;
    border-radius:12px;

    flex:none;
  }

  .globeControls button img{
    width:25px;
    height:25px;
  }
	
	.globeInfo{
		left:10px;
			
    width:min(40vw, 240px);
    max-width:40vw;

    padding:8px 10px;

    font-size:11px;
    line-height:1.25;
  }

  .globeInfo strong{
    font-size:13px;
    line-height:1.2;
  }

  .globeInfo small{
    font-size:10px;
    line-height:1.25;
  }
	
  .travelBackpack{
    position:fixed;

    top:60px;
    right:10px;
    bottom:10px;
    left:auto;

    width:180px;
    height:auto;
    min-height:0;
    max-height:none;

    transform:none;
    overflow:hidden;

    z-index:9;
  }

  .backpackItems{
    grid-template-columns:repeat(2, 64px);
    grid-auto-rows:86px;

    flex:1 1 auto;
		
    justify-content:center;
    gap:5px;

    min-height:0;
		height:auto;
		
    max-height:none;
		
		align-content:start;

    overflow-y:auto;
    overflow-x:hidden;

    padding:2px 5px 5px;
		box-sizing:border-box;
  }
	
  .backpackHeader{
    margin-bottom:5px;
  }

  .backpackIcon{
    font-size:22px;
  }

  .backpackHeader strong{
    font-size:13px;
  }

  .backpackHeader small{
    display:none;
  }

  .backpackSlot{
		width:64px;
		height:86px;
		min-width:64px;
		min-height:82px;

    padding:4px;
    border-radius:9px;
  }

  .backpackSlotImage{
    width:100%;
		height:56px;
		min-height:56px;

    padding:2px;
    border-radius:6px;
    object-fit:contain;
  }

  .backpackSlotName,
  .backpackSlot.locked .backpackSlotName{
    display:block;

    margin-top:4px;

    font-size:9px;
    line-height:12px;

    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}