:root {
  /* Pergament-Position */
  --pad-left: 16.3%;
  --pad-top: 35.3%;
  --pad-w: 33.4%;
  --pad-h: 52.5%;

  /* Größe der Klickflächen */
  --coin: 98px;
  --digit-size: clamp(24px, 6.2vw, 600px);
  --key-size: 26%; /* Breite des Schlüssel-Bildes relativ zum Pergamentbereich */
}

* { box-sizing: border-box; }

/* Seite füllt den Viewport, kein Scrollen */
html, body {
  height: 100%;
  margin: 0;
  background: #000;
  overflow: hidden;
}

/* Vollbild-Stage */
.escape {
  position: fixed;     /* oder: absolute + inset:0; */
  inset: 0;            /* top/right/bottom/left = 0 */
  margin: 0;
  line-height: 1;
  user-select: none;
}

/* Bild füllt Fläche, beschneidet proportional */
.escape__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Overlay bleibt weiterhin über dem Bild */
.overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.pad {
  position: absolute;
  left: var(--pad-left);
  top: var(--pad-top);
  width: var(--pad-w);
  height: var(--pad-h);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: auto 1fr auto;
  align-items: center;
  justify-items: center;
}
/* Wenn gelöst: Pad zu einer Zelle machen und Text zentrieren */
.pad--cleared {
  grid-template-columns: 1fr !important;
  grid-template-rows: 1fr !important;
  align-items: center;
  justify-items: center;
}

/* Nachricht nutzt das Ziffern-Styling, nur größer und ohne Y-Offset */
.solvedText {
  grid-column: 1 / -1;
  grid-row: 1 / -1;
  text-align: center;
  padding: 0 2vw;
  animation: solved-in .35s ease both;
}
.solvedText.digit {
  font-size: clamp(28px, 4vw, 96px); /* größer als die Ziffern */
  transform: none;                   /* .digit hebt sonst minimal an */
  letter-spacing: .06em;             /* etwas „heroischer“ */
  margin-top: -160px;
}

@keyframes solved-in {
  from { opacity: 0; transform: scale(.98); }
  to   { opacity: 1; transform: scale(1); }
}

.coin {
  pointer-events: auto;
  appearance: none;
  border: 0;
  background: transparent;
  width: var(--coin);
  height: var(--coin);
  border-radius: 50%;
  cursor: pointer;
  position: relative;
}

/*
.coin::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  box-shadow: inset 0 0 0 0 rgba(255,255,255,0);
  transition: box-shadow .15s ease;
}
.coin:hover::after,
.coin:focus-visible::after {
  box-shadow: inset 0 0 0 2px rgba(255,255,255,.7);
}
*/
.digit {
  /* Größe kommt weiterhin aus --digit-size */
  font: 900 var(--digit-size)/1 "Cinzel", Georgia, "Times New Roman", serif;
  letter-spacing: .06em;

  /* Farb- & Relieflook (eingraviert/antikes Braun) */
  color: #3a2616;                /* dunkles, warmes Braun */
  -webkit-text-stroke: 1px rgba(0,0,0,.18); /* dezente Fase/Kante */
  text-shadow:
    0 1px 0 rgba(250, 228, 180, .65),   /* obere Lichtkante (pergamentig) */
    0 -1px 0 rgba(0, 0, 0, .20),        /* untere Schattenkante */
    0 2px 2px rgba(0, 0, 0, .30),       /* weicher Drop-Shadow */
    0 0 8px rgba(110, 80, 40, .20);     /* warmer „Glow“ im Pergament */
  pointer-events: none;
  transform: translateY(4%);
  mix-blend-mode: multiply;             /* fügt sich besser in Pergament ein */
}

/* Screenreader-Only Text (für Barrierefreiheit) */
.visually-hidden {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* Bild-Button */
.open{
  grid-column: 1 / -1;
  grid-row: 4;                  /* in die 4. Reihe */
  justify-self: center;

  /* Defaults neutralisieren (verhindert graues Rechteck) */
  -webkit-appearance: none;
  appearance: none;
  background: transparent !important;
  border: 0 !important;
  padding: 0;
  cursor: pointer;

  display: grid;                /* Bild sauber zentrieren */
  place-items: center;
  pointer-events: auto;
}

.open img{
  display: block;
  width: var(--key-size);
  height: auto;
  transform: rotate(-18deg);           /* leicht schräg */
  transform-origin: 50% 50%;
  filter: drop-shadow(0 8px 10px rgba(0,0,0,.45));
  transition: transform .15s ease, filter .15s ease;
}
.open:hover img{
  transform: rotate(-18deg) translateY(-2px) scale(1.03);
  filter: drop-shadow(0 12px 14px rgba(0,0,0,.55));
}
.open:active img{
  transform: rotate(-18deg) translateY(0) scale(.98);
  filter: drop-shadow(0 6px 6px rgba(0,0,0,.45));
}
/* optional sichtbarer Fokusrahmen für Tastatur-Nutzer */
.open:focus-visible img{
  outline: 3px solid rgba(255,255,255,.85);
  outline-offset: 4px;
}

.message {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 2rem;
  text-align: center;
  color: #fff;
  font: 800 clamp(20px, 6vw, 44px)/1.15 system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
  opacity: 0;
  pointer-events: none;
  transform: scale(.98);
  transition: opacity .3s ease, transform .3s ease;
}
.message--show {
  opacity: 1;
  pointer-events: auto;
  transform: scale(1);
}

@keyframes shake {
  0%,100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}
.pad--shake { animation: shake .35s ease; }
