/* =========================================================
   LUIGI'S MANSION - tema "mansão assombrada"
   Roxo de meia-noite, verde-fantasma, luz de vela e molduras douradas.
   Tudo escopado em main.lm / body[data-game="luigi"]:
   cabeçalho e rodapé do portal não são afetados.
   ========================================================= */

body[data-game="luigi"] { background: #0b0619; }
body[data-game="luigi"] .mbr-gamenav { background: #0e0820; }

main.lm {
  --lm-night: #0b0619;
  --lm-deep: #160d2e;
  --lm-plum: #24154a;
  --lm-violet: #5a3a9a;
  --lm-ghost: #a6ffc4;
  --lm-slime: #63e06a;
  --lm-candle: #ffd27a;
  --lm-flame: #ff9a3c;
  --lm-gold: #d9b45c;
  --lm-gold-lt: #f6dc8f;
  --lm-gold-dk: #6e4a14;
  --lm-text: #efe8ff;
  --lm-muted: #c3b8e2;
  --lm-spook: "Creepster", "Lilita One", system-ui, sans-serif;
  --lm-serif: "Cinzel", Georgia, "Times New Roman", serif;
  --lm-goldgrad: linear-gradient(135deg, #fff0b0, #c9952e 22%, #f6d77c 45%, #8a5f1c 70%, #e9c46a);
  display: block; position: relative; color: var(--lm-text); overflow-x: clip;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='160' viewBox='0 0 120 160'%3E%3Cg fill='%23c9a8ff' fill-opacity='.05'%3E%3Cpath d='M60 34c9 14 26 22 26 44 0 18-14 26-26 46-12-20-26-28-26-46 0-22 17-30 26-44z'/%3E%3Ccircle cx='60' cy='22' r='5'/%3E%3Ccircle cx='60' cy='136' r='5'/%3E%3Cpath d='M0-16 14 0 0 16-14 0zM120-16l14 16-14 16-14-16zM0 144l14 16-14 16-14-16zM120 144l14 16-14 16-14-16z'/%3E%3C/g%3E%3Cpath d='M60 58c4 8 12 12 12 22s-6 14-12 22c-6-8-12-12-12-22s8-14 12-22z' fill='%230b0619' fill-opacity='.4'/%3E%3C/svg%3E") 0 0 / 120px 160px,
    repeating-linear-gradient(90deg, rgba(255,255,255,.016) 0 2px, transparent 2px 60px),
    linear-gradient(180deg, #120a26, #1a0f33 30%, #150b2b 70%, #0e0820);
}
main.lm .lm-sprites { position: absolute; width: 0; height: 0; overflow: hidden; }
main.lm .lm-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; margin: 0; }
main.lm .lm-wrap { max-width: 1200px; margin: 0 auto; padding: 0 20px; position: relative; }
main.lm .lm-sec { position: relative; padding: 90px 0; }
/* moldura dourada entre as seções */
main.lm .lm-sec::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 7px; opacity: .6; pointer-events: none;
  background: linear-gradient(180deg, #3a2410, #d9b45c 35%, #8a6a24 65%, #2a170a);
  box-shadow: 0 6px 16px rgba(0,0,0,.4);
}
main.lm strong { color: #fff; }
main.lm svg { fill: currentColor; }
main.lm kbd {
  display: inline-block; min-width: 1.6em; padding: 1px 6px; border-radius: 6px; background: #f2ecff; color: #1d1236;
  font-family: var(--mbr-font-body); font-weight: 900; font-size: .82em; line-height: 1.5; box-shadow: 0 2px 0 #8a7fb0; text-align: center;
}

/* ---------- Tipografia ---------- */
main.lm .lm-h2 {
  font-family: var(--lm-spook); font-weight: 400; margin: 0 0 12px; line-height: 1.02;
  font-size: clamp(2.5rem, 6vw, 4.1rem); letter-spacing: 1.5px; color: #c8ffd8;
  text-shadow: 0 0 22px rgba(120,255,170,.5), 0 3px 0 #1d3b2b, 0 10px 24px rgba(0,0,0,.6);
}
main.lm .lm-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; margin: 0 0 8px;
  font-family: var(--lm-serif); font-weight: 800; font-size: .86rem; letter-spacing: 3px; text-transform: uppercase; color: var(--lm-candle);
}
main.lm .lm-eyebrow::before {
  content: ""; flex: none; width: 8px; height: 22px;
  background:
    radial-gradient(ellipse 3.5px 6px at 50% 6px, #fffbe0 0 35%, #ffb43c 70%, transparent 74%) 0 0 / 100% 12px no-repeat,
    linear-gradient(90deg, #cbbd98, #fff6dc 50%, #bfae86) 50% 100% / 6px 10px no-repeat;
  filter: drop-shadow(0 0 6px rgba(255,180,60,.9));
  animation: lm-flick 2.2s infinite;
}
@keyframes lm-flick { 0%, 100% { opacity: 1; } 40% { opacity: .78; } 46% { opacity: 1; } 72% { opacity: .9; } }
main.lm .lm-head { text-align: center; max-width: 800px; margin: 0 auto 40px; }
main.lm .lm-head > p:not(.lm-eyebrow) { margin: 0; color: var(--lm-muted); font-size: 1.08rem; line-height: 1.65; }
main.lm .lm-head b { color: #fff; }

/* ---------- Botões e cartões ---------- */
main.lm .lm-btn {
  display: inline-flex; align-items: center; gap: 10px; border: 0; text-decoration: none; cursor: pointer;
  font-family: var(--mbr-font-display); font-size: 1.12rem; letter-spacing: .4px; color: #0b2414;
  padding: 12px 22px; border-radius: 999px;
  background: linear-gradient(180deg, #d4ffe2, #7dff9f 45%, #2fbf5f);
  box-shadow: 0 0 0 2px rgba(255,255,255,.4) inset, 0 0 24px rgba(110,255,160,.4), 0 6px 0 #146b34;
  transition: transform .15s, box-shadow .15s, background .2s;
}
main.lm .lm-btn svg { width: 22px; height: 22px; flex: none; }
main.lm .lm-btn:hover { transform: translateY(-2px); box-shadow: 0 0 0 2px rgba(255,255,255,.4) inset, 0 0 36px rgba(110,255,160,.65), 0 8px 0 #146b34; }
main.lm .lm-btn:active { transform: translateY(4px); box-shadow: 0 0 0 2px rgba(255,255,255,.4) inset, 0 2px 0 #146b34; }
main.lm .lm-btn--ghost { color: #fff; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 2px rgba(166,255,196,.6), 0 0 18px rgba(110,255,160,.16); }
main.lm .lm-btn--ghost:hover { box-shadow: inset 0 0 0 2px #d4ffe2, 0 0 30px rgba(110,255,160,.4); }
main.lm .lm-btn--candle { color: #3a2400; background: linear-gradient(180deg, #fff3b8, #ffd27a 50%, #f0a020); box-shadow: 0 0 0 2px rgba(255,255,255,.4) inset, 0 0 24px rgba(255,190,80,.4), 0 6px 0 #9a5a00; }
main.lm .lm-btn--candle:hover { box-shadow: 0 0 0 2px rgba(255,255,255,.4) inset, 0 0 36px rgba(255,190,80,.7), 0 8px 0 #9a5a00; }
main.lm .lm-btn--candle[aria-pressed="true"] { color: #fff; background: linear-gradient(180deg, #4a3a80, #24154a); box-shadow: inset 0 0 0 2px rgba(255,210,122,.6), 0 4px 0 #0e0820; }

main.lm .lm-card {
  position: relative; border-radius: 22px; padding: 30px 32px;
  background: linear-gradient(180deg, rgba(46,28,88,.9), rgba(20,12,40,.95));
  border: 1.5px solid rgba(217,180,92,.38);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), inset 0 0 60px rgba(0,0,0,.35), 0 24px 50px rgba(0,0,0,.45);
}
main.lm .lm-web { position: absolute; width: 110px; height: 110px; color: rgba(230,225,255,.32); pointer-events: none; z-index: 1; }
main.lm .lm-web--tr { top: 0; right: 0; transform: scaleX(-1); }

/* moldura dourada genérica */
main.lm .lm-gild {
  position: relative; padding: 16px; border-radius: 6px; background: var(--lm-goldgrad);
  box-shadow: inset 0 0 0 3px #6e4a14, inset 0 0 0 7px #f3d27a, inset 0 0 0 9px #6e4a14, 0 20px 40px rgba(0,0,0,.6), 0 0 50px rgba(255,200,100,.12);
}
main.lm .lm-gild img { width: 100%; border: 3px solid #3a2410; }

/* =========================================================
   HERÓI
   ========================================================= */
main.lm .lm-hero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: clamp(640px, 92vh, 900px); display: flex; align-items: center; padding: 40px 0 100px;
  background:
    radial-gradient(ellipse at 74% 20%, rgba(150,120,240,.35), transparent 55%),
    linear-gradient(180deg, #08051a 0%, #170e3a 50%, #251656 80%, #160d2e 100%);
}
main.lm .lm-hero::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 120px; background: linear-gradient(180deg, transparent, #120a26); z-index: 1; pointer-events: none; }
main.lm .lm-hero__sky { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
main.lm .lm-hero__stars {
  position: absolute; inset: 0 0 35% 0; opacity: .75;
  background-image:
    radial-gradient(1.6px 1.6px at 20px 30px, #fff 50%, transparent 52%),
    radial-gradient(1.2px 1.2px at 90px 120px, #e8e0ff 50%, transparent 52%),
    radial-gradient(1.4px 1.4px at 160px 60px, #fff 50%, transparent 52%),
    radial-gradient(1px 1px at 200px 150px, #cfc4ff 50%, transparent 52%),
    radial-gradient(1.8px 1.8px at 130px 10px, #fffbe0 50%, transparent 52%);
  background-size: 230px 180px;
  animation: lm-twinkle 4s ease-in-out infinite alternate;
}
@keyframes lm-twinkle { from { opacity: .45; } to { opacity: .85; } }
main.lm .lm-hero__clouds {
  position: absolute; left: -10%; right: -10%; top: 8%; height: 40%; opacity: .55;
  background:
    radial-gradient(ellipse 22% 12% at 18% 40%, rgba(90,60,160,.55), transparent 70%),
    radial-gradient(ellipse 18% 10% at 60% 20%, rgba(110,80,190,.45), transparent 70%),
    radial-gradient(ellipse 26% 12% at 88% 55%, rgba(80,50,150,.5), transparent 70%);
  animation: lm-drift 40s linear infinite alternate;
}
@keyframes lm-drift { from { transform: translateX(-4%); } to { transform: translateX(4%); } }
main.lm .lm-hero__flash { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: #dcd2ff; opacity: 0; animation: lm-lightning 13s linear infinite 3s; }
@keyframes lm-lightning { 0%, 88%, 100% { opacity: 0; } 88.6% { opacity: .2; } 89.2% { opacity: 0; } 90.6% { opacity: .12; } 92% { opacity: 0; } }

main.lm .lm-bats { position: absolute; inset: 0; z-index: 1; pointer-events: none; overflow: hidden; }
main.lm .lm-bat { position: absolute; left: 0; top: 0; width: 46px; height: 19px; color: #07040f; animation: lm-batfly 18s linear infinite; }
main.lm .lm-bat use { transform-box: fill-box; transform-origin: center; animation: lm-flap .2s ease-in-out infinite alternate; }
main.lm .lm-bat--2 { width: 34px; height: 14px; animation-duration: 23s; animation-delay: -9s; animation-name: lm-batfly2; }
main.lm .lm-bat--3 { width: 24px; height: 10px; animation-duration: 29s; animation-delay: -4s; opacity: .7; }
@keyframes lm-flap { to { transform: scaleY(.3); } }
@keyframes lm-batfly { 0% { transform: translate(-60px, 34vh) rotate(-8deg); } 50% { transform: translate(50vw, 12vh) rotate(6deg); } 100% { transform: translate(105vw, 22vh) rotate(-4deg); } }
@keyframes lm-batfly2 { 0% { transform: translate(105vw, 14vh) scaleX(-1); } 50% { transform: translate(55vw, 30vh) scaleX(-1); } 100% { transform: translate(-60px, 8vh) scaleX(-1); } }

main.lm .lm-hero__in { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 30px; align-items: center; width: 100%; }
main.lm .lm-kicker { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; padding: 0; }
main.lm .lm-kicker li { font-family: var(--mbr-font-pixel); font-size: 10px; letter-spacing: 1px; padding: 8px 10px; border-radius: 8px; background: rgba(255,255,255,.07); border: 1px solid rgba(166,255,196,.35); color: #dfffe9; }
main.lm .lm-kicker li:first-child { background: var(--lm-ghost); border-color: transparent; color: #0b2414; }
main.lm .lm-hero__title { margin: 0; }
main.lm .lm-hero__title img { width: min(100%, 560px); filter: drop-shadow(0 0 26px rgba(140,180,255,.45)) drop-shadow(0 10px 20px rgba(0,0,0,.6)); animation: lm-float 6s ease-in-out infinite; }
@keyframes lm-float { 50% { transform: translateY(-8px); } }
main.lm .lm-hero__hook { font-weight: 800; font-size: clamp(1.12rem, 1.9vw, 1.42rem); line-height: 1.45; margin: 14px 0; max-width: 560px; color: #fff; text-shadow: 0 2px 12px rgba(0,0,0,.7); }
main.lm .lm-hero__tip { display: flex; gap: 12px; align-items: center; max-width: 560px; margin: 0 0 24px; padding: 12px 16px; border-radius: 16px; background: rgba(10,6,24,.6); border: 1px dashed rgba(255,210,122,.45); color: var(--lm-muted); font-size: .98rem; line-height: 1.5; }
main.lm .lm-hero__tip svg { width: 34px; height: 34px; flex: none; color: var(--lm-candle); filter: drop-shadow(0 0 8px rgba(255,200,90,.8)); }
main.lm .lm-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; }

main.lm .lm-scene { container-type: inline-size; position: relative; width: min(100%, 580px); aspect-ratio: 1; justify-self: center; }
main.lm .lm-scene__moon {
  position: absolute; left: 47%; top: 2%; width: 44cqw; height: 44cqw; border-radius: 50%;
  background:
    radial-gradient(circle at 30% 60%, rgba(170,150,90,.28) 0 7%, transparent 8%),
    radial-gradient(circle at 62% 34%, rgba(170,150,90,.22) 0 10%, transparent 11%),
    radial-gradient(circle at 70% 70%, rgba(170,150,90,.2) 0 5%, transparent 6%),
    radial-gradient(circle at 38% 34%, #fffef2 0%, #f7efc8 45%, #e2d49c 75%, #c9b977 100%);
  box-shadow: 0 0 6cqw rgba(255,248,200,.55), 0 0 18cqw rgba(200,180,255,.32);
}
main.lm .lm-scene__mansion { position: absolute; inset: 0; width: 100%; height: 100%; -webkit-mask-image: linear-gradient(180deg, #000 80%, transparent 99%), linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(180deg, #000 80%, transparent 99%), linear-gradient(90deg, transparent 0, #000 10%, #000 90%, transparent 100%); mask-composite: intersect; }
main.lm .lm-mansion__lit { filter: drop-shadow(0 0 4px rgba(255,190,80,.9)); }
main.lm .lm-flick { animation: lm-winflick 4.2s steps(1) infinite; }
main.lm .lm-flick--2 { animation-duration: 6.8s; animation-delay: -2s; }
@keyframes lm-winflick { 0%, 46%, 100% { opacity: 1; } 47% { opacity: .2; } 49% { opacity: 1; } 51% { opacity: .35; } 53% { opacity: 1; } }
main.lm .lm-mansion__ghost { animation: lm-peekwin 7s ease-in-out infinite; }
@keyframes lm-peekwin { 0%, 55%, 100% { transform: translateY(0); } 65%, 85% { transform: translateY(-4px); } }
main.lm .lm-scene::after { content: ""; position: absolute; left: -6%; right: -6%; bottom: 0; height: 22%; z-index: 4; pointer-events: none; background: radial-gradient(ellipse 50% 60% at 30% 100%, rgba(200,190,255,.28), transparent 70%), radial-gradient(ellipse 50% 50% at 80% 100%, rgba(170,255,210,.16), transparent 70%); filter: blur(4px); animation: lm-drift 18s ease-in-out infinite alternate; }
main.lm .lm-scene__coin { position: absolute; left: 50%; top: 41.15%; width: max(4.4cqw, 20px); height: max(5.2cqw, 24px); translate: -50% -50%; z-index: 3; }
main.lm .lm-scene__boo {
  position: absolute; z-index: 3; width: 15cqw; opacity: .92; pointer-events: none;
  filter: drop-shadow(0 0 3cqw rgba(200,220,255,.55));
  animation: lm-boo 5s ease-in-out infinite;
  transition: opacity .4s, scale .4s, rotate .4s, filter .4s;
}
main.lm .lm-scene__boo--1 { left: 3%; top: 10%; }
main.lm .lm-scene__boo--2 { right: 0; top: 47%; width: 12cqw; transform: scaleX(-1); animation-delay: -2s; }
main.lm .lm-scene__boo--3 { left: 33%; top: 1%; width: 8cqw; animation-delay: -3.4s; animation-duration: 6s; }
main.lm .lm-scene__boo.is-shy { opacity: .22; scale: .82; rotate: -16deg; filter: blur(1px) brightness(1.4); }
@keyframes lm-boo { 50% { translate: 0 -2.6cqw; } }
main.lm .lm-scene__luigi { position: absolute; left: 0; bottom: 3%; width: 30cqw; z-index: 5; border: 0; padding: 0; background: none; cursor: pointer; border-radius: 20px; }
main.lm .lm-scene__luigi img { width: 100%; filter: drop-shadow(0 1cqw 2cqw rgba(0,0,0,.6)) drop-shadow(0 0 3cqw rgba(140,255,170,.22)); animation: lm-shiver 2.8s linear infinite; }
main.lm .lm-scene__luigi.is-talk img { animation: lm-shake .14s linear infinite; }
main.lm .lm-scene__luigi:focus-visible { outline: 3px solid var(--mbr-yellow); outline-offset: 4px; }
@keyframes lm-shiver { 0%, 16%, 100% { translate: 0 0; } 2% { translate: .3cqw 0; } 4% { translate: -.3cqw .1cqw; } 6% { translate: .25cqw 0; } 8% { translate: -.25cqw 0; } 10% { translate: .2cqw .1cqw; } 12% { translate: -.2cqw 0; } 14% { translate: .1cqw 0; } }
@keyframes lm-shake { 0% { translate: 0 0; } 25% { translate: .35cqw 0; } 50% { translate: 0 .15cqw; } 75% { translate: -.35cqw 0; } }

/* balão de fala */
main.lm .lm-say {
  position: absolute; left: 58%; bottom: 94%; z-index: 6; width: max-content; max-width: 220px;
  padding: 8px 12px; border-radius: 14px 14px 14px 4px; background: #fffbe8; color: #1d1236;
  font-family: var(--mbr-font-body); font-weight: 800; font-size: .9rem; line-height: 1.3; text-align: left;
  box-shadow: 0 6px 18px rgba(0,0,0,.45); opacity: 0; transform: translateY(8px) scale(.9); transform-origin: 0 100%;
  transition: opacity .2s, transform .2s; pointer-events: none;
}
main.lm .is-talk > .lm-say { opacity: 1; transform: none; }

main.lm .lm-fog { position: absolute; left: 0; right: 0; bottom: 0; height: 240px; z-index: 1; pointer-events: none; overflow: hidden; }
main.lm .lm-fog i {
  position: absolute; left: -25%; width: 150%; bottom: -60px; height: 220px; filter: blur(10px);
  background: radial-gradient(ellipse 30% 45% at 20% 60%, rgba(200,190,255,.22), transparent 70%), radial-gradient(ellipse 30% 40% at 60% 70%, rgba(180,255,210,.12), transparent 70%), radial-gradient(ellipse 30% 45% at 90% 50%, rgba(200,190,255,.2), transparent 70%);
  animation: lm-fog 26s ease-in-out infinite alternate;
}
main.lm .lm-fog i:nth-child(2) { bottom: -20px; opacity: .7; animation-duration: 34s; animation-direction: alternate-reverse; }
main.lm .lm-fog i:nth-child(3) { bottom: -90px; opacity: .9; animation-duration: 21s; }
@keyframes lm-fog { from { transform: translateX(-7%); } to { transform: translateX(7%); } }

/* =========================================================
   SOBRE
   ========================================================= */
main.lm .lm-about__grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, .85fr); gap: 44px; align-items: center; }
main.lm .lm-about__txt p:not(.lm-eyebrow) { margin: 0 0 14px; font-size: 1.05rem; line-height: 1.75; }
main.lm .lm-about__txt p:last-child { margin-bottom: 0; }
main.lm .lm-about__art { margin: 0; position: relative; display: grid; justify-items: center; gap: 22px; }
main.lm .lm-gild--tilt { width: min(100%, 320px); z-index: 2; rotate: -3deg; transition: rotate .5s cubic-bezier(.3,1.6,.5,1); }
main.lm .lm-gild--tilt:hover { rotate: 1.5deg; }
main.lm .lm-web--frame { top: 15px; left: 15px; width: 96px; height: 96px; color: rgba(255,255,255,.6); }
main.lm .lm-about__boo { position: absolute; z-index: 1; top: 16%; left: calc(50% + 70px); width: 92px; filter: drop-shadow(0 0 16px rgba(200,220,255,.5)); animation: lm-peek 7s ease-in-out infinite; }
@keyframes lm-peek { 0%, 55%, 100% { translate: 0 0; rotate: 0deg; } 65%, 88% { translate: 74px -6px; rotate: 10deg; } }
main.lm .lm-plaque { position: relative; z-index: 2; margin: 0; font-family: var(--lm-serif); font-weight: 800; color: #3a2410; background: linear-gradient(180deg, #f6dc8f, #c9952e); padding: 8px 20px; border-radius: 6px; text-align: center; box-shadow: inset 0 0 0 2px #6e4a14, 0 6px 14px rgba(0,0,0,.5); letter-spacing: 1px; line-height: 1.25; }
main.lm .lm-plaque small { display: block; font-size: .7rem; letter-spacing: 2px; }

/* =========================================================
   FICHA: GAME BOY HORROR
   ========================================================= */
main.lm .lm-gbh { position: relative; max-width: 1000px; margin: 76px auto 0; }
main.lm .lm-gbh__antenna { position: absolute; left: 13%; top: -52px; width: 8px; height: 62px; border-radius: 4px; background: linear-gradient(90deg, #7e7896, #e2ddf0, #7e7896); rotate: -14deg; }
main.lm .lm-gbh__antenna::before { content: ""; position: absolute; left: 50%; top: -12px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ffd0d0, #e0383a 60%, #7a0d10); box-shadow: 0 0 12px rgba(255,80,80,.75); animation: lm-blink 1.6s steps(1) infinite; }
@keyframes lm-blink { 50% { filter: brightness(.45); box-shadow: none; } }
main.lm .lm-gbh__eye { position: absolute; left: 50%; top: -60px; width: 124px; height: 76px; margin-left: -62px; border-radius: 62px 62px 14px 14px; background: linear-gradient(180deg, #e2ddf0, #8e87aa); box-shadow: inset 0 -6px 0 rgba(0,0,0,.2), 0 8px 18px rgba(0,0,0,.4); display: grid; place-items: center; }
main.lm .lm-gbh__iris { position: relative; width: 58px; height: 58px; margin-top: 8px; border-radius: 50%; overflow: hidden; background: radial-gradient(circle, #fff 0 56%, #e2ddf0 60%); box-shadow: inset 0 0 0 4px #4a4466; }
main.lm .lm-gbh__iris i { position: absolute; left: 50%; top: 50%; width: 26px; height: 26px; margin: -13px; border-radius: 50%; background: radial-gradient(circle at 36% 34%, #e6fff0 0 12%, #6fe09a 22%, #1e8a4a 50%, #072a15 78%); transform: translate(var(--px, 0px), var(--py, 0px)); transition: transform .12s ease-out; }
main.lm .lm-gbh__iris::after { content: ""; position: absolute; inset: 0; background: #8e87aa; transform: translateY(-100%); transition: transform .12s; }
main.lm .lm-gbh.is-blink .lm-gbh__iris::after { transform: none; }
main.lm .lm-gbh__body {
  position: relative; display: grid; grid-template-columns: 130px minmax(0, 1fr) 130px; grid-template-areas: "pad screen btns"; align-items: center; gap: 22px;
  padding: 30px 26px 34px; border-radius: 34px 34px 64px 64px;
  background: linear-gradient(180deg, #d3cde6, #a39bc0 55%, #827ba2);
  box-shadow: inset 0 3px 0 rgba(255,255,255,.6), inset 0 -8px 0 rgba(0,0,0,.18), 0 30px 60px rgba(0,0,0,.55);
}
main.lm .lm-gbh__pad { grid-area: pad; position: relative; width: 96px; height: 96px; justify-self: center; }
main.lm .lm-gbh__pad::before, main.lm .lm-gbh__pad::after { content: ""; position: absolute; border-radius: 7px; background: linear-gradient(#3e3858, #23203a); box-shadow: 0 4px 0 #15122a; }
main.lm .lm-gbh__pad::before { left: 32px; top: 0; width: 32px; height: 96px; }
main.lm .lm-gbh__pad::after { left: 0; top: 32px; width: 96px; height: 32px; }
main.lm .lm-gbh__pad span { position: absolute; left: 40px; top: 40px; width: 16px; height: 16px; z-index: 1; border-radius: 50%; background: radial-gradient(circle, #15122a, #2e2a48); }
main.lm .lm-gbh__screenwrap { grid-area: screen; padding: 18px 18px 10px; border-radius: 16px 16px 42px 16px; background: #3d3856; box-shadow: inset 0 0 0 3px #2a2640; }
main.lm .lm-gbh__screen {
  position: relative; overflow: hidden; border-radius: 6px; padding: 16px 18px 14px; min-height: 280px; color: #c8ffdc;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.16) 0 2px, transparent 2px 4px), radial-gradient(ellipse at 50% 35%, #1d4f3a, #0a1f17 80%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.65);
}
main.lm .lm-gbh__top { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 12px; padding-bottom: 8px; border-bottom: 2px dashed rgba(125,255,176,.3); font-family: var(--mbr-font-pixel); font-size: 9px; letter-spacing: 1px; color: #7dffb0; }
main.lm .lm-gbh__list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 20px; margin: 0; }
main.lm .lm-gbh__list .is-wide { grid-column: 1 / -1; }
main.lm .lm-gbh__list dt { font-family: var(--mbr-font-body); font-weight: 900; font-size: .72rem; letter-spacing: 2.5px; color: #7dffb0; text-transform: uppercase; margin-bottom: 2px; }
main.lm .lm-gbh__list dd { margin: 0; font-weight: 800; font-size: 1.02rem; line-height: 1.35; color: #ecfff3; }
main.lm .lm-gbh__status { margin: 14px 0 0; padding-top: 10px; border-top: 2px dashed rgba(125,255,176,.25); font-weight: 800; font-size: .92rem; color: #9dffc0; min-height: 2.6em; }
main.lm .lm-gbh__status::before { content: "> "; font-family: var(--mbr-font-pixel); font-size: 9px; }
main.lm .lm-gbh__call { position: absolute; inset: 0; z-index: 2; display: grid; grid-template-columns: minmax(80px, 120px) minmax(0, 1fr); gap: 16px; align-items: center; align-content: center; padding: 18px; background: repeating-linear-gradient(0deg, rgba(0,0,0,.16) 0 2px, transparent 2px 4px), #07170f; }
main.lm .lm-gbh__call[hidden] { display: none; }
main.lm .lm-gbh__call img { width: 100%; filter: drop-shadow(0 0 12px rgba(125,255,176,.4)); animation: lm-callin .35s ease-out; }
main.lm .lm-gbh__call p { margin: 0; font-weight: 800; font-size: 1.05rem; line-height: 1.45; color: #ecfff3; }
main.lm .lm-gbh__call b { display: block; margin-bottom: 8px; font-family: var(--mbr-font-pixel); font-size: 9px; font-weight: 400; letter-spacing: 1px; color: #7dffb0; animation: lm-blink 1s steps(1) infinite; }
@keyframes lm-callin { from { transform: translateY(16px) scale(.9); opacity: 0; } }
main.lm .lm-gbh__scan { position: absolute; left: 0; right: 0; top: -60px; height: 60px; z-index: 3; pointer-events: none; background: linear-gradient(180deg, transparent, rgba(125,255,176,.35), transparent); }
main.lm .lm-gbh.is-scan .lm-gbh__scan { animation: lm-scan 1s linear; }
@keyframes lm-scan { to { transform: translateY(420px); } }
main.lm .lm-gbh__brand { margin: 8px 0 0; text-align: center; font-family: var(--mbr-font-display); font-size: 1.05rem; letter-spacing: 1px; color: #e8e4f5; font-style: italic; }
main.lm .lm-gbh__brand b { font-weight: 400; color: #ff7a96; }
main.lm .lm-gbh__btns { grid-area: btns; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 10px; justify-items: center; align-items: start; rotate: -18deg; }
main.lm .lm-gbh__btn { width: 54px; height: 54px; border-radius: 50%; border: 0; display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #ff9ab0, #c8204a 60%, #7a0d24); box-shadow: 0 5px 0 #4a0616, inset 0 2px 0 rgba(255,255,255,.4); color: #fff; font-family: var(--mbr-font-display); font-size: 1.3rem; transition: transform .1s, box-shadow .1s; }
main.lm .lm-gbh__btn--b { margin-top: 26px; }
main.lm .lm-gbh__btn:active, main.lm .lm-gbh__btn.is-press { transform: translateY(4px); box-shadow: 0 1px 0 #4a0616, inset 0 2px 0 rgba(255,255,255,.4); }
main.lm .lm-gbh__btns small { grid-column: 1 / -1; margin-top: 6px; font-weight: 900; font-size: .74rem; letter-spacing: 1px; color: #3a3550; text-align: center; text-transform: uppercase; line-height: 1.3; rotate: 18deg; }

/* =========================================================
   HISTÓRIA
   ========================================================= */
main.lm .lm-story__grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 50px; align-items: start; }
main.lm .lm-story__intro { position: sticky; top: calc(var(--mbr-header-h) + 30px); }
main.lm .lm-story__lead { color: var(--lm-muted); font-size: 1.1rem; margin: 0 0 24px; }
main.lm .lm-letter {
  position: relative; overflow: hidden; min-height: 320px; padding: 30px 30px 26px; color: #3a2410; border-radius: 4px;
  background: radial-gradient(ellipse at 30% 20%, #fff8e2, #f1dfb2 60%, #d9c08a);
  box-shadow: 0 20px 40px rgba(0,0,0,.55), inset 0 0 40px rgba(120,80,20,.25); rotate: -1.5deg; font-family: Georgia, "Times New Roman", serif;
}
main.lm .lm-letter::before { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 1px; background: rgba(120,80,20,.18); box-shadow: 0 1px 0 rgba(255,255,255,.5); }
main.lm .lm-letter .lm-letter__title { max-width: none; margin: 0 0 10px; font-family: var(--lm-spook); font-size: 2.7rem; line-height: 1; color: #7a2a3a; letter-spacing: 1px; }
main.lm .lm-letter p { position: relative; margin: 0 0 10px; max-width: 60%; font-size: 1.08rem; line-height: 1.5; }
main.lm .lm-letter strong { color: #7a2a3a; }
main.lm .lm-letter__ps { font-style: italic; font-size: .9rem !important; color: #6a4a2a; }
main.lm .lm-letter__luigi { position: absolute; right: -6px; bottom: -4px; width: 42%; mix-blend-mode: multiply; }
main.lm .lm-letter__seal { position: absolute; right: 22px; top: 18px; z-index: 1; width: 58px; height: 58px; border-radius: 50%; display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #ff7a7a, #b0182a 60%, #6a0a16); color: #ffd7d7; font-family: var(--mbr-font-display); font-size: 1.7rem; box-shadow: 0 4px 10px rgba(0,0,0,.4), inset 0 0 0 4px rgba(0,0,0,.15); rotate: 12deg; }

main.lm .lm-steps { list-style: none; margin: 0; padding: 0 0 0 48px; position: relative; display: grid; gap: 20px; }
main.lm .lm-steps::before { content: ""; position: absolute; left: 18px; top: 10px; bottom: 10px; width: 3px; background: linear-gradient(180deg, transparent, rgba(217,180,92,.6) 8%, rgba(217,180,92,.6) 92%, transparent); }
main.lm .lm-step { position: relative; padding: 18px 22px; border-radius: 18px; background: linear-gradient(90deg, rgba(46,28,88,.85), rgba(20,12,40,.75)); border: 1px solid rgba(217,180,92,.28); }
main.lm .lm-step__n { margin: 0; font-family: var(--lm-serif); font-weight: 800; font-size: .76rem; letter-spacing: 3px; text-transform: uppercase; color: var(--lm-candle); }
main.lm .lm-step h3 { font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.5rem; margin: 2px 0 6px; color: #fff; letter-spacing: .3px; }
main.lm .lm-step p:last-child { margin: 0; color: var(--lm-muted); line-height: 1.68; }
main.lm .lm-step__candle { position: absolute; left: -36px; top: 30px; width: 12px; height: 26px; border-radius: 3px 3px 2px 2px; background: linear-gradient(90deg, #d9cba6, #fff6dc 45%, #c9b88e); box-shadow: 0 3px 0 #8a6a24; }
main.lm .lm-step__candle::before { content: ""; position: absolute; left: 50%; bottom: 100%; width: 10px; height: 17px; margin-left: -5px; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: radial-gradient(ellipse at 50% 70%, #fff 0 20%, #ffd84a 45%, #ff8a1a 75%, transparent 78%); filter: drop-shadow(0 0 8px #ffb43c); transform-origin: 50% 100%; opacity: .15; transition: opacity .5s .25s; animation: lm-flame 1.3s ease-in-out infinite alternate; }
main.lm .lm-step__candle::after { content: ""; position: absolute; left: 50%; top: -34px; width: 76px; height: 76px; margin-left: -38px; border-radius: 50%; background: radial-gradient(circle, rgba(255,190,90,.32), transparent 65%); opacity: 0; transition: opacity .7s .3s; pointer-events: none; }
main.lm .lm-step.is-in .lm-step__candle::before { opacity: 1; }
main.lm .lm-step.is-in .lm-step__candle::after { opacity: 1; }
@keyframes lm-flame { 0% { transform: scale(1, 1) rotate(-3deg); } 50% { transform: scale(.9, 1.1) rotate(2deg); } 100% { transform: scale(1.05, .94) rotate(-1deg); } }

/* =========================================================
   BRINQUEDO 1: SALA ESCURA
   ========================================================= */
main.lm .lm-darksec { background: linear-gradient(180deg, rgba(4,2,10,.35), rgba(4,2,10,.65)); }
main.lm .lm-room {
  --lx: 22%; --ly: 72%; --lr: 120px;
  position: relative; container-type: inline-size; aspect-ratio: 16 / 8.4; min-height: 360px; border-radius: 18px; overflow: hidden;
  box-shadow: 0 0 0 3px #6e4a14, 0 0 0 9px #c9952e, 0 0 0 12px #3a2410, 0 30px 60px rgba(0,0,0,.6);
  touch-action: pan-y; -webkit-tap-highlight-color: transparent; background: #050208; margin: 12px;
}
main.lm .lm-room:focus-visible { outline: 3px solid var(--mbr-yellow); outline-offset: 16px; }
@media (pointer: fine) {
  main.lm .lm-room:not(.is-lit), main.lm .lm-room:not(.is-lit) *:not([data-coin]) { cursor: none; }
}
main.lm .lm-room__scene {
  position: absolute; inset: 0;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='90' height='120' viewBox='0 0 120 160'%3E%3Cg fill='%23e9c46a' fill-opacity='.16'%3E%3Cpath d='M60 34c9 14 26 22 26 44 0 18-14 26-26 46-12-20-26-28-26-46 0-22 17-30 26-44z'/%3E%3Cpath d='M0-16 14 0 0 16-14 0zM120-16l14 16-14 16-14-16zM0 144l14 16-14 16-14-16zM120 144l14 16-14 16-14-16z'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 7cqw 9.3cqw,
    repeating-linear-gradient(90deg, rgba(255,255,255,.035) 0 .3cqw, transparent .3cqw 3.5cqw),
    linear-gradient(180deg, #2f5244, #1f3a30);
}
main.lm .lm-room__scene::before { content: ""; position: absolute; left: 0; right: 0; top: 64%; height: 24%; background: linear-gradient(180deg, #6a4026 0 6%, #2a170e 6% 10%, transparent 10%), repeating-linear-gradient(90deg, #45291a 0 7cqw, #2a170e 7cqw 7.4cqw); box-shadow: inset 0 8px 12px rgba(0,0,0,.4); }
main.lm .lm-room__scene::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12%; background: repeating-linear-gradient(90deg, #4f2e1a 0 9cqw, #3a2012 9cqw 9.4cqw); box-shadow: inset 0 8px 14px rgba(0,0,0,.55); }
main.lm .lm-room__rug { position: absolute; left: 30%; width: 44%; bottom: 1.5%; height: 9%; z-index: 1; border-radius: 50%; background: radial-gradient(ellipse, #8a2e44 0 52%, #d9b45c 53% 57%, #5a1a2a 58%); }
main.lm .lm-room__web { width: 13cqw; height: 13cqw; color: rgba(240,235,255,.5); z-index: 2; }
main.lm .lm-room__web--l { left: 0; top: 0; }
main.lm .lm-room__web--r { right: 0; top: 0; transform: scaleX(-1); }

main.lm .lm-room__window { position: absolute; left: 6%; top: 8%; width: 16cqw; height: 44%; z-index: 1; }
main.lm .lm-room__pane, main.lm .lm-room__moonlight::before {
  background:
    linear-gradient(90deg, transparent 47%, #3a2216 47% 53%, transparent 53%),
    linear-gradient(180deg, transparent 47%, #3a2216 47% 53%, transparent 53%),
    radial-gradient(circle at 70% 28%, #fff9d8 0 9%, rgba(255,250,210,.4) 10%, transparent 24%),
    linear-gradient(180deg, #1e2f66, #0a1030);
}
main.lm .lm-room__pane { position: absolute; inset: 0 8%; border: .7cqw solid #3a2216; box-shadow: inset 0 0 1cqw rgba(0,0,0,.6); }
main.lm .lm-room__curtain { position: absolute; top: -4%; width: 34%; height: 110%; background: repeating-linear-gradient(90deg, #6a2246 0 .9cqw, #43142c .9cqw 1.6cqw); box-shadow: inset 0 0 1cqw rgba(0,0,0,.5); }
main.lm .lm-room__curtain--l { left: -10%; border-radius: 0 0 60% 8%; }
main.lm .lm-room__curtain--r { right: -10%; border-radius: 0 0 8% 60%; }
main.lm .lm-room__moonlight { position: absolute; left: 6%; top: 8%; width: 16cqw; height: 44%; z-index: 6; pointer-events: none; transition: opacity .6s; }
main.lm .lm-room__moonlight::before { content: ""; position: absolute; inset: 0 24%; opacity: .55; }
main.lm .lm-room__moonlight::after { content: ""; position: absolute; left: 20%; top: 100%; width: 170%; height: 116%; background: linear-gradient(180deg, rgba(190,210,255,.075), rgba(190,210,255,0)); clip-path: polygon(8% 0, 52% 0, 100% 100%, 40% 100%); }

main.lm .lm-room__dark {
  position: absolute; inset: 0; z-index: 5; pointer-events: none; transition: opacity .8s ease;
  background: radial-gradient(circle var(--lr) at var(--lx) var(--ly), rgba(5,3,12,0) 0%, rgba(5,3,12,.04) 42%, rgba(5,3,12,.64) 76%, rgba(5,3,12,.968) 100%);
}
main.lm .lm-room__dark::after { content: ""; position: absolute; inset: 0; background: rgba(5,3,12,.9); opacity: 0; }
main.lm .lm-room.is-flicker .lm-room__dark::after { animation: lm-battery .7s steps(1) 1; }
@keyframes lm-battery { 0%, 100% { opacity: 0; } 15% { opacity: .85; } 30% { opacity: 0; } 55% { opacity: .6; } 70% { opacity: 0; } }
main.lm .lm-room__beam { position: absolute; inset: 0; z-index: 5; pointer-events: none; mix-blend-mode: screen; transition: opacity .8s; background: radial-gradient(circle var(--lr) at var(--lx) var(--ly), rgba(255,236,170,.3) 0%, rgba(255,220,140,.1) 55%, rgba(255,220,140,0) 100%); }
main.lm .lm-room__ring { position: absolute; z-index: 7; left: var(--lx); top: var(--ly); width: 20px; height: 20px; margin: -10px 0 0 -10px; border-radius: 50%; border: 2px solid rgba(255,240,200,.75); box-shadow: 0 0 12px rgba(255,220,140,.8); pointer-events: none; opacity: 0; transition: opacity .3s; }
main.lm .lm-room.is-aiming .lm-room__ring { opacity: .9; }
main.lm .lm-room__hint { position: absolute; z-index: 7; left: 50%; bottom: 16px; translate: -50% 0; margin: 0; padding: 7px 16px; border-radius: 999px; background: rgba(10,6,24,.8); border: 1px solid rgba(255,210,122,.45); color: var(--lm-candle); font-weight: 800; font-size: .9rem; white-space: nowrap; pointer-events: none; transition: opacity .5s; animation: lm-pulse 1.4s ease-in-out infinite alternate; }
main.lm .lm-room.is-aiming .lm-room__hint, main.lm .lm-room.is-lit .lm-room__hint { opacity: 0; animation: none; }
@keyframes lm-pulse { to { opacity: .55; } }
main.lm .lm-room.is-lit .lm-room__dark, main.lm .lm-room.is-lit .lm-room__beam, main.lm .lm-room.is-lit .lm-room__ring { opacity: 0; }
main.lm .lm-room.is-lit .lm-room__moonlight { opacity: 0; }
main.lm .lm-room::after { content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,140,.28), transparent 62%); opacity: 0; transition: opacity .8s; }
main.lm .lm-room.is-lit::after { opacity: 1; }

/* objetos escondidos */
main.lm .lm-find { position: absolute; z-index: 2; transition: filter .5s; }
main.lm .lm-find svg, main.lm .lm-find img { display: block; width: 100%; height: auto; }
main.lm .lm-find--portrait { left: 41%; top: 6%; width: 13cqw; }
main.lm .lm-find--portrait .lm-eye { transform: translate(var(--ex, 0px), var(--ey, 0px)); transition: transform .15s ease-out; }
main.lm .lm-find--clock { right: 7%; bottom: 11%; width: 7.5cqw; }
main.lm .lm-pendulum { transform-box: view-box; transform-origin: 30px 72px; animation: lm-pend 1.2s ease-in-out infinite alternate; }
@keyframes lm-pend { from { transform: rotate(-10deg); } to { transform: rotate(10deg); } }
main.lm .lm-find--key { left: 67%; top: 22%; width: 4.2cqw; }
main.lm .lm-find--table { left: 40%; bottom: 7%; width: 24cqw; z-index: 3; }
main.lm .lm-table__flames { opacity: 0; transition: opacity .6s; filter: drop-shadow(0 0 6px #ffb43c); }
main.lm .lm-room.is-lit .lm-table__flames, main.lm .lm-room.is-done .lm-table__flames { opacity: 1; }
main.lm .lm-find--chest { left: 12%; bottom: 5%; width: 14cqw; }
main.lm .lm-find--boo1 { left: -1.2%; top: 33%; width: 9cqw; z-index: 0; }
main.lm .lm-find--boo2 { right: 15%; top: 4%; width: 7cqw; }
main.lm .lm-find--boo1, main.lm .lm-find--boo2 { animation: lm-bob 3.4s ease-in-out infinite; }
main.lm .lm-find--boo2 { animation-delay: -1.5s; }
main.lm .lm-find--boo2 img { transform: scaleX(-1); }
@keyframes lm-bob { 50% { translate: 0 -1.2cqw; } }
main.lm .lm-find--coin { left: 50%; bottom: 3.5%; width: 3.4cqw; z-index: 4; }
main.lm .lm-find--coin .mbr-coin { display: block; width: 100%; height: auto; aspect-ratio: 300 / 362; }
main.lm .lm-find.is-found { filter: drop-shadow(0 0 1.2cqw rgba(255,230,140,.65)); }
main.lm .lm-find--boo1.is-found img, main.lm .lm-find--boo2.is-found img { animation: lm-shy .7s ease forwards; }
@keyframes lm-shy { to { opacity: .5; rotate: -16deg; scale: .86; filter: brightness(1.35) blur(.6px); } }
main.lm .lm-sparkle { opacity: 0; }
main.lm .lm-find--chest.is-found .lm-sparkle { animation: lm-twinkle .8s ease-in-out infinite alternate; }

main.lm .lm-room__bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 30px; }
main.lm .lm-room__count { margin: 0 0 10px; font-family: var(--lm-serif); font-weight: 800; letter-spacing: 1px; color: var(--lm-candle); }
main.lm .lm-room__count b { font-size: 1.3em; }
main.lm .lm-room__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
main.lm .lm-room__list li { padding: 6px 13px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px dashed rgba(195,184,226,.4); font-weight: 800; font-size: .9rem; color: var(--lm-muted); transition: background .3s, color .3s, border-color .3s; }
main.lm .lm-room__list li.is-found { background: rgba(166,255,196,.12); border: 1px solid rgba(166,255,196,.55); color: #e6fff0; }
main.lm .lm-room__list li.is-found::before { content: "\2713  "; color: var(--lm-ghost); }

/* =========================================================
   A MANSÃO (cômodos)
   ========================================================= */
main.lm .lm-house-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 40px; align-items: start; }
main.lm .lm-house { position: relative; padding-top: 104px; }
main.lm .lm-house__roof {
  position: absolute; left: 15%; right: 15%; top: 0; height: 96px; z-index: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.28) 0 3px, transparent 3px 16px), linear-gradient(180deg, #34226a, #1a1036);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
}
main.lm .lm-house__roof::after { content: ""; position: absolute; left: 50%; top: 40%; width: 34px; height: 34px; margin-left: -17px; border-radius: 50%; background: radial-gradient(circle, #fff4b8, #ffc85a 60%, #d9801c); box-shadow: 0 0 20px rgba(255,190,80,.8); }
main.lm .lm-house__rooms {
  position: relative; display: grid; gap: 8px;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.25fr) minmax(0, 1.25fr) minmax(0, .9fr);
  grid-template-areas:
    ".        varanda  varanda  ."
    ".        bebe     baile    ."
    "cem      jantar   hall     lab"
    ".        altar    altar    .";
}
main.lm .lm-house__rooms::before {
  content: ""; grid-column: 2 / 4; grid-row: 1 / 4; margin: -10px -10px -4px; border-radius: 4px; z-index: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,.2) 0 2px, transparent 2px 22px), linear-gradient(90deg, #1d1240, #2b1c58 70%, #3a2a74);
  box-shadow: 0 20px 40px rgba(0,0,0,.5), inset 0 0 0 3px #120a26;
}
main.lm .lm-house__rooms::after { content: ""; grid-column: 1 / -1; grid-row: 4; z-index: 0; margin: 0 -6px -12px; border-radius: 0 0 16px 16px; background: linear-gradient(180deg, #2f6b3a 0 5px, #1c3a24 5px 9px, #2a1a12 9px, #120a06); }
main.lm .lm-roomtab {
  position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  min-height: 108px; padding: 12px 8px; border-radius: 10px; border: 3px solid #3a2a60; cursor: pointer;
  background: linear-gradient(180deg, #0e0820, #170e30); color: var(--lm-muted); text-align: center;
  transition: background .3s, color .3s, box-shadow .3s, transform .2s, border-color .3s;
}
main.lm .lm-roomtab svg { width: 34px; height: 34px; opacity: .75; transition: transform .3s; }
main.lm .lm-roomtab b { font-family: var(--mbr-font-display); font-weight: 400; font-size: 1rem; line-height: 1.1; letter-spacing: .3px; }
main.lm .lm-roomtab:hover { color: #fff; transform: translateY(-2px); border-color: #5a4a90; }
main.lm .lm-roomtab:hover svg { transform: scale(1.1) rotate(-6deg); }
main.lm .lm-roomtab[aria-selected="true"] { color: #3a2410; border-color: #ffe7a0; background: radial-gradient(ellipse at 50% 30%, #fff6c8, #ffd27a 50%, #e08a1e); box-shadow: 0 0 34px rgba(255,200,90,.55), inset 0 0 20px rgba(255,255,255,.4); }
main.lm .lm-roomtab[aria-selected="true"] svg { opacity: 1; }
main.lm .lm-roomtab--hall { grid-area: hall; }
main.lm .lm-roomtab--jantar { grid-area: jantar; }
main.lm .lm-roomtab--bebe { grid-area: bebe; }
main.lm .lm-roomtab--baile { grid-area: baile; }
main.lm .lm-roomtab--varanda { grid-area: varanda; margin: 0 14%; }
main.lm .lm-roomtab--varanda::after { content: ""; position: absolute; left: 6px; right: 6px; bottom: 6px; height: 14px; background: repeating-linear-gradient(90deg, currentColor 0 3px, transparent 3px 11px); border-top: 3px solid currentColor; opacity: .35; }
main.lm .lm-roomtab--altar { grid-area: altar; margin-top: 14px; border-color: #4a1a3a; background: linear-gradient(180deg, #120610, #1e0a1c); }
main.lm .lm-roomtab--altar[aria-selected="true"] { color: #fff; border-color: #ff8ad8; background: radial-gradient(ellipse at 50% 30%, #c25ad8, #6a1a7a 60%, #2a0830); box-shadow: 0 0 34px rgba(220,100,255,.5); }
main.lm .lm-roomtab--out { align-self: end; min-height: 96px; border-style: dashed; border-color: rgba(166,255,196,.32); background: rgba(10,30,20,.45); }
main.lm .lm-roomtab--cemiterio { grid-area: cem; }
main.lm .lm-roomtab--lab { grid-area: lab; }
main.lm .lm-roomtab--out[aria-selected="true"] { color: #0b2414; border-style: solid; border-color: #d4ffe2; background: radial-gradient(ellipse at 50% 30%, #e6fff0, #8dffb0 55%, #2fbf5f); box-shadow: 0 0 34px rgba(110,255,160,.5); }
main.lm .lm-roomtab:focus-visible { outline: 3px solid var(--mbr-yellow); outline-offset: 3px; }

main.lm .lm-rpanel { min-height: 320px; }
main.lm .lm-rpanel[hidden] { display: none; }
main.lm .lm-rpanel.is-in { animation: lm-fadeup .45s ease; }
@keyframes lm-fadeup { from { opacity: 0; transform: translateY(12px); } }
main.lm .lm-rpanel__en { margin: 0; font-family: var(--mbr-font-pixel); font-size: 10px; letter-spacing: 1px; color: var(--lm-ghost); }
main.lm .lm-rpanel h3 { margin: 8px 0 10px; font-family: var(--lm-spook); font-weight: 400; font-size: clamp(2.1rem, 4vw, 2.9rem); line-height: 1; letter-spacing: 1px; color: var(--lm-candle); text-shadow: 0 0 18px rgba(255,190,90,.45); }
main.lm .lm-rpanel p { line-height: 1.75; font-size: 1.04rem; }
main.lm .lm-chip { display: inline-block; margin: 4px 0 0; padding: 6px 14px; border-radius: 999px; background: rgba(166,255,196,.1); border: 1px solid rgba(166,255,196,.42); font-weight: 800; font-size: .92rem; line-height: 1.4 !important; color: #e6fff0; }
main.lm .lm-grave { position: relative; width: 150px; height: 142px; margin-top: 22px; }
main.lm .lm-grave::after { content: ""; position: absolute; left: -30px; right: -30px; bottom: -6px; height: 30px; background: radial-gradient(ellipse at 50% 60%, rgba(200,190,255,.3), transparent 70%); filter: blur(3px); pointer-events: none; }
main.lm .lm-grave__stone { position: absolute; left: 14px; bottom: 0; width: 122px; height: 112px; display: grid; place-content: center; padding-top: 14px; text-align: center; border-radius: 61px 61px 6px 6px; background: linear-gradient(180deg, #9a95ad, #5d5873); box-shadow: inset -8px -6px 0 rgba(0,0,0,.2), 0 8px 16px rgba(0,0,0,.4); font-family: var(--lm-serif); color: #2a2640; font-size: .8rem; font-weight: 800; line-height: 1.25; rotate: -4deg; }
main.lm .lm-grave__stone b { display: block; font-size: 1rem; }
main.lm .lm-grave__coin { position: absolute; left: 58px; top: -8px; width: 30px; height: 36px; }

/* =========================================================
   MECÂNICAS
   ========================================================= */
main.lm .lm-tools { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
main.lm .lm-tool { position: relative; padding: 24px 22px 22px; border-radius: 20px; background: linear-gradient(180deg, rgba(46,28,88,.8), rgba(20,12,40,.9)); border: 1px solid rgba(166,255,196,.22); transition: transform .2s, box-shadow .2s, border-color .2s; }
main.lm .lm-tool:hover { transform: translateY(-5px); border-color: rgba(166,255,196,.55); box-shadow: 0 0 30px rgba(110,255,160,.18); }
main.lm .lm-tool__ico { width: 52px; height: 52px; color: var(--lm-ghost); filter: drop-shadow(0 0 10px rgba(110,255,160,.5)); margin-bottom: 8px; }
main.lm .lm-tool h3 { font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.35rem; margin: 0 0 6px; color: #fff; }
main.lm .lm-tool p { margin: 0; color: var(--lm-muted); line-height: 1.62; }

main.lm .lm-medals {
  margin-top: 36px; display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 24px; align-items: center;
  padding: 28px; border-radius: 22px; color: #2a1c0e;
  background:
    linear-gradient(rgba(60,110,90,.14) 1px, transparent 1px) 0 0 / 22px 22px,
    linear-gradient(90deg, rgba(60,110,90,.14) 1px, transparent 1px) 0 0 / 22px 22px,
    radial-gradient(ellipse at 30% 20%, #fbf6e4, #ece0bc);
  box-shadow: 0 24px 50px rgba(0,0,0,.5), inset 0 0 40px rgba(120,90,30,.22);
}
main.lm .lm-medals__art { position: relative; container-type: inline-size; aspect-ratio: 1 / .9; }
main.lm .lm-medals__art img { position: absolute; left: 2%; top: 0; width: 58%; mix-blend-mode: multiply; }
main.lm .lm-blast { --c1: #fff3b0; --c2: #ff8a1a; position: absolute; left: 52%; top: 27%; width: 0; height: 0; }
main.lm .lm-blast::before { content: ""; position: absolute; left: 0; top: -5cqw; width: 46cqw; height: 10cqw; opacity: 0; transform-origin: 0 50%; clip-path: polygon(0 42%, 100% 0, 100% 100%, 0 58%); background: linear-gradient(90deg, var(--c1), var(--c2) 45%, transparent 95%); filter: blur(2px); transition: opacity .2s; }
main.lm .lm-blast.is-on::before { opacity: .85; animation: lm-jet .18s ease-in-out infinite alternate; }
@keyframes lm-jet { from { transform: scaleY(.75); } to { transform: scaleY(1.15) scaleX(1.04); } }
main.lm .lm-blast[data-el="agua"] { --c1: #e6f8ff; --c2: #3a9cff; }
main.lm .lm-blast[data-el="gelo"] { --c1: #ffffff; --c2: #8fe4ff; }
main.lm .lm-blast i { position: absolute; left: -9px; top: -9px; width: 18px; height: 18px; border-radius: 50%; opacity: 0; }
main.lm .lm-blast i:nth-child(1) { --i: 0; --ty: -6cqw; }
main.lm .lm-blast i:nth-child(2) { --i: 1; --ty: 3cqw; }
main.lm .lm-blast i:nth-child(3) { --i: 2; --ty: -12cqw; }
main.lm .lm-blast i:nth-child(4) { --i: 3; --ty: 8cqw; }
main.lm .lm-blast i:nth-child(5) { --i: 4; --ty: -2cqw; }
main.lm .lm-blast i:nth-child(6) { --i: 5; --ty: 12cqw; }
main.lm .lm-blast i:nth-child(7) { --i: 6; --ty: -9cqw; }
main.lm .lm-blast i:nth-child(8) { --i: 7; --ty: 5cqw; }
main.lm .lm-blast i:nth-child(9) { --i: 8; --ty: -15cqw; }
main.lm .lm-blast i:nth-child(10) { --i: 9; --ty: 0cqw; }
main.lm .lm-blast.is-on i { animation: lm-shot .9s ease-out infinite; animation-delay: calc(var(--i) * -.09s); }
main.lm .lm-blast[data-el="fogo"] i { background: radial-gradient(circle at 40% 40%, #fff6b0, #ffb02e 40%, #ff4a1a 70%, transparent 74%); width: 38px; height: 38px; left: -19px; top: -19px; --g: -8cqw; }
main.lm .lm-blast[data-el="agua"] i { background: radial-gradient(circle at 35% 35%, #e6f8ff, #5ab8ff 55%, #1a6ad8); width: 18px; height: 18px; left: -9px; top: -9px; border-radius: 50% 50% 50% 0; --g: 16cqw; }
main.lm .lm-blast[data-el="gelo"] i { background: linear-gradient(135deg, #fff, #9fe6ff 60%, #3ab0e0); border-radius: 3px; width: 20px; height: 20px; left: -10px; top: -10px; box-shadow: 0 0 10px #bff4ff; --g: 2cqw; }
@keyframes lm-shot {
  0% { transform: translate(0, 0) scale(.3) rotate(0deg); opacity: 0; }
  12% { opacity: 1; }
  55% { transform: translate(26cqw, calc(var(--ty) * .6)) scale(1) rotate(160deg); }
  100% { transform: translate(46cqw, calc(var(--ty) + var(--g, 0cqw))) scale(1.3) rotate(320deg); opacity: 0; }
}
main.lm .lm-medals__tag { margin: 0 0 8px; font-family: var(--mbr-font-pixel); font-size: 9px; letter-spacing: 1px; color: #8a6a24; }
main.lm .lm-medals h3 { margin: 0 0 8px; font-family: var(--lm-spook); font-weight: 400; font-size: clamp(2rem, 4vw, 2.5rem); letter-spacing: 1px; color: #2f6b45; line-height: 1.05; }
main.lm .lm-medals__txt > p:not(.lm-medals__tag) { line-height: 1.65; font-weight: 600; }
main.lm .lm-medals strong { color: #2a1c0e; }
main.lm .lm-medals__btns { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
main.lm .lm-medal { display: inline-flex; align-items: center; gap: 10px; padding: 7px 18px 7px 7px; border-radius: 999px; border: 2px solid #6e4a14; background: #fff8e2; color: #3a2410; font-weight: 900; font-size: 1rem; cursor: pointer; box-shadow: 0 4px 0 #6e4a14; transition: transform .12s, box-shadow .12s, background .2s, color .2s; }
main.lm .lm-medal:hover { transform: translateY(-2px); }
main.lm .lm-medal i { width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 3px rgba(255,255,255,.5), 0 0 0 2px #6e4a14; }
main.lm .lm-medal--fogo i { background: radial-gradient(circle at 40% 35%, #fff2b0, #ffb02e 45%, #e0381a); }
main.lm .lm-medal--agua i { background: radial-gradient(circle at 40% 35%, #e6f8ff, #5ab8ff 50%, #1a5ad0); }
main.lm .lm-medal--gelo i { background: radial-gradient(circle at 40% 35%, #ffffff, #bff4ff 45%, #4ab8e8); }
main.lm .lm-medal[aria-pressed="true"] { background: #3a2410; color: #fff8e2; transform: translateY(3px); box-shadow: 0 1px 0 #6e4a14; }
main.lm .lm-medals__out { min-height: 3.2em; margin: 14px 0 0; font-weight: 800; color: #5a3d1a; line-height: 1.5; }

/* =========================================================
   BRINQUEDO 2: POLTERGUST
   ========================================================= */
main.lm .lm-pgsec { background: linear-gradient(180deg, rgba(4,2,10,.25), rgba(4,2,10,.6)); }
main.lm .lm-pg { max-width: 1060px; margin: 0 auto; }
main.lm .lm-pg__how { list-style: none; margin: 0 0 18px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
main.lm .lm-pg__how li { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.05); border: 1px solid rgba(195,184,226,.22); font-size: .95rem; line-height: 1.5; color: var(--lm-muted); }
main.lm .lm-pg__how li > b { flex: none; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--lm-ghost); color: #0b2414; font-family: var(--mbr-font-display); font-weight: 400; }

main.lm .lm-pg__hud { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; align-items: center; padding: 12px 18px; border-radius: 18px 18px 0 0; background: #120a26; border: 2px solid #3a2a60; border-bottom: 0; }
main.lm .lm-pg__hud p { margin: 0; line-height: 1.15; }
main.lm .lm-pg__hud small { display: block; font-family: var(--mbr-font-pixel); font-size: 8px; letter-spacing: 1px; color: var(--lm-muted); margin-bottom: 4px; text-transform: uppercase; }
main.lm .lm-pg__name b { font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.2rem; color: #fff; }
main.lm .lm-pg__caught { text-align: right; }
main.lm .lm-pg__caught b { font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.6rem; color: var(--lm-ghost); text-shadow: 0 0 12px rgba(110,255,160,.6); }
main.lm .lm-pg__caught b.is-bump { animation: mbr-bump .35s ease; display: inline-block; }
main.lm .lm-pg__tug { --m: 0; position: relative; height: 26px; border-radius: 999px; background: linear-gradient(90deg, #ff5a7a 0 9%, #2a1c50 9% 91%, #ff5a7a 91%); box-shadow: inset 0 0 0 2px #5a4a80; opacity: .4; transition: opacity .3s; }
main.lm .lm-pg__tugzone { position: absolute; left: 32%; right: 32%; top: 4px; bottom: 4px; border-radius: 999px; background: rgba(166,255,196,.25); }
main.lm .lm-pg__mark { position: absolute; top: -6px; left: calc(50% + var(--m) * 44%); width: 14px; height: 38px; margin-left: -7px; border-radius: 6px; background: linear-gradient(#fff, #a6ffc4); box-shadow: 0 0 12px rgba(166,255,196,.8); }
main.lm .lm-pg__arrow { position: absolute; top: 50%; translate: 0 -50%; padding: 1px 9px; border-radius: 999px; background: #2fbf5f; color: #fff; font-family: var(--mbr-font-display); font-weight: 400; font-size: .82rem; white-space: nowrap; opacity: 0; transition: opacity .15s; pointer-events: none; }
main.lm .lm-pg__arrow--l { left: 12%; }
main.lm .lm-pg__arrow--r { right: 12%; }
main.lm .lm-pg__tug.is-on { opacity: 1; }
main.lm .lm-pg__tug.is-on[data-need="-1"] .lm-pg__arrow--l, main.lm .lm-pg__tug.is-on[data-need="1"] .lm-pg__arrow--r { opacity: 1; }

main.lm .lm-pg__stage {
  position: relative; container-type: inline-size; aspect-ratio: 16 / 7; min-height: 340px; overflow: hidden; cursor: crosshair;
  border-left: 2px solid #3a2a60; border-right: 2px solid #3a2a60; touch-action: pan-y; -webkit-tap-highlight-color: transparent;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='70' height='94' viewBox='0 0 120 160'%3E%3Cg fill='%23ffcf8a' fill-opacity='.09'%3E%3Cpath d='M60 34c9 14 26 22 26 44 0 18-14 26-26 46-12-20-26-28-26-46 0-22 17-30 26-44z'/%3E%3Cpath d='M0-16 14 0 0 16-14 0zM120-16l14 16-14 16-14-16zM0 144l14 16-14 16-14-16zM120 144l14 16-14 16-14-16z'/%3E%3C/g%3E%3C/svg%3E") 0 0 / 70px 94px,
    radial-gradient(ellipse at 60% 30%, #5a1e46, #34112a 70%);
}
main.lm .lm-pg__stage:focus-visible { outline: 3px solid var(--mbr-yellow); outline-offset: -5px; }
main.lm .lm-pg__stage::before { content: ""; position: absolute; left: 0; right: 0; top: 64%; height: 24%; background: linear-gradient(180deg, #6a4026 0 5%, #2a170e 5% 9%, transparent 9%), repeating-linear-gradient(90deg, #45291a 0 70px, #2a170e 70px 74px); box-shadow: inset 0 8px 12px rgba(0,0,0,.4); }
main.lm .lm-pg__stage::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 12%; background: repeating-linear-gradient(90deg, #4f2e1a 0 90px, #3a2012 90px 94px); box-shadow: inset 0 8px 14px rgba(0,0,0,.55); }
main.lm .lm-pg__window { position: absolute; left: 8%; top: 9%; width: 11cqw; height: 40%; border: .7cqw solid #3a2216; background: linear-gradient(90deg, transparent 46%, #3a2216 46% 54%, transparent 54%), radial-gradient(circle at 30% 30%, #fff9d8 0 10%, rgba(255,250,210,.35) 11%, transparent 26%), linear-gradient(180deg, #1e2f66, #0a1030); box-shadow: 0 0 2cqw rgba(160,180,255,.2); }
main.lm .lm-pg__portrait { position: absolute; left: 34%; top: 10%; width: 9cqw; aspect-ratio: 4 / 5; border: 1cqw solid #c9952e; border-image: var(--lm-goldgrad) 1; background: radial-gradient(circle at 50% 40%, #2a4a3a, #0f1f17); box-shadow: 0 6px 12px rgba(0,0,0,.5); }
main.lm .lm-pg__portrait::after { content: "?"; position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--lm-spook); font-size: 4cqw; color: rgba(166,255,196,.25); }
main.lm .lm-pg__lamp { position: absolute; right: 30%; top: 22%; width: 2cqw; height: 5cqw; border-radius: 3px; background: linear-gradient(90deg, #d9cba6, #fff6dc, #c9b88e); }
main.lm .lm-pg__lamp::before { content: ""; position: absolute; left: 50%; bottom: 100%; width: 1.6cqw; height: 2.6cqw; margin-left: -.8cqw; border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; background: radial-gradient(ellipse at 50% 70%, #fff 0 20%, #ffd84a 45%, #ff8a1a 75%, transparent 78%); animation: lm-flame 1.2s ease-in-out infinite alternate; transform-origin: 50% 100%; }
main.lm .lm-pg__lamp::after { content: ""; position: absolute; left: 50%; top: -8cqw; width: 18cqw; height: 18cqw; margin-left: -9cqw; border-radius: 50%; background: radial-gradient(circle, rgba(255,190,90,.22), transparent 62%); pointer-events: none; }
main.lm .lm-pg__fx { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 5; pointer-events: none; }
main.lm .lm-pg__luigi { position: absolute; right: 5%; bottom: 5%; height: 76%; width: auto; z-index: 3; transform-origin: 50% 100%; filter: drop-shadow(0 10px 14px rgba(0,0,0,.55)); pointer-events: none; }
main.lm .lm-pg__ghost { --gsz: 110px; position: absolute; left: 0; top: 0; z-index: 4; width: var(--gsz); height: calc(var(--gsz) * 1.08); pointer-events: none; color: #ff9a3c; opacity: 0; will-change: transform, opacity; }
main.lm .lm-pg__body { display: block; width: 100%; height: 100%; filter: drop-shadow(0 0 14px color-mix(in srgb, currentColor 65%, transparent)); transition: filter .2s; }
main.lm .lm-pg__body svg { width: 100%; height: 100%; }
main.lm .lm-pg__body img { display: none; width: 100%; margin-top: 8%; }
main.lm .lm-pg__ghost.is-boo .lm-pg__body svg { display: none; }
main.lm .lm-pg__ghost.is-boo .lm-pg__body img { display: block; }
main.lm .lm-pg__ghost.is-boo .lm-pg__body { filter: drop-shadow(0 0 14px rgba(220,230,255,.7)); }
main.lm .lm-pg__ghost.is-flip .lm-pg__body { transform: scaleX(-1); }
main.lm .lm-pg__ghost.is-stunned .lm-pg__body { animation: lm-jitter .12s linear infinite; filter: brightness(1.6) drop-shadow(0 0 18px #fff); }
main.lm .lm-pg__ghost.is-caught .lm-pg__body { animation: lm-jitter .07s linear infinite; }
@keyframes lm-jitter { 0% { translate: 0 0; } 25% { translate: 2px -1px; } 50% { translate: -2px 1px; } 75% { translate: 1px 2px; } }
main.lm .lm-pg__heart {
  position: absolute; left: 50%; bottom: 96%; width: 58px; height: 52px; margin-left: -29px; display: grid; place-items: center; opacity: 0; scale: .4;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 50'%3E%3Cpath d='M28 47C10 34 2.5 26 2.5 15.5 2.5 7.5 8.5 2.5 15.5 2.5c6 0 10 3 12.5 8 2.5-5 6.5-8 12.5-8 7 0 13 5 13 13 0 10.5-7.5 18.5-25.5 31.5z' fill='%23ff3a5a' stroke='%23fff' stroke-width='3'/%3E%3C/svg%3E") center / contain no-repeat;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,.5)); transition: opacity .2s, scale .3s cubic-bezier(.3,1.6,.5,1);
}
main.lm .lm-pg__heart b { margin-top: -6px; font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.15rem; color: #fff; text-shadow: 0 2px 0 #7a0d24; }
main.lm .lm-pg__ghost.is-stunned .lm-pg__heart, main.lm .lm-pg__ghost.is-caught .lm-pg__heart { opacity: 1; scale: 1; }
main.lm .lm-pg__msg { position: absolute; left: 50%; bottom: 10px; translate: -50% 0; z-index: 6; margin: 0; width: max-content; max-width: calc(100% - 24px); padding: 7px 16px; border-radius: 999px; background: rgba(10,6,24,.85); border: 1px solid rgba(166,255,196,.38); color: #eafff1; font-weight: 800; font-size: .94rem; line-height: 1.35; text-align: center; pointer-events: none; }
main.lm .lm-pg__coin { position: absolute; z-index: 6; left: 40%; bottom: 13%; width: 34px; height: 40px; margin-left: -17px; }
main.lm .lm-pg__coin[hidden] { display: none; }
main.lm .lm-pg__coin.is-drop:not(.is-collected):not(.was-collected) { animation: lm-drop .8s cubic-bezier(.3,1.5,.5,1) both, mbr-spin 1.6s linear .8s infinite; }
@keyframes lm-drop { from { translate: 0 -140px; opacity: 0; } 50% { opacity: 1; } to { translate: 0 0; opacity: 1; } }

main.lm .lm-pg__ctrl { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 18px; border-radius: 0 0 18px 18px; background: #120a26; border: 2px solid #3a2a60; border-top: 0; }
main.lm .lm-pg__pad { display: flex; align-items: center; gap: 10px; }
main.lm .lm-pg__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 12px 18px; border-radius: 16px; border: 0; cursor: pointer;
  font-family: var(--mbr-font-display); font-size: 1.1rem; letter-spacing: .3px; color: #2a1c00;
  background: linear-gradient(180deg, #fff3b8, #ffd27a 50%, #f0a020); box-shadow: 0 5px 0 #9a5a00, 0 0 20px rgba(255,200,90,.28);
  touch-action: none; -webkit-user-select: none; user-select: none; transition: transform .08s, box-shadow .08s;
}
main.lm .lm-pg__btn svg { width: 26px; height: 26px; flex: none; }
main.lm .lm-pg__btn kbd { font-size: .72em; }
main.lm .lm-pg__btn--vac { min-width: 250px; color: #0b2414; background: linear-gradient(180deg, #d4ffe2, #7dff9f 50%, #2fbf5f); box-shadow: 0 5px 0 #146b34, 0 0 20px rgba(110,255,160,.3); }
main.lm .lm-pg__btn.is-press, main.lm .lm-pg__btn.is-on { transform: translateY(4px); box-shadow: 0 1px 0 #9a5a00; }
main.lm .lm-pg__btn--vac.is-on { box-shadow: 0 1px 0 #146b34, 0 0 34px rgba(110,255,160,.7); animation: lm-vibe .09s linear infinite; }
@keyframes lm-vibe { 50% { translate: 1px 0; } }
main.lm .lm-pg__pull { width: 54px; height: 54px; border-radius: 14px; border: 2px solid #5a4a90; background: #24154a; color: #fff; font-size: 1.25rem; cursor: pointer; touch-action: none; -webkit-user-select: none; user-select: none; transition: background .1s, color .1s, transform .08s; }
main.lm .lm-pg__pull.is-on { background: var(--lm-ghost); color: #0b2414; transform: translateY(2px); }
main.lm .lm-pg__btn:focus-visible, main.lm .lm-pg__pull:focus-visible { outline: 3px solid var(--mbr-yellow); outline-offset: 3px; }

main.lm .lm-pg__gallery { margin-top: 26px; }
main.lm .lm-pg__gtitle { margin: 0 0 12px; text-align: center; font-family: var(--lm-serif); font-weight: 800; letter-spacing: 1px; color: var(--lm-candle); }
main.lm .lm-pg__gtitle small { display: block; font-family: var(--mbr-font-body); font-weight: 700; letter-spacing: 0; color: var(--lm-muted); }
main.lm .lm-pg__frames { list-style: none; max-width: 780px; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; }
main.lm .lm-pg__frame { text-align: center; }
main.lm .lm-pg__pic { display: grid; place-items: center; aspect-ratio: 4 / 5; border: 8px solid #c9952e; border-image: var(--lm-goldgrad) 1; background: radial-gradient(circle at 50% 40%, #2a4a3a, #0f1f17); box-shadow: 0 8px 16px rgba(0,0,0,.45); }
main.lm .lm-pg__pic:empty::after { content: "?"; font-family: var(--lm-spook); font-size: 2rem; color: rgba(166,255,196,.22); }
main.lm .lm-pg__pic svg, main.lm .lm-pg__pic img { width: 76%; height: auto; }
main.lm .lm-pg__frame.is-filled .lm-pg__pic { animation: lm-pop .55s cubic-bezier(.3,1.6,.5,1); }
@keyframes lm-pop { from { transform: scale(.6) rotate(-8deg); } }
main.lm .lm-pg__frame small { display: block; margin-top: 6px; font-weight: 800; font-size: .8rem; color: var(--lm-muted); line-height: 1.25; }

/* =========================================================
   PERSONAGENS: GALERIA
   ========================================================= */
main.lm .lm-cast { background: linear-gradient(180deg, rgba(90,20,50,.28), rgba(40,8,26,.38)); }
main.lm .lm-gallery { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 50px 32px; }
main.lm .lm-por { position: relative; text-align: center; padding-top: 38px; }
main.lm .lm-por::before {
  content: ""; position: absolute; left: 50%; top: 4px; width: 44%; max-width: 130px; height: 40px; translate: -50% 0; pointer-events: none;
  background: linear-gradient(to bottom right, transparent calc(50% - 1px), #c9b88e calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) left / 50% 100% no-repeat,
              linear-gradient(to top right, transparent calc(50% - 1px), #c9b88e calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px)) right / 50% 100% no-repeat;
}
main.lm .lm-por::after { content: ""; position: absolute; left: 50%; top: 0; width: 10px; height: 10px; margin-left: -5px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff0b0, #8a6a24); box-shadow: 0 2px 3px rgba(0,0,0,.5); }
main.lm .lm-frame {
  position: relative; display: block; width: min(100%, 250px); margin: 0 auto 18px; padding: 16px; border: 0; border-radius: 4px; cursor: pointer;
  background: var(--lm-goldgrad);
  box-shadow: inset 0 0 0 3px #6e4a14, inset 0 0 0 8px #f3d27a, inset 0 0 0 10px #6e4a14, 0 18px 34px rgba(0,0,0,.55);
  transform-origin: 50% -34px; transition: transform .35s;
}
main.lm .lm-frame:hover { transform: rotate(-1.5deg); }
main.lm .lm-frame:focus-visible { outline: 3px solid var(--mbr-yellow); outline-offset: 6px; }
main.lm .lm-frame.is-swing { animation: lm-swing 1.2s ease-out; }
@keyframes lm-swing { 0% { transform: rotate(0); } 15% { transform: rotate(7deg); } 35% { transform: rotate(-5deg); } 55% { transform: rotate(3deg); } 75% { transform: rotate(-1.5deg); } 100% { transform: rotate(0); } }
main.lm .lm-frame__canvas { position: relative; display: grid; place-items: end center; aspect-ratio: 4 / 5; overflow: hidden; background: radial-gradient(circle at 50% 35%, #3d6b52, #0f2419 85%); box-shadow: inset 0 0 24px rgba(0,0,0,.75); }
main.lm .lm-frame__canvas::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(125deg, rgba(255,255,255,.14) 0 18%, transparent 30%), repeating-linear-gradient(45deg, rgba(255,255,255,.025) 0 2px, transparent 2px 6px); }
main.lm .lm-frame__canvas img { width: 82%; max-height: 94%; object-fit: contain; filter: drop-shadow(0 8px 10px rgba(0,0,0,.5)); }
main.lm .lm-frame--egadd .lm-frame__canvas { background: radial-gradient(circle at 50% 35%, #4a6a9a, #142038 85%); }
main.lm .lm-frame--king .lm-frame__canvas { background: radial-gradient(circle at 50% 40%, #5a3a9a, #140a2a 85%); place-items: center; }
main.lm .lm-frame--boos .lm-frame__canvas { background: radial-gradient(circle at 50% 40%, #3a3a7a, #0e0e2a 85%); place-items: center; }
main.lm .lm-frame--boos .lm-frame__canvas img { width: 70%; }
main.lm .lm-frame--boos .lm-frame__boo2 { position: absolute; left: 6%; top: 8%; width: 38% !important; opacity: .65; transform: scaleX(-1); }
main.lm .lm-frame--ghosts .lm-frame__canvas { place-items: center; color: #c9b8ff; background: radial-gradient(circle at 50% 40%, #2a5a4a, #0c1f18 85%); }
main.lm .lm-frame--ghosts svg { width: 72%; filter: drop-shadow(0 0 14px rgba(200,180,255,.7)); }
main.lm .lm-frame--mario .lm-frame__canvas { background: radial-gradient(circle at 50% 40%, #8a6a3a, #2a1a0e 85%); }
main.lm .lm-frame--mario .lm-frame__canvas img { filter: sepia(.4) saturate(1.15) contrast(1.05) drop-shadow(0 8px 10px rgba(0,0,0,.5)); }
main.lm .lm-por__name { display: inline-block; margin: 0 0 10px; padding: 6px 18px; border-radius: 4px; background: linear-gradient(180deg, #f6dc8f, #c9952e); color: #3a2410; box-shadow: inset 0 0 0 2px #6e4a14, 0 4px 10px rgba(0,0,0,.4); font-family: var(--lm-serif); font-weight: 800; font-size: 1.02rem; letter-spacing: 1px; }
main.lm .lm-por > p { margin: 0 auto; max-width: 340px; color: var(--lm-muted); line-height: 1.62; }
main.lm .lm-por .lm-say { left: 50%; bottom: auto; top: 6%; translate: -10% 0; border-radius: 14px; }

main.lm .lm-hole { position: relative; width: min(100%, 250px); margin: 0 auto 18px; perspective: 1500px; }
main.lm .lm-hole__safe { position: absolute; inset: 12% 14%; border-radius: 8px; background: radial-gradient(circle at 50% 45%, #241430, #050208); box-shadow: inset 0 0 22px #000, 0 0 0 5px #3a2a20, 0 0 0 7px #1a0f08; }
main.lm .lm-hole__coin { position: absolute; left: 60%; top: 50%; z-index: 1; width: 42px; height: 50px; margin: -25px 0 0 -21px; }
main.lm .lm-hole .lm-frame { margin: 0; z-index: 2; transform: rotate(7deg); transform-origin: 0 50%; transition: transform .8s cubic-bezier(.3,1.25,.5,1); }
main.lm .lm-hole .lm-frame:hover { transform: rotate(4deg); }
main.lm .lm-hole .lm-frame.is-swing { animation: none; }
main.lm .lm-hole .lm-frame[aria-expanded="true"] { transform: rotateY(-70deg) scale(.94) rotate(0deg); }

/* =========================================================
   A SÉRIE CONTINUA
   ========================================================= */
main.lm .lm-timeline { list-style: none; position: relative; max-width: 1000px; margin: 0 auto 46px; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
main.lm .lm-timeline::before { content: ""; position: absolute; left: 10%; right: 10%; top: 15px; height: 3px; background: linear-gradient(90deg, transparent, rgba(166,255,196,.6) 10%, rgba(166,255,196,.6) 90%, transparent); }
main.lm .lm-timeline li { position: relative; padding: 38px 6px 0; text-align: center; line-height: 1.3; }
main.lm .lm-timeline li::before { content: ""; position: absolute; left: 50%; top: 6px; width: 22px; height: 22px; margin-left: -11px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff, #a6ffc4 50%, #2fbf5f); box-shadow: 0 0 14px rgba(110,255,160,.8); }
main.lm .lm-timeline b { display: block; font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.6rem; color: var(--lm-candle); }
main.lm .lm-timeline span { display: block; font-weight: 800; color: #fff; }
main.lm .lm-timeline small { color: var(--lm-muted); font-size: .85rem; }

main.lm .lm-game { display: grid; gap: 34px; align-items: center; margin-bottom: 34px; }
main.lm .lm-game--dm { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
main.lm .lm-game--lm3 { grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); margin-bottom: 0; }
main.lm .lm-game__covers { position: relative; display: grid; justify-items: start; padding: 10px 0 46px; }
main.lm .lm-game__cover { border-radius: 10px; box-shadow: 0 16px 34px rgba(0,0,0,.55), 0 0 0 3px rgba(255,255,255,.14); }
main.lm .lm-game__cover--dm { width: min(86%, 380px); rotate: -3deg; }
main.lm .lm-game__br { position: absolute; right: 0; bottom: 0; width: 34%; margin: 0; rotate: 6deg; }
main.lm .lm-game__br img { border-radius: 8px; box-shadow: 0 16px 30px rgba(0,0,0,.6), 0 0 0 3px rgba(255,255,255,.2); }
main.lm .lm-game__br figcaption { position: absolute; left: -20px; top: -14px; padding: 4px 11px; border-radius: 999px; background: var(--br-yellow); color: var(--br-blue); font-family: var(--mbr-font-display); font-size: .86rem; white-space: nowrap; rotate: -12deg; box-shadow: 0 3px 0 var(--br-green); }
main.lm .lm-game__meta { margin: 0 0 8px; font-family: var(--mbr-font-pixel); font-size: 10px; letter-spacing: 1px; line-height: 1.8; color: var(--lm-ghost); }
main.lm .lm-game h3 { margin: 0 0 10px; font-family: var(--lm-spook); font-weight: 400; font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.05; letter-spacing: 1px; color: #c8ffd8; text-shadow: 0 0 16px rgba(120,255,170,.4); }
main.lm .lm-game__txt > p:not(.lm-game__meta) { line-height: 1.72; font-size: 1.03rem; }
main.lm .lm-feats { list-style: none; margin: 14px 0; padding: 0; display: grid; gap: 8px; }
main.lm .lm-feats li { position: relative; padding: 10px 14px 10px 42px; border-radius: 14px; background: rgba(255,255,255,.05); line-height: 1.5; }
main.lm .lm-feats li::before { content: ""; position: absolute; left: 13px; top: 11px; width: 18px; height: 20px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 22'%3E%3Cpath d='M10 1C4.5 1 2 5.5 2 10v11l2.7-2 2.6 2 2.7-2 2.7 2 2.6-2L18 21V10c0-4.5-2.5-9-8-9z' fill='%23a6ffc4'/%3E%3Ccircle cx='7.5' cy='9' r='1.6' fill='%230b0619'/%3E%3Ccircle cx='12.5' cy='9' r='1.6' fill='%230b0619'/%3E%3C/svg%3E") center / contain no-repeat; filter: drop-shadow(0 0 4px rgba(110,255,160,.6)); }
main.lm .lm-feats b { color: var(--lm-ghost); }
main.lm .lm-game__hd { margin: 12px 0 0; padding: 12px 16px; border-radius: 14px; background: rgba(255,210,122,.1); border: 1px dashed rgba(255,210,122,.5); line-height: 1.6; }
main.lm .lm-game__hd span { display: inline-block; margin-right: 6px; padding: 2px 10px; border-radius: 999px; background: #e60012; color: #fff; font-weight: 900; font-size: .8rem; }
main.lm .lm-game__side { position: relative; display: grid; justify-items: center; padding-bottom: 20px; }
main.lm .lm-game__cover--lm3 { width: min(78%, 250px); rotate: 3deg; }
main.lm .lm-game__g00 { position: absolute; left: -4%; bottom: -4%; width: 52%; filter: drop-shadow(0 10px 20px rgba(0,0,0,.6)) drop-shadow(0 0 22px rgba(110,255,160,.35)); animation: lm-float 5s ease-in-out infinite; }

main.lm .lm-goo { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 26px; align-items: center; padding: 22px; border-radius: 18px; background: rgba(99,224,106,.08); border: 1px solid rgba(99,224,106,.38); }
main.lm .lm-goo__stage {
  position: relative; container-type: inline-size; height: 230px; border-radius: 14px; overflow: hidden;
  background: linear-gradient(180deg, transparent 74%, #3a2012 74%), repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 2px, transparent 2px 34px), linear-gradient(180deg, #3a1a4a, #24102e);
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
main.lm .lm-goo__luigi { position: absolute; left: 10%; bottom: 8%; height: 78%; width: auto; z-index: 1; transition: opacity .4s, transform .5s; filter: drop-shadow(0 8px 10px rgba(0,0,0,.5)); }
main.lm .lm-goo__gooigi { position: absolute; left: 4%; bottom: 6%; height: 72%; width: auto; z-index: 1; opacity: 0; filter: drop-shadow(0 0 14px rgba(99,224,106,.8)); }
main.lm .lm-goo__bars { position: absolute; left: 52%; top: 0; bottom: 26%; width: 20%; z-index: 2; border-top: 10px solid #5d5873; background: repeating-linear-gradient(90deg, #9a95ad 0 6px, #5d5873 6px 8px, transparent 8px 22px); filter: drop-shadow(0 0 6px rgba(0,0,0,.6)); }
main.lm .lm-goo__coin { position: absolute; right: 10%; bottom: 34%; z-index: 1; width: 34px; height: 40px; }
main.lm .lm-goo:not(.is-goo) .lm-goo__coin { pointer-events: none; }
main.lm .lm-goo.is-goo .lm-goo__luigi { opacity: 0; transform: translateX(-20px); }
main.lm .lm-goo.is-goo .lm-goo__gooigi { opacity: 1; animation: lm-gooslide 1.4s cubic-bezier(.5,0,.3,1) forwards; }
@keyframes lm-gooslide { 0% { transform: translateX(0); } 40% { transform: translateX(34cqw) scaleX(1); } 55% { transform: translateX(46cqw) scaleX(.4); } 70% { transform: translateX(53cqw) scaleX(1.12); } 100% { transform: translateX(52cqw) scaleX(1); } }
main.lm .lm-goo__txt p { margin: 0 0 14px; line-height: 1.65; }
main.lm .lm-btn--goo { color: #0b2414; }
main.lm .lm-btn--goo[aria-pressed="true"] { color: #fff; background: linear-gradient(180deg, #4a8a4e, #1f5a2a); box-shadow: inset 0 0 0 2px rgba(166,255,196,.6), 0 4px 0 #0a2a12; }
main.lm .lm-goo__out { min-height: 1.6em; margin: 12px 0 0 !important; font-weight: 800; color: var(--lm-ghost); }

/* =========================================================
   CURIOSIDADES
   ========================================================= */
main.lm .lm-facts { overflow: hidden; }
main.lm .lm-facts__web { left: 0; top: 7px; width: 200px; height: 200px; color: rgba(220,215,255,.28); }
main.lm .lm-spider { position: absolute; right: 7%; top: 7px; z-index: 3; width: 76px; transform-origin: 50% 0; animation: lm-sway 3.6s ease-in-out infinite alternate; }
main.lm .lm-spider__thread { display: block; width: 2px; height: 140px; margin: 0 auto; background: linear-gradient(rgba(220,215,255,.12), rgba(220,215,255,.6)); }
main.lm .lm-spider__body { display: block; width: 76px; height: 64px; margin-top: -12px; filter: drop-shadow(0 0 10px rgba(200,180,255,.35)); }
main.lm .lm-spider__coin { display: block; width: 32px; height: 38px; margin: -10px auto 0; }
@keyframes lm-sway { from { rotate: -7deg; } to { rotate: 7deg; } }
main.lm .lm-notes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px 28px; counter-reset: lmn; }
main.lm .lm-note {
  counter-increment: lmn; position: relative; padding: 26px 24px 20px 54px; color: #2a2a1c; line-height: 1.62; border-radius: 3px; rotate: -1deg;
  background: linear-gradient(90deg, transparent 38px, rgba(220,90,90,.45) 38px 40px, transparent 40px), linear-gradient(rgba(90,140,110,.13) 1px, transparent 1px) 0 0 / 16px 16px, linear-gradient(90deg, rgba(90,140,110,.13) 1px, transparent 1px) 0 0 / 16px 16px, #f1f3e2;
  box-shadow: 0 14px 26px rgba(0,0,0,.45);
}
main.lm .lm-note:nth-child(2n) { rotate: 1.1deg; }
main.lm .lm-note:nth-child(3n) { rotate: -.4deg; }
main.lm .lm-note::before { content: ""; position: absolute; left: 50%; top: -9px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #ffb3c4, #c8204a 60%, #6a0a1a); box-shadow: 0 3px 4px rgba(0,0,0,.45); }
main.lm .lm-note::after { content: "Nota " counter(lmn, decimal-leading-zero); position: absolute; top: 10px; right: 12px; font-family: var(--mbr-font-pixel); font-size: 8px; color: #5a8a6a; }
main.lm .lm-note b { display: block; margin-bottom: 2px; font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.18rem; color: #2f6b45; }

/* =========================================================
   ONDE JOGAR
   ========================================================= */
main.lm .lm-where { padding-bottom: 120px; }
main.lm .lm-keys { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
main.lm .lm-keycard {
  position: relative; padding: 92px 32px 26px; text-align: center; border-radius: 140px 140px 16px 16px;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,.12) 0 2px, transparent 2px 46px), linear-gradient(180deg, #4a2c1a, #2a170e);
  border: 3px solid #8a6a24; box-shadow: inset 0 0 0 7px rgba(0,0,0,.22), inset 0 0 50px rgba(0,0,0,.45), 0 20px 40px rgba(0,0,0,.5);
  transition: transform .25s, box-shadow .25s;
}
main.lm .lm-keycard:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 7px rgba(0,0,0,.22), inset 0 0 50px rgba(0,0,0,.45), 0 26px 50px rgba(0,0,0,.55), 0 0 40px rgba(255,210,122,.2); }
main.lm .lm-keycard::after { content: ""; position: absolute; right: 9px; top: 60%; width: 12px; height: 12px; border-radius: 50%; background: radial-gradient(circle at 35% 35%, #fff0b0, #8a6a24); box-shadow: 0 2px 3px rgba(0,0,0,.5); }
main.lm .lm-keycard__key { position: absolute; left: 50%; top: 22px; width: 58px; height: 58px; margin-left: -29px; color: var(--lm-gold-lt); filter: drop-shadow(0 0 10px rgba(255,210,122,.6)); transform-origin: 30% 50%; animation: lm-keyswing 3s ease-in-out infinite alternate; }
@keyframes lm-keyswing { from { rotate: -36deg; } to { rotate: -20deg; } }
main.lm .lm-keycard h3 { margin: 0 0 8px; font-family: var(--mbr-font-display); font-weight: 400; font-size: 1.45rem; color: #fff; }
main.lm .lm-keycard p { margin: 0 0 16px; color: #ecdccc; line-height: 1.62; }
main.lm .lm-keycard strong { color: var(--lm-candle); }
main.lm .lm-tag { display: inline-block; padding: 4px 12px; border-radius: 8px; background: rgba(255,210,122,.15); color: var(--lm-candle); font-weight: 900; font-size: .78rem; letter-spacing: 2px; text-transform: uppercase; }
main.lm .lm-tag.is-on { background: rgba(166,255,196,.16); color: var(--lm-ghost); }

/* pausa as animações das seções fora da tela */
main.lm .is-off, main.lm .is-off *, main.lm .is-off *::before, main.lm .is-off *::after { animation-play-state: paused !important; }

/* =========================================================
   Responsivo
   ========================================================= */
@media (max-width: 1060px) {
  main.lm .lm-tools { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  main.lm .lm-gallery { gap: 44px 22px; }
  main.lm .lm-house-grid { gap: 28px; }
  main.lm .lm-roomtab b { font-size: .92rem; }
}
@media (max-width: 960px) {
  main.lm .lm-hero { min-height: 0; padding-top: 34px; }
  main.lm .lm-hero__in { grid-template-columns: minmax(0, 1fr); text-align: center; }
  main.lm .lm-hero__title img { margin: 0 auto; width: min(88%, 470px); }
  main.lm .lm-kicker, main.lm .lm-hero__cta { justify-content: center; }
  main.lm .lm-hero__hook, main.lm .lm-hero__tip { margin-left: auto; margin-right: auto; }
  main.lm .lm-hero__tip { text-align: left; }
  main.lm .lm-scene { width: min(100%, 470px); }
  main.lm .lm-about__grid, main.lm .lm-story__grid, main.lm .lm-house-grid, main.lm .lm-medals, main.lm .lm-game--dm, main.lm .lm-game--lm3, main.lm .lm-goo { grid-template-columns: minmax(0, 1fr); }
  main.lm .lm-story__intro { position: static; }
  main.lm .lm-letter { max-width: 560px; }
  main.lm .lm-house { max-width: 620px; width: 100%; margin: 0 auto; }
  main.lm .lm-rpanel { min-height: 0; }
  main.lm .lm-medals__art { max-width: 460px; width: 100%; margin: 0 auto; }
  main.lm .lm-game__covers { max-width: 520px; width: 100%; margin: 0 auto; }
  main.lm .lm-game__side { order: -1; }
  main.lm .lm-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  main.lm .lm-gbh { margin-top: 70px; }
  main.lm .lm-gbh__body { grid-template-columns: 1fr 1fr; grid-template-areas: "screen screen" "pad btns"; gap: 22px 12px; padding: 22px 16px 26px; border-radius: 28px 28px 48px 48px; }
  main.lm .lm-gbh__screenwrap { padding: 12px 12px 8px; }
  main.lm .lm-gbh__screen { padding: 14px 14px 12px; }
  main.lm .lm-gbh__list { grid-template-columns: 1fr; }
  main.lm .lm-gbh__btns { width: 130px; justify-self: center; }
  main.lm .lm-timeline { grid-template-columns: 1fr; max-width: 420px; padding-left: 8px; }
  main.lm .lm-timeline::before { left: 18px; right: auto; top: 8px; bottom: 8px; width: 3px; height: auto; background: linear-gradient(180deg, transparent, rgba(166,255,196,.6) 8%, rgba(166,255,196,.6) 92%, transparent); }
  main.lm .lm-timeline li { padding: 8px 0 8px 46px; text-align: left; display: grid; grid-template-columns: 70px minmax(0, 1fr); column-gap: 10px; align-items: baseline; }
  main.lm .lm-timeline li::before { left: 10px; top: 14px; margin-left: 0; }
  main.lm .lm-timeline b { grid-row: span 2; font-size: 1.4rem; }
  main.lm .lm-pg__how { grid-template-columns: 1fr; }
  main.lm .lm-pg__frames { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  main.lm .lm-keys { grid-template-columns: 1fr; max-width: 420px; margin: 0 auto; }
  main.lm .lm-notes { grid-template-columns: 1fr; }
  main.lm .lm-room { aspect-ratio: 4 / 4.2; }
  main.lm .lm-room__scene { background-size: 12cqw 16cqw, auto, auto; }
  main.lm .lm-room__window, main.lm .lm-room__moonlight { left: 5%; top: 7%; width: 26cqw; height: 36%; }
  main.lm .lm-room__web { width: 20cqw; height: 20cqw; }
  main.lm .lm-find--portrait { left: 42%; top: 5%; width: 24cqw; }
  main.lm .lm-find--clock { right: 4%; bottom: 11%; width: 12cqw; }
  main.lm .lm-find--key { left: 76%; top: 8%; width: 7cqw; }
  main.lm .lm-find--table { left: 34%; bottom: 7%; width: 38cqw; }
  main.lm .lm-find--chest { left: 4%; bottom: 4%; width: 25cqw; }
  main.lm .lm-find--boo1 { left: 0; top: 26%; width: 14cqw; }
  main.lm .lm-find--boo2 { right: 20%; top: 40%; width: 11cqw; }
  main.lm .lm-find--coin { left: 50%; bottom: 3%; width: 6cqw; }
  main.lm .lm-room__scene::before { top: 66%; }
}
@media (max-width: 640px) {
  main.lm .lm-sec { padding: 64px 0; }
  main.lm .lm-eyebrow { font-size: .72rem; letter-spacing: 1.6px; gap: 8px; }
  main.lm .lm-wrap { padding: 0 16px; }
  main.lm .lm-card { padding: 24px 18px; border-radius: 20px; }
  main.lm .lm-hero__cta { flex-direction: column; align-items: stretch; }
  main.lm .lm-hero__cta .lm-btn { justify-content: center; }
  main.lm .lm-tools { grid-template-columns: 1fr; }
  main.lm .lm-gallery { grid-template-columns: 1fr; }
  main.lm .lm-letter { padding: 24px 20px 20px; }
  main.lm .lm-letter p { max-width: 64%; font-size: .98rem; }
  main.lm .lm-steps { padding-left: 40px; }
  main.lm .lm-steps::before { left: 14px; }
  main.lm .lm-step { padding: 16px 16px; }
  main.lm .lm-step__candle { left: -32px; }
  main.lm .lm-house { padding-top: 84px; }
  main.lm .lm-house__roof { left: -2%; right: -2%; height: 76px; }
  main.lm .lm-house__rooms {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "varanda varanda" "bebe baile" "jantar hall" "altar altar" "cem lab";
  }
  main.lm .lm-house__rooms::before { grid-column: 1 / -1; grid-row: 1 / 4; margin: -8px -8px -4px; }
  main.lm .lm-house__rooms::after { grid-row: 4 / 6; }
  main.lm .lm-roomtab { min-height: 92px; }
  main.lm .lm-roomtab--varanda { margin: 0 18%; }
  main.lm .lm-roomtab--out { margin-top: 12px; }
  main.lm .lm-medals { padding: 20px 16px; }
  main.lm .lm-room { margin: 8px; }
  main.lm .lm-room__hint { font-size: .8rem; }
  main.lm .lm-room__bar { flex-direction: column; align-items: stretch; }
  main.lm .lm-room__bar .lm-btn { justify-content: center; }
  main.lm .lm-pg__hud { grid-template-columns: 1fr 1fr; gap: 10px 12px; padding: 12px 14px; }
  main.lm .lm-pg__tug { grid-column: 1 / -1; grid-row: 2; }
  main.lm .lm-pg__stage { aspect-ratio: auto; height: 360px; min-height: 0; }
  main.lm .lm-pg__luigi { height: 62%; right: 2%; }
  main.lm .lm-pg__window { width: 18cqw; }
  main.lm .lm-pg__portrait { left: 40%; width: 15cqw; }
  main.lm .lm-pg__msg { font-size: .84rem; bottom: 8px; }
  main.lm .lm-pg__ctrl { flex-direction: column; align-items: stretch; padding: 14px; }
  main.lm .lm-pg__btn--flash { width: 100%; }
  main.lm .lm-pg__pad { width: 100%; }
  main.lm .lm-pg__btn--vac { flex: 1; min-width: 0; padding: 14px 10px; font-size: 1rem; }
  main.lm .lm-pg__btn--vac kbd { display: none; }
  main.lm .lm-pg__frames { gap: 10px; }
  main.lm .lm-game__cover--dm { width: 82%; }
  main.lm .lm-goo { padding: 16px; }
  main.lm .lm-facts { padding-top: 170px; }
  main.lm .lm-spider { right: 10%; }
  main.lm .lm-spider__thread { height: 70px; }
  main.lm .lm-facts__web { width: 140px; height: 140px; }
  main.lm .lm-gbh__call { grid-template-columns: 74px minmax(0, 1fr); gap: 12px; padding: 14px; }
  main.lm .lm-gbh__call p { font-size: .95rem; }
}
@media (max-width: 400px) {
  main.lm .lm-kicker li { font-size: 9px; padding: 7px 8px; }
  main.lm .lm-roomtab b { font-size: .86rem; }
  main.lm .lm-pg__pull { width: 46px; height: 50px; }
  main.lm .lm-say { max-width: 180px; font-size: .84rem; }
}

/* =========================================================
   Movimento reduzido: nada de piscar, relampejar ou tremer
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  main.lm .lm-hero__flash, main.lm .lm-bats, main.lm .lm-room__dark::after { display: none !important; }
  main.lm .lm-flick, main.lm .lm-eyebrow::before, main.lm .lm-scene__luigi img, main.lm .lm-scene__boo,
  main.lm .lm-hero__title img, main.lm .lm-fog i, main.lm .lm-scene::after, main.lm .lm-hero__clouds, main.lm .lm-hero__stars,
  main.lm .lm-gbh__antenna::before, main.lm .lm-gbh__call b, main.lm .lm-room__hint, main.lm .lm-pendulum,
  main.lm .lm-find--boo1, main.lm .lm-find--boo2, main.lm .lm-spider, main.lm .lm-keycard__key, main.lm .lm-game__g00,
  main.lm .lm-pg__btn--vac.is-on, main.lm .lm-pg__ghost .lm-pg__body, main.lm .lm-about__boo, main.lm .lm-mansion__ghost,
  main.lm .lm-step__candle::before, main.lm .lm-pg__lamp::before { animation: none !important; }
  main.lm .lm-about__boo { translate: 70px -6px; }
  main.lm .lm-blast.is-on i { animation: none !important; opacity: 1; transform: translate(calc(14cqw + var(--i) * 3cqw), calc(var(--ty) * .7)); }
  main.lm .lm-goo.is-goo .lm-goo__gooigi { animation: none !important; transform: translateX(52cqw); }
}
