/* =========================================================
   SUPER MARIO ODYSSEY - tema "agência de viagens retrô"
   Cartaz, cartão de embarque, cartões-postais, passaporte,
   selos e um bloco Art Déco para New Donk City.
   Tudo escopado em .ody / body[data-game="odyssey"]
   ========================================================= */

.ody {
  --o-paper: #f4ead5;
  --o-paper2: #eadcbc;
  --o-cream: #fffaf0;
  --o-ink: #22283a;
  --o-ink2: #4a4f61;
  --o-red: #c8102e;
  --o-red-dk: #8f0b20;
  --o-navy: #1d2a4a;
  --o-teal: #1f6f78;
  --o-mustard: #e3a92b;
  --o-gold: #d9b45a;
  --o-display: "Abril Fatface", Georgia, serif;
  --o-cond: "Bebas Neue", "Oswald", Impact, sans-serif;
  --o-hand: "Caveat", "Segoe Print", cursive;
  --o-type: "Special Elite", "Courier New", monospace;
  --o-deco: "Limelight", Georgia, serif;

  display: block; position: relative; overflow-x: clip;
  color: var(--o-ink);
  background:
    radial-gradient(circle at 20% 30%, rgba(140,100,40,.05) 0 2px, transparent 3px) 0 0 / 23px 29px,
    radial-gradient(circle at 70% 60%, rgba(140,100,40,.05) 0 1.5px, transparent 2.5px) 0 0 / 31px 37px,
    var(--o-paper);
}
.ody *, .ody *::before, .ody *::after { box-sizing: border-box; }
.ody-wrap { max-width: 1220px; margin: 0 auto; padding: 0 24px; position: relative; }
.ody-sec { position: relative; padding: 72px 0; }
.ody-sec--tight { padding: 10px 0 40px; }

/* ---------- Botões ---------- */
.ody-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px;
  font-family: var(--o-cond); font-size: 22px; letter-spacing: 1.5px; text-decoration: none;
  color: var(--o-cream); background: var(--o-red); border: 0; border-radius: 4px; padding: 10px 24px 8px; white-space: nowrap;
  box-shadow: 0 0 0 3px var(--o-cream), 0 0 0 5px var(--o-red), 5px 7px 0 5px rgba(34,40,58,.25);
  transition: transform .15s, box-shadow .15s;
}
.ody-btn:hover { transform: translate(-2px, -2px); box-shadow: 0 0 0 3px var(--o-cream), 0 0 0 5px var(--o-red), 8px 10px 0 5px rgba(34,40,58,.25); }
.ody-btn:active { transform: translate(2px, 2px); box-shadow: 0 0 0 3px var(--o-cream), 0 0 0 5px var(--o-red), 2px 3px 0 5px rgba(34,40,58,.25); }
.ody-btn--navy { background: var(--o-navy); box-shadow: 0 0 0 3px var(--o-cream), 0 0 0 5px var(--o-navy), 5px 7px 0 5px rgba(34,40,58,.25); }
.ody-btn--navy:hover { box-shadow: 0 0 0 3px var(--o-cream), 0 0 0 5px var(--o-navy), 8px 10px 0 5px rgba(34,40,58,.25); }
.ody-btn--ghost { background: transparent; color: var(--o-navy); box-shadow: inset 0 0 0 2px var(--o-navy); }
.ody-btn--ghost:hover { box-shadow: inset 0 0 0 2px var(--o-navy), 4px 4px 0 rgba(34,40,58,.2); }
.ody-btn--small { font-size: 18px; min-height: 42px; padding: 8px 16px 6px; }

/* ---------- Cabeçalhos ---------- */
.ody-head { text-align: center; max-width: 820px; margin: 0 auto 40px; }
.ody-head--left { text-align: left; margin-left: 0; }
.ody-head__kicker {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 6px;
  font-family: var(--o-cond); font-size: 21px; letter-spacing: 4px; color: var(--o-red); text-transform: uppercase;
}
.ody-head__kicker::before, .ody-head__kicker::after { content: ""; width: 34px; height: 2px; background: currentColor; box-shadow: 0 5px 0 currentColor; transform: translateY(-3px); }
.ody-head--left .ody-head__kicker::before { display: none; }
.ody-head__title { margin: 0; font-family: var(--o-display); font-weight: 400; font-size: clamp(36px, 5vw, 60px); line-height: 1.05; color: var(--o-navy); letter-spacing: .5px; }
.ody-head__lead { margin: 16px auto 0; font-size: 18px; font-weight: 700; color: var(--o-ink2); max-width: 700px; }
.ody-note { text-align: center; margin: 34px auto 0; max-width: 760px; font-size: 16.5px; color: var(--o-ink2); }

/* ---------- Power Moon (moeda escondida) ---------- */
.ody-moon {
  width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%;
  background: url("../../img/itens/power-moon.webp") center / contain no-repeat;
  filter: drop-shadow(0 0 6px rgba(255,220,60,.9)) drop-shadow(0 2px 0 rgba(0,0,0,.25));
  animation: ody-moonbob 2.6s ease-in-out infinite;
}
@keyframes ody-moonbob { 0%, 100% { transform: translateY(0) rotate(-6deg); } 50% { transform: translateY(-6px) rotate(6deg); } }

/* =========================================================
   HERO - cartaz de viagem
   ========================================================= */
.ody-hero { padding: 54px 0 50px; position: relative; overflow: hidden; }
.ody-hero::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background: repeating-conic-gradient(from 0deg at 72% 48%, rgba(227,169,43,.18) 0 6deg, transparent 6deg 14deg);
  -webkit-mask: radial-gradient(circle at 72% 48%, #000 0, transparent 60%); mask: radial-gradient(circle at 72% 48%, #000 0, transparent 60%);
}
.ody-hero__in { display: grid; grid-template-columns: 1fr 1.05fr; gap: 48px; align-items: center; }
.ody .ody-poster { margin: 0; position: relative; transform: rotate(-1.6deg); }
.ody-poster::before, .ody-poster::after {
  content: ""; position: absolute; z-index: 3; width: 110px; height: 30px; background: rgba(255,246,214,.75);
  box-shadow: 0 1px 3px rgba(0,0,0,.15); top: -12px;
}
.ody-poster::before { left: -20px; transform: rotate(-24deg); }
.ody-poster::after { right: -20px; transform: rotate(22deg); }
.ody-poster__frame {
  background: var(--o-navy); color: var(--o-cream); padding: 20px 20px 22px;
  border: 12px solid var(--o-cream); box-shadow: 0 2px 0 var(--o-paper2), 14px 18px 0 rgba(34,40,58,.18), 0 30px 50px rgba(34,40,58,.25);
}
.ody-poster__top { display: flex; justify-content: space-between; margin: 0 0 12px; font-family: var(--o-cond); font-size: 20px; letter-spacing: 5px; color: var(--o-mustard); text-transform: uppercase; }
.ody-poster__img { position: relative; border: 3px solid var(--o-mustard); }
.ody-poster__img img { width: 100%; aspect-ratio: 1000 / 668; filter: saturate(1.1) contrast(1.05); }
.ody-moon--hero { position: absolute; left: 10.5%; top: 12%; width: 40px; height: 40px; }
.ody-poster__big {
  margin: 16px 0 6px; font-family: var(--o-display); font-size: clamp(38px, 5.2vw, 66px); line-height: .95; color: var(--o-cream);
  text-transform: uppercase; letter-spacing: 1px; text-shadow: 4px 4px 0 var(--o-red);
}
.ody-poster__big em { display: block; font-family: var(--o-hand); font-weight: 700; text-transform: none; font-style: normal; color: var(--o-mustard); font-size: .78em; text-shadow: 3px 3px 0 var(--o-red-dk); transform: rotate(-3deg); transform-origin: 0 50%; margin-top: 6px; }
.ody-poster__foot { margin: 0; padding-top: 10px; border-top: 2px solid rgba(227,169,43,.6); font-family: var(--o-cond); font-size: 17px; letter-spacing: 3px; text-transform: uppercase; color: #cfd6e8; }

.ody-hero__txt { position: relative; }
.ody-hero__hook, .ody-hero__cta { margin-right: 170px; }
.ody-kicker { margin: 0 0 6px; font-family: var(--o-cond); font-size: 22px; letter-spacing: 4px; color: var(--o-red); text-transform: uppercase; }
.ody-hero__h1 { margin: 0; }
.ody-hero__h1 img { width: min(470px, 100%); filter: drop-shadow(6px 8px 0 rgba(34,40,58,.18)); }
.ody-hero__hook { margin: 20px 0 26px; font-size: 20px; font-weight: 800; line-height: 1.45; color: var(--o-ink); max-width: 480px; }
.ody-hero__cta { display: flex; flex-wrap: wrap; gap: 18px; }
.ody-hero__mario { position: absolute; right: -36px; bottom: -40px; width: 190px; pointer-events: none; filter: drop-shadow(8px 10px 0 rgba(34,40,58,.15)); animation: ody-sway 3.2s ease-in-out infinite; transform-origin: 50% 100%; }
@keyframes ody-sway { 0%, 100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg) translateY(-6px); } }

/* =========================================================
   FICHA - cartão de embarque
   ========================================================= */
.ody-ticket {
  display: grid; grid-template-columns: 1fr 190px; position: relative; border-radius: 16px; overflow: hidden;
  background: var(--o-cream); box-shadow: 0 2px 0 var(--o-paper2), 10px 14px 0 rgba(34,40,58,.12), 0 24px 40px rgba(34,40,58,.15);
}
.ody-ticket__main { padding: 26px 30px 28px; border-right: 3px dashed rgba(34,40,58,.3); position: relative; }
.ody-ticket__main::before, .ody-ticket__main::after { content: ""; position: absolute; right: -15px; width: 28px; height: 28px; border-radius: 50%; background: var(--o-paper); }
.ody-ticket__main::before { top: -14px; }
.ody-ticket__main::after { bottom: -14px; }
.ody-ticket__top { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; padding-bottom: 14px; margin-bottom: 18px; border-bottom: 3px solid var(--o-red); }
.ody-ticket__brand { margin: 0; font-family: var(--o-cond); font-size: 30px; letter-spacing: 3px; color: var(--o-red); }
.ody-ticket__title { margin: 0; font-family: var(--o-display); font-weight: 400; font-size: 26px; color: var(--o-navy); }
.ody-ticket__grid { margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 24px; }
.ody-ticket__grid dt { font-family: var(--o-cond); font-size: 16px; letter-spacing: 2.5px; color: #7d6f55; text-transform: uppercase; }
.ody-ticket__grid dd { margin: 0; font-family: var(--o-type); font-size: 17px; line-height: 1.35; color: var(--o-ink); }
.ody-ticket__stub {
  background: var(--o-red); color: var(--o-cream); padding: 24px 22px; display: flex; flex-direction: column; gap: 10px; justify-content: center;
}
.ody-ticket__stub p { margin: 0; display: flex; flex-direction: column; }
.ody-ticket__stub small { font-family: var(--o-cond); font-size: 15px; letter-spacing: 3px; opacity: .85; }
.ody-ticket__stub b { font-family: var(--o-display); font-weight: 400; font-size: 32px; line-height: 1; }
.ody-ticket__bars { display: block; height: 54px; margin-top: 6px; background: repeating-linear-gradient(90deg, var(--o-cream) 0 3px, transparent 3px 5px, var(--o-cream) 5px 6px, transparent 6px 9px, var(--o-cream) 9px 13px, transparent 13px 15px); }

/* =========================================================
   SOBRE - diário de bordo
   ========================================================= */
.ody-sobre { display: grid; grid-template-columns: 1.5fr 1fr; gap: 48px; align-items: center; }
.ody-notebook {
  position: relative; padding: 34px 40px 34px 76px; border-radius: 6px;
  background:
    linear-gradient(90deg, transparent 54px, rgba(200,16,46,.45) 54px 56px, transparent 56px),
    repeating-linear-gradient(180deg, transparent 0 31px, rgba(80,120,190,.12) 31px 32px),
    #fffdf6;
  box-shadow: 0 1px 0 #e5dcc6, 8px 10px 0 rgba(34,40,58,.1), 0 20px 40px rgba(34,40,58,.12);
  line-height: 32px;
}
.ody-notebook::before {
  /* clipe de papel */
  content: ""; position: absolute; top: -18px; right: 50px; width: 26px; height: 70px; border: 4px solid #9aa3b2; border-radius: 14px; transform: rotate(8deg);
}
.ody-notebook p { margin: 0 0 32px; font-size: 17.5px; }
.ody-notebook p:last-child { margin-bottom: 0; }
.ody-notebook .ody-head { margin-bottom: 18px; line-height: 1.1; }
.ody-sobre__fig { margin: 0; background: #fff; padding: 16px 16px 12px; box-shadow: 6px 8px 0 rgba(34,40,58,.12), 0 18px 30px rgba(34,40,58,.15); }
.ody .ody-sobre__fig { transform: rotate(3deg); }
.ody-sobre__fig img { width: 100%; background: #fdf3e0; }
.ody-sobre__fig figcaption { margin-top: 10px; font-family: var(--o-hand); font-size: 22px; text-align: center; color: var(--o-ink2); }

/* =========================================================
   CASAMENTO
   ========================================================= */
.ody-sec--wedding {
  background:
    radial-gradient(circle at 25px 25px, rgba(200,16,46,.07) 0 6px, transparent 7px) 0 0 / 50px 50px,
    #f6e4de;
}
.ody-wedding { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
.ody-invite {
  position: relative; text-align: center; padding: 40px 34px 0; overflow: hidden;
  background: #fffaf2; border: 2px solid var(--o-gold); outline: 6px double var(--o-gold); outline-offset: -16px;
  box-shadow: 10px 14px 0 rgba(143,11,32,.12), 0 24px 40px rgba(143,11,32,.15);
}
.ody .ody-invite { transform: rotate(-1.2deg); }
.ody-invite__small { margin: 0 0 6px; font-family: var(--o-cond); font-size: 18px; letter-spacing: 2.5px; color: #8a6d3b; text-transform: uppercase; }
.ody-invite__names { margin: 6px 0 14px; font-family: var(--o-display); font-size: clamp(38px, 4.6vw, 56px); line-height: 1; color: var(--o-red-dk); }
.ody-invite__names span { font-family: var(--o-hand); color: var(--o-gold); font-size: .8em; }
.ody-invite__stamp {
  position: absolute; z-index: 2; right: 18px; bottom: 120px; transform: rotate(-16deg); padding: 4px 16px 0;
  font-family: var(--o-cond); font-size: 44px; letter-spacing: 4px; color: rgba(200,16,46,.85);
  border: 5px solid rgba(200,16,46,.85); border-radius: 8px; mix-blend-mode: multiply;
}
.ody-invite__duo { display: flex; justify-content: center; align-items: flex-end; gap: 0; margin-top: 18px; }
.ody-invite__duo img:first-child { width: 52%; margin-right: -8%; }
.ody-invite__duo img:last-child { width: 30%; }
.ody-wedding__txt p { font-size: 17.5px; margin: 0 0 14px; }
.ody-cake { position: relative; display: grid; grid-template-columns: 170px 1fr; align-items: end; gap: 0 24px; margin-top: 64px; }
.ody-cake__tier { grid-column: 1; justify-self: center; display: block; height: 34px; border-radius: 8px 8px 4px 4px; background: linear-gradient(#fff 0 10px, #ffd9e2 10px); box-shadow: inset 0 -4px 0 rgba(0,0,0,.06); position: relative; }
.ody-cake__tier::before { content: ""; position: absolute; left: 4px; right: 4px; top: 6px; height: 10px; background: radial-gradient(circle at 8px 0, #fff 7px, transparent 7.5px) 0 0 / 16px 10px repeat-x; }
.ody-cake__tier--3 { width: 70px; grid-row: 1; }
.ody-cake__tier--2 { width: 110px; grid-row: 2; }
.ody-cake__tier--1 { width: 150px; grid-row: 3; height: 42px; }
.ody-cake__moon { position: absolute; left: 63px; top: -42px; }
.ody-cake__cap { grid-column: 2; grid-row: 1 / 4; align-self: center; margin: 0; font-family: var(--o-hand); font-size: 24px; color: var(--o-red-dk); line-height: 1.15; }

/* =========================================================
   NAVE ODYSSEY
   ========================================================= */
.ody-sec--sky { background: linear-gradient(180deg, #1f6f78 0, #2b8a94 40%, #bfe3df 100%); color: var(--o-cream); }
.ody-sec--sky .ody-head__title { color: var(--o-cream); }
.ody-sec--sky .ody-head__kicker { color: var(--o-mustard); }
.ody-nave { display: grid; grid-template-columns: 1fr 1.2fr; gap: 50px; align-items: center; }
.ody-nave__art { position: relative; max-width: 380px; margin: 0 auto; width: 100%; }
.ody-ship { width: 100%; height: auto; animation: ody-float 5s ease-in-out infinite; filter: drop-shadow(0 20px 20px rgba(0,0,0,.25)); }
@keyframes ody-float { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-14px) rotate(2deg); } }
.ody-nave__moons i { position: absolute; width: 34px; height: 34px; background: url("../../img/itens/power-moon.webp") center / contain no-repeat; animation: ody-orbit 9s linear infinite; left: 45%; top: 40%; }
.ody-nave__moons i:nth-child(2) { animation-delay: -3s; }
.ody-nave__moons i:nth-child(3) { animation-delay: -6s; }
@keyframes ody-orbit { from { transform: rotate(0) translateX(190px) rotate(0); } to { transform: rotate(360deg) translateX(190px) rotate(-360deg); } }
.ody-moon--ship { position: absolute; left: calc(50% - 22px); top: -34px; z-index: 2; }
.ody-nave__txt p { font-size: 17.5px; color: #f2f7f6; }
.ody-nave__txt strong { color: #ffe08a; }
.ody-stats { list-style: none; margin: 22px 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.ody-stats li { background: var(--o-cream); color: var(--o-ink); border-radius: 10px; padding: 14px 14px 12px; box-shadow: 5px 6px 0 rgba(0,0,0,.15); }
.ody-stats b { display: block; font-family: var(--o-display); font-weight: 400; font-size: 40px; line-height: 1; color: var(--o-red); }
.ody-stats span { font-size: 14px; font-weight: 800; color: var(--o-ink2); }
.ody-gauge { background: rgba(10,40,45,.45); border: 2px solid rgba(255,250,240,.35); border-radius: 14px; padding: 16px 18px; }
.ody-gauge__label { margin: 0 0 10px !important; font-weight: 800; }
.ody-gauge__slots { list-style: none; margin: 0; padding: 0; display: flex; gap: 8px; flex-wrap: wrap; }
.ody-gauge__slots li { width: 38px; height: 38px; border-radius: 50%; border: 2px dashed rgba(255,250,240,.5); background: rgba(255,255,255,.06); transition: background .4s, border-color .4s; }
.ody-gauge__slots li.is-on { border: 2px solid #ffe08a; background: url("../../img/itens/power-moon.webp") center / 80% no-repeat, rgba(255,224,138,.25); animation: ody-pop .5s cubic-bezier(.3,1.8,.5,1); }
.ody-gauge__tip { margin: 10px 0 0 !important; font-size: 14.5px !important; opacity: .9; }
@keyframes ody-pop { 0% { transform: scale(.3); } 100% { transform: scale(1); } }

/* =========================================================
   REINOS - cartões-postais e passaporte
   ========================================================= */
.ody-sec--map {
  background:
    radial-gradient(ellipse 30% 20% at 15% 20%, rgba(31,111,120,.08), transparent),
    radial-gradient(ellipse 25% 30% at 85% 70%, rgba(31,111,120,.08), transparent),
    repeating-linear-gradient(0deg, transparent 0 79px, rgba(31,111,120,.08) 79px 80px),
    repeating-linear-gradient(90deg, transparent 0 79px, rgba(31,111,120,.08) 79px 80px),
    var(--o-paper);
}
.ody-reinos { display: grid; grid-template-columns: 1fr 330px; grid-template-areas: "cards pass"; gap: 34px; align-items: start; }
.ody-cards { grid-area: cards; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 26px 22px; }
.ody-pass { grid-area: pass; position: sticky; top: calc(var(--mbr-header-h) + 20px); }

.pc { position: relative; perspective: 1200px; }
.pc:nth-child(3n+1) { transform: rotate(-1.2deg); }
.pc:nth-child(3n+2) { transform: rotate(.8deg); }
.pc:nth-child(3n) { transform: rotate(-.4deg); }
.pc__inner { display: grid; position: relative; transform-style: preserve-3d; transition: transform .7s cubic-bezier(.3,1.25,.5,1); }
.pc.is-flipped .pc__inner { transform: rotateY(180deg); }
.pc__face {
  grid-area: 1 / 1; position: relative; backface-visibility: hidden; -webkit-backface-visibility: hidden;
  border: 8px solid #fffdf6; border-radius: 6px; min-height: 0; aspect-ratio: 4 / 3;
  box-shadow: 0 1px 0 #d9ccb0, 6px 8px 0 rgba(34,40,58,.12), 0 14px 24px rgba(34,40,58,.16);
}
.pc__front { display: flex; flex-direction: column; justify-content: flex-end; padding: 12px 14px; overflow: hidden; background: linear-gradient(160deg, var(--k2), var(--k)); color: #fff; }
.pc__art { position: absolute; inset: 0; }
.pc__art svg { width: 100%; height: 100%; display: block; }
.pc__hello, .pc__name, .pc__pt { position: relative; z-index: 1; margin: 0; }
.pc__hello { font-family: var(--o-hand); font-weight: 700; font-size: 19px; line-height: 1; color: #fff8e1; text-shadow: 0 2px 0 rgba(0,0,0,.45); }
.pc__name { font-family: var(--o-display); font-weight: 400; font-size: 23px; line-height: 1.05; color: #fff; text-shadow: 2px 2px 0 var(--k), 0 3px 10px rgba(0,0,0,.5); letter-spacing: .3px; }
.pc__pt { font-family: var(--o-cond); font-size: 14.5px; letter-spacing: 1.2px; color: #fff8e1; text-shadow: 0 1px 0 rgba(0,0,0,.6), 0 0 8px rgba(0,0,0,.4); }
.pc__front::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 62%; background: linear-gradient(transparent, rgba(0,0,0,.35) 35%, rgba(0,0,0,.68)); }
.pc__stamp {
  position: absolute; z-index: 2; right: 8px; top: 8px; width: 46px; height: 54px; display: grid; place-items: end center; padding-bottom: 3px;
  font-family: var(--o-cond); font-size: 15px; color: var(--k); letter-spacing: 1px;
  background: url("../../img/itens/power-moon.webp") 50% 34% / 26px no-repeat, radial-gradient(circle, transparent 3px, #fffdf6 3.5px) -4px -4px / 8px 8px;
  transform: rotate(5deg); filter: drop-shadow(0 1px 1px rgba(0,0,0,.3));
}
.pc__stamp::before { content: ""; position: absolute; inset: 4px; border: 2px solid var(--k); z-index: -1; background: #fffdf6; }
.pc.is-visited .pc__front::before {
  content: "Visitado"; position: absolute; z-index: 3; right: 48px; top: 16px; padding: 3px 8px 1px; transform: rotate(-12deg);
  font-family: var(--o-cond); font-size: 15px; letter-spacing: 2px; color: #fff; border: 2px solid rgba(255,255,255,.85); border-radius: 4px; background: rgba(200,16,46,.75);
}
.pc__back {
  transform: rotateY(180deg); display: flex; flex-direction: column; padding: 12px 14px 10px; color: var(--o-ink);
  background:
    linear-gradient(90deg, transparent calc(100% - 52px), rgba(34,40,58,.12) calc(100% - 52px)) top right / 100% 0 no-repeat,
    #fffdf6;
}
.pc__back::before { content: ""; position: absolute; right: 10px; top: 10px; width: 36px; height: 42px; border: 2px dashed rgba(34,40,58,.35); }
.pc__msg { margin: 0 44px 6px 0; font-family: var(--o-hand); font-weight: 500; font-size: 19px; line-height: 1.12; color: #213a7a; flex: 1; }
.pc__to { margin: 0; padding-top: 4px; border-top: 1px solid rgba(34,40,58,.3); font-family: var(--o-type); font-size: 12.5px; color: var(--o-ink2); }
.pc__sign { font-family: var(--o-hand); font-weight: 700; font-size: 19px; color: var(--o-red); text-align: right; line-height: 1; }
.pc__flip { position: absolute; inset: 0; z-index: 5; width: 100%; height: 100%; border: 0; padding: 0; background: transparent; border-radius: 6px; cursor: pointer; }
.pc__flip:focus-visible { outline: 4px solid var(--o-red); outline-offset: 4px; }
.pc:hover .pc__inner { transform: translateY(-4px); }
.pc.is-flipped:hover .pc__inner { transform: rotateY(180deg) translateY(-4px); }

/* Passaporte */
.ody-pass {
  background: var(--o-navy); color: var(--o-cream); border-radius: 14px; padding: 0 0 18px; overflow: hidden;
  box-shadow: 0 0 0 3px #13203c, 8px 10px 0 rgba(34,40,58,.18), 0 20px 40px rgba(34,40,58,.25);
}
.ody-pass__band { background: var(--o-gold); color: var(--o-navy); font-family: var(--o-cond); font-size: 16px; letter-spacing: 3px; text-align: center; padding: 6px 10px 3px; text-transform: uppercase; }
.ody-pass__title { margin: 14px 18px 2px; font-family: var(--o-display); font-weight: 400; font-size: 26px; color: var(--o-gold); }
.ody-pass__holder { margin: 0 18px 12px; font-family: var(--o-type); font-size: 13.5px; color: #cfd6e8; }
.ody-pass__grid {
  list-style: none; margin: 0 12px; padding: 12px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
  background: repeating-linear-gradient(45deg, rgba(31,111,120,.06) 0 6px, transparent 6px 12px), #fbf3df; border-radius: 8px;
}
.ody-pass__slot {
  position: relative; aspect-ratio: 1; display: grid; place-items: center; text-align: center; border-radius: 50%;
  border: 2px dashed rgba(34,40,58,.22); font-family: var(--o-cond); font-size: 13px; letter-spacing: 1px; line-height: 1.05; color: rgba(34,40,58,.4); padding: 4px;
}
.ody-pass__ink {
  position: absolute; inset: -2px; display: grid; place-items: center; align-content: center; border-radius: 50%; padding: 6px;
  border: 3px double var(--ink, var(--o-red)); color: var(--ink, var(--o-red)); background: #fbf3df;
  font-family: var(--o-cond); font-size: 13.5px; letter-spacing: .8px; line-height: 1;
  transform: rotate(var(--r, -8deg)); mix-blend-mode: multiply; opacity: .9;
}
.ody-pass__ink small { display: block; font-size: 10px; letter-spacing: 1.5px; margin-top: 2px; }
.ody-pass__ink::before { content: "★"; display: block; font-size: 12px; }
.ody-pass__ink.is-new { animation: ody-thunk .45s cubic-bezier(.3,1.6,.5,1); }
@keyframes ody-thunk { 0% { transform: rotate(var(--r, -8deg)) scale(2.2); opacity: 0; } 60% { opacity: 1; } 100% { transform: rotate(var(--r, -8deg)) scale(1); } }
.ody-pass__count { margin: 14px 18px 8px; font-family: var(--o-cond); font-size: 22px; letter-spacing: 2px; }
.ody-pass__count b { font-family: var(--o-display); font-weight: 400; font-size: 34px; color: var(--o-gold); }
.ody-pass__bonus { display: flex; align-items: center; gap: 12px; margin: 0 18px 12px; padding: 10px 12px; border: 2px solid var(--o-gold); border-radius: 10px; }
.ody-pass__bonus[hidden] { display: none; }
.ody-pass__bonus p { margin: 0; font-weight: 800; font-size: 14.5px; }
.ody-pass .ody-btn--ghost { margin: 0 18px; color: var(--o-cream); box-shadow: inset 0 0 0 2px rgba(255,250,240,.6); }

/* =========================================================
   ARENA DE CAPTURA
   ========================================================= */
.ody-sec--arena { background: linear-gradient(180deg, var(--o-paper) 0, #efe2c5 100%); }
.ody-capgrid { display: grid; grid-template-columns: 1.75fr 1fr; gap: 26px; align-items: stretch; }
.ody-arena {
  position: relative; aspect-ratio: 16 / 10; min-height: 340px; overflow: hidden; border-radius: 14px; cursor: crosshair;
  border: 10px solid #fffdf6; box-shadow: 0 1px 0 #d9ccb0, 8px 10px 0 rgba(34,40,58,.14), 0 20px 40px rgba(34,40,58,.18);
  background: linear-gradient(180deg, #7cc9e8 0, #bfe7f4 55%, #e9f7f8 72%);
  touch-action: manipulation; user-select: none; -webkit-user-select: none;
}
.ody-arena__bg span { position: absolute; display: block; pointer-events: none; }
.ody-arena__hill { left: -10%; bottom: 14%; width: 60%; height: 34%; border-radius: 50% 50% 0 0; background: #8cc46b; box-shadow: inset 0 10px 0 rgba(255,255,255,.18); }
.ody-arena__hill--2 { left: 40%; width: 80%; height: 26%; background: #74b25a; }
.ody-arena__ground { left: 0; right: 0; bottom: 0; height: 17%; background: radial-gradient(ellipse 30px 6px at 50% 40%, rgba(0,0,0,.12) 96%, transparent) 0 18px / 90px 40px, linear-gradient(180deg, #5fae3e 0 12px, #8b5a2b 12px); }
.ody-arena__mtn { left: 8%; bottom: 30%; width: 50%; height: 40%; background: linear-gradient(160deg, #b9c9dd, #8ea6c4); clip-path: polygon(0 100%, 30% 30%, 42% 45%, 60% 0, 100% 100%); opacity: .8; }
.ody-arena__mtn::after { content: ""; position: absolute; left: 50%; top: 0; width: 22%; height: 22%; background: #fff; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.ody-arena__cloud { top: 12%; left: 20%; width: 110px; height: 34px; border-radius: 30px; background: #fff; box-shadow: 30px -14px 0 4px #fff, 60px 0 0 0 #fff; opacity: .9; animation: ody-drift 30s linear infinite alternate; }
.ody-arena__cloud--2 { top: 30%; left: 64%; transform: scale(.7); animation-duration: 40s; }
@keyframes ody-drift { to { translate: 60px 0; } }
.ody-arena__tree { right: 18%; bottom: 15%; width: 70px; height: 120px; background: radial-gradient(circle at 50% 32%, #3f9b3a 0 33px, transparent 34px), linear-gradient(90deg, transparent 30px, #7a5230 30px 40px, transparent 40px) 0 0 / 70px 100% no-repeat; }
.ody-arena__post { left: 51%; bottom: 13%; width: 12px; height: 36px; background: linear-gradient(90deg, #6b4a2b, #a87a4a); border-radius: 3px; }
.ody-arena__mario { position: absolute; left: 0; bottom: 2%; width: 26%; max-width: 230px; z-index: 3; pointer-events: none; filter: drop-shadow(0 6px 0 rgba(0,0,0,.15)); }

.ody-target {
  position: absolute; z-index: 2; left: var(--x); width: var(--w); min-width: 44px; border: 0; padding: 0; background: none; cursor: crosshair;
  transition: filter .2s, transform .2s;
}
.ody-target[style*="--b"] { bottom: var(--b); }
.ody-target--fly, .ody-target--cloud { top: var(--t); }
.ody-target img { width: 100%; height: auto; pointer-events: none; }
.ody-target:hover, .ody-target:focus-visible { filter: drop-shadow(0 0 6px #fff) drop-shadow(0 0 12px rgba(255,224,138,.9)); }
.ody-target:focus-visible { outline: 3px dashed var(--o-red); outline-offset: 4px; }
.ody-target[data-cap="goomba"] img { animation: ody-waddle .8s ease-in-out infinite; transform-origin: 50% 100%; }
.ody-target[data-cap="chain-chomp"] img { animation: ody-chomp 1.4s ease-in-out infinite; }
.ody-target[data-cap="planta-piranha"] img { animation: ody-plant 2s ease-in-out infinite; transform-origin: 50% 100%; }
.ody-target--fly img { animation: ody-fly 2.4s ease-in-out infinite; }
.ody-target--cloud img { animation: ody-bob 3s ease-in-out infinite; }
@keyframes ody-waddle { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes ody-chomp { 0%, 100% { transform: translateY(0); } 30% { transform: translateY(-14px) rotate(-4deg); } 60% { transform: translateY(0); } }
@keyframes ody-plant { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(4deg) scaleY(1.04); } }
@keyframes ody-fly { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-10px) translateY(-4px); } }
@keyframes ody-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
/* Chapéu + bigode no inimigo capturado */
.ody-target::before, .ody-target::after { content: ""; position: absolute; z-index: 2; pointer-events: none; opacity: 0; transform: scale(.3); transition: opacity .25s, transform .35s cubic-bezier(.3,1.8,.5,1); }
.ody-target::before {
  left: var(--cx); top: var(--cy); width: 62%; aspect-ratio: 2 / 1.2; translate: -50% -40%;
  background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 60'><path d='M10 44C10 18 28 4 52 4s40 14 40 38c6 1 8 4 8 7 0 6-20 8-48 8S2 55 2 49c0-3 3-5 8-5z' fill='%23d6222b' stroke='%23400' stroke-width='3'/><circle cx='52' cy='26' r='12' fill='%23fff' stroke='%23400' stroke-width='2'/><path d='M45 32V19l7 8 7-8v13' fill='none' stroke='%23d6222b' stroke-width='4' stroke-linejoin='round'/></svg>") center / contain no-repeat;
}
.ody-target::after {
  left: var(--mx); top: var(--my); width: 46%; aspect-ratio: 2.4 / 1; translate: -50% -50%;
  background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 50'><path d='M60 14c-8-10-26-12-40-4C8 17 2 30 6 40c8-6 18-8 28-4 10 4 20 2 26-6 6 8 16 10 26 6s20-2 28 4c4-10-2-23-14-30-14-8-32-6-40 4z' fill='%23271a12'/></svg>") center / contain no-repeat;
}
.ody-target.is-captured::before, .ody-target.is-captured::after { opacity: 1; transform: scale(1); }
.ody-target.is-captured { filter: drop-shadow(0 0 8px rgba(255,224,138,1)); }
.ody-target.is-captured img { animation-duration: .5s; }

.ody-bush {
  position: absolute; z-index: 3; right: 1%; bottom: 12%; width: 15%; aspect-ratio: 2 / 1; pointer-events: none;
  background:
    radial-gradient(circle at 25% 70%, #3e8f3a 0 30%, transparent 31%),
    radial-gradient(circle at 55% 50%, #4aa344 0 36%, transparent 37%),
    radial-gradient(circle at 80% 72%, #3e8f3a 0 28%, transparent 29%),
    radial-gradient(ellipse at 50% 100%, #357a31 0 50%, transparent 51%);
}
.ody-moon--bush { position: absolute; z-index: 2; right: 6%; bottom: 20%; width: 38px; height: 38px; animation-duration: 3.4s; }
.ody-cappy { position: absolute; z-index: 6; left: 0; top: 0; width: 70px; height: auto; pointer-events: none; opacity: 0; will-change: transform; filter: drop-shadow(0 6px 6px rgba(0,0,0,.25)); }
.ody-arena__pop {
  position: absolute; z-index: 7; left: 50%; top: 40%; margin: 0; pointer-events: none; opacity: 0;
  font-family: var(--o-display); font-size: clamp(40px, 6vw, 70px); color: var(--o-red); white-space: nowrap;
  -webkit-text-stroke: 2px var(--o-cream); text-shadow: 4px 5px 0 var(--o-navy);
  transform: translate(-50%, -50%) scale(.4) rotate(-8deg);
}
.ody-arena__pop.is-on { animation: ody-capturapop 1.3s cubic-bezier(.3,1.6,.5,1) forwards; }
@keyframes ody-capturapop {
  0% { opacity: 0; transform: translate(-50%, -50%) scale(.4) rotate(-8deg); }
  20% { opacity: 1; transform: translate(-50%, -50%) scale(1.1) rotate(-6deg); }
  75% { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-6deg); }
  100% { opacity: 0; transform: translate(-50%, -70%) scale(1) rotate(-6deg); }
}

.ody-capcard {
  position: relative; background: var(--o-cream); border-radius: 14px; padding: 24px 24px 20px;
  box-shadow: inset 0 0 0 2px rgba(34,40,58,.12), 8px 10px 0 rgba(34,40,58,.12), 0 20px 40px rgba(34,40,58,.12);
  border-top: 10px solid var(--o-red); display: flex; flex-direction: column;
}
.ody-capcard__kicker { margin: 0; font-family: var(--o-cond); font-size: 19px; letter-spacing: 3px; color: var(--o-red); text-transform: uppercase; }
.ody-capcard__img { width: 110px; height: 90px; object-fit: contain; margin: 6px 0; animation: ody-pop .5s cubic-bezier(.3,1.8,.5,1); }
.ody-capcard__name { margin: 2px 0 8px; font-family: var(--o-display); font-weight: 400; font-size: 32px; line-height: 1.05; color: var(--o-navy); }
.ody-capcard__desc { margin: 0 0 12px; font-size: 16.5px; }
.ody-capcard__tags { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.ody-capcard__tags li { font-family: var(--o-cond); font-size: 17px; letter-spacing: 1.5px; background: var(--o-navy); color: var(--o-cream); padding: 4px 10px 2px; border-radius: 4px; }
.ody-capcard__count { margin: auto 0 0; padding-top: 12px; border-top: 2px dashed rgba(34,40,58,.2); font-weight: 800; color: var(--o-ink2); }
.ody-capcard__count b { font-family: var(--o-display); font-weight: 400; font-size: 24px; color: var(--o-red); }

/* =========================================================
   MANUAL - etiquetas de bagagem
   ========================================================= */
.ody-tags { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px 26px; }
.ody-tag {
  position: relative; padding: 46px 22px 22px; color: var(--o-ink);
  background: linear-gradient(180deg, #e9cf9e, #dfc08a);
  clip-path: polygon(22px 0, calc(100% - 22px) 0, 100% 22px, 100% 100%, 0 100%, 0 22px);
  filter: drop-shadow(0 6px 0 rgba(34,40,58,.12));
}
.ody .ody-tag:nth-child(odd) { transform: rotate(-1.2deg); }
.ody .ody-tag:nth-child(even) { transform: rotate(1deg); }
.ody-tag::before { content: ""; position: absolute; left: 50%; top: 14px; width: 18px; height: 18px; margin-left: -9px; border-radius: 50%; background: var(--o-paper); box-shadow: 0 0 0 4px #c9a465; }
.ody-tag::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: 12px; height: 2px; background: repeating-linear-gradient(90deg, rgba(34,40,58,.3) 0 6px, transparent 6px 10px); }
.ody-tag h3 { margin: 0 0 6px; font-family: var(--o-cond); font-weight: 400; font-size: 27px; letter-spacing: 1.5px; color: var(--o-red-dk); line-height: 1; }
.ody-tag p { margin: 0 0 8px; font-size: 15.5px; color: #3a3324; }

/* =========================================================
   NEW DONK CITY - Art Déco
   ========================================================= */
.ody-ndc {
  position: relative; padding: 90px 0 90px; overflow: hidden; color: #ebe4cf;
  background:
    repeating-linear-gradient(90deg, transparent 0 59px, rgba(217,180,90,.05) 59px 60px),
    linear-gradient(180deg, #0c1020 0, #141a33 50%, #0c1020 100%);
  border-top: 8px double var(--o-gold); border-bottom: 8px double var(--o-gold);
}
.ody-ndc__rays {
  position: absolute; left: 50%; top: -40%; width: 1600px; height: 1600px; margin-left: -800px; pointer-events: none; opacity: .5;
  background: repeating-conic-gradient(from 90deg at 50% 50%, rgba(217,180,90,.22) 0 2deg, transparent 2deg 9deg);
  -webkit-mask: radial-gradient(circle, #000 0 20%, transparent 45%); mask: radial-gradient(circle, #000 0 20%, transparent 45%);
}
.ody-ndc__head { text-align: center; margin-bottom: 50px; position: relative; }
.ody-ndc__kicker { margin: 0 0 18px; font-family: var(--o-cond); font-size: 20px; letter-spacing: 8px; color: var(--o-gold); text-transform: uppercase; }
.ody-marquee { position: relative; display: inline-block; padding: 22px 46px 18px; border: 3px solid var(--o-gold); background: rgba(12,16,32,.75); box-shadow: 0 0 0 8px rgba(12,16,32,.9), 0 0 0 10px var(--o-gold), 0 0 50px rgba(217,180,90,.3); }
.ody-ndc__title {
  margin: 0; font-family: var(--o-deco); font-weight: 400; font-size: clamp(40px, 7vw, 92px); line-height: 1; letter-spacing: 3px;
  background: linear-gradient(180deg, #fff3c4 0, #e8c66a 45%, #b8862e 55%, #f7dc8c 100%); -webkit-background-clip: text; background-clip: text; color: transparent;
  filter: drop-shadow(0 3px 0 #5b3f0c);
}
.ody-marquee__bulbs {
  position: absolute; inset: -6px; pointer-events: none;
  --bulb: radial-gradient(circle, #fff9dc 0 3px, #f2c94c 4px, rgba(242,201,76,.25) 6px, transparent 7px);
  background: var(--bulb) 0 0 / 24px 12px repeat-x, var(--bulb) 0 100% / 24px 12px repeat-x, var(--bulb) 0 0 / 12px 24px repeat-y, var(--bulb) 100% 0 / 12px 24px repeat-y;
  animation: ody-chase 1s steps(2) infinite;
}
@keyframes ody-chase { 50% { background-position: 12px 0, 12px 100%, 0 12px, 100% 12px; } }
.ody-moon--ndc { position: absolute; right: -24px; top: -26px; z-index: 2; width: 46px; height: 46px; }
.ody-ndc__sub { margin: 26px 0 0; font-family: var(--o-deco); font-size: 22px; letter-spacing: 6px; color: #cdbf95; text-transform: uppercase; }
.ody-ndc__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: center; }
.ody-deco { margin: 0; position: relative; padding: 14px; border: 2px solid var(--o-gold); background: #0c1020; }
.ody-deco::before, .ody-deco::after { content: ""; position: absolute; width: 46px; height: 46px; border: 4px solid var(--o-gold); }
.ody-deco::before { left: -12px; top: -12px; border-right: 0; border-bottom: 0; }
.ody-deco::after { right: -12px; bottom: -12px; border-left: 0; border-top: 0; }
.ody-deco img { width: 100%; outline: 1px solid rgba(217,180,90,.6); outline-offset: 6px; }
.ody-deco figcaption { margin-top: 14px; text-align: center; font-family: var(--o-deco); font-size: 18px; letter-spacing: 4px; color: var(--o-gold); text-transform: uppercase; }
.ody-ndc__txt p { font-size: 17.5px; line-height: 1.65; margin: 0 0 16px; }
.ody-ndc__txt p:first-child::first-letter { float: left; font-family: var(--o-deco); font-size: 64px; line-height: .9; margin: 4px 10px 0 0; color: var(--o-gold); }
.ody-ndc__txt strong { color: #f3d37a; }
.ody-ndc__facts { list-style: none; margin: 50px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ody-ndc__facts li {
  position: relative; text-align: center; padding: 34px 16px 18px; border: 2px solid var(--o-gold);
  background: radial-gradient(ellipse 60% 50% at 50% 0, rgba(217,180,90,.18), transparent 70%), rgba(255,255,255,.02);
  clip-path: polygon(14px 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%, 0 14px);
}
.ody-ndc__facts li::before { content: ""; position: absolute; left: 50%; top: 0; width: 60px; height: 24px; margin-left: -30px; background: repeating-conic-gradient(from -90deg at 50% 0, var(--o-gold) 0 6deg, transparent 6deg 18deg); -webkit-mask: radial-gradient(circle at 50% 0, #000 0 23px, transparent 24px); mask: radial-gradient(circle at 50% 0, #000 0 23px, transparent 24px); }
.ody-ndc__facts b { display: block; font-family: var(--o-deco); font-weight: 400; font-size: 34px; color: var(--o-gold); }
.ody-ndc__facts span { font-family: var(--o-cond); font-size: 18px; letter-spacing: 2px; color: #d8cfb4; }

/* =========================================================
   CURIOSIDADES - selos postais
   ========================================================= */
.ody-stamps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 26px; }
.ody-stamp {
  position: relative; isolation: isolate; padding: 26px 24px 30px;
  background: radial-gradient(circle, transparent 5px, #fffdf6 5.5px) -8px -8px / 16px 16px;
  filter: drop-shadow(3px 5px 0 rgba(34,40,58,.12));
}
.ody .ody-stamp:nth-child(3n+1) { transform: rotate(-1.4deg); }
.ody .ody-stamp:nth-child(3n+2) { transform: rotate(1deg); }
.ody-stamp::before { content: ""; position: absolute; inset: 8px; z-index: -1; background: #fffdf6; border: 3px solid var(--s); outline: 1px solid var(--s); outline-offset: -8px; }
.ody-stamp::after { content: "Correio Odyssey"; position: absolute; left: 0; right: 0; bottom: 14px; text-align: center; font-family: var(--o-cond); font-size: 13px; letter-spacing: 3px; color: var(--s); text-transform: uppercase; }
.ody-stamp__val { display: flex; align-items: center; min-height: 52px; font-family: var(--o-display); font-size: 42px; line-height: 1; color: var(--s); margin-bottom: 6px; }
.ody-stamp p { margin: 0 0 6px; font-size: 15.5px; font-weight: 700; color: var(--o-ink); }

/* =========================================================
   ONDE JOGAR - painel de partidas
   ========================================================= */
.ody-sec--board { background: linear-gradient(180deg, var(--o-paper), #e6d6b3); }
.ody-board { position: relative; max-width: 980px; margin: 0 auto; background: #15171d; border-radius: 12px; padding: 18px 20px 22px; box-shadow: inset 0 0 0 4px #2b2e38, 0 0 0 6px #0b0c10, 10px 14px 0 rgba(34,40,58,.2); color: #ffd84a; }
.ody-board__head, .ody-board__row { display: grid; grid-template-columns: 1.5fr 1.5fr .9fr; gap: 16px; align-items: center; }
.ody-board__head { padding: 0 6px 10px; border-bottom: 2px solid #2b2e38; font-family: var(--o-cond); font-size: 18px; letter-spacing: 3px; color: #9aa0ad; text-transform: uppercase; }
.ody-board__row { padding: 14px 6px; border-bottom: 1px solid #23262f; }
.ody-flap { font-family: var(--o-cond); font-size: 23px; letter-spacing: 0; line-height: 1.55; }
.ody-flap .c { display: inline-block; min-width: .72em; padding: 5px 2px 3px; margin-right: 2px; text-align: center; background: linear-gradient(180deg, #23252c 0 49%, #0d0e12 49% 51%, #1c1e24 51%); border-radius: 3px; box-shadow: 0 2px 0 #000; }
.ody-flap .c.is-sp { background: none; box-shadow: none; }
.ody-flap--ok { color: #6fe08a; }
.ody-moon--board { position: absolute; right: -18px; top: -20px; }
.ody-onde__txt { text-align: center; margin: 30px auto 0; max-width: 720px; font-size: 18px; font-weight: 700; }

body[data-game="odyssey"] .mbr-gamenav { background: linear-gradient(180deg, #e6d6b3 0, #17171c 80px); padding-top: 50px; }

/* =========================================================
   RESPONSIVO
   ========================================================= */
@media (max-width: 1180px) {
  .ody-reinos { grid-template-columns: 1fr; grid-template-areas: "pass" "cards"; }
  .ody-pass { position: relative; top: 0; }
  .ody-pass__grid { grid-template-columns: repeat(5, 1fr); }
  .ody-pass__slot { font-size: 12px; }
}
@media (max-width: 1024px) {
  .ody-hero__in { gap: 32px; }
  .ody-hero__hook, .ody-hero__cta { margin-right: 130px; }
  .ody-hero__cta { flex-direction: column; align-items: flex-start; }
  .ody-hero__mario { width: 140px; right: -16px; }
  .ody-ticket__grid { grid-template-columns: repeat(2, 1fr); }
  .ody-tags { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  .ody-hero__in, .ody-sobre, .ody-wedding, .ody-nave, .ody-capgrid, .ody-ndc__grid { grid-template-columns: 1fr; }
  .ody-hero__txt { padding-right: 0; text-align: center; order: -1; }
  .ody-hero__h1 img { margin: 0 auto; }
  .ody-hero__hook { margin-left: auto; margin-right: auto; }
  .ody-hero__cta { justify-content: center; }
  .ody-hero__mario { display: none; }
  .ody-hero__hook, .ody-hero__cta { margin-right: auto; }
  .ody-hero__cta { flex-direction: row; align-items: center; }
  .ody-poster { max-width: 620px; margin: 0 auto; }
  .ody-ticket { grid-template-columns: 1fr; }
  .ody-ticket__main { border-right: 0; border-bottom: 3px dashed rgba(34,40,58,.3); }
  .ody-ticket__main::before, .ody-ticket__main::after { display: none; }
  .ody-ticket__stub { flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; }
  .ody-ticket__bars { flex: 1 0 100%; height: 34px; }
  .ody-sobre__fig { max-width: 420px; margin: 0 auto; }
  .ody-invite { max-width: 560px; margin: 0 auto; }
  .ody-nave__art { max-width: 300px; }
  @keyframes ody-orbit { from { transform: rotate(0) translateX(150px) rotate(0); } to { transform: rotate(360deg) translateX(150px) rotate(-360deg); } }
}
@media (max-width: 720px) {
  .ody-wrap { padding: 0 16px; }
  .ody-sec { padding: 54px 0; }
  .ody-sec--tight { padding: 0 0 30px; }
  .ody-hero { padding-top: 30px; }
  .ody-hero__hook { font-size: 18px; }
  .ody-poster__frame { padding: 14px 14px 16px; border-width: 8px; }
  .ody-poster__top { font-size: 15px; letter-spacing: 3px; }
  .ody-ticket__main { padding: 20px 18px; }
  .ody-ticket__grid { grid-template-columns: 1fr 1fr; gap: 12px 14px; }
  .ody-ticket__grid dd { font-size: 15px; }
  .ody-ticket__title { font-size: 21px; }
  .ody-notebook { padding: 26px 18px 26px 44px; background: linear-gradient(90deg, transparent 30px, rgba(200,16,46,.45) 30px 32px, transparent 32px), repeating-linear-gradient(180deg, transparent 0 31px, rgba(80,120,190,.22) 31px 32px), #fffdf6; }
  .ody-notebook p { font-size: 16.5px; }
  .ody-invite { padding: 30px 18px 0; }
  .ody-invite__stamp { font-size: 28px; bottom: 130px; right: 10px; padding: 2px 10px 0; border-width: 4px; }
  .ody-cake { grid-template-columns: 150px 1fr; }
  .ody-cake__tier--1 { width: 130px; }
  .ody-cake__tier--2 { width: 96px; }
  .ody-cake__tier--3 { width: 60px; }
  .ody-cake__moon { left: 53px; }
  .ody-cake__cap { font-size: 20px; }
  .ody-stats { grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
  .ody-stats li { padding: 10px 8px; }
  .ody-stats b { font-size: 30px; }
  .ody-stats span { font-size: 12.5px; }
  .ody-gauge__slots li { width: 30px; height: 30px; }
  .ody-cards { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 84%; gap: 18px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 14px 16px 22px; scroll-padding: 0 16px; }
  .ody-cards::after { content: ""; width: 1px; }
  .pc { scroll-snap-align: start; }
  .ody-pass__grid { grid-template-columns: repeat(5, 1fr); gap: 5px; padding: 8px; margin: 0 10px; }
  .ody-pass__slot { font-size: 10.5px; letter-spacing: .3px; }
  .ody-pass__ink { font-size: 10.5px; padding: 3px; border-width: 2px; }
  .ody-pass__ink small { display: none; }
  .ody-arena { aspect-ratio: auto; height: 380px; min-height: 0; border-width: 6px; }
  .ody-arena__mario { width: 36%; }
  .ody-target { min-width: 52px; }
  .ody-target[data-cap="goomba"] { --x: 38% !important; }
  .ody-target[data-cap="chain-chomp"] { --x: 50% !important; --w: 24% !important; }
  .ody-target[data-cap="planta-piranha"] { --x: 77% !important; --w: 12% !important; --b: 13% !important; }
  .ody-target--fly { --x: 44% !important; --t: 22% !important; --w: 22% !important; }
  .ody-target--cloud { --x: 76% !important; --t: 4% !important; --w: 17% !important; }
  .ody-bush { width: 22%; right: -4%; }
  .ody-moon--bush { right: 4%; }
  .ody-cappy { width: 54px; }
  .ody-capcard__name { font-size: 27px; }
  .ody-ndc { padding: 70px 0; }
  .ody-marquee { padding: 16px 20px 12px; }
  .ody-moon--ndc { right: -14px; top: -22px; width: 40px; height: 40px; }
  .ody-ndc__sub { font-size: 16px; letter-spacing: 4px; }
  .ody-ndc__facts { grid-template-columns: 1fr; gap: 14px; margin-top: 36px; }
  .ody-tags { grid-template-columns: 1fr 1fr; gap: 18px 12px; }
  .ody-tag { padding: 38px 12px 18px; clip-path: polygon(14px 0, calc(100% - 14px) 0, 100% 14px, 100% 100%, 0 100%, 0 14px); }
  .ody-tag::before { top: 10px; width: 14px; height: 14px; margin-left: -7px; }
  .ody-tag::after { left: 12px; right: 12px; bottom: 8px; }
  .ody-tag h3 { font-size: 20px; }
  .ody-tag p { font-size: 13.5px; line-height: 1.4; }
  .ody-stamps { grid-template-columns: 1fr 1fr; gap: 14px; }
  .ody-stamp { padding: 22px 20px 32px; }
  .ody-stamp__val { font-size: 30px; min-height: 40px; }
  .ody-stamp p { font-size: 13.5px; }
  .ody-stamp::after { font-size: 11px; letter-spacing: 2px; }
  .ody-board { padding: 14px 12px 16px; }
  .ody-board__head { display: none; }
  .ody-board__row { grid-template-columns: 1fr; gap: 6px; padding: 14px 4px; }
  .ody-flap { font-size: 19px; }
  .ody-moon--board { right: -6px; top: -24px; }
  .ody-head__kicker { font-size: 18px; letter-spacing: 3px; }
  .ody-head__kicker::before, .ody-head__kicker::after { width: 20px; }
}
@media (max-width: 400px) {
  .ody-ticket__grid { grid-template-columns: 1fr; }
  .ody-flap { font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .ody-moon, .ody-hero__mario, .ody-ship, .ody-nave__moons i, .ody-target img, .ody-marquee__bulbs, .ody-arena__cloud { animation: none !important; }
  .ody-nave__moons { display: none; }
  .pc__inner { transition: none; }
}
