/* Capy Bakery: telas no tamanho e na posição dos mockups (rodadas do crítico e do loop de fidelidade). Carrega depois de game.css. */
/* ==== rodada 8 (crítico detalhista) ==== */
/* fitas sem trigo, texto marrom grande */
.ribbon::before { background-image: url(../assets/img/rib2-pink.webp) !important; inset: -8px -18px -6px !important; }
.ribbon.red::before, .day-open::before { background-image: url(../assets/img/rib2-red.webp) !important; }
.ribbon.blue::before { background-image: url(../assets/img/rib2-blue.webp) !important; }
.ribbon.gold::before { background-image: url(../assets/img/rib2-gold.webp) !important; }
.ribbon, .ribbon span, .map-ribbon span, .levels .ribbon span { color: var(--ink) !important; -webkit-text-stroke: 0 !important; text-shadow: 0 2px 0 rgba(255, 255, 255, 0.55) !important; font-weight: 700; white-space: nowrap; }
.ribbon { padding: 0.32em 1.9em 0.98em !important; }
.ribbon.red span, .day-open span { color: #fff !important; -webkit-text-stroke: 1.5px var(--ink) !important; paint-order: stroke fill; text-shadow: 0 3px 0 var(--ink) !important; }

/* cartão: um contorno marrom, cantos 30px, sombra suave */
.modal { border: 4px solid var(--ink) !important; border-radius: 30px !important; background: linear-gradient(#fffaf0 30%, #fde7c6) !important;
  box-shadow: 0 8px 0 rgba(58, 36, 22, 0.35), inset 0 3px 0 #fff !important; width: min(calc(90 * var(--vw)), 384px); align-items: center !important; gap: 12px !important; }
.modal.pause, .modal.settings, .modal.end, .modal.news { padding: 62px 22px 24px !important; margin-top: 120px !important; }
.modal > h2.ribbon { position: absolute !important; top: -40px; left: 50%; transform: translateX(-50%); z-index: 3; width: max-content; max-width: 104%;
  font-size: clamp(30px, calc(8.6 * var(--vw)), 38px) !important; margin: 0 !important; }
.modal .peek { top: -150px !important; height: 130px !important; z-index: 1; }
.peek .end-capy { height: 132px !important; top: 6px !important; }
.peek .friend { top: 30px !important; height: 96px !important; }
.peek .friend.l { left: 6% !important; }
.peek .friend.r { right: 6% !important; }
.peek .friend.m { position: absolute; left: 50%; top: 18px !important; transform: translateX(-50%); }
.modal-back { background: rgba(58, 36, 22, 0.42) !important; }

/* botões: grandes, dourados, brilho no topo, texto marrom pesado */
.modal > .btn, .modal > .btn-row { width: 82%; }
.modal > .btn:not(.primary):not(.ghost) { width: 74%; }
.btn { font-weight: 700 !important; }
.btn.primary, .btn.go { color: var(--ink) !important; }
.modal .btn.big { font-size: 30px !important; min-height: 66px; padding: 0.2em 1em !important; display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.modal .btn:not(.big):not(.ghost):not(.pink):not(.purple) { font-size: 22px !important; min-height: 54px; display: inline-flex; align-items: center; justify-content: center; gap: 10px;
}
.modal .btn.pink { background: linear-gradient(#ffb3cf, #f47fa8) !important; }
.modal .btn.purple { background: linear-gradient(#d9b8ff, #a982ec) !important; }
.modal .btn.pink, .modal .btn.purple { color: #fff !important; -webkit-text-stroke: 1.2px var(--ink); paint-order: stroke fill; }
.gi { display: inline-grid; width: 1.05em; height: 1.05em; flex: none; }
.gi svg { width: 100%; height: 100%; overflow: visible; }
.btn .bi { flex: none; }

/* pausa: interruptores maiores, sem link de ajustes apertado */
.mini-toggle .bi { width: 56px !important; height: 56px !important; }
.mini-toggle .knob { width: 70px !important; height: 38px !important; border-width: 3px !important; }
.mini-toggle .knob::after { width: 28px !important; height: 28px !important; top: 2px !important; left: 3px !important; }
.mini-toggle input:checked + .knob::after { transform: translateX(31px) !important; }
.icon-row { gap: 22px !important; }
.modal .btn.ghost { font-size: 18px !important; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }

/* ajustes: linhas limpas, interruptores e controles grandes */
.slider-row { background: none !important; border: 0 !important; padding: 4px 4px !important; width: 100%; }
.slider-row .bi { width: 44px !important; height: 44px !important; }
.slider-row b { font-size: 20px; width: 64px !important; }
.slider-row input { height: 16px !important; margin: 0 10px 0 0; }
.slider-row input::-webkit-slider-thumb { width: 32px !important; height: 32px !important; }
.switch-row { width: 100%; background: rgba(255, 228, 180, 0.55) !important; border: 0 !important; border-radius: 18px; padding: 8px 12px !important; }
.switch-row b { font-size: 19px !important; }
.switch-row .knob { width: 72px !important; height: 40px !important; }
.switch-row .knob::after { width: 30px !important; height: 30px !important; top: 2px !important; left: 3px !important; }
.switch-row input:checked + .knob::after { transform: translateX(32px) !important; }
.ri { font-size: 28px !important; width: 40px !important; }
.lang-row { width: 100%; }
.lang-row b { font-size: 19px; }
.lang-row .pill.lang { height: 44px !important; min-width: 140px; justify-content: center; font-size: 19px !important; }
.set-foot { width: 100%; position: relative; justify-content: flex-end; }
.set-foot .btn { flex: none !important; width: 66%; }
.set-capy { position: absolute; left: -46px; bottom: -34px; height: 120px !important; margin: 0 !important; }

/* derrota: capivara com a bandeja dentro do cartão, fita azul, estrelas vazias pequenas */
.modal.lose { padding-top: 54px !important; margin-top: 60px !important; }
.lose-capy { height: 150px; margin: -6px 0 -18px; animation: hop 0.6s 0.15s cubic-bezier(0.34, 1.56, 0.64, 1) both; }
h3.ribbon.sub { position: relative; font-size: 28px !important; margin: 4px 0 0 !important; z-index: 2; }
.modal.lose .stars::before, .modal.lose .stars .burst { display: none !important; }
.modal.lose .stars { min-height: 0 !important; gap: 10px !important; }
.modal.lose .stars .star img { width: 46px !important; height: 46px !important; filter: grayscale(1) brightness(1.7) contrast(1.1) !important; opacity: 1 !important; }
.modal.lose .hint-line { width: 100%; font-size: 17px !important; background: #f6dfbd !important; border-radius: 14px; padding: 10px 12px !important; text-align: left; }
.hint-line .hat { font-style: normal; font-size: 30px; padding-right: 10px; border-right: 2px solid rgba(58, 36, 22, 0.25); }

/* vitória: números maiores */
.modal .sum .pill { height: 50px; font-size: 22px; padding: 6px 16px; }
.modal .sum .pill img { width: 34px; height: 34px; }
.modal .sum .coin { width: 28px !important; height: 28px !important; }
.tip-line { font-size: 17px !important; padding: 6px 18px !important; }

/* título: PLAY grande sem ícone, raios de traço, botões de canto dourados */
.play-wrap .rays, .title .play-wrap::before, .title .play-wrap::after { display: none !important; }
.title .btn.huge.play { min-width: min(calc(78 * var(--vw)), 440px) !important; min-height: 104px; font-size: clamp(50px, calc(8 * var(--vh)), 66px) !important; letter-spacing: 2px; }
.pings { position: absolute; top: 50%; width: 46px; height: 90px; transform: translateY(-50%); z-index: 2; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 46 90' stroke='%233a2416' stroke-width='3' stroke-linecap='round'%3E%3Cpath d='M40 14L22 4' stroke-width='12'/%3E%3Cpath d='M42 45H18' stroke-width='12'/%3E%3Cpath d='M40 76L22 86' stroke-width='12'/%3E%3Cpath d='M40 14L22 4M42 45H18M40 76L22 86' stroke='%23ffd23f' stroke-width='6'/%3E%3C/svg%3E") center / contain no-repeat;
  animation: pings 1.2s ease-in-out infinite; }
.pings.l { left: -40px; }
.pings.r { right: -40px; transform: translateY(-50%) scaleX(-1); animation-name: pingsr; }
@keyframes pings { 50% { transform: translateY(-50%) scale(1.15); } }
@keyframes pingsr { 50% { transform: translateY(-50%) scaleX(-1) scale(1.15); } }
.title .play-wrap .btn.play { animation: breathe 1.1s ease-in-out infinite; }
.title .logo { animation: bob 2.6s ease-in-out infinite; }
@keyframes bob { 50% { transform: translateY(-3px); } }


/* fim do dia: faixa maior e com riscos de velocidade */
.rush { font-size: 21px !important; padding: 8px 20px 8px 34px !important; border-width: 4px !important; }
.rush::before { content: ''; position: absolute; left: -26px; top: 50%; width: 46px; height: 26px; transform: translateY(-50%);
  background: repeating-linear-gradient(transparent 0 4px, #fff 4px 8px, transparent 8px 11px); opacity: 0.9; border-radius: 4px; }

/* abertura do dia: faixa pequena embaixo do logo */
.day-open { font-size: 20px !important; }

/* loja: sem listras, títulos numa linha, MAX só no botão */
.up-card { border-left-width: 3px !important; border-left-color: var(--ink) !important; }
.up-card:has(.max) { background: linear-gradient(#fffaf0, #f9e7c9) !important; }
.up-card:has(.max) .up-pic { filter: none !important; }
.up-txt b { white-space: nowrap; font-size: 19px; }
.up-txt small { font-size: 13px !important; color: #6b4a32 !important; }
.up-pic { background: var(--tint, #ffe6bd); }
.pips { background: #f3dfbf; border-radius: 99px; padding: 3px 8px; width: max-content; }

/* rodada 8b */
.modal .btn-row > .btn { font-size: 20px !important; min-height: 54px; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-width: 4px !important; }
.modal .sum .pill { white-space: nowrap; font-size: 20px; }
.peek .friend.r2 { position: absolute; right: -4%; top: 44px !important; height: 84px !important; transform: rotate(10deg); }
.peek .friend.r { right: 12% !important; }
.modal.end .peek .friend.l { left: 2% !important; }
body:not(.land) .modal-back:has(.pause, .settings, .end) { place-items: end center; padding-bottom: max(18px, calc(2.5 * var(--vh))); }
.modal.lose { margin-top: 100px !important; }
.lose-capy { height: 172px; }
.modal.lose .stars .star img { filter: grayscale(1) brightness(1.38) !important; }
.hint-line svg.hat { width: 40px; height: 40px; flex: none; padding-right: 8px; border-right: 2px solid rgba(58, 36, 22, 0.25); }
.gi { width: 1.15em; height: 1.15em; }
.set-capy { height: 140px !important; left: -52px; bottom: -40px; }

.modal > .btn:not(.primary):not(.ghost) { width: 80%; white-space: nowrap; }
.modal > .btn-row { width: 94%; }
.modal .btn-row > .btn { font-size: 18px !important; padding-left: 0.3em !important; padding-right: 0.3em !important; }
.lose-capy { height: 150px; }
.up-txt { min-width: 0; flex: 1; }
.up-txt b { font-size: 17px !important; }
.up-card .pill.max, .up-card .btn.buy { flex: none; margin-left: auto; }

/* rodada 9: mapa com bases, estrelas legíveis */
.btn.node { border: 4px solid var(--ink) !important; background: radial-gradient(circle at 35% 30%, #fffdf3, #fff1cf 55%, #f3d49a) !important; }
.btn.node.cur { background: radial-gradient(circle at 35% 30%, #fffbe0, #ffe36a 55%, #ffb81f) !important; }
.btn.node b { color: var(--ink); font-weight: 700; }
.btn.node span { bottom: -24px !important; display: flex; gap: 1px; align-items: center; padding: 1px 7px 2px; border-radius: 10px; background: linear-gradient(#b67338, #8c5226);
  border: 3px solid var(--ink); font-size: 17px !important; line-height: 1; color: #ffd23f !important; text-shadow: 0 1px 0 var(--ink) !important; -webkit-text-stroke: 0 !important; }
.btn.node span i { color: #6b4325 !important; text-shadow: none !important; }
.btn.node span.lk { padding: 2px 6px; }
.btn.node span.lk .bi { width: 20px !important; height: 20px !important; margin: 0; }
.btn.node.locked b { opacity: 0.55; }
.node-capy { right: 74% !important; left: auto !important; bottom: -14px !important; z-index: 3; }
.coins-pill { height: 50px !important; font-size: 24px !important; padding: 6px 16px !important; }
.coins-pill .coin { width: 28px !important; height: 28px !important; }
body:not(.land) .pill { height: 44px; font-size: 20px; }

.day-open { animation: dayopenin 0.45s cubic-bezier(0.34, 1.56, 0.64, 1) both !important; }
@keyframes dayopenin { from { transform: translate(-50%, -24px) scale(0.6); opacity: 0; } }

/* rodada 9: deitado */
body:not(.land) .title .btn.play .gi { display: none; }
body.land .title .play-wrap { position: absolute; grid-column: 1 / -1; grid-row: 1 / -1; left: 50%; top: 47%; transform: translate(-50%, -50%); margin: 0 !important; z-index: 3; }
body.land .title .btn.huge.play { font-size: 76px !important; min-height: 132px; min-width: 400px !important; padding: 0.1em 0.8em !important; gap: 16px; border-width: 5px !important; }
body.land .btn.corner { top: 18px; }
body.land .btn.corner.left { left: auto; right: 104px; }
body.land .btn.corner.right { right: 22px; }
body.land .title .btn.corner { width: 72px; height: 72px; }
body.land .modal-back .modal.end { zoom: 1.32; }
body.land .modal-back:has(.end) { place-items: end center; padding-bottom: calc(2 * var(--vhs)); }
body.land .modal.end .stars .star img { width: 80px !important; height: 80px !important; }
body.land .modal.end .stars .star:nth-child(3) img, body.land .modal.end .stars .star:nth-child(2) img { width: 96px !important; height: 96px !important; }
body.land .modal.end .btn-row > .btn { font-size: 19px !important; }
.shop .screen-head .head-mid { flex: 1; display: grid; place-items: center; }
.shop .head-logo { width: min(calc(44 * var(--vw)), 230px); }
body.land .board { margin-top: calc(6 * var(--vhs)) !important; width: min(calc(46 * var(--vw)), 640px) !important; }
body.land .up-card { display: grid !important; grid-template-columns: 96px minmax(0, 1fr); grid-template-rows: auto auto; column-gap: 12px; row-gap: 6px; align-items: center; }
body.land .up-pic { grid-row: 1 / span 2; }
body.land .up-txt small { display: none; }
body.land .up-txt b { font-size: 21px !important; white-space: normal !important; line-height: 1.05; }
body.land .up-card .btn.buy, body.land .up-card .pill.max { grid-column: 2; justify-self: start; margin: 0; font-size: 22px; min-width: 0; padding: 2px 16px; }
body.land .foot-capy { height: calc(52 * var(--vhs)) !important; }
body.land .foot-friend { height: calc(24 * var(--vhs)) !important; }
body.land .shop-foot { align-items: flex-end; }

body.land .modal.end .btn-row > .btn { font-size: 22px !important; min-width: 150px; }
body.land .modal.end .peek .end-capy { height: 170px !important; top: -26px !important; }
body.land .modal.end .peek .friend { height: 120px !important; top: 10px !important; }
body.land .foot-friend { position: absolute; bottom: calc(13 * var(--vh)); height: calc(22 * var(--vhs)) !important; }
body.land .foot-friend:last-child { right: calc(2 * var(--vw)); }
body.land .foot-friend:nth-last-child(2) { right: calc(11 * var(--vw)); }
body.land .board { margin-top: calc(3 * var(--vhs)) !important; }

/* rodada 10: regressões */
.day-open { top: var(--open-top, 30%) !important; }
.btn.node span i { color: #f6e6c8 !important; opacity: 0.6; }
body.land .modal.end .btn.go { white-space: nowrap; min-width: 260px; }
body.land .foot-capy { height: calc(44 * var(--vhs)) !important; }
body.land .board { margin-left: calc(6 * var(--vw)); }

/* rodada 10: botões e ícones desenhados no Codex (fontes/codex/r10) */
.btn { border-style: solid !important; border-width: 0 !important; box-shadow: none !important; background: none !important;
  border-image: url(../assets/img/btn-cream.webp) 0 62 fill / 0 28px stretch !important; filter: drop-shadow(0 3px 0 rgba(58, 36, 22, 0.25)); }
.btn.primary, .btn.go, .btn.round, .btn.corner, .btn.back { border-image-source: url(../assets/img/btn-gold.webp) !important; }
.btn.pink { border-image-source: url(../assets/img/btn-pink.webp) !important; }
.btn.purple { border-image-source: url(../assets/img/btn-purple.webp) !important; }
.btn.green { border-image-source: url(../assets/img/btn-green.webp) !important; }
.btn.big, .modal .btn.big { border-image-width: 0 34px !important; }
.title .btn.huge.play { border-image-width: 0 54px !important; }
.btn.round, .btn.corner, .btn.back { border-image-width: 0 50% !important; }
.btn.node, .btn.ghost { border-image: none !important; filter: none; }
.btn.node { border: 4px solid var(--ink) !important; box-shadow: 0 4px 0 var(--ink) !important; }
.btn::before { display: none !important; }
.btn:active { transform: translateY(2px) scale(0.97); filter: none; }
.btn .bi.gi { width: 1.15em; height: 1.15em; object-fit: contain; }
.btn.round .bi.gi, .btn.back .bi.gi { width: 62%; height: 62%; }
.btn.corner .bi { width: 64% !important; height: 64% !important; }
img.ri { width: 38px !important; height: 38px; object-fit: contain; flex: none; }
.hint-line img.hat { width: 42px; height: 42px; object-fit: contain; flex: none; padding-right: 8px; border-right: 2px solid rgba(58, 36, 22, 0.25); }
.modal .sum .pill img, .tip-line img { width: 34px; height: 34px; object-fit: contain; }
.tip-line { display: flex; align-items: center; gap: 6px; }
.btn.node span img.ns { width: 17px; height: 17px; filter: grayscale(1) brightness(1.6); opacity: 0.75; }
.btn.node span img.ns.on { filter: none; opacity: 1; }
.caret { display: inline-block; margin-left: 8px; border: 7px solid transparent; border-top: 9px solid #fff; border-bottom: 0; filter: drop-shadow(0 0 1px var(--ink)); }

/* título nas posições do inventário (docs/mockup-inventario/01-titulo.json e 21-titulo-deitado.json) */
.title { display: block !important; padding: 0 !important; }
.title > .logo, .title > .title-capy, .title > .play-wrap, .title > .btn.corner { position: absolute !important; margin: 0 !important; transform: none; }
.title > .logo { left: 8%; top: 3.5%; width: 84% !important; height: auto; }
.title > .title-capy { left: 50%; top: 22%; height: 36% !important; transform: translateX(-50%) !important; clip-path: inset(0 0 9% 0); animation: none; }
.title > .play-wrap { left: 13.8%; width: 70.7%; top: 63%; height: 13%; }
.title .btn.huge.play { width: 100%; min-width: 0 !important; height: 100%; min-height: 0 !important; font-size: clamp(40px, calc(7.4 * var(--vh)), 70px) !important; }
.title > .btn.corner { width: calc(16.7 * var(--vw)) !important; height: calc(16.7 * var(--vw)) !important; max-width: 90px; max-height: 90px; top: 21.8% !important; }
.title > .btn.corner.left { left: 6.9% !important; right: auto !important; }
.title > .btn.corner.right { left: 76.5% !important; right: auto !important; }
body.land .title > .logo { left: 27%; top: 0.5%; width: 47% !important; }
body.land .title > .title-capy { left: 21%; top: 34%; height: 70% !important; clip-path: none; }
body.land .title > .play-wrap { left: 34.6%; width: 30.7%; top: 44%; height: 21%; transform: none !important; }
body.land .title .btn.huge.play { min-width: 0 !important; min-height: 0 !important; font-size: clamp(40px, calc(9 * var(--vhs)), 84px) !important; }
body.land .title > .btn.corner { width: calc(7.4 * var(--vw)) !important; height: calc(7.4 * var(--vw)) !important; top: 1.6% !important; }
body.land .title > .btn.corner.left { left: 83% !important; }
body.land .title > .btn.corner.right { left: 91.5% !important; }

/* ==== fidelidade: caixas do inventário (docs/mockup-inventario/*.json), em % da tela ==== */
body:not(.land) .modal-back { display: block !important; padding: 0 !important; }
body:not(.land) .modal.pause, body:not(.land) .modal.settings, body:not(.land) .modal.end, body:not(.land) .modal.news {
  position: absolute !important; margin: 0 !important; padding: 0 !important; justify-content: flex-start; zoom: 1 !important; }
body:not(.land) .modal > h2.ribbon { width: auto; font-size: calc(4.6 * var(--vh)) !important; }
body:not(.land) .modal .btn { font-size: calc(3.3 * var(--vh)) !important; min-height: 0 !important; padding: 0 0.6em !important; }
body:not(.land) .modal .btn.big { font-size: calc(4 * var(--vh)) !important; }

/* 07 pausa: cartão 12,2/47,5 75,5×46,9; capivara dormindo 36,7/35,8 26,6×14,5 */
body:not(.land) .modal.pause { left: calc(12.2 * var(--vw)); top: calc(47.5 * var(--vh)); width: calc(75.5 * var(--vw)); height: calc(46.9 * var(--vh)); padding-top: calc(10.4 * var(--vh)) !important; gap: calc(1 * var(--vh)) !important; }
body:not(.land) .modal.pause > h2.ribbon { top: calc(1.2 * var(--vh)); }
body:not(.land) .modal.pause .peek { top: calc(-11.7 * var(--vh)) !important; height: calc(14.5 * var(--vh)) !important; }
body:not(.land) .modal.pause .peek .end-capy { height: calc(14.5 * var(--vh)) !important; top: 0 !important; }
body:not(.land) .modal.pause > .btn.big { width: 70.3%; height: calc(9 * var(--vh)); }
body:not(.land) .modal.pause > .btn:not(.big) { width: 74%; height: calc(7.3 * var(--vh)); }
body:not(.land) .modal.pause .icon-row { margin-top: calc(0.5 * var(--vh)); gap: calc(4 * var(--vw)) !important; }
body:not(.land) .modal.pause .mini-toggle .bi { width: calc(12.5 * var(--vw)) !important; height: calc(12.5 * var(--vw)) !important; }
body:not(.land) .modal.pause .mini-toggle .knob { width: calc(11.7 * var(--vw)) !important; height: calc(5.1 * var(--vh)) !important; }

/* 09 vitória: cartão 4,8/50,5 90,3×49; faixa 49,6; pílulas 69,3; gorjeta 76,7; Next 81,9; linha 91,5 */
body:not(.land) .modal.end:not(.lose) { left: calc(4.8 * var(--vw)); top: calc(50.5 * var(--vh)); width: calc(90.3 * var(--vw)); height: calc(49 * var(--vh)); padding-top: calc(6 * var(--vh)) !important; gap: 0 !important; }
body:not(.land) .modal.end:not(.lose) > h2.ribbon { top: calc(-0.9 * var(--vh)); font-size: calc(5.2 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) .stars { height: calc(11.5 * var(--vh)); min-height: 0 !important; align-items: center; margin-bottom: calc(1 * var(--vh)); }
body:not(.land) .modal.end:not(.lose) .stars .star img { width: calc(10 * var(--vh)) !important; height: calc(10 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) .stars .star:nth-child(2) img { width: calc(11 * var(--vh)) !important; height: calc(11 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) .sum { width: 82%; height: calc(5.8 * var(--vh)); margin: 0 0 calc(1.6 * var(--vh)) !important; gap: calc(2 * var(--vw)) !important; }
body:not(.land) .modal.end:not(.lose) .sum .pill { flex: 1; height: 100% !important; font-size: calc(2.6 * var(--vh)) !important; justify-content: center; }
body:not(.land) .modal.end:not(.lose) .tip-line { width: 61.5%; height: calc(4.2 * var(--vh)); justify-content: center; font-size: calc(2 * var(--vh)) !important; margin-bottom: calc(1 * var(--vh)); }
body:not(.land) .modal.end:not(.lose) > .btn.go { width: 67.7%; height: calc(8.7 * var(--vh)); margin-bottom: calc(0.9 * var(--vh)); font-size: calc(4.4 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) > .btn-row { width: 84.5%; height: calc(6.3 * var(--vh)); gap: calc(2 * var(--vw)); }
body:not(.land) .modal.end:not(.lose) .btn-row > .btn { height: 100%; font-size: calc(2.6 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) .peek { top: calc(-18 * var(--vh)) !important; height: calc(20 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) .peek .end-capy { height: calc(20 * var(--vh)) !important; top: 0 !important; }
body:not(.land) .modal.end:not(.lose) .peek .friend { height: calc(11 * var(--vh)) !important; top: calc(8 * var(--vh)) !important; }
body:not(.land) .modal.end:not(.lose) .peek .friend.l { left: 0 !important; }
body:not(.land) .modal.end:not(.lose) .peek .friend.r { right: 18% !important; }
body:not(.land) .modal.end:not(.lose) .peek .friend.r2 { right: 0 !important; height: calc(10 * var(--vh)) !important; top: calc(9 * var(--vh)) !important; }

/* 10 derrota: cartão 6,9/35,3 85,8×64; placa 33,2; capivara 37,8–57,4; faixa azul 57,9; pílula 70,5; dica 76; tentar 83,1; dias 91,5 */
body:not(.land) .modal.end.lose { left: calc(6.9 * var(--vw)); top: calc(35.3 * var(--vh)); width: calc(85.8 * var(--vw)); height: calc(64 * var(--vh)); padding-top: calc(2.5 * var(--vh)) !important; gap: 0 !important; }
body:not(.land) .modal.end.lose > h2.ribbon { top: calc(-2.1 * var(--vh)); font-size: calc(4.6 * var(--vh)) !important; }
body:not(.land) .modal.end.lose .lose-capy { height: calc(19.6 * var(--vh)); margin: 0 !important; }
body:not(.land) .modal.end.lose h3.ribbon.sub { width: 82%; height: calc(7.6 * var(--vh)); margin: calc(0.5 * var(--vh)) 0 0 !important; font-size: calc(3.8 * var(--vh)) !important; display: grid; place-items: center; }
body:not(.land) .modal.end.lose .stars { height: calc(5 * var(--vh)); margin: 0; }
body:not(.land) .modal.end.lose .stars .star img { width: calc(5 * var(--vh)) !important; height: calc(5 * var(--vh)) !important; }
body:not(.land) .modal.end.lose .sum { width: 56%; height: calc(4.6 * var(--vh)); margin: calc(0.6 * var(--vh)) 0 !important; }
body:not(.land) .modal.end.lose .sum .pill { flex: 1; height: 100% !important; font-size: calc(2.5 * var(--vh)) !important; justify-content: center; }
body:not(.land) .modal.end.lose .hint-line { width: 80.8% !important; height: calc(6 * var(--vh)); font-size: calc(2 * var(--vh)) !important; margin: calc(0.4 * var(--vh)) 0 calc(1 * var(--vh)); }
body:not(.land) .modal.end.lose > .btn.big { width: 68.4%; height: calc(7.5 * var(--vh)); margin-bottom: calc(0.9 * var(--vh)); }
body:not(.land) .modal.end.lose > .btn-row { width: 49.5%; height: calc(5.4 * var(--vh)); }
body:not(.land) .modal.end.lose .btn-row > .btn { height: 100%; font-size: calc(2.6 * var(--vh)) !important; }

/* 08 ajustes: cartão 5,5/26,2 89,1×70,7; faixa 27,2; voltar 39,6/85,8 40,6×8 */
body:not(.land) .modal.settings { left: calc(5.5 * var(--vw)); top: calc(26.2 * var(--vh)); width: calc(89.1 * var(--vw)); height: calc(70.7 * var(--vh)); padding: calc(12 * var(--vh)) calc(4.5 * var(--vw)) 0 !important; gap: calc(0.8 * var(--vh)) !important; }
body:not(.land) .modal.settings > h2.ribbon { top: calc(1 * var(--vh)); }
body:not(.land) .modal.settings .peek { top: calc(-13 * var(--vh)) !important; height: calc(13 * var(--vh)) !important; }
body:not(.land) .modal.settings .slider-row { height: calc(6 * var(--vh)); }
body:not(.land) .modal.settings .switch-row { height: calc(6.4 * var(--vh)); }
body:not(.land) .modal.settings .lang-row { height: calc(6 * var(--vh)); }
body:not(.land) .modal.settings .set-foot { margin-top: auto; margin-bottom: calc(3 * var(--vh)); height: calc(8 * var(--vh)); }
body:not(.land) .modal.settings .set-foot .btn { width: 45.6% !important; height: calc(8 * var(--vh)); font-size: calc(4.4 * var(--vh)) !important; }

/* 12 novidade: cartão 8,3/46,9 82,9×43,7; faixa 41; nome 64,9; dica 71,8; botão 42/79,2 42×8,1; capivara 9,4/72,1 */
body:not(.land) .modal.news { left: calc(8.3 * var(--vw)); top: calc(46.9 * var(--vh)); width: calc(82.9 * var(--vw)); height: calc(43.7 * var(--vh)); padding-top: calc(3 * var(--vh)) !important; gap: calc(1 * var(--vh)) !important; }
body:not(.land) .modal.news > h2.ribbon { top: calc(-5.9 * var(--vh)); }
body:not(.land) .modal.news .news-box { height: calc(14 * var(--vh)); }
body:not(.land) .modal.news .pill.name { width: 68%; height: calc(6.3 * var(--vh)); justify-content: center; font-size: calc(3 * var(--vh)) !important; background: linear-gradient(#ffb3cf, #f48fb4) !important; }
body:not(.land) .modal.news .hint-line { width: 71%; height: calc(5.9 * var(--vh)); margin-left: 20%; font-size: calc(1.9 * var(--vh)) !important; background: #f6dfbd; }
body:not(.land) .modal.news > .btn.big { width: 50.7%; height: calc(8.1 * var(--vh)); margin-left: 41%; }
body:not(.land) .modal.news .peek { top: auto !important; bottom: calc(-8 * var(--vh)); left: calc(1.3 * var(--vw)); right: auto; width: calc(31 * var(--vw)); height: calc(17.6 * var(--vh)) !important; }
body:not(.land) .modal.news .peek .end-capy { height: calc(17.6 * var(--vh)) !important; position: absolute; left: 0 !important; right: auto !important; bottom: 0 !important; top: auto !important; transform: none !important; }

/* 11 loja: moldura 1,6/31,6 96,7×55,4; faixa 4,8/26,3 90,3; linhas 89,calc(5 * var(--vw)) × 11,calc(3 * var(--vh)); Play 42,5/88,4 53,1×9,4 */
body:not(.land) .shop .board { position: absolute !important; left: calc(1.6 * var(--vw)); top: calc(31.6 * var(--vh)); width: calc(96.7 * var(--vw)) !important; height: calc(55.4 * var(--vh)); margin: 0 !important; padding: calc(5 * var(--vh)) calc(2 * var(--vw)) 0 !important; zoom: 1 !important; }
body:not(.land) .shop .board > .ribbon { top: calc(-5.3 * var(--vh)) !important; width: 93%; font-size: calc(4.4 * var(--vh)) !important; }
body:not(.land) .shop .up-list { gap: calc(1 * var(--vh)) !important; }
body:not(.land) .shop .up-card { height: calc(11.3 * var(--vh)); padding: calc(0.6 * var(--vh)) calc(2 * var(--vw)) !important; }
body:not(.land) .shop .up-pic { width: calc(23 * var(--vw)) !important; height: calc(9.8 * var(--vh)) !important; }
body:not(.land) .shop .up-pic img { max-width: 92% !important; max-height: 92% !important; }
body:not(.land) .shop .up-card .btn.buy, body:not(.land) .shop .up-card .pill.max { width: calc(24.4 * var(--vw)); height: calc(6.5 * var(--vh)); font-size: calc(3 * var(--vh)) !important; }
body:not(.land) .shop-foot { position: absolute !important; inset: auto 0 0 0; height: calc(14 * var(--vh)); }
body:not(.land) .shop-foot .btn.green { position: absolute; left: calc(42.5 * var(--vw)); top: auto; bottom: calc(2.2 * var(--vh)); width: calc(53.1 * var(--vw)); height: calc(9.4 * var(--vh)); font-size: calc(4 * var(--vh)) !important; zoom: 1 !important; }
body:not(.land) .shop-foot .foot-capy { position: absolute; left: 0; bottom: 0; height: calc(19 * var(--vh)) !important; }
body:not(.land) .shop-foot .foot-friend { display: none; }

/* 23 vitória deitado: cartão 15,8/35,1 67,4×61,1; faixa 26,3/35,6 46,4×18,1; pílulas 66,7; botões 78,9 (3 lado a lado) */
body.land .modal-back:has(.end) { display: block !important; padding: 0 !important; }
body.land .modal-back .modal.end:not(.lose) { position: absolute !important; zoom: 1 !important; left: calc(15.8 * var(--vw)); top: calc(35.1 * var(--vh)); width: calc(67.4 * var(--vw)); height: calc(61.1 * var(--vhs)); margin: 0 !important;
  padding: calc(16 * var(--vhs)) calc(2 * var(--vw)) 0 !important; display: flex !important; flex-direction: column; flex-wrap: wrap; align-content: center; gap: calc(1.5 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) > h2.ribbon { top: calc(0.5 * var(--vhs)); font-size: calc(7 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) .stars { height: calc(12 * var(--vhs)); min-height: 0 !important; }
body.land .modal.end:not(.lose) .stars .star img { width: calc(11 * var(--vhs)) !important; height: calc(11 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) .sum { width: 65%; height: calc(9.6 * var(--vhs)); gap: calc(2 * var(--vw)) !important; margin: 0 !important; }
body.land .modal.end:not(.lose) .sum .pill { flex: 1; height: 100% !important; font-size: calc(4 * var(--vhs)) !important; justify-content: center; }
body.land .modal.end:not(.lose) > .btn.go { position: absolute; left: 4.6%; top: 71%; width: 29%; height: 19.6%; font-size: calc(4.2 * var(--vhs)) !important; margin: 0 !important; min-width: 0 !important; }
body.land .modal.end:not(.lose) > .btn-row { position: absolute; left: 35.6%; top: 71%; width: 60%; height: 19.6%; gap: 3%; }
body.land .modal.end:not(.lose) .btn-row > .btn { height: 100%; font-size: calc(3.8 * var(--vhs)) !important; min-width: 0 !important; }
body.land .modal.end:not(.lose) .peek { top: calc(-33 * var(--vhs)) !important; height: calc(35 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) .peek .end-capy { height: calc(35 * var(--vhs)) !important; top: 0 !important; }
body.land .modal.end:not(.lose) .peek .friend { height: calc(20 * var(--vhs)) !important; top: calc(14 * var(--vh)) !important; }

/* 24 loja deitado: moldura 25,4/27,1 48,7×67; faixa 26/20,2 47,8; cartões 21,calc(5 * var(--vw))×25,calc(3 * var(--vh)); Play 74,5/78,1 24,5×16,5 */
body.land .shop .board { position: absolute !important; left: calc(25.4 * var(--vw)); top: calc(27.1 * var(--vh)); width: calc(48.7 * var(--vw)) !important; height: calc(67 * var(--vhs)); margin: 0 !important; padding: calc(7.5 * var(--vhs)) calc(1.5 * var(--vw)) 0 !important; zoom: 1 !important; }
body.land .shop .board > .ribbon { top: calc(-6.9 * var(--vhs)) !important; width: 98%; font-size: calc(6 * var(--vhs)) !important; }
body.land .shop .up-list { gap: calc(1.8 * var(--vhs)) calc(1.2 * var(--vw)) !important; }
body.land .shop .up-card { height: calc(25.3 * var(--vhs)); }
body.land .shop .up-pic { width: calc(8 * var(--vw)) !important; height: calc(15 * var(--vhs)) !important; }
body.land .shop-foot .btn.green { position: absolute; left: calc(74.5 * var(--vw)); top: calc(78.1 * var(--vh)); width: calc(24.5 * var(--vw)); height: calc(16.5 * var(--vhs)); font-size: calc(5.6 * var(--vhs)) !important; zoom: 1 !important; margin: 0; }
body.land .shop-foot .foot-capy { position: absolute; left: 0; bottom: 0; height: calc(60 * var(--vhs)) !important; }
body.land .shop .screen-head { zoom: 1 !important; }

/* pedido do William (07/11): estrelas sem achatar; texto da fita rosa branco com contorno */
.stars .star img, .btn.node span img.ns, .pill img, .tip-line img { object-fit: contain !important; }
.ribbon:not(.red):not(.blue):not(.gold) span, .ribbon.pink span, .map-ribbon span, .levels .ribbon span {
  color: #fff !important; -webkit-text-stroke: 0 !important; paint-order: stroke fill;
  text-shadow: 0 0 1px var(--ink), 2px 0 0 var(--ink), -2px 0 0 var(--ink), 0 2px 0 var(--ink), 0 -2px 0 var(--ink), 1.5px 1.5px 0 var(--ink), -1.5px 1.5px 0 var(--ink), 1.5px -1.5px 0 var(--ink), -1.5px -1.5px 0 var(--ink), 0 4px 0 var(--ink) !important; }

.ribbon i.cv { display: inline-block; font-style: normal; transform-origin: 50% 100%; }

/* rodada 1 do critic-polar: medidas exatas */
body:not(.land) .hud { position: absolute; inset: 0 0 auto 0; height: 0; }
body:not(.land) .hud > * { position: absolute !important; margin: 0 !important; }
body:not(.land) .hud .pause-btn { left: calc(1.6 * var(--vw)); top: calc(9.4 * var(--vh)); width: calc(9.4 * var(--vw)) !important; height: calc(5.2 * var(--vh)) !important; }
body:not(.land) .hud .pill { top: calc(10.2 * var(--vh)); height: calc(4.2 * var(--vh)) !important; justify-content: center; font-size: calc(2.4 * var(--vh)) !important; padding: 0 calc(2 * var(--vw)) !important; }
body:not(.land) .hud .pill.lvl { left: calc(11.7 * var(--vw)); width: calc(20.7 * var(--vw)); }
body:not(.land) .hud .hud-coins { left: calc(51 * var(--vw)); width: calc(22.5 * var(--vw)); }
body:not(.land) .hud .hud-served { left: calc(75.2 * var(--vw)); width: calc(23.1 * var(--vw)); }
body:not(.land) .modal.pause > h2.ribbon { width: calc(60 * var(--vw)); font-size: calc(3.8 * var(--vh)) !important; }
body:not(.land) .modal.settings > h2.ribbon { width: calc(64.3 * var(--vw)); }
body:not(.land) .modal.end:not(.lose) > h2.ribbon { width: calc(79.7 * var(--vw)); }
body:not(.land) .modal.end.lose > h2.ribbon { width: calc(54.2 * var(--vw)); font-size: calc(3.9 * var(--vh)) !important; }
body:not(.land) .modal.news > h2.ribbon { width: calc(68 * var(--vw)); }
body:not(.land) .modal > h2.ribbon { padding-left: 0 !important; padding-right: 0 !important; text-align: center; }
body:not(.land) .modal.settings .set-foot { justify-content: flex-start; padding-left: calc(34 * var(--vw)); }
body:not(.land) .modal.settings .pill.lang { width: calc(35.9 * var(--vw)); height: calc(5.9 * var(--vh)) !important; }
body:not(.land) .modal.settings .set-capy { height: calc(19 * var(--vh)) !important; }
body:not(.land) .title > .title-capy { top: 23%; height: 33% !important; }
body:not(.land) .title > .play-wrap { height: 15.3%; top: 62.5%; }
body:not(.land) .levels .map-ribbon { width: calc(57.9 * var(--vw)); height: calc(8.7 * var(--vh)); padding: 0 !important; display: grid !important; place-items: center; }
body:not(.land) .map-foot .btn.shop-btn { height: calc(9.3 * var(--vh)); }
body:not(.land) .shop .coins-pill { margin-top: calc(5 * var(--vh)); height: calc(4.9 * var(--vh)) !important; }
body.land .title > .title-capy { left: 8.4%; top: 33.5%; height: 64% !important; transform: none !important; }
body.land .title > .play-wrap { height: 24%; top: 42.3%; }
body.land .title > .btn.corner { width: calc(7.6 * var(--vw)) !important; height: calc(7.6 * var(--vw)) !important; }
body.land .modal.end:not(.lose) > h2.ribbon { width: calc(46.4 * var(--vw)); padding-left: 0 !important; padding-right: 0 !important; }
body.land .shop-foot .btn.green { top: auto !important; bottom: calc(5.4 * var(--vhs)); }
body.land .shop .screen-head .btn.back { position: absolute; left: calc(1.3 * var(--vw)); top: calc(1.3 * var(--vhs)); width: calc(6.3 * var(--vw)) !important; height: calc(11.5 * var(--vhs)) !important; }
body.land .shop .coins-pill { position: absolute; left: calc(84.3 * var(--vw)); top: calc(1.5 * var(--vhs)); width: calc(14.7 * var(--vw)); height: calc(10.3 * var(--vhs)) !important; font-size: calc(5 * var(--vhs)) !important; justify-content: center; }
body.land .shop .head-logo { position: absolute; left: calc(35.6 * var(--vw)); top: calc(0.5 * var(--vhs)); width: calc(27.8 * var(--vw)) !important; }
body.land .shop-foot .foot-capy { left: calc(4.8 * var(--vw)); bottom: calc(23.5 * var(--vh)); height: calc(40.4 * var(--vhs)) !important; }
body.land .shop .up-list { margin-top: calc(-3 * var(--vhs)); }

/* rodada 2: arte do Codex (fontes/codex/r11) */
img.coin { background: none !important; border: 0 !important; border-radius: 0 !important; object-fit: contain; }
.btn.round.pause-btn { border-image: none !important; background: none !important; padding: 0 !important; filter: none; }
.btn.round.pause-btn img { width: 100%; height: 100%; object-fit: contain; }
.pings { background: url(../assets/img/ray-l.webp) center / contain no-repeat !important; width: 13% !important; height: 70% !important; }
.pings.r { background-image: url(../assets/img/ray-r.webp) !important; transform: translateY(-50%) !important; animation-name: pings !important; }
.pings.l { left: -13% !important; }
.pings.r { right: -13% !important; }
.ribbon.gold::before { background-image: url(../assets/img/plaque.webp) !important; inset: -10px -26px -2px !important; }
.ribbon.gold span { color: var(--ink) !important; text-shadow: 0 2px 0 rgba(255, 255, 255, 0.7) !important; }
.btn.node span { background: url(../assets/img/plinth.webp) center / 100% 100% no-repeat !important; border: 0 !important; padding: 0.35em 0.9em 0.45em !important; bottom: calc(-3.2 * var(--vh)) !important; }

.btn.node span { width: auto !important; height: calc(3.2 * var(--vh)) !important; aspect-ratio: 2.44; padding: 0 !important; justify-content: center; }
.btn.node span img.ns { width: calc(2 * var(--vh)) !important; height: calc(2 * var(--vh)) !important; }
.btn.node span.lk .bi { width: calc(2.2 * var(--vh)) !important; height: calc(2.2 * var(--vh)) !important; }

/* 03 tutorial: balão da capivara guia (21,8/41 27,6×11,2) */
body:not(.land) .banner.speech { left: calc(21.8 * var(--vw)) !important; top: calc(41 * var(--vh)) !important; transform: none !important; width: calc(27.6 * var(--vw)); height: calc(11.2 * var(--vh)); white-space: normal;
  display: grid; place-items: center; text-align: center; font-size: calc(2.3 * var(--vh)) !important; font-weight: 700; line-height: 1.1; padding: calc(0.5 * var(--vh)) calc(1.5 * var(--vw)) !important; }

/* 11 e 24: amigos da loja nas caixas do inventário */
.shop-friend { position: absolute; pointer-events: none; object-fit: contain; object-position: bottom; z-index: 0; }
body:not(.land) .shop-friend { top: calc(14.5 * var(--vh)); height: calc(11.2 * var(--vh)); }
body:not(.land) .shop-friend.f-chick { left: calc(13.8 * var(--vw)); width: calc(21.3 * var(--vw)); }
body:not(.land) .shop-friend.f-kitten { left: calc(35.1 * var(--vw)); width: calc(28.7 * var(--vw)); }
body:not(.land) .shop-friend.f-bee { left: calc(64.8 * var(--vw)); width: calc(23.9 * var(--vw)); }
body.land .shop-friend.f-chick { left: calc(73.3 * var(--vw)); top: calc(35.6 * var(--vh)); width: calc(11.1 * var(--vw)); height: calc(22.3 * var(--vhs)); }
body.land .shop-friend.f-kitten { left: calc(78.6 * var(--vw)); top: calc(46.8 * var(--vh)); width: calc(12.3 * var(--vw)); height: calc(24.4 * var(--vhs)); }
body.land .shop-friend.f-bee { left: calc(90.3 * var(--vw)); top: calc(45.9 * var(--vh)); width: calc(9.7 * var(--vw)); height: calc(26.4 * var(--vhs)); }
body:not(.land) .shop .board { z-index: 1; }
body:not(.land) .shop .coins-pill { position: absolute; left: calc(74.9 * var(--vw)); top: calc(8.4 * var(--vh)); width: calc(23.9 * var(--vw)); margin: 0 !important; justify-content: center; }
body:not(.land) .shop .head-logo { position: absolute; left: calc(26 * var(--vw)); top: calc(0.3 * var(--vh)); width: calc(47.3 * var(--vw)) !important; }
body:not(.land) .shop-foot .foot-capy { left: calc(2.7 * var(--vw)); height: calc(17.8 * var(--vh)) !important; }
/* 08: amigos em busto acima do cartão */
body:not(.land) .modal.settings .peek .friend { top: calc(1.3 * var(--vh)) !important; height: calc(11 * var(--vh)) !important; transform: none !important; object-fit: contain; object-position: bottom; }
body:not(.land) .modal.settings .peek .friend.l { left: calc(9.3 * var(--vw)) !important; width: calc(21 * var(--vw)); }
body:not(.land) .modal.settings .peek .friend.r { left: calc(30.1 * var(--vw)) !important; right: auto !important; width: calc(27.1 * var(--vw)); }
body:not(.land) .modal.settings .peek .friend.m { left: calc(59.9 * var(--vw)) !important; width: calc(23.4 * var(--vw)); }

/* 09 e 23: cartão de vitória desenhado no Codex (borda recortada; louros no deitado) */
.modal.end:not(.lose) { background: url(../assets/img/panel-win.webp) center / 100% 100% no-repeat !important; border: 0 !important; box-shadow: none !important; }
body.land .modal.end:not(.lose) { background-image: url(../assets/img/panel-win-land.webp) !important; }

/* loja (11 e 24), rodada 3: quadro e faixa do Codex; peças absolutas medidas pela tela, não pelo cabeçalho */
.shop .screen-head { position: static !important; }
.shop .board { background: none !important; border: 0 !important; box-shadow: none !important; border-image: url(../assets/img/board-shop.webp) 60 fill / calc(4.2 * var(--vh)) stretch !important; }
.shop .board > .ribbon::before { background-image: url(../assets/img/rib-laurel.webp) !important; inset: -10% -6% -14% !important; background-size: 100% 100% !important; }
body.land .shop .up-pic { background: none !important; border: 0 !important; }
body.land .shop .pip.on { background: radial-gradient(circle at 35% 30%, #c8f59a, #4fb83a); }
.shop-case { position: absolute; left: 0; bottom: 0; width: calc(25.5 * var(--vw)); height: calc(25 * var(--vh)); object-fit: contain; object-position: left bottom; pointer-events: none; z-index: 2; }
.shop-foot .btn.green { color: var(--ink) !important; -webkit-text-stroke: 0 !important; text-shadow: 0 2px 0 rgba(255, 255, 255, 0.5); }
.shop .btn.buy img.coin { width: 1.45em !important; height: 1.45em !important; border: 0 !important; background: none !important; }
.shop-foot .btn.green { white-space: nowrap; padding: 0 1.2em 0 0.9em !important; justify-content: center; gap: 0.25em; }
body:not(.land) .shop-foot .btn.green { font-size: calc(3.6 * var(--vh)) !important; }
body.land .shop .up-pic { width: calc(10.5 * var(--vw)) !important; height: calc(19 * var(--vhs)) !important; }
body.land .shop .up-txt b { font-size: calc(3.9 * var(--vhs)) !important; line-height: 1.05; }

/* vitória (09/23), rodada 3: texto escuro nos botões; no deitado Next day verde e Shop dourado (mockup 23) */
.modal.end .btn.pink, .modal.end .btn.purple { color: var(--ink) !important; -webkit-text-stroke: 0 !important; text-shadow: 0 2px 0 rgba(255, 255, 255, 0.45) !important; }
body.land .modal.end:not(.lose) .btn.go { border-image-source: url(../assets/img/btn-green.webp) !important; }
body.land .modal.end:not(.lose) .btn.purple { border-image-source: url(../assets/img/btn-gold.webp) !important; }
body.land .modal.end:not(.lose) .sum .pill.goal { background: #fff8ea !important; }
body.land #ui:has(.modal.end:not(.lose)) .hud { visibility: hidden; }
body.land .modal-back:has(.modal.end:not(.lose))::before { content: ''; position: absolute; left: calc(1.2 * var(--vw)); top: calc(2 * var(--vhs)); width: calc(25 * var(--vw)); height: calc(19 * var(--vhs)); background: url(../assets/img/logo.webp) left top / contain no-repeat; z-index: 3; }
body.land .modal.end:not(.lose) .peek .friend.l { left: 16.6% !important; top: calc(16 * var(--vh)) !important; height: calc(23 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) .peek .friend.r { right: 19.6% !important; top: calc(11 * var(--vh)) !important; height: calc(24 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) .peek .friend.r2 { right: 4.7% !important; top: calc(21 * var(--vh)) !important; height: calc(23 * var(--vhs)) !important; transform: none; }
body.land .modal.end:not(.lose) .stars { height: calc(18 * var(--vhs)); }
body.land .modal.end:not(.lose) .stars .star img { width: calc(13.5 * var(--vhs)) !important; height: calc(13.5 * var(--vhs)) !important; }
body.land .modal.end:not(.lose) .stars .star:nth-child(2) img { width: calc(15.5 * var(--vhs)) !important; height: calc(15.5 * var(--vhs)) !important; }

/* ajustes (08), rodada 3: logo no alto, Back largo, idioma em letra escura */
.set-logo { position: absolute; left: calc(23 * var(--vw)); top: calc(2.5 * var(--vh)); width: calc(54 * var(--vw)); z-index: 1; pointer-events: none; }
body.land .set-logo { left: calc(36 * var(--vw)); width: calc(28 * var(--vw)); top: calc(1 * var(--vhs)); }
body:not(.land) .modal.settings .set-foot .btn.primary.big { width: calc(40 * var(--vw)) !important; max-width: none !important; }
.modal.settings .pill.lang { color: var(--ink) !important; -webkit-text-stroke: 0 !important; text-shadow: none !important; }

/* rodada 4: painel creme de borda dourada do Codex nos modais 07, 10 e 12; faixa azul nova; Play Day sem cortar */
.modal.pause, .modal.news, .modal.end.lose { background: none !important; border: 0 !important; box-shadow: none !important; border-image: url(../assets/img/panel-gold.webp) 70 fill / calc(4.5 * var(--vh)) stretch !important; }
body.land .modal.pause, body.land .modal.news, body.land .modal.end.lose { border-image-width: calc(6 * var(--vhs)) !important; }
.ribbon.blue::before { background-image: url(../assets/img/rib3-blue.webp) !important; }
body.land .shop-foot .btn.green { font-size: calc(4.8 * var(--vhs)) !important; }

/* título (pedido do William 07/11): PLAY e botões redondos desenhados no Codex, sem esticar; capivara viva */
.title .btn.huge.play { border-image: none !important; background: url(../assets/img/btn-play-big.webp) center / contain no-repeat !important; filter: drop-shadow(0 4px 0 rgba(58, 36, 22, 0.22)); height: auto !important; aspect-ratio: 900 / 370; width: 100% !important; }
.title > .play-wrap { height: auto !important; display: grid; place-items: center; }
.btn.corner, .btn.round.back { border-image: none !important; background: url(../assets/img/btn-round.webp) center / contain no-repeat !important; aspect-ratio: 1; }
.btn.corner .bi, .btn.round.back .bi { width: 58% !important; height: 58% !important; }
.title > .title-capy { transform-origin: 50% 100%; scale: var(--esx, 1) var(--esy, 1); animation: capy-idle 2.8s ease-in-out infinite !important; }
@keyframes capy-idle { 0%, 100% { scale: var(--esx, 1) var(--esy, 1); rotate: -1.5deg; } 50% { scale: calc(var(--esx, 1) * 1.015) calc(var(--esy, 1) * 1.03); rotate: 1.5deg; } } /* --esx/--esy: escala do editor de layout */
body.calm .title > .title-capy { animation: none !important; }

/* ultrawide e telas deitadas altas (3440x1440): peças em px crescem com a altura (--kz, nunca encolhe) */
body.land .hud { zoom: var(--kz, 1); }
body.land .up-card .pips, body.land .up-card .btn.buy, body.land .up-card .pill.max { zoom: var(--kz, 1); }
body.land .title > .btn.corner { max-width: none !important; max-height: none !important; }
body.land .levels .screen-head, body.land .levels .map-ribbon, body.land .levels .map-foot { zoom: var(--kz, 1); }
body.land .shop .up-pic img { max-width: 92% !important; max-height: 92% !important; }
body.land .shop .head-logo { width: min(calc(27.8 * var(--vw)), calc(49.4 * var(--vhs))) !important; left: calc(50 * var(--vw) - min(calc(13.9 * var(--vw)), calc(24.7 * var(--vhs)))) !important; }
body.land .shop .up-card { grid-template-columns: calc(10.5 * var(--vw)) minmax(0, 1fr) !important; column-gap: calc(0.8 * var(--vw)) !important; }

/* ultrawide (pedido do William): só o fundo fica no palco; o que é de borda vai para a borda da janela de verdade */
body.land .hud, body.land .btn.back, body.land .btn.round.back, body.land .modal-back:has(.modal.end:not(.lose))::before { translate: calc(-1 * var(--sx, 0px)) 0; }
body.land .rush, body.land .title > .btn.corner, body.land .shop .coins-pill, body.land .levels .coins-pill, body.land .shop-foot .btn.green { translate: var(--sx, 0px) 0; }
.modal-back { box-shadow: 0 0 0 100vmax rgba(58, 36, 22, 0.42); }
.levels { isolation: isolate; }
.levels::before { content: ''; position: absolute; inset: -30px; background: var(--map-bg) center / cover; filter: blur(16px) brightness(0.85); z-index: -1; }
body.land .hud { translate: calc(-1 * var(--sx, 0px) / var(--kz, 1)) 0; }
body.land .levels .coins-pill { translate: calc(var(--sx, 0px) / var(--kz, 1)) 0; }
body.land .modal.end:not(.lose) .sum { position: absolute; top: 51.8%; left: 17.5%; }
body.land .shop .up-list { margin-top: calc(1.5 * var(--vhs)) !important; }
body.land .levels .btn.back { translate: calc(-1 * var(--sx, 0px) / var(--kz, 1)) 0; }
body.land .board .up-list { display: grid !important; }
body.land .levels .map-ribbon { font-size: clamp(16px, calc(5.2 * var(--vhs)), 34px) !important; }
body:not(.land) .title > .logo { width: min(84%, calc(47.3 * var(--vh))) !important; left: calc(50% - min(42%, calc(23.65 * var(--vh)))) !important; }
@media (orientation: landscape) and (max-height: 560px) {
  .levels .head-logo { display: none; }
  body.land .up-card .btn.buy, body.land .up-card .pill.max { font-size: calc(3.4 * var(--vhs)) !important; padding: 0 calc(1.4 * var(--vhs)) !important; }
  body.land .up-card .pip { width: calc(3.6 * var(--vhs)) !important; height: calc(3.6 * var(--vhs)) !important; }
  body.land .up-card .pips { gap: calc(0.6 * var(--vhs)) !important; }
}
body:not(.land) .levels .map-ribbon { width: min(calc(57.9 * var(--vw)), calc(32.6 * var(--vh))) !important; height: min(calc(8.7 * var(--vh)), calc(15 * var(--vw))) !important; font-size: min(calc(4.4 * var(--vh)), calc(7.5 * var(--vw))) !important; }
@media (orientation: portrait) and (min-aspect-ratio: 2/3) { body:not(.land) .levels .map-ribbon { height: calc(7 * var(--vh)) !important; font-size: calc(3.6 * var(--vh)) !important; } } /* tablet em pé: o mapa encosta na faixa */
@media (orientation: landscape) and (max-height: 560px) { body.land .levels .map-ribbon { margin-top: calc(-1 * var(--vhs)) !important; font-size: calc(4.6 * var(--vhs)) !important; } }
.levels::after { content: ''; position: absolute; inset: 0; background: var(--map-bg) var(--map-pos, center) / var(--map-size, cover) no-repeat; z-index: -1; pointer-events: none; }
.shop, .levels { overflow: visible !important; }
.btn:not(.node), .pill, .up-txt b, .tip-line { white-space: nowrap; }
body:not(.land) .modal.pause .mini-toggle .knob { height: calc(6.4 * var(--vw)) !important; }
body:not(.land) .modal.pause .mini-toggle .knob::after { width: calc(6.4 * var(--vw) - 11px) !important; height: calc(6.4 * var(--vw) - 11px) !important; }
body:not(.land) .modal.pause .mini-toggle input:checked + .knob::after { transform: translateX(calc(5.3 * var(--vw))) !important; }
/* faixas: texto centralizado na fita, no meio da altura da parte reta */
.ribbon { text-align: center !important; }
.ribbon > span { display: inline-block; vertical-align: middle; line-height: 1; }
/* fitas largas do Codex (r13): sempre inteiras na proporção da arte, nunca esticadas; texto no meio da parte reta */
.ribbon::before { background: url(../assets/img/rib3-pink.webp) center / contain no-repeat !important; inset: -0.3em -0.4em !important; }
.ribbon.red::before, .day-open::before { background-image: url(../assets/img/rib3-red.webp) !important; }
.ribbon.blue::before { background-image: url(../assets/img/rib3-blue.webp) !important; }
.ribbon.gold::before { background-image: url(../assets/img/rib3-gold.webp) !important; }
.shop .board > .ribbon::before { background-image: url(../assets/img/rib3-laurel.webp) !important; inset: -0.3em -0.4em !important; background-size: contain !important; }
.ribbon { padding: 0.5em 1.6em !important; }
.ribbon::before, .shop .board > .ribbon::before { background-position: center 62% !important; }
body:not(.land) .modal.pause > h2.ribbon { width: calc(78 * var(--vw)) !important; }
body:not(.land) .modal.settings > h2.ribbon { width: calc(80 * var(--vw)) !important; }
body:not(.land) .modal.end:not(.lose) > h2.ribbon { width: calc(88 * var(--vw)) !important; }
body:not(.land) .modal.end.lose > h2.ribbon { width: calc(74 * var(--vw)) !important; }
body:not(.land) .modal.news > h2.ribbon { width: calc(86 * var(--vw)) !important; }
body:not(.land) .modal.end.lose h3.ribbon.sub { width: 96% !important; }

/* continua em fit.css (fitas, responsivo e acabamento) */

/* End of css/screens.css */
