/* ===========================
   Player dashboard - Halloween compact
   =========================== */

:root{
  /* Background */
  --bg-0:#0a0c14;
  --bg-1:#0f1424;
  --bg-2:#121938;

  /* Text */
  --text-1:#f4f6ff;
  --text-2:#c0c8de;
  --text-3:#8d96ad;

  /* Accents (Halloween) */
  --pumpkin:#ff7a1a;
  /*--pumpkin-rgb:193,118,42;*/
  --pumpkin-rgb:207,46,46;
  --ecto:#6dffb1;
  --violet:#9b7bff;

  /* Call-to-action palette */
  --cta-primary:#f26a1b;
  --cta-primary-hover:#ff8c3b;
  --cta-primary-glow:rgba(242,106,27,.35);
  --cta-primary-border:rgba(255,190,120,.75);
  --cta-primary-border-hover:rgba(255,218,166,.85);
  --cta-primary-contrast:#1a1328;

  --cta-secondary:#4b2c82;
  --cta-secondary-hover:#5f3aa3;
  --cta-secondary-glow:rgba(75,44,130,.35);
  --cta-secondary-border:rgba(155,123,255,.55);
  --cta-secondary-border-hover:rgba(182,150,255,.7);
  --cta-secondary-contrast:#f8f4ff;

  --cta-danger:#b22222;
  --cta-danger-hover:#d63333;
  --cta-danger-glow:rgba(178,34,34,.36);
  --cta-danger-border:rgba(244,120,120,.65);
  --cta-danger-border-hover:rgba(255,164,164,.78);
  --cta-danger-contrast:#fff4f4;

  /* Surfaces */
  --card-grad:linear-gradient(180deg,#141b2d 0%,#0f1526 100%);
  --stroke:rgba(255,255,255,.08);
  --glass:rgba(255,255,255,.05);
  --shadow:0 8px 24px rgba(3,8,23,.5);

  --radius:16px;
  --pad:14px;
  --pad-lg:18px;

  /* Typography */
  --font-size-base:clamp(15px,calc(0.6vw + 14px),18px);
  --font-size-lg:clamp(1.18rem,calc(0.8vw + 1rem),1.6rem);
  --font-size-xl:clamp(2.3rem,calc(4.6vw + 1.2rem),3.2rem);
  --font-size-section:clamp(1.08rem,calc(0.5vw + .98rem),1.42rem);
  --font-size-lead:clamp(.94rem,calc(0.3vw + .88rem),1.08rem);
  --font-size-body-sm:clamp(.84rem,calc(0.26vw + .78rem),.94rem);
  --font-size-body-xs:clamp(.74rem,calc(0.22vw + .7rem),.9rem);
}

*{box-sizing:border-box}

body{
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  font-weight:500;
  font-size:var(--font-size-base);
  line-height:1.65;
  color:var(--text-1);
  background:var(--bg-0);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

/* ======= Screen ======= */

.escape-game-screen{
  position:relative;
  display:flex;
  justify-content:center;
  padding:44px 0 110px;
  color:var(--text-1);
  background:
    radial-gradient(60% 60% at 18% -10%, rgba(155,123,255,.25), transparent 60%),
    radial-gradient(60% 60% at 85% 0%, rgba(109,255,177,.18), transparent 58%),
    linear-gradient(165deg,var(--bg-1),var(--bg-2));
  overflow-x:hidden;
}

.escape-game-screen__background{
  position:fixed; inset:0; pointer-events:none; z-index:-3;
}
.escape-game-screen__background::before{
  content:""; position:absolute; inset:0;
  background:radial-gradient(circle at 50% 38%, transparent 58%, rgba(3,6,14,.85) 100%);
}
.escape-game-screen__background::after{
  content:""; position:absolute; inset:0; opacity:.2; mix-blend-mode:screen;
  background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR4XmP4z8DwHwAFjwKkQdBX6wAAAABJRU5ErkJggg==');
}

.escape-game-screen__inner{
  width:100%;
  max-width:1080px;
  padding:0 3px;
  position:relative;
  z-index:1;
  margin:0 auto;
}

/* ======= Hero ======= */

.escape-game-hero{
  position:relative;
  padding-right:56px;
  margin-bottom:26px;
  opacity:0; transform:translateY(10px);
  transition:transform .25s ease, opacity .25s ease;
}
.escape-game-hero.is-visible{ opacity:1; transform:translateY(0); }

.escape-game-badge{
  display:inline-flex; align-items:center; gap:8px;
  padding:6px 14px; border-radius:999px;
  border:1px solid var(--stroke); background:rgba(109,255,177,.12);
  color:var(--text-1); font-size:var(--font-size-body-xs); letter-spacing:.22em; text-transform:uppercase; font-weight:700;
  box-shadow:0 0 14px rgba(109,255,177,.35);
  animation:candle-flicker 3.2s ease-in-out infinite;
}
.escape-game-badge__dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--ecto); box-shadow:0 0 10px rgba(109,255,177,.5);
}

.escape-game-hero__title{
  margin:16px 0 10px;
  font-size:var(--font-size-xl);
  letter-spacing:-.4px; color:var(--text-1);
  filter:drop-shadow(0 0 8px rgba(155,123,255,.22));
  line-height:1.1;
}
.escape-game-hero__subtitle{
  margin:0; color:var(--text-2); font-size:var(--font-size-lead); max-width:65ch; line-height:1.65;
}

.escape-game-hero__notify{
  position:absolute;
  top:4px; right:0;
  display:inline-flex; align-items:center; justify-content:center;
  width:58px; height:58px;
  border:none !important;
  background:transparent !important;
  padding:0 !important;
  border-radius:50%;
  box-shadow:none !important;
  color:var(--text-1);
  font-size:34px;
  cursor:pointer;
  transition:transform .18s ease, filter .18s ease;
  animation:escape-bell-pulse 2.8s ease-in-out infinite;
}
.escape-game-hero__notify img,
.escape-game-hero__notify span{
  filter:drop-shadow(0 0 8px rgba(246,215,97,.55));
}
.escape-game-hero__notify:hover,
.escape-game-hero__notify:focus{
  transform:translateY(-1px) scale(1.05);
  filter:brightness(1.08);
}
.escape-game-hero__notify:focus{
  outline:none;
  box-shadow:0 0 0 3px rgba(246,215,97,.35);
}

@keyframes escape-bell-pulse{
  0%, 100%{ transform:translateY(0) scale(1); filter:none; }
  20%{ transform:translateY(-1px) scale(1.08); filter:brightness(1.08); }
  40%{ transform:translateY(1px) scale(.98); filter:brightness(.96); }
  60%{ transform:translateY(-1px) scale(1.04); filter:brightness(1.05); }
}

/* ======= Layout ======= */

.escape-game-main{ display:flex; flex-direction:column; gap:22px; }

.escape-game-grid{
  display:grid; grid-template-columns:1fr; gap:14px;
}
@media (min-width:600px){
  .escape-game-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
}
@media (min-width:1024px){
  .escape-game-grid{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
}

/* ======= Card ======= */

.card{
  position:relative; isolation:isolate;
  display:flex; flex-direction:column; gap:10px;
  padding:var(--pad); border-radius:var(--radius);
  background:var(--card-grad); border:1px solid var(--stroke);
  box-shadow:var(--shadow);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
  will-change:transform;
  min-height:0;
}

.card::after{
  content:""; position:absolute; inset:-1px;
  background:
    linear-gradient(120deg, rgba(255,255,255,.06) 0%, transparent 28%, transparent 72%, rgba(255,255,255,.05) 100%);
  border-radius:inherit; pointer-events:none;
  opacity:0; /*transform:translateX(-12%);*/
  transition:opacity .25s ease, transform .25s ease;
}
.card:hover{
  transform:translateY(-3px);
  border-color:rgba(255,255,255,.16);
  box-shadow:0 14px 36px rgba(3,8,23,.55);
}
.card:hover::after{ opacity:1; transform:translateX(0); }

.card:focus-visible{
  outline:2px solid var(--violet); outline-offset:2px;
  transform:translateY(-2px);
}

.card::before{
  content:""; position:absolute; left:-35%; bottom:-35%;
  width:70%; height:70%;
  background:radial-gradient(60% 60% at 50% 50%, rgba(255,255,255,.05), transparent 60%);
  z-index:-1; pointer-events:none;
}

.card-head{
  display:flex;
  align-items:center;
  gap:12px;
  width:100%;
  flex-wrap:wrap;
}
.chip{
  width:36px; height:36px; display:grid; place-items:center;
  background:var(--glass); border:1px solid var(--stroke); border-radius:999px;
  font-size:var(--font-size-lg); backdrop-filter:saturate(120%) blur(2px);
}
.chip--image{
  padding:4px;
}
.chip--image.has-image{
  background:rgba(20,24,42,.55);
  border-color:rgba(255,255,255,.22);
  box-shadow:0 0 18px rgba(138,99,255,.28);
}
.chip--image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.chip--image span{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
}
.chip--image span img{
  width:100%;
  height:100%;
  object-fit:contain;
}
.chip [hidden]{
  display:none !important;
}
.chip--metric{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(20,18,32,.72);
  font-size:1.55rem;
  box-shadow:0 0 18px rgba(138,99,255,.24);
}
.chip--timer{
  border-color:rgba(255,204,128,.45);
  background:rgba(255,204,128,.16);
  box-shadow:0 0 20px rgba(255,204,128,.24);
}
.chip--ritual{
  border-color:rgba(186,148,255,.4);
  background:rgba(186,148,255,.18);
  box-shadow:0 0 20px rgba(186,148,255,.3);
}
.chip--gold{
  border-color:rgba(255,204,102,.4);
  box-shadow:0 0 22px rgba(255,204,102,.25);
}
.chip--souls{
  border-color:rgba(180,156,255,.42);
  box-shadow:0 0 22px rgba(180,156,255,.28);
}
.chip--faction{
  border-color:rgba(138,99,255,.46);
  box-shadow:0 0 22px rgba(138,99,255,.32);
  background:rgba(138,99,255,.16);
}
.card-head--faction,
.card-head--resource{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.card-head__title--faction,
.card-head__title--resource{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  flex:1 1 auto;
  min-width:0;
}
.card-head__title--faction .chip,
.card-head__title--resource .chip{
  width:44px;
  height:44px;
}
.card-head__title--faction .chip--image,
.card-head__title--resource .chip--image{
  padding:6px;
}
.card-head__title--faction .chip span,
.card-head__title--resource .chip span{
  font-size:1.55rem;
}
.card-head__value--faction,
.card-head__value--resource{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:8px;
  text-align:right;
  flex:0 0 auto;
}
.card-title--faction{
  font-size:clamp(1.3rem,calc(.68vw + 1.1rem),1.9rem);
  letter-spacing:.18em;
  line-height:1.08;
  color:#efe8ff;
  text-shadow:0 0 18px rgba(138,99,255,.32);
}
.card-desc--faction{
  color:rgba(210,218,255,.74);
  transition:color .28s ease;
}
.card--faction{
  border-color:rgba(138,99,255,.14);
  background:linear-gradient(155deg, rgba(18,21,40,.82), rgba(12,10,25,.92));
  transition:border-color .28s ease, box-shadow .28s ease, background .28s ease;
}
.card--faction .card-value{
  color:#f6e8ff;
  --card-glow-base: rgba(138,99,255,.42);
  --card-glow-strong: rgba(186,148,255,.56);
  --card-glow-outline: rgba(118,72,255,.42);
  --card-glow-drop: rgba(118,72,255,.38);
}
.card--faction .card-value.card-value--placeholder{
  color:rgba(160,164,188,.82);
  text-shadow:none;
  filter:none;
  animation:none;
}
.card--faction-assigned{
  border-color:rgba(150,105,255,.45);
  box-shadow:0 18px 38px rgba(118,72,255,.28);
  background:linear-gradient(150deg, rgba(74,38,109,.48), rgba(17,23,45,.96));
}
.card--faction-assigned .card-title--faction{
  color:#fff5ff;
  text-shadow:0 0 24px rgba(160,110,255,.5);
}
.card--faction-assigned .card-desc--faction{
  color:rgba(232,224,255,.78);
}
.card--faction-assigned .card-head__value--faction .card-value{
  color:#fbe8ff;
  text-shadow:0 0 28px rgba(178,132,255,.58);
  filter:drop-shadow(0 0 18px rgba(118,72,255,.42));
}
.card--faction-assigned .chip--faction{
  border-color:rgba(186,148,255,.6);
  background:rgba(132,93,255,.22);
  box-shadow:0 0 20px rgba(132,93,255,.32);
}
.card--faction-assigned .chip--image.has-image{
  background:rgba(56,32,88,.7);
  border-color:rgba(186,148,255,.58);
  box-shadow:0 0 22px rgba(132,93,255,.32);
}
.card--faction-unassigned{
  border-color:rgba(255,255,255,.08);
  background:rgba(13,16,28,.74);
}
.card--faction-unassigned .card-title--faction{
  color:rgba(224,226,240,.86);
  text-shadow:none;
}
.card--faction-unassigned .card-desc--faction{
  color:rgba(190,194,214,.6);
}
.card--faction-unassigned .card-head__value--faction .card-value{
  color:rgba(164,168,192,.82);
  text-shadow:none;
  filter:none;
}
.card--faction-unassigned .chip--faction{
  background:rgba(140,142,160,.18);
  border-color:rgba(255,255,255,.16);
  box-shadow:none;
}
.card--faction.card--faction-staff .card-desc--faction{
  color:rgba(210,224,255,.76);
}

.card-head--metric{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
}
.card-head__title--metric{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:44px;
  flex:1 1 auto;
  min-width:0;
}
.card-head__value--metric{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:12px;
  flex:0 0 auto;
  text-align:right;
}
.card-title--metric{
  font-size:clamp(1.32rem,calc(.68vw + 1.12rem),1.92rem);
  letter-spacing:.2em;
  line-height:1.1;
  text-transform:uppercase;
  color:rgba(244,240,255,.9);
  text-shadow:0 0 18px rgba(138,99,255,.32);
}
.card-value--metric{
  font-size:clamp(1.9rem,calc(1.5vw + 1.58rem),2.78rem);
  font-variant-numeric:tabular-nums;
  letter-spacing:.14em;
  color:#fff2d6;
  text-shadow:0 0 24px rgba(255,204,128,.4);
}
.card-desc--metric{
  color:rgba(222,226,252,.7);
  transition:color .28s ease;
}
.card-head__value--metric .card-button{
  margin:0;
  white-space:nowrap;
}
.card-head__value--metric .card-button--primary{
  background:linear-gradient(120deg, rgba(186,148,255,.32), rgba(124,255,178,.26));
  border-color:rgba(186,148,255,.42);
  box-shadow:0 10px 24px rgba(108,74,168,.32);
}
.card--timer{
  border-color:rgba(255,204,128,.35);
  background:linear-gradient(155deg, rgba(32,26,48,.9), rgba(12,10,24,.92));
  box-shadow:0 18px 44px rgba(140,104,58,.32);
}
.card--timer .card-title--metric{
  color:#ffe8c8;
  text-shadow:0 0 22px rgba(255,204,128,.48);
}
.card--timer .card-value--metric{
  color:#fff5d8;
}
.card--timer .card-desc--metric{
  color:rgba(255,235,214,.72);
}
.card--timer.card--alert{
  border-color:rgba(255,122,26,.55);
  box-shadow:0 0 0 1px rgba(255,122,26,.28) inset, 0 18px 42px rgba(255,122,26,.36);
}
.card--timer.card--alert .card-title--metric{
  color:#ffe1c4;
  text-shadow:0 0 24px rgba(255,122,26,.46);
}
.card-head--metric-timer{
  position:relative;
}
.card-head--metric-timer::after{
  content:"";
  position:absolute;
  inset:auto -12px -12px;
  height:1px;
  background:linear-gradient(90deg, rgba(255,204,128,0), rgba(255,204,128,.4), rgba(255,204,128,0));
  opacity:.65;
}
.card--ritual{
  border-color:rgba(186,148,255,.42);
  background:linear-gradient(150deg, rgba(42,26,68,.85), rgba(14,12,36,.94));
  box-shadow:0 18px 44px rgba(88,64,166,.32);
}
.card--ritual .card-title--metric{
  color:#f0e7ff;
  text-shadow:0 0 22px rgba(186,148,255,.42);
}
.card--ritual .card-desc--metric{
  color:rgba(230,221,255,.74);
}
.card-head--metric-ritual{
  position:relative;
}
.card-head--metric-ritual::after{
  content:"";
  position:absolute;
  inset:auto -12px -12px;
  height:1px;
  background:linear-gradient(90deg, rgba(186,148,255,0), rgba(186,148,255,.4), rgba(186,148,255,0));
  opacity:.6;
}
.card-title--resource{
  font-size:clamp(1.28rem,calc(.66vw + 1.08rem),1.88rem);
  letter-spacing:.16em;
  line-height:1.08;
  color:rgba(255, 236, 215, .92);
  text-shadow:0 0 18px rgba(255, 204, 102, .34);
  text-transform:uppercase;
}
.card--witchlight .card-title--resource{
  color:#f0e6ff;
  text-shadow:0 0 18px rgba(180, 156, 255, .36);
}
.card-head__value--resource .card-value{
  text-shadow:0 0 18px rgba(255, 204, 102, .4);
  filter:drop-shadow(0 0 14px rgba(255, 153, 64, .3));
}
.card--witchlight .card-head__value--resource .card-value{
  text-shadow:0 0 20px rgba(180, 156, 255, .38);
  filter:drop-shadow(0 0 16px rgba(138, 99, 255, .32));
}
.card-value--resource{
  font-size:clamp(1.86rem,calc(1.4vw + 1.62rem),2.72rem);
  letter-spacing:.11em;
}
.card-value--resource.card-value--placeholder{
  color:rgba(182, 186, 210, .78);
  text-shadow:none;
  filter:none;
  animation:none;
}
.card-desc--resource{
  color:rgba(225, 228, 244, .68);
  transition:color .26s ease;
}
.card--gold{
  border-color:rgba(255, 204, 128, .32);
  background:linear-gradient(150deg, rgba(58, 40, 14, .78), rgba(19, 18, 28, .92));
  box-shadow:0 18px 42px rgba(142, 94, 26, .28);
}
.card--gold .chip--gold{
  border-color:rgba(255, 204, 128, .52);
  background:rgba(255, 204, 128, .22);
  box-shadow:0 0 22px rgba(255, 204, 128, .28);
}
.card--gold .card-desc--resource{
  color:rgba(255, 239, 214, .7);
}
.card--gold .card-head__value--resource .card-value--resource{
  color:#ffe9bf;
}
.card--witchlight{
  border-color:rgba(186, 148, 255, .32);
  background:linear-gradient(150deg, rgba(42, 32, 80, .8), rgba(16, 20, 44, .94));
  box-shadow:0 18px 42px rgba(88, 64, 166, .32);
}
.card--witchlight .chip--souls{
  border-color:rgba(186, 148, 255, .52);
  background:rgba(186, 148, 255, .2);
  box-shadow:0 0 22px rgba(186, 148, 255, .32);
}
.card--witchlight .card-desc--resource{
  color:rgba(234, 221, 255, .74);
}
.card--witchlight .card-head__value--resource .card-value--resource{
  color:#eaddff;
}
.card-head--resource-gold{
  position:relative;
}
.card-head--resource-souls{
  position:relative;
}
.card-head--resource-gold::after,
.card-head--resource-souls::after{
  content:"";
  position:absolute;
  inset:auto -12px -12px;
  height:1px;
  background:linear-gradient(90deg, rgba(255, 204, 128, .0), rgba(255, 204, 128, .45), rgba(255, 204, 128, .0));
  opacity:.6;
}
.card-head--resource-souls::after{
  background:linear-gradient(90deg, rgba(186, 148, 255, .0), rgba(186, 148, 255, .45), rgba(186, 148, 255, .0));
}
.resource-cost{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-weight:600;
  letter-spacing:.03em;
}
.resource-cost__value{
  color:var(--text-1);
}
.resource-cost__icon{
  display:inline-block;
  width:20px;
  height:20px;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
}
.resource-cost__icon--gold{
  background-image:url('https://adventuraescaperoom.it/wp-content/uploads/2025/10/oro-nobg.png');
}
.resource-cost__icon--souls,
.resource-cost__icon--secondary{
  background-image:url('https://adventuraescaperoom.it/wp-content/uploads/2025/10/anime-nobg.png');
}
.resource-cost__separator{
  margin:0 10px;
  color:var(--text-3);
}
.card-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:0.45rem;
  padding:4px 12px; border-radius:999px;
  border:1px solid rgba(109,255,177,.35); background:rgba(109,255,177,.15);
  color:var(--text-1); font-size:var(--font-size-body-xs); letter-spacing:.25em; text-transform:uppercase;
  font-weight:700;
}
.card-badge--locked{
  border-color:rgba(180,156,255,.42);
  background:rgba(98,86,255,.18);
  color:var(--text-1);
  font-size:var(--font-size-body-xs);
}
.card-badge--success{
  border-color:rgba(109,255,177,.45);
  background:rgba(109,255,177,.2);
}
.card-head__content{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  flex:1;
}

.card-head__value{
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:6px;
  flex:0 0 auto;
  text-align:right;
}

.card-head__badge{
  align-self:flex-start;
  margin-left:auto;
  white-space:nowrap;
}

.card-title{
  margin:0;
  font-weight:950;
  color:var(--text-1);
  font-size:clamp(1.4rem,calc(0.7vw + 1.05rem),1.95rem);
  letter-spacing:-.05px;
  line-height:1.16;
  text-transform:uppercase;
}
.card--mission.card--mission-assigned{
  border-color:rgba(109,255,177,.4);
  box-shadow:0 12px 28px rgba(109,255,177,.18);
}
.card--mission.card--mission-completed{
  border-color:rgba(155,123,255,.28);
  box-shadow:0 10px 26px rgba(155,123,255,.14);
  opacity:.95;
}
.card-value{
  font-weight:900;
  font-variant-numeric:tabular-nums;
  font-size:clamp(1.6rem,calc(1.25vw + 1.48rem),2.4rem);
  color:var(--pumpkin);
  letter-spacing:.075em;
  --card-glow-base: rgba(255,122,26,.42);
  --card-glow-strong: rgba(255,168,72,.58);
  --card-glow-outline: rgba(255,122,26,.34);
  --card-glow-drop: rgba(255,122,26,.36);
  text-shadow:0 0 24px var(--card-glow-base), 0 0 42px var(--card-glow-outline);
  filter:drop-shadow(0 0 14px var(--card-glow-drop));
  animation:ember 4.6s ease-in-out infinite;
}
.card-value--pumpkin{
  color:var(--pumpkin);
  --card-glow-base: rgba(255,153,64,.5);
  --card-glow-strong: rgba(255,183,94,.6);
  --card-glow-outline: rgba(255,122,26,.32);
  --card-glow-drop: rgba(255,122,26,.32);
}
.card-value--violet{
  color:#d8c9ff;
  --card-glow-base: rgba(180,156,255,.5);
  --card-glow-strong: rgba(180,156,255,.6);
  --card-glow-outline: rgba(120,94,255,.32);
  --card-glow-drop: rgba(142,122,255,.32);
}
.card-value--muted{
  color:var(--text-3);
  letter-spacing:.18em;
  text-shadow:none;
  filter:none;
  animation:none;
}

.card-desc{
  margin:.45rem 0 0; color:var(--text-2); max-width:62ch;
  font-size:var(--font-size-lead);
  line-height:1.65;
}

.card--resource{ padding:var(--pad-lg); }
.card--resource .card-value{
  font-size:clamp(1.92rem,calc(1.78vw + 1.66rem),3rem);
  letter-spacing:.13em;
  display:inline-block;
  max-width:100%;
  white-space:normal;
  filter:drop-shadow(0 0 12px var(--card-glow-drop));
}
.card--resource .card-title{
  font-weight:600;
}
.card-value[data-role="resource-faction"]{
  font-size:clamp(1.72rem,calc(1.18vw + 1.52rem),2.54rem);
  letter-spacing:.075em;
  line-height:1.14;
  word-break:break-word;
}
.card-value--placeholder{
  font-size:clamp(0.74rem,calc(0.3vw + 0.62rem),1rem) !important;
  letter-spacing:.065em !important;
  text-transform:uppercase;
  color:var(--text-3) !important;
  line-height:1.25;
  text-shadow:none;
  filter:none;
  animation:none;
}

@media (max-width: 520px){
  .escape-game-section__subtitle{
    margin:28px 0 4px;
    gap:10px;
    justify-content:center;
    text-align:center;
    font-size:clamp(0.98rem,4.2vw,1.35rem)!important;
    letter-spacing:.12em;
  }
  .escape-game-section__subtitle::before{
    width:36px;
    height:2px;
  }
  .escape-game-section__subtitle::after{
    flex-basis:36px;
    height:2px;
  }
  .card-title,
  .card--resource .card-title,
  .escape-game-section .card-title{
    font-size:clamp(1.5rem,5.4vw,2.2rem);
    line-height:1.16;
  }
  .card-value{
    font-size:clamp(1.48rem,5.6vw,1.98rem);
  }
  .card--resource .card-value{
    font-size:clamp(1.7rem,6.6vw,2.48rem);
    letter-spacing:.13em;
  }
  .card-value[data-role="resource-faction"]{
    font-size:clamp(1.52rem,5.8vw,2.18rem);
  }
  .card-value--placeholder{
    font-size:clamp(0.7rem,3.4vw,0.98rem) !important;
    letter-spacing:.09em !important;
  }
}
.escape-game-section .card-title{
  font-size:clamp(2.1rem,calc(1vw + 1.6rem),2.8rem);
}
.card--ritual .card-actions{ margin-top:auto; }
.card--module .chip{ background:rgba(142,122,255,.16); border-color:rgba(142,122,255,.42); box-shadow:0 0 18px rgba(142,122,255,.3); }
.card--alert{
  border-color:rgba(255,122,26,.35);
  box-shadow:0 0 0 1px rgba(255,122,26,.18) inset, 0 0 28px rgba(255,122,26,.18);
}

.mission-tag{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:2px 8px;
  border-radius:999px;
  font-size:0.65rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-weight:600;
  line-height:1;
  white-space:nowrap;
}

.mission-tag--card{
  margin-left:8px;
}

.mission-tag--modal{
  margin:0 0 14px;
  align-self:flex-start;
}

.card--mission .card-title{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  min-width:0;
}


.card--mission .mission-tag--card{
  margin-left:0;
  margin-top:4px;
}

.mission-tag--primary{
  background:rgba(255,204,64,.24);
  color:#ffd766;
  box-shadow:0 0 12px rgba(255,204,64,.24);
}

.mission-tag--secondary{
  background:rgba(104,145,255,.22);
  color:#bcc9ff;
  box-shadow:0 0 12px rgba(104,145,255,.22);
}

.mission-card__meta{
  margin:.65rem 0 0;
  color:var(--text-3);
  font-size:var(--font-size-body-sm);
}

.mission-card__actions{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:1rem;
}

.mission-card__code{
  margin-top:1rem;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.mission-card__code-field{
  display:flex;
  align-items:center;
  gap:10px;
}

.mission-card__code-input{
  flex:1;
  min-width:0;
  padding:10px 16px;
  border-radius:999px;
  border:1px solid rgba(109,255,177,.28);
  background:rgba(12,16,32,.78);
  color:var(--text-1);
  font-size:var(--font-size-body-sm);
  transition:border-color .2s ease, box-shadow .2s ease;
}

.mission-card__code-input::placeholder{
  color:rgba(32,37,48,.72);
}

.mission-card__code-input:focus{
  outline:none;
  border-color:rgba(109,255,177,.6);
  box-shadow:0 0 0 3px rgba(109,255,177,.2);
}

.mission-card__code-hint{
  margin:0;
  font-size:var(--font-size-body-xs);
  color:var(--text-3);
}

.mission-card__code.is-loading .card-button{
  pointer-events:none;
  opacity:.65;
}

/* ======= Missions palette refinement ======= */
:root{
  --mission-bg:#0B0F14;
  --mission-panel:#0E1322;
  --mission-card-from:#10172A;
  --mission-card-to:#0B0F14;
  --mission-primary:#7C3AED;
  --mission-primary-600:#6D28D9;
  --mission-primary-700:#5B21B6;
  --mission-cta:#F97316;
  --mission-cta-600:#EA580C;
  --mission-cta-700:#C2410C;
  --mission-accent-green:#065F46;
  --mission-accent-green-text:#A7F3D0;
  --mission-text:#E5E7EB;
  --mission-muted:#94A3B8;
  --mission-border:#1F2937;
  --mission-focus:#F59E0B;
}

.escape-game-accordion__item[data-section="missions"],
.escape-game-accordion__item[data-section="shop"],
.escape-game-accordion__item[data-section="items"],
.escape-game-accordion__item[data-section="notes"],
.escape-game-accordion__item[data-section="puzzles"]{
  background:linear-gradient(180deg, rgba(16,22,38,.92) 0%, rgba(11,15,20,.94) 100%);
  border-color:rgba(124,58,237,.28);
}
.escape-game-accordion__item[data-section="missions"].is-expanded,
.escape-game-accordion__item[data-section="shop"].is-expanded,
.escape-game-accordion__item[data-section="items"].is-expanded,
.escape-game-accordion__item[data-section="notes"].is-expanded,
.escape-game-accordion__item[data-section="puzzles"].is-expanded{
  background:linear-gradient(180deg, rgba(38,24,74,.94) 0%, rgba(15,18,36,.96) 100%) !important;
  border-color:rgba(124,58,237,.45) !important;
  box-shadow:0 26px 48px rgba(47,20,82,.5) !important;
}
.escape-game-accordion__item[data-section="missions"].is-collapsed,
.escape-game-accordion__item[data-section="shop"].is-collapsed,
.escape-game-accordion__item[data-section="items"].is-collapsed,
.escape-game-accordion__item[data-section="notes"].is-collapsed,
.escape-game-accordion__item[data-section="puzzles"].is-collapsed{
  border-color:rgba(124,58,237,.22) !important;
  background:linear-gradient(180deg, rgba(16,22,38,.9) 0%, rgba(11,15,20,.92) 100%) !important;
}
.escape-game-accordion__item[data-section="missions"] .escape-game-accordion__header,
.escape-game-accordion__item[data-section="shop"] .escape-game-accordion__header,
.escape-game-accordion__item[data-section="items"] .escape-game-accordion__header,
.escape-game-accordion__item[data-section="notes"] .escape-game-accordion__header,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-accordion__header{
  background:linear-gradient(180deg, rgba(91,33,182,.94) 0%, rgba(35,20,70,.9) 100%);
  color:var(--mission-text);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-accordion__header:hover,
.escape-game-accordion__item[data-section="shop"] .escape-game-accordion__header:hover,
.escape-game-accordion__item[data-section="items"] .escape-game-accordion__header:hover,
.escape-game-accordion__item[data-section="notes"] .escape-game-accordion__header:hover,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-accordion__header:hover{
  background:linear-gradient(180deg, rgba(109,40,217,.95) 0%, rgba(47,25,96,.92) 100%);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-accordion__header:focus-visible,
.escape-game-accordion__item[data-section="shop"] .escape-game-accordion__header:focus-visible,
.escape-game-accordion__item[data-section="items"] .escape-game-accordion__header:focus-visible,
.escape-game-accordion__item[data-section="notes"] .escape-game-accordion__header:focus-visible,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-accordion__header:focus-visible{
  outline:2px solid var(--mission-focus);
  outline-offset:3px;
  box-shadow:none;
}
.escape-game-accordion__item[data-section="missions"] .escape-game-section__title,
.escape-game-accordion__item[data-section="shop"] .escape-game-section__title,
.escape-game-accordion__item[data-section="items"] .escape-game-section__title,
.escape-game-accordion__item[data-section="notes"] .escape-game-section__title,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-section__title{
  color:var(--mission-text);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-section__title-chip{
  border-color:rgba(124,58,237,.55);
  background:linear-gradient(135deg, rgba(124,58,237,.48), rgba(91,33,182,.22));
  box-shadow:0 0 22px rgba(124,58,237,.35);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-section__title-text{
  color:var(--mission-text);
  text-shadow:0 0 20px rgba(124,58,237,.45);
}
.escape-game-accordion__item[data-section="shop"] .escape-game-section__title-chip{
  border-color:rgba(249,115,22,.55);
  background:linear-gradient(135deg, rgba(249,115,22,.42), rgba(217,119,6,.2));
  box-shadow:0 0 22px rgba(249,115,22,.28);
}
.escape-game-accordion__item[data-section="shop"] .escape-game-section__title-text{
  color:rgba(255,239,214,.92);
  text-shadow:0 0 18px rgba(249,115,22,.45);
}
.escape-game-accordion__item[data-section="items"] .escape-game-section__title-chip{
  border-color:rgba(20,184,166,.55);
  background:linear-gradient(135deg, rgba(20,184,166,.4), rgba(15,118,110,.22));
  box-shadow:0 0 22px rgba(20,184,166,.3);
}
.escape-game-accordion__item[data-section="items"] .escape-game-section__title-text{
  color:rgba(209,250,229,.9);
  text-shadow:0 0 18px rgba(20,184,166,.4);
}
.escape-game-accordion__item[data-section="notes"] .escape-game-section__title-chip{
  border-color:rgba(96,165,250,.55);
  background:linear-gradient(135deg, rgba(59,130,246,.38), rgba(37,99,235,.2));
  box-shadow:0 0 22px rgba(96,165,250,.32);
}
.escape-game-accordion__item[data-section="notes"] .escape-game-section__title-text{
  color:rgba(219,234,254,.9);
  text-shadow:0 0 18px rgba(96,165,250,.38);
}
.escape-game-accordion__item[data-section="puzzles"] .escape-game-section__title-chip{
  border-color:rgba(168,85,247,.55);
  background:linear-gradient(135deg, rgba(168,85,247,.42), rgba(126,34,206,.2));
  box-shadow:0 0 22px rgba(168,85,247,.34);
}
.escape-game-accordion__item[data-section="puzzles"] .escape-game-section__title-text{
  color:rgba(242,235,255,.92);
  text-shadow:0 0 18px rgba(168,85,247,.42);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="shop"] .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="items"] .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="notes"] .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-accordion__indicator{
  border-color:rgba(124,58,237,.45);
  background:rgba(124,58,237,.16);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-accordion__indicator::before,
.escape-game-accordion__item[data-section="shop"] .escape-game-accordion__indicator::before,
.escape-game-accordion__item[data-section="items"] .escape-game-accordion__indicator::before,
.escape-game-accordion__item[data-section="notes"] .escape-game-accordion__indicator::before,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-accordion__indicator::before{
  border-right-color:rgba(229,231,235,.9);
  border-bottom-color:rgba(229,231,235,.9);
}
.escape-game-accordion__item[data-section="missions"].is-expanded .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="shop"].is-expanded .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="items"].is-expanded .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="notes"].is-expanded .escape-game-accordion__indicator,
.escape-game-accordion__item[data-section="puzzles"].is-expanded .escape-game-accordion__indicator{
  border-color:rgba(109,40,217,.55) !important;
  background:rgba(109,40,217,.28) !important;
}

.escape-game-accordion__item[data-section="missions"] .escape-game-accordion__content,
.escape-game-accordion__item[data-section="shop"] .escape-game-accordion__content,
.escape-game-accordion__item[data-section="items"] .escape-game-accordion__content,
.escape-game-accordion__item[data-section="notes"] .escape-game-accordion__content,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-accordion__content{
  background:linear-gradient(180deg, rgba(16,21,38,.8) 0%, rgba(11,15,20,.92) 100%);
  border-top:1px solid rgba(17,24,39,.72);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-section__lead,
.escape-game-accordion__item[data-section="shop"] .escape-game-section__lead,
.escape-game-accordion__item[data-section="items"] .escape-game-section__lead,
.escape-game-accordion__item[data-section="notes"] .escape-game-section__lead,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-section__lead{
  color:var(--mission-muted);
}
.escape-game-accordion__item[data-section="missions"] .escape-game-section__subtitle,
.escape-game-accordion__item[data-section="shop"] .escape-game-section__subtitle,
.escape-game-accordion__item[data-section="items"] .escape-game-section__subtitle,
.escape-game-accordion__item[data-section="notes"] .escape-game-section__subtitle,
.escape-game-accordion__item[data-section="puzzles"] .escape-game-section__subtitle{
  color:var(--mission-primary);
  text-shadow:0 0 22px rgba(124,58,237,.35);
}

.escape-game-section[data-section="missions"] .card.card--mission,
.escape-game-section[data-section="notes"] .card.card--note,
.escape-game-section[data-section="puzzles"] .card.card--puzzle{
  background:linear-gradient(180deg, var(--mission-card-from) 0%, var(--mission-card-to) 100%);
  border:1px solid rgba(124,58,237,.26);
  box-shadow:0 18px 36px rgba(16,12,30,.58), 0 0 0 1px rgba(124,58,237,.12);
  color:var(--mission-text);
}
.escape-game-section[data-section="missions"] .card.card--mission:hover,
.escape-game-section[data-section="notes"] .card.card--note:not(.card--note-archived):hover,
.escape-game-section[data-section="puzzles"] .card.card--puzzle:not(.card--puzzle-solved):hover{
  border-color:rgba(124,58,237,.42);
  box-shadow:0 22px 42px rgba(29,16,64,.6), 0 0 0 1px rgba(124,58,237,.2);
}
.escape-game-section[data-section="missions"] .card.card--mission:focus-visible,
.escape-game-section[data-section="notes"] .card.card--note:not(.card--note-archived):focus-visible,
.escape-game-section[data-section="puzzles"] .card.card--puzzle:not(.card--puzzle-solved):focus-visible{
  outline:2px solid var(--mission-focus);
  outline-offset:3px;
  border-color:var(--mission-focus);
  box-shadow:0 0 0 1px rgba(245,158,11,.3);
}
.escape-game-section[data-section="missions"] .card--mission.card--mission-assigned,
.escape-game-section[data-section="notes"] .card.card--note:not(.card--note-archived),
.escape-game-section[data-section="puzzles"] .card.card--puzzle:not(.card--puzzle-solved){
  border-color:rgba(124,58,237,.45);
  box-shadow:0 18px 38px rgba(36,16,72,.48), 0 0 0 1px rgba(124,58,237,.18);
}
.escape-game-section[data-section="missions"] .card--mission.card--mission-completed,
.escape-game-section[data-section="notes"] .card.card--note-archived,
.escape-game-section[data-section="puzzles"] .card.card--puzzle-solved{
  background:linear-gradient(180deg, rgba(18,20,38,.86) 0%, rgba(11,14,26,.92) 100%);
  border-color:rgba(124,58,237,.22);
  box-shadow:0 16px 32px rgba(16,12,30,.46), 0 0 0 1px rgba(124,58,237,.1);
  opacity:.84;
  filter:saturate(.82);
}
.escape-game-section[data-section="missions"] .card--mission.card--mission-completed:hover,
.escape-game-section[data-section="notes"] .card.card--note-archived:hover,
.escape-game-section[data-section="puzzles"] .card.card--puzzle-solved:hover{
  border-color:rgba(124,58,237,.28);
  box-shadow:0 18px 34px rgba(22,16,40,.5), 0 0 0 1px rgba(124,58,237,.16);
}
.escape-game-section[data-section="missions"] .card-title,
.escape-game-section[data-section="notes"] .card-title,
.escape-game-section[data-section="puzzles"] .card-title{
  color:var(--mission-text);
}
.escape-game-section[data-section="missions"] .card-desc,
.escape-game-section[data-section="missions"] .mission-card__meta,
.escape-game-section[data-section="notes"] .card-desc,
.escape-game-section[data-section="notes"] .card-meta,
.escape-game-section[data-section="puzzles"] .card-desc,
.escape-game-section[data-section="puzzles"] .card-meta{
  color:var(--mission-muted);
}
.escape-game-section[data-section="missions"] .card--mission.card--mission-completed .card-desc,
.escape-game-section[data-section="missions"] .card--mission.card--mission-completed .mission-card__meta,
.escape-game-section[data-section="notes"] .card.card--note-archived .card-desc,
.escape-game-section[data-section="notes"] .card.card--note-archived .card-meta,
.escape-game-section[data-section="puzzles"] .card.card--puzzle-solved .card-desc,
.escape-game-section[data-section="puzzles"] .card.card--puzzle-solved .card-meta{
  color:rgba(207,214,234,.78);
}
.escape-game-section[data-section="missions"] .card-badge.card-head__badge,
.escape-game-section[data-section="notes"] .card-badge.card-head__badge,
.escape-game-section[data-section="puzzles"] .card-badge.card-head__badge{
  background:var(--mission-accent-green);
  color:var(--mission-accent-green-text);
  border:1px solid rgba(6,95,70,.65);
  font-weight:600;
  border-radius:999px;
  padding:.25rem .6rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.escape-game-section[data-section="missions"] .card-badge--success.card-head__badge,
.escape-game-section[data-section="notes"] .card-badge--success.card-head__badge,
.escape-game-section[data-section="puzzles"] .card-badge--success.card-head__badge{
  background:rgba(124,58,237,.22);
  color:#DAD4FF;
  border-color:rgba(124,58,237,.4);
}
.escape-game-section[data-section="missions"] .card-badge--locked.card-head__badge,
.escape-game-section[data-section="notes"] .card-badge--locked.card-head__badge,
.escape-game-section[data-section="puzzles"] .card-badge--locked.card-head__badge{
  background:rgba(148,163,184,.18);
  color:var(--mission-muted);
  border-color:rgba(148,163,184,.32);
}

.escape-game-section[data-section="missions"] .mission-tag--primary{
  background:rgba(124,58,237,.2);
  color:#C4B5FD;
  box-shadow:none;
}
.escape-game-section[data-section="missions"] .mission-tag--secondary{
  background:rgba(148,163,184,.16);
  color:var(--mission-muted);
  box-shadow:none;
}

.escape-game-section[data-section="missions"] .card-button--primary{
  --button-bg:linear-gradient(135deg, rgba(249,115,22,.95), rgba(249,116,22,.85));
  --button-bg-hover:linear-gradient(135deg, rgba(234,88,12,.96), rgba(249,115,22,.96));
  --button-bg-disabled:rgba(249,115,22,.18);
  --button-border:rgba(36,18,4,.38);
  --button-border-hover:rgba(36,18,4,.48);
  --button-border-disabled:rgba(249,115,22,.32);
  --button-color:#1B0F07;
  --button-color-disabled:#FCD7BD;
  --button-shadow:0 16px 36px rgba(249,115,22,.32);
  --button-shadow-hover:0 18px 40px rgba(249,115,22,.4);
  --button-outline:var(--mission-focus);
}
.escape-game-section[data-section="missions"] form[data-role="mission-code-form"] .card-button--primary[disabled]{
  --button-bg:rgba(249,115,22,.22);
  --button-bg-hover:rgba(234,88,12,.28);
  --button-border:rgba(249,115,22,.32);
  --button-border-hover:rgba(249,115,22,.42);
  --button-color:#FCD7BD;
  --button-shadow:none;
  cursor:not-allowed;
}
.escape-game-section[data-section="missions"] .card-button--primary:active:not(:disabled){
  background:linear-gradient(135deg, var(--mission-cta-700), var(--mission-cta-600));
  border-color:rgba(36,18,4,.5);
  box-shadow:0 12px 28px rgba(194,65,12,.32);
  transform:translateY(1px);
}
.escape-game-section[data-section="missions"] .card-button:focus-visible{
  outline:2px solid var(--mission-focus);
  outline-offset:3px;
  box-shadow:none;
}

.escape-game-section[data-section="missions"] .mission-card__code-input{
  background:rgba(24,32,50,.92);
  color:#F8FAFC;
  border:1px solid rgba(148,163,184,.42);
  -webkit-text-fill-color:#F8FAFC;
  caret-color:#F8FAFC;
  margin-bottom:0;
}
.escape-game-section[data-section="missions"] .mission-card__code-input::placeholder{
  color:rgba(207,214,234,.78);
}
.escape-game-section[data-section="missions"] .mission-card__code-input:hover{
  border-color:rgba(191,205,231,.6);
}
.escape-game-section[data-section="missions"] .mission-card__code-input:focus{
  outline:2px solid var(--mission-focus);
  outline-offset:2px;
  border-color:rgba(249,157,68,.85);
  box-shadow:none;
  background:rgba(30,40,62,.96);
  color:#FFFFFF;
  -webkit-text-fill-color:#FFFFFF;
  caret-color:#FFFFFF;
}
/* ======= Sections ======= */

.escape-game-section{
  margin-top:40px;
  display:flex;
  flex-direction:column;
  gap:18px;
}
.escape-game-main h2{
  font-size:clamp(1.26rem,calc(0.85vw + 1.12rem),1.68rem);
  line-height:1.22;
}
.escape-game-section:first-of-type{ margin-top:36px; }
.escape-game-section__header{ display:flex; flex-direction:column; gap:8px; }
.escape-game-accordion__item{
  gap:0;
  background:rgba(16,22,38,.86);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  box-shadow:0 18px 32px rgba(6,10,24,.34);
  overflow:hidden;
  transition:border-color .24s ease, box-shadow .24s ease, transform .24s ease, background .24s ease;
}
.escape-game-accordion__item:not(:first-of-type){ margin-top:26px; }
.escape-game-accordion__item.is-collapsed{
  background:rgba(16,22,38,.86) !important;
  border-color:rgba(255,255,255,.12) !important;
  box-shadow:0 18px 32px rgba(6,10,24,.34) !important;
}
.escape-game-accordion__item.is-expanded{
  border-color:rgba(var(--pumpkin-rgb),.55) !important;
  background:linear-gradient(180deg, rgba(38,24,14,.9) 0%, rgba(18,24,42,.92) 100%) !important;
  box-shadow:0 26px 46px rgba(12,28,48,.6) !important;
}
.escape-game-screen button.escape-game-accordion__header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  width:100%;
  padding:20px 22px;
  border-top-color:rgba(var(--kubio-color-1),1);
  border-top-style:solid;
  border-top-width:0;
  border-right-color:rgba(var(--kubio-color-1),1);
  border-right-style:solid;
  border-right-width:0;
  border-bottom-color:rgba(var(--kubio-color-1),1);
  border-bottom-style:solid;
  border-bottom-width:2px;
  border-left-color:rgba(var(--kubio-color-1),1);
  border-left-style:solid;
  border-left-width:0;
  border-radius:4px;
  background:transparent;
  cursor:pointer;
  text-align:left;
  color:inherit;
  transition:background .2s ease, transform .2s ease;
}
.escape-game-screen button.escape-game-accordion__header:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(109,255,177,.55);
}
.escape-game-screen button.escape-game-accordion__header:hover{
  background:rgba(109,255,177,.08);
}
.escape-game-screen button.escape-game-accordion__header .escape-game-section__title{
  flex:1;
}
.escape-game-accordion__indicator{
  width:36px;
  height:36px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.06);
  position:relative;
  transition:transform .24s ease, border-color .24s ease, background .24s ease;
}
.escape-game-accordion__indicator::before{
  content:"";
  width:12px;
  height:12px;
  border-right:2px solid rgba(255,255,255,.8);
  border-bottom:2px solid rgba(255,255,255,.8);
  transform:rotate(45deg);
  transition:transform .24s ease;
}
.escape-game-accordion__item.is-collapsed .escape-game-accordion__indicator{
  border-color:rgba(255,255,255,.18) !important;
  background:rgba(255,255,255,.06) !important;
}
.escape-game-accordion__item.is-expanded .escape-game-accordion__indicator{
  border-color:rgba(var(--pumpkin-rgb),.6) !important;
  background:rgba(var(--pumpkin-rgb),.24) !important;
}
.escape-game-accordion__item.is-expanded .escape-game-accordion__indicator::before{
  transform:rotate(-135deg);
}
.escape-game-accordion__content{
  padding:15px 18px 20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.escape-game-accordion__content[hidden]{
  display:none !important;
}
.escape-game-accordion__content .escape-game-grid{
  margin-top:6px;
}
.escape-game-section__title{
  margin:0;
  display:flex;
  align-items:center;
  gap:16px;
  min-height:48px;
}
.escape-game-section__title-chip{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.24);
  background:linear-gradient(140deg, rgba(138,99,255,.32), rgba(40,30,70,.65));
  display:grid;
  place-items:center;
  box-shadow:0 0 18px rgba(138,99,255,.28);
}
.escape-game-section__title-chip img{
  width:72%;
  height:72%;
  object-fit:contain;
  filter:drop-shadow(0 0 6px rgba(0,0,0,.35));
}
.escape-game-section__title-text{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:clamp(1.04rem,calc(0.62vw + 1rem),1.48rem);
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--text-1);
  text-shadow:0 0 16px rgba(138,99,255,.24);
}
.escape-game-section__lead{
  margin:0;
  color:var(--text-2);
  max-width:72ch;
  font-size:var(--font-size-lead);
  line-height:1.65;
}
.escape-game-section__subtitle{
  margin:32px auto 6px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-size:clamp(1.08rem,calc(0.55vw + 1rem),1.54rem)!important;
  font-weight:820;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#ffe0a8;
  position:relative;
  text-align:center;
  max-width:100%;
}
.escape-game-section__subtitle::before{
  content:"";
  display:block;
  flex:1 1 80px;
  max-width:100px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(255,204,102,.75), rgba(142,122,255,.55));
  box-shadow:0 0 16px rgba(255,204,102,.35);
}
.escape-game-section__subtitle::after{
  content:"";
  display:block;
  flex:1 1 80px;
  max-width:100px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg, rgba(142,122,255,.55), rgba(255,204,102,.4));
  box-shadow:0 0 16px rgba(142,122,255,.28);
  opacity:.85;
}
.escape-game-section__subtitle h3,
h3.escape-game-section__subtitle{
  font-size:inherit;
  font-weight:inherit;
  flex:0 0 auto;
  margin:0;
}
.escape-game-section__empty{
  margin:10px 0 0;
  color:var(--text-3);
  font-size:clamp(.92rem,calc(0.35vw + .88rem),1.08rem);
  font-style:italic;
}
.escape-game-grid.is-empty{ opacity:.75; }
.escape-game-grid--items{
  grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),min(100%,320px)));
  justify-content:start;
}
.escape-game-grid--notes{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
.escape-game-grid--compact{ grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); }

/* ======= Enhanced cards ======= */

.card-body{ display:flex; flex-direction:column; gap:10px; }
.card-meta{
  margin:6px 0 0;
  font-size:var(--font-size-body);
  color:var(--text-3);
  line-height:1.5;
}
.card-meta img{
  width:1.35em;
  height:1.35em;
  margin:0 6px;
  vertical-align:middle;
}
.card-code{
  display:inline-flex;
  align-items:center;
  gap:6px;
  align-self:flex-start;
  margin-top:4px;
  padding:6px 12px;
  border-radius:999px;
  background:rgba(109,255,177,.16);
  border:1px solid rgba(109,255,177,.28);
  color:var(--text-1);
  font-family:'JetBrains Mono','Fira Code',Menlo,monospace;
  font-size:var(--font-size-body-sm);
  letter-spacing:.18em;
  text-transform:uppercase;
}
.card-actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }
.card-button,
.escape-game-modal__button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:10px 18px;
  border-radius:999px;
  border:1px solid transparent;
  font-size:var(--font-size-body-sm);
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
  position:relative;
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease, opacity .2s ease;
  background:var(--button-bg, rgba(24,30,48,.92));
  color:var(--button-color, var(--text-1));
  border-color:var(--button-border, rgba(255,255,255,.14));
  box-shadow:var(--button-shadow, none);
}
.card-button:hover:not(:disabled),
.escape-game-modal__button:hover:not(:disabled){
  transform:translateY(-1px);
  background:var(--button-bg-hover, rgba(35,41,62,.98));
  border-color:var(--button-border-hover, rgba(109,255,177,.45));
  box-shadow:var(--button-shadow-hover, 0 12px 28px rgba(5,15,35,.55));
}
.card-button:focus-visible,
.escape-game-modal__button:focus-visible{
  outline:2px solid var(--button-outline, rgba(109,255,177,.45));
  outline-offset:3px;
  transform:translateY(-1px);
}
.card-button:disabled,
.escape-game-modal__button:disabled{
  cursor:not-allowed;
  opacity:1;
  background:var(--button-bg-disabled, rgba(24,30,48,.58));
  border-color:var(--button-border-disabled, rgba(255,255,255,.14));
  color:var(--button-color-disabled, rgba(192,200,222,.58));
  box-shadow:none;
  transform:none;
}
.card-button__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:1.15em;
  line-height:1;
  flex-shrink:0;
  filter:drop-shadow(0 0 6px rgba(8,10,20,.35));
}
.card-button__label{
  display:inline-flex;
  align-items:center;
  line-height:1.1;
  white-space:nowrap;
}
.card-button--primary{
  --button-bg:linear-gradient(135deg, rgba(242,106,27,.96), rgba(255,140,59,.96));
  --button-bg-hover:linear-gradient(135deg, rgba(255,140,59,.98), rgba(255,171,94,.98));
  --button-border:var(--cta-primary-border);
  --button-border-hover:var(--cta-primary-border-hover);
  --button-color:var(--cta-primary-contrast);
  --button-shadow:0 14px 30px var(--cta-primary-glow);
  --button-shadow-hover:0 18px 36px rgba(242,106,27,.42);
  --button-outline:rgba(255,206,160,.65);
  --button-bg-disabled:rgba(242,106,27,.4);
  --button-border-disabled:rgba(255,190,120,.4);
  --button-color-disabled:rgba(26,19,40,.7);
}
.card-button--primary[data-role="code-open"]{
  position:relative;
  isolation:isolate;
  overflow:visible;
  animation:code-button-pulse 3.6s ease-in-out infinite;
}
.card-button--primary[data-role="code-open"]::before{
  content:"";
  position:absolute;
  inset:-4px;
  border-radius:inherit;
  pointer-events:none;
  z-index:-1;
  background:conic-gradient(from 0deg, rgba(255,205,150,.08), rgba(255,150,80,.55) 35%, rgba(255,220,120,.35) 52%, rgba(109,255,177,.45) 72%, rgba(255,150,80,.55) 90%, rgba(255,205,150,.08) 100%);
  filter:blur(.6px);
  opacity:.85;
  animation:code-button-aura 7s linear infinite;
  will-change:transform;
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 2px));
          mask:radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 2px));
}

.card-button--secondary{
  --button-bg:linear-gradient(135deg, rgba(75,44,130,.94), rgba(97,54,168,.94));
  --button-bg-hover:linear-gradient(135deg, rgba(97,54,168,.98), rgba(118,68,196,.98));
  --button-border:var(--cta-secondary-border);
  --button-border-hover:var(--cta-secondary-border-hover);
  --button-color:var(--cta-secondary-contrast);
  --button-shadow:0 14px 28px var(--cta-secondary-glow);
  --button-shadow-hover:0 18px 36px rgba(97,54,168,.42);
  --button-outline:rgba(182,150,255,.55);
  --button-bg-disabled:rgba(75,44,130,.45);
  --button-border-disabled:rgba(155,123,255,.3);
  --button-color-disabled:rgba(241,237,255,.65);
}
.card-button--danger{
  --button-bg:linear-gradient(135deg, rgba(178,34,34,.94), rgba(214,51,51,.94));
  --button-bg-hover:linear-gradient(135deg, rgba(214,51,51,.98), rgba(233,89,89,.98));
  --button-border:var(--cta-danger-border);
  --button-border-hover:var(--cta-danger-border-hover);
  --button-color:var(--cta-danger-contrast);
  --button-shadow:0 14px 28px var(--cta-danger-glow);
  --button-shadow-hover:0 18px 36px rgba(214,51,51,.4);
  --button-outline:rgba(255,180,180,.6);
  --button-bg-disabled:rgba(178,34,34,.4);
  --button-border-disabled:rgba(244,120,120,.35);
  --button-color-disabled:rgba(255,235,235,.7);
}
.card-button--ghost{
  --button-bg:transparent;
  --button-bg-hover:rgba(109,255,177,.12);
  --button-border:rgba(255,255,255,.22);
  --button-border-hover:rgba(109,255,177,.45);
  --button-color:var(--text-1);
  --button-shadow:none;
  --button-shadow-hover:0 12px 26px rgba(3,8,23,.45);
  --button-outline:rgba(109,255,177,.45);
  --button-bg-disabled:transparent;
  --button-border-disabled:rgba(255,255,255,.18);
  --button-color-disabled:rgba(192,200,222,.5);
}

@keyframes code-button-aura{
  0%{
    transform:rotate(0deg);
  }
  100%{
    transform:rotate(360deg);
  }
}

@keyframes code-button-pulse{
  0%,100%{
    box-shadow:var(--button-shadow, 0 14px 30px rgba(242,106,27,.42));
  }
  45%{
    box-shadow:0 22px 40px rgba(255,158,102,.55);
  }
}


@media (max-width:520px){
  .card-button,
  .escape-game-modal__button{
    padding:10px 14px;
    gap:8px;
    letter-spacing:.08em;
  }

  .card-button__label{
    font-size:calc(var(--font-size-body-sm) - 1px);
  }

  .card-button__icon img{
    max-width:1.1em;
    height:auto;
  }
}


.card--module.card--shop .card-button{
  border-color:#b695ff;
  box-shadow:0 16px 34px rgba(118,85,196,.38);
}
.card--module.card--shop .card-button:hover:not(:disabled),
.card--module.card--shop .card-button:focus-visible{
  border-color:#d6c5ff;
  box-shadow:0 22px 44px rgba(140,106,220,.45);
}

.card--module,
.card--item{
  background:
    radial-gradient(60% 120% at -10% 120%, rgba(142,122,255,.18), transparent 70%),
    radial-gradient(40% 100% at 120% -10%, rgba(109,255,177,.16), transparent 68%),
    linear-gradient(160deg, rgba(16,20,42,.94) 0%, rgba(9,12,28,.98) 52%, rgba(28,14,48,.92) 100%);
  border:1px solid rgba(142,122,255,.3);
  box-shadow:0 20px 38px rgba(4,8,26,.5);
}
.card--module::before,
.card--item::before{
  background:radial-gradient(70% 70% at 0% 100%, rgba(142,122,255,.22), transparent 70%);
}
.card--module::after,
.card--item::after{
  opacity:.7;
}
.card--module .chip,
.card--item .chip{
  order:0;
  background:rgba(142,122,255,.16);
  border-color:rgba(142,122,255,.42);
  box-shadow:0 0 18px rgba(142,122,255,.3);
}
.card--module .card-desc,
.card--module .card-meta,
.card--item .card-desc,
.card--item .card-meta{
  color:rgba(226,230,255,.88);
}
.card--module .card-actions{
  margin-top:18px;
}
.card--module .card-title,
.card--item .card-title,
.card--note .card-title,
.card--note-archived .card-title,
.card--puzzle .card-title,
.card--puzzle-solved .card-title{
  order:2;
  flex:0 0 100%;
  min-width:0;
  width:100%;
  margin-top:6px;
  font-size:clamp(1.38rem,calc(0.68vw + 1.02rem),1.86rem);
  font-weight:600;
  letter-spacing:-.035px;
  text-transform:none;
}
.card--module .card-head__badge,
.card--item .card-head__badge,
.card--note .card-head__badge,
.card--note-archived .card-head__badge,
.card--puzzle .card-head__badge,
.card--puzzle-solved .card-head__badge{
  order:1;
  margin-left:auto;
}

.card--item{
  overflow:hidden;
}
.card--item .card-media::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(12,16,36,0) 10%, rgba(12,16,36,.68) 100%);
}
.card--item .card-media::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg, rgba(18,22,44,.22) 0%, rgba(12,14,28,.7) 100%);
  opacity:.35;
  transition:opacity .3s ease;
}
.card--item:not(.is-locked) .card-media::before{
  opacity:.25;
}
.card--item:not(.is-locked) .card-media img{
  filter:saturate(120%) brightness(1.05);
  transition:filter .3s ease;
}
.card--item .card-body{
  gap:12px;
  transition:opacity .3s ease;
}
.card--note .card-head,
.card--puzzle .card-head{
  align-items:center;
}
.card--note .card-head .chip,
.card--note-archived .card-head .chip{
  background:rgba(142,122,255,.18);
  border-color:rgba(142,122,255,.42);
  box-shadow:0 0 16px rgba(142,122,255,.28);
}
.card--puzzle .card-head .chip{
  background:rgba(109,255,177,.18);
  border-color:rgba(109,255,177,.45);
  box-shadow:0 0 16px rgba(109,255,177,.28);
}
.card--item .card-desc{
  font-size:clamp(.92rem,calc(0.36vw + .88rem),1.06rem);
  line-height:1.55;
}
.card--item .card-meta{
  font-size:clamp(.85rem,calc(0.3vw + .82rem),1rem);
  opacity:.9;
}
.card--item .card-code{
  background:rgba(142,122,255,.18);
  border-color:rgba(142,122,255,.32);
}
.card--item.is-locked{
  border-color:rgba(255,204,102,.32);
  box-shadow:0 18px 32px rgba(36,12,16,.55);
}
.card--item:not(.is-locked){
  border-color:rgba(109,255,177,.32);
  box-shadow:0 20px 38px rgba(8,18,44,.45);
}
.card--item:not(.is-locked) .chip{
  background:rgba(109,255,177,.18);
  border-color:rgba(109,255,177,.45);
  box-shadow:0 0 18px rgba(109,255,177,.3);
}
.card--item.is-locked .chip{
  background:rgba(255,204,102,.18);
  border-color:rgba(255,204,102,.45);
  box-shadow:0 0 18px rgba(255,204,102,.28);
}
.card--item.is-locked .card-badge--locked{
  border-color:rgba(255,204,102,.42);
  background:rgba(255,204,102,.16);
  color:rgba(255,236,210,.92);
}
.card--item:not(.is-locked) .card-title{
  color:rgba(233,242,255,.98);
}
.card--item.is-locked .card-title{
  color:rgba(255,236,210,.9);
}
.card--item:not(.is-locked) .card-desc,
.card--item:not(.is-locked) .card-meta{
  color:rgba(226,230,255,.9);
}
.card--item.is-locked .card-desc,
.card--item.is-locked .card-meta{
  color:rgba(255,236,210,.78);
}
.card--item.is-locked .card-media::before{
  opacity:.75;
}
.card--item.is-locked .card-media img{
  filter:saturate(40%) brightness(.9);
}
.card--item.is-locked .card-body{
  opacity:.92;
}
.card--item:not(.is-locked) .card-body{
  opacity:1;
}

.card-button.is-loading::after{ content:'...'; animation:pulse 1.2s ease-in-out infinite; margin-left:6px; }

.card--ritual .card-actions{
  width:100%;
  flex-direction:column;
}
.card--ritual .card-button{
  width:100%;
  padding:16px 26px;
  font-size:clamp(0.94rem, 0.6vw + 0.86rem, 1.1rem);
  letter-spacing:.2em;
  text-shadow:0 1px 0 rgba(255,255,255,.45);
  animation:ritualPulse 2.4s ease-in-out infinite alternate;
  position:relative;
  overflow:hidden;
}
.card--ritual .card-button::before{
  content:"";
  position:absolute;
  inset:-8px;
  border-radius:inherit;
  background:linear-gradient(120deg, rgba(255,204,120,.65), rgba(255,122,26,.35), rgba(255,204,120,.7));
  filter:blur(14px);
  opacity:.55;
  transition:opacity .35s ease;
  z-index:-2;
}
.card--ritual .card-button:hover::before,
.card--ritual .card-button:focus-visible::before{
  opacity:1;
}
.card--ritual .card-button::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  border:2px solid rgba(255,214,150,.55);
  box-shadow:0 0 18px rgba(255,214,150,.55);
  opacity:.7;
  transition:opacity .35s ease, transform .35s ease;
  z-index:-1;
}
.card--ritual .card-button:hover::after,
.card--ritual .card-button:focus-visible::after{
  opacity:1;
  transform:scale(1.02);
}

@keyframes ritualPulse{
  0%{
    box-shadow:0 18px 34px rgba(255,140,59,.32), 0 0 18px rgba(109,255,177,.18);
    transform:translateY(0);
  }
  100%{
    box-shadow:0 26px 52px rgba(255,140,59,.45), 0 0 28px rgba(109,255,177,.22);
    transform:translateY(-1px);
  }
}
.card-media{
  border-radius:var(--radius);
  overflow:hidden;
  position:relative;
  box-shadow:0 18px 28px rgba(6,10,24,.28);
}
.card-media img{ display:block; width:100%; height:auto; object-fit:cover; }
.card--item{ position:relative; overflow:hidden; }
.card--item.is-locked .card-media img{ filter:none; }
.card--note .card-media img,
.card--puzzle .card-media img{ border-bottom-left-radius:0; border-bottom-right-radius:0; }
.card--puzzle-solved{ opacity:.75; border-style:dashed; }

/* ======= Toasts ======= */

.escape-game-toast-stack {
  position: fixed;
  bottom: 28px;
  right: 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  z-index: 12000;
  pointer-events: none;
}

.escape-game-toast {
  pointer-events: auto;
  min-width: 240px;
  max-width: min(360px, 92vw);
  padding: 14px 18px;
  border-radius: 18px;
  background: rgba(12, 16, 32, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.16);
  color: var(--text-1);
  font-size: var(--font-size-body-sm);
  font-weight: 600;
  line-height: 1.35;
  box-shadow: 0 18px 34px rgba(3, 8, 22, 0.55);
  transform: translateY(14px);
  opacity: 0;
  transition: opacity 180ms ease, transform 180ms ease;
}

.escape-game-toast.is-visible {
  transform: translateY(0);
  opacity: 1;
}

:root .qlwapp__button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:16px !important;
  background-color:rgba(120,45,18,.82) !important;
  background-image:none !important;
  border:1px solid rgba(255,164,64,.45) !important;
  box-shadow:0 14px 30px rgba(70,20,6,.55) !important;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
  color:#ffe7c4 !important;
}
:root .qlwapp__button:hover,
:root .qlwapp__button:focus-visible{
  transform:translateY(-3px);
  border-color:rgba(255,198,104,.75) !important;
  box-shadow:0 20px 38px rgba(85,24,8,.65) !important;
  background-color:rgba(150,60,22,.9) !important;
}
:root .qlwapp__icon{
  font-size:1.3rem !important;
  color:inherit !important;
  transition:inherit;
}

html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container{
  position:relative;
  padding:clamp(24px,4.5vw,64px) clamp(18px,6vw,72px) !important;
  background:linear-gradient(165deg, rgba(14,18,36,.95) 0%, rgba(9,12,26,.98) 100%) !important;
  border-top:1px solid rgba(109,255,177,.22) !important;
  box-shadow:0 -16px 32px rgba(6,8,24,.45) !important;
  color:rgba(224,228,255,.9) !important;
}
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container *{
  color:inherit !important;
}
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container p,
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container li,
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container small{
  color:rgba(206,210,236,.85) !important;
  line-height:1.65 !important;
}
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container a{
  color:#ffd766 !important;
  font-weight:600;
  text-decoration:none;
  transition:color .2s ease, text-shadow .2s ease;
}
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container a:hover,
html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container a:focus-visible{
  color:#fff0b0 !important;
  text-shadow:0 0 10px rgba(255,215,102,.45);
}
@media (max-width: 640px){
  html.ketos-theme .wp-block-kubio-footer__container.style-theme-gt1_zEKay-container.style-local-43-container{
    padding:30px 18px 42px !important;
    text-align:center;
  }
}

html.ketos-theme .wp-block-kubio-row__container.style-e6PC03TfkKI-container.style-local-45-container{
  position:relative;
  padding:clamp(22px,4vw,52px) clamp(18px,5vw,56px) !important;
  background:linear-gradient(160deg, rgba(12,16,32,.9) 0%, rgba(8,12,28,.94) 100%) !important;
  border:1px solid rgba(142,122,255,.22) !important;
  border-radius:20px !important;
  box-shadow:0 14px 28px rgba(6,8,22,.45) !important;
  color:rgba(224,228,255,.88) !important;
}
html.ketos-theme .wp-block-kubio-row__container.style-e6PC03TfkKI-container.style-local-45-container *{
  color:inherit !important;
}
html.ketos-theme .wp-block-kubio-row__container.style-e6PC03TfkKI-container.style-local-45-container p{
  margin:0;
  line-height:1.6;
}
html.ketos-theme .wp-block-kubio-row__container.style-e6PC03TfkKI-container.style-local-45-container img{
  filter:grayscale(100%) brightness(1.4);
  opacity:.8;
}
@media (max-width: 640px){
  html.ketos-theme .wp-block-kubio-row__container.style-e6PC03TfkKI-container.style-local-45-container{
    padding:26px 18px !important;
    text-align:center;
  }
}

.escape-game-toast--success {
  border-color: rgba(109, 255, 177, 0.55);
  box-shadow: 0 20px 38px rgba(22, 80, 62, 0.45);
}

.escape-game-toast--error {
  border-color: rgba(255, 100, 100, 0.6);
  background: rgba(36, 10, 14, 0.94);
  box-shadow: 0 20px 40px rgba(95, 26, 26, 0.5);
}

.escape-game-toast--info {
  border-color: rgba(155, 123, 255, 0.35);
  background: rgba(16, 20, 40, 0.92);
  box-shadow: 0 20px 40px rgba(40, 24, 75, 0.45);
}

/* ======= Modals ======= */

.escape-game-modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:32px 24px;
  background:rgba(4,6,14,.78);
  backdrop-filter:blur(12px);
  opacity:0;
  pointer-events:none;
  transition:opacity .3s ease;
  z-index:100010;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
}
.escape-game-modal.is-open{ opacity:1; pointer-events:auto; }
.escape-game-modal__backdrop{ position:absolute; inset:0; z-index:0; }
.escape-game-modal__dialog{
  position:relative;
  background:rgba(10,14,28,.94);
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  padding:24px 26px;
  width:min(88vw,440px);
  margin:32px 0;
  box-shadow:0 32px 60px rgba(4,8,20,.62);
  max-height:calc(100vh - 64px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  z-index:1;
}
.escape-game-modal__title{ margin:0 0 12px; font-size:clamp(1.26rem,calc(0.85vw + 1.12rem),1.68rem); font-weight:700; color:var(--text-1); padding-right:56px; padding-inline-end:56px; }
.escape-game-modal__text{ margin:0 0 16px; color:var(--text-2); line-height:1.65; font-size:var(--font-size-lead); }
.escape-game-modal__form{ display:flex; flex-direction:column; gap:12px; margin-top:10px; }
.escape-game-modal__label{ font-size:var(--font-size-body-xs); letter-spacing:.2em; text-transform:uppercase; color:rgba(234,239,250,.76); }
.escape-game-modal__input{
  width:100%;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(19,24,42,.9);
  color:var(--text-1);
  font-weight:700;
  letter-spacing:.2em;
  text-transform:uppercase;
  padding:12px 18px;
  font-size:var(--font-size-body-sm);
  margin-bottom:0 !important;
}
.escape-game-modal__input:focus{ outline:none; border-color:rgba(109,255,177,.6); box-shadow:0 0 0 3px rgba(109,255,177,.2); }
.escape-game-modal__hint{ margin:0; color:#ff9b7a; font-size:var(--font-size-body-sm); }
.escape-game-modal__close{ position:absolute; top:12px; right:12px; width:34px; height:34px; border-radius:999px; border:1px solid rgba(255,255,255,.18); background:rgba(21,26,46,.85); color:var(--text-1); font-size:1.1rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .2s ease, border-color .2s ease; }
.escape-game-modal__close:hover{ transform:translateY(-1px); border-color:rgba(109,255,177,.45); }
.escape-game-modal__video{ position:relative; width:100%; padding-top:56.25%; border-radius:var(--radius); overflow:hidden; margin-top:12px; }
.escape-game-modal__video iframe{ position:absolute; inset:0; width:100%; height:100%; }
.escape-game-modal__image{ margin:12px 0 16px; border-radius:var(--radius); overflow:hidden; box-shadow:0 20px 40px rgba(6,10,24,.4); }
.escape-game-modal__image img{ display:block; width:100%; height:auto; object-fit:cover; }
.escape-game-modal__caption{ margin:8px 0 0; text-align:center; color:var(--text-3); font-size:var(--font-size-body-sm); }

body.escape-game-modal-open .h-navigation_sticky,
body.escape-game-modal-open .h-navigation_overlap,
body.escape-game-modal-open .wp-block-kubio-navigation.h-navigation_overlap{
  z-index:0 !important;
}

@media (max-width: 600px){
  .escape-game-modal{
    padding:clamp(16px, 6vw, 28px) clamp(14px, 5vw, 24px);
  }

  .escape-game-modal__dialog{
    width:min(94vw, 440px);
    margin:clamp(16px, 6vh, 32px) 0;
    border-radius:20px;
    max-height:calc(100vh - clamp(24px, 10vh, 64px));
    box-shadow:0 24px 48px rgba(4,8,20,.55);
  }
}
.escape-game-modal__link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:10px 16px;
  border-radius:12px;
  background:rgba(109,255,177,.16);
  color:#6dffb1;
  font-weight:600;
  text-decoration:none;
  margin:12px 0;
  transition:background .2s ease, color .2s ease;
}
.escape-game-modal__link:hover{
  background:rgba(109,255,177,.26);
  color:#9dffd0;
}
.escape-game-modal__dialog--reward{ max-width:420px; }
.escape-game-modal__text--muted{ color:var(--text-3); font-size:var(--font-size-body-sm); }
.escape-game-reward-list{ display:flex; flex-direction:column; gap:12px; margin-top:12px; }
.escape-game-reward-card{ --reward-delay:0s; position:relative; display:flex; align-items:center; gap:14px; padding:16px; border-radius:calc(var(--radius) - 2px); background:rgba(16,22,38,.88); border:1px solid rgba(255,255,255,.1); box-shadow:0 16px 36px rgba(6,9,21,.55); animation:reward-pop .55s cubic-bezier(.22,.75,.3,1.05) both; animation-delay:var(--reward-delay); }
.escape-game-reward-card__icon{ width:46px; height:46px; border-radius:999px; display:grid; place-items:center; font-size:24px; background:rgba(255,255,255,.08); box-shadow:0 0 18px rgba(255,255,255,.12); }
.escape-game-reward-card__icon--resource{ position:relative; font-size:0; }
.escape-game-reward-card__icon--resource::before{ content:""; display:block; width:28px; height:28px; margin:auto; background-repeat:no-repeat; background-size:contain; background-position:center; }
.escape-game-reward-card__icon--gold::before{ background-image:url('https://adventuraescaperoom.it/wp-content/uploads/2025/10/oro-nobg.png'); }
.escape-game-reward-card__icon--souls::before{ background-image:url('https://adventuraescaperoom.it/wp-content/uploads/2025/10/anime-nobg.png'); }
.escape-game-reward-card__body{ display:flex; flex-direction:column; gap:4px; }
.escape-game-reward-card__title{ font-size:clamp(.98rem,calc(0.4vw + .92rem),1.12rem); font-weight:700; color:var(--text-1); margin:0; }
.escape-game-reward-card__hint{ margin:0; color:var(--text-2); font-size:var(--font-size-body-sm); }
.escape-game-reward-card__section{ margin-top:4px; font-size:var(--font-size-body-xs); letter-spacing:.22em; text-transform:uppercase; color:var(--text-3); }
.escape-game-reward-card--resource .escape-game-reward-card__icon{ background:rgba(255,122,26,.25); box-shadow:0 0 22px rgba(255,122,26,.35); }
.escape-game-reward-card--mission .escape-game-reward-card__icon{ background:rgba(155,123,255,.22); box-shadow:0 0 22px rgba(155,123,255,.35); }
.escape-game-reward-card--item .escape-game-reward-card__icon{ background:rgba(255,255,255,.18); box-shadow:0 0 22px rgba(255,255,255,.28); }
.escape-game-reward-card--note .escape-game-reward-card__icon{ background:rgba(109,255,177,.22); box-shadow:0 0 22px rgba(109,255,177,.3); }
.escape-game-reward-card--puzzle .escape-game-reward-card__icon{ background:rgba(255,196,64,.2); box-shadow:0 0 22px rgba(255,196,64,.28); }
.escape-game-reward-card--session .escape-game-reward-card__icon{ background:rgba(109,255,177,.22); box-shadow:0 0 22px rgba(109,255,177,.32); }
.escape-game-reward-card--generic .escape-game-reward-card__icon{ background:rgba(255,255,255,.15); }


.escape-game-image-preview{
  position:fixed; inset:0; background:rgba(4,6,14,.86); backdrop-filter:blur(14px); display:flex; align-items:center; justify-content:center; z-index:80; opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.escape-game-image-preview.is-open{ opacity:1; pointer-events:auto; }
.escape-game-image-preview__backdrop{ position:absolute; inset:0; }
.escape-game-image-preview__content{ position:relative; margin:0; max-width:min(94vw,720px); max-height:calc(100vh - 96px); display:flex; flex-direction:column; align-items:center; gap:12px; }
.escape-game-image-preview__content img{ display:block; max-width:100%; max-height:calc(100vh - 140px); width:auto; height:auto; border-radius:20px; box-shadow:0 32px 64px rgba(0,0,0,.55); }
.escape-game-image-preview__caption{ margin:0; color:var(--text-3); font-size:var(--font-size-body-sm); text-align:center; }
.escape-game-image-preview__close{ position:absolute; top:-18px; right:-18px; width:40px; height:40px; border-radius:999px; border:1px solid rgba(255,255,255,.2); background:rgba(21,26,46,.9); color:var(--text-1); font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform .2s ease, border-color .2s ease; }
.escape-game-image-preview__close:hover{ transform:translateY(-1px); border-color:rgba(109,255,177,.45); }
.escape-game-preview-trigger{ cursor:zoom-in; }
body.escape-game-preview-open{ overflow:hidden; }

@keyframes reward-pop{
	from{ transform:translateY(14px) scale(.94); opacity:0; }
	to{ transform:translateY(0) scale(1); opacity:1; }
}
body.escape-game-modal-open{ overflow:hidden; }

@media (max-width: 640px) {
  .escape-game-modal{
    padding:20px 16px;
  }
  .escape-game-modal__dialog{
    width:100%;
    border-radius:18px;
    padding:22px 20px;
    margin:20px 0;
    max-height:calc(100vh - 40px);
  }
  .escape-game-toast-stack {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    bottom: 20px;
    align-items: center;
  }

  .escape-game-toast {
    width: min(320px, 92vw);
  }

  .escape-game-accordion__item{
    border-radius:20px;
  }
  .escape-game-screen button.escape-game-accordion__header{
    padding:18px 18px;
  }
  .escape-game-accordion__content{
    padding:15px 18px 20px;
  }
  .escape-game-accordion__indicator{
    width:32px;
    height:32px;
  }
}

/* ======= Ambient FX ======= */

.escape-game-firefly{
  position:fixed; z-index:-1;
  width:10px; height:10px; border-radius:999px; pointer-events:none;
  background:radial-gradient(circle, rgba(109,255,177,1) 0%, rgba(109,255,177,0) 65%);
  opacity:.75; mix-blend-mode:screen;
  animation:drift 18s linear infinite;
}

.escape-game-background-host > .escape-game-screen.webbed,
.escape-game-screen.webbed{
  position:relative;
  z-index:1;
}
.escape-game-screen.webbed::before{
  content:""; position:fixed; top:0; right:0; width:34vmin; height:34vmin; pointer-events:none; z-index:-2;
  background:
    conic-gradient(from 0deg at 100% 0%, rgba(255,255,255,.06) 0 6deg, transparent 6deg 12deg) 0 0/100% 100%,
    repeating-radial-gradient(circle at 100% 0%, rgba(255,255,255,.05) 0 8px, transparent 8px 16px);
  mask:radial-gradient(circle at 100% 0%, black 60%, transparent 62%);
  opacity:.6;
}

.escape-game-background-wrapper{
  position:absolute !important;
  inset:0 !important;
  z-index:-1 !important;
  background:
    radial-gradient(60% 60% at 18% -10%, rgba(155,123,255,.25), transparent 60%),
    radial-gradient(60% 60% at 85% 0%, rgba(109,255,177,.18), transparent 58%),
    linear-gradient(165deg,var(--bg-1),var(--bg-2)) !important;
  pointer-events:none;
}
.escape-game-background-wrapper .background-layer{
  display:none;
}
.escape-game-background-host{
  margin-top:0 !important;
  margin-bottom:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  position:relative;
  z-index:0;
  overflow:visible !important;
  --kubio-color-1: var(--pumpkin-rgb);
}
.escape-game-background-host > .kubio-row,
.escape-game-background-host > .kubio-row > .kubio-row__inner{
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  width:100% !important;
  justify-content:center !important;
}
.escape-game-background-host .wp-block-kubio-column__container,
.escape-game-background-host .wp-block-kubio-column__inner{
  padding-top:0 !important;
  padding-bottom:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.escape-game-background-host .kubio-section,
.escape-game-background-host .kubio-section__inner{
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
.escape-game-background-host .h-row{
  margin-left:0 !important;
  margin-right:0 !important;
}
.escape-game-background-host .h-row > [class*="h-col"]{
  padding-left:0 !important;
  padding-right:0 !important;
}

.escape-game-background-host .style-local-40-outer,
.escape-game-background-host .style-local-40-inner,
.escape-game-background-host .style-DbkmkmgSJj-container,
.escape-game-background-host .style-DbkmkmgSJj-inner{
  margin-left:0 !important;
  margin-right:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  width:100% !important;
  justify-content:center !important;
}
.escape-game-background-host .h-px-2,
.escape-game-background-host .h-px-md-2,
.escape-game-background-host .h-px-lg-2,
.escape-game-background-host .h-px-xl-2,
.escape-game-background-host .v-inner-2,
.escape-game-background-host .v-inner-md-2,
.escape-game-background-host .v-inner-lg-2,
.escape-game-background-host .v-inner-xl-2{
  padding-left:0 !important;
  padding-right:0 !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.escape-game-background-host .wp-block-kubio-section__outer{
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* ======= Animations ======= */

@keyframes pulse{
  0%,100%{ opacity:.4; }
  50%{ opacity:1; }
}

@keyframes drift{
  0%{ transform:translate3d(0,0,0) scale(1); opacity:.35; }
  50%{ transform:translate3d(24px,-40px,0) scale(1.18); opacity:.85; }
  100%{ transform:translate3d(-28px,30px,0) scale(1); opacity:.35; }
}

@keyframes candle-flicker{
  0%,100%{ filter:drop-shadow(0 0 6px rgba(109,255,177,.25)); }
  45%{ filter:drop-shadow(0 0 12px rgba(109,255,177,.55)); }
  60%{ filter:drop-shadow(0 0 9px rgba(109,255,177,.35)); }
}

@keyframes ember{
  0%,100%{
    text-shadow:0 0 18px var(--card-glow-base), 0 0 36px var(--card-glow-outline);
    filter:drop-shadow(0 0 8px var(--card-glow-drop));
    transform:translateY(0) scale(1);
  }
  50%{
    text-shadow:0 0 26px var(--card-glow-strong, var(--card-glow-base)), 0 0 44px var(--card-glow-outline);
    filter:drop-shadow(0 0 14px var(--card-glow-drop));
    transform:translateY(-1px) scale(1.02);
  }
}

/* ======= Motion preferences ======= */

@media (prefers-reduced-motion: reduce){
  .escape-game-hero,
  .escape-game-firefly,
  .card,
  .escape-game-badge,
  .card-value,
  .card--ritual .card-button{
    animation:none !important;
    transition:none !important;
    transform:none !important;
    opacity:1 !important;
  }
}

@media (min-width:900px){
  .escape-game-accordion__item{ border-radius:26px; }
  .escape-game-screen button.escape-game-accordion__header{ padding:24px 28px; }
  .escape-game-accordion__content{ padding:18px 28px 28px; }
}

/* === CONTRAST & LINK HOTFIX === */
:root{
  --text-1:#ffffff;
  --text-2:#cfd6ea;
  --text-3:#97a0ba;
}

.escape-game-screen h1,
.escape-game-screen h2,
.escape-game-screen h3{
  color: var(--text-1) !important;
}

.escape-game-screen p,
.escape-game-screen .muted,
.escape-game-screen small{
  color: var(--text-2) !important;
}
