/* 0.15.0: modelos aprovados na rodada 4, com textos independentes da arte. */
.hud{inset:0;min-height:0;padding:0;pointer-events:none}
.coin-wallet{pointer-events:auto}
.walk-feedback{position:absolute;width:24px;height:24px;border:2px solid #fff0c1;border-radius:50%;background:#fff0c118;transform:translate(-50%,-50%);box-shadow:0 0 0 5px #173e3220;pointer-events:none;z-index:2}.walk-feedback[data-state="blocked"]{border-color:#e8a48e;background:#d9826820}.walk-feedback[data-state="junction"]{border-color:#f3cf78}.walk-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hud .hud-button{position:absolute;left:calc(8px + env(safe-area-inset-left));width:48px;height:48px;display:block;padding:0;border:0;border-radius:15px;background:none;box-shadow:none;color:#214a34;pointer-events:auto;z-index:3}
.hud-porcelain-art{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;display:block}
#pause{top:calc(12px + env(safe-area-inset-top))}
#speed{top:calc(66px + env(safe-area-inset-top));width:60px;height:48px;color:#214a34}
#speed .speed-symbol{position:absolute;left:7px;top:10px;width:19px;height:28px;fill:currentColor;filter:drop-shadow(0 1px .35px #08261775);pointer-events:none}
#speed .speed-value{position:absolute;right:5px;top:50%;translate:0 -50%;width:26px;min-width:0;font:900 20px/1 'Trebuchet MS',sans-serif;letter-spacing:-.6px;white-space:nowrap;text-align:center;color:inherit;text-shadow:0 1px 0 #fff7d8;pointer-events:none}
#speed[data-speed="2"]{color:#fff5d7}
#speed[data-speed="2"] .speed-value{text-shadow:0 1px 1px #163e2e}
#speed:active,#pause:active{translate:0 2px}
.coin-wallet{left:calc(64px + env(safe-area-inset-left));right:auto;top:calc(18px + env(safe-area-inset-top));width:auto;min-width:75px;max-width:calc(100% - 184px);height:34px;gap:6px;padding:3px 8px;border:1px solid #d9c792;border-radius:24px;background:#173e32f5;box-shadow:0 2px 4px #102e2520}.coin-wallet b{font-size:17px;min-width:18px}.coin-wallet .navigation-icon{width:23px;height:23px}
#mini-button{top:calc(12px + env(safe-area-inset-top));right:calc(8px + env(safe-area-inset-right));width:104px;max-width:30%;padding:5px;border:1px solid #dfca96;border-radius:14px;background:#173e32f5;box-shadow:0 2px 5px #123c3030}#minimap{border-radius:8px}#mini-button #map-caption{font:700 8px/1.15 'Trebuchet MS',sans-serif;margin:4px 0 0;letter-spacing:0}#mini-button #fragment-count{font-size:7px;margin:2px 0 0}
.control-stack{position:absolute;inset:auto calc(6px + env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) auto;display:flex;flex-direction:column;gap:6px;width:56px;align-items:center;pointer-events:none}
.control-stack .action.porcelain-tool{--tool-size:56px;width:56px;height:56px;flex-shrink:0;border:0;pointer-events:auto}.control-stack .action.porcelain-tool .ceramic-label{font-size:8.4px}.control-stack .action.porcelain-tool .porcelain-status{right:0;top:0;font-size:8px;padding:1px 3px;min-width:14px;min-height:12px;line-height:1.1}.control-stack #map-tool.porcelain-tool .porcelain-status{min-width:25px}.control-stack #hint:disabled{opacity:1}.control-stack #hint:disabled .porcelain-art{filter:grayscale(1);opacity:.75}.control-stack #hint:disabled .porcelain-status{background:#8d9881}
.chapter-tag{top:calc(144px + env(safe-area-inset-top));left:50%;translate:-50% 0;transform:none;width:max-content;max-width:86%;padding:11px 15px;border:1px solid #bdc79499;border-radius:18px;background:#173e32fa;color:#fff1cf;box-shadow:0 3px 12px #10362a30;text-shadow:none;font:600 12px/1.4 'Trebuchet MS',sans-serif;pointer-events:none;transition:opacity .3s}
#toast{top:calc(144px + env(safe-area-inset-top));background:#173e32fa;color:#fff1cf;border:1px solid #bdc79499;border-radius:18px;box-shadow:0 3px 12px #10362a30;font:600 12px/1.4 'Trebuchet MS',sans-serif}
.discovery-notice{position:absolute;z-index:23;background:#173e32fa;color:#fff3d6;padding:10px 12px;border:1px solid #bfcd99;border-radius:14px;box-shadow:0 4px 12px #14392b38;font:600 12px/1.35 'Trebuchet MS',sans-serif;pointer-events:none}.discovery-notice strong,.discovery-notice span{display:block}.discovery-notice span{font-size:10px;font-weight:400;color:#e0e9c9;margin-top:3px}.discovery-notice.show{animation:discovery-show 2.5s both}@keyframes discovery-show{0%{opacity:0;translate:5px 0}10%,88%{opacity:1;translate:0 0}100%{opacity:0;translate:0 -3px}}
.coin-gain{position:absolute;z-index:23;translate:-50% 0;font-weight:800;font-size:15px;line-height:1.25;padding:3px 8px;border-radius:10px;background:#173e32f5;color:#ffe5a0;pointer-events:none;white-space:nowrap}.coin-gain.show{animation:coin-gain-rise 1.6s both}@keyframes coin-gain-rise{0%{opacity:0;transform:translateY(8px)}18%,70%{opacity:1}100%{opacity:0;transform:translateY(-18px)}}

/* B: mesma bandeja curva, mapa grande e esmalte da imagem aprovada. */
dialog[data-kind="unlock"]{position:fixed;inset:auto 0 0;margin:0 auto;width:min(100vw,calc(100dvh * .58),510px);max-width:510px;max-height:calc(100dvh - 24px - env(safe-area-inset-top));padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible;color:#204a35}
dialog[data-kind="unlock"]::after{display:none}
dialog[data-kind="unlock"]::backdrop{background:#102f2655;backdrop-filter:blur(2px)}
dialog[data-kind="unlock"] .dialog-inner{position:relative;isolation:isolate;padding:0;max-height:calc(100dvh - 24px - env(safe-area-inset-top));overflow-y:auto;scrollbar-width:thin;border-radius:0;background:none}
.unlock-tray-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
dialog[data-kind="unlock"] .close{right:18px;top:42px;width:42px;height:42px;display:grid;place-items:center;padding:0;border:2px solid #d9c69d;border-radius:50%;background:radial-gradient(ellipse at 32% 24%,#fffdf0,#f7ebce 65%,#dcca9f);color:#355a3a;box-shadow:inset 0 0 0 2px #fff9e7,inset 0 3px 0 #fffef5,0 3px 4px #8a754549;font:900 29px/1 'Trebuchet MS',sans-serif;z-index:4;text-shadow:0 1px 0 #fff8db}
.unlock-card{position:relative;text-align:center;padding:4px 18px calc(15px + env(safe-area-inset-bottom));z-index:1}
.unlock-card::before,.unlock-card::after{display:none}
.unlock-hero{position:relative;width:68%;height:116px;display:block;margin:0 auto 1px;background:none;border-radius:0}
.unlock-hero-art{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none}
dialog[data-kind="unlock"] h2{font:900 clamp(29px,4.3dvh,38px)/1.1 'Trebuchet MS',sans-serif;letter-spacing:-.4px;margin:0 25px 9px;color:#153f2e;text-shadow:0 1px 0 #fff9e5}
.unlock-description{font:500 15px/1.3 'Trebuchet MS',sans-serif!important;color:#204a35;max-width:330px;min-height:0;margin:0 auto 11px!important}
.unlock-pieces{position:absolute;right:23px;top:96px;display:block;border:1px solid #a4af7e;background:#e6e8ce;border-radius:99px;padding:3px 8px;font-size:11px;color:#36583c;font-weight:800}
.unlock-choices{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;width:calc((100% - 10px) * .8 + 10px);margin:14px auto 0}
.game-choice,.game-choice.video-choice{position:relative;width:100%;aspect-ratio:1.66;min-height:0;height:auto;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:0;padding:0;border:0;border-radius:20px;background:none;box-shadow:none;color:#fff7df;isolation:isolate}
.game-choice::before{display:none}
.choice-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.game-choice .choice-symbol{position:absolute;left:5%;right:5%;top:13%;height:40%;display:flex;align-items:center;justify-content:center;gap:5px;font:900 26px/1 'Trebuchet MS',sans-serif;text-shadow:0 2px 2px #173c3280}
.game-choice .choice-symbol b{font:inherit}.game-choice .navigation-icon{width:32px;height:32px;filter:drop-shadow(0 2px 1px #12372c55)}
.game-choice strong{position:absolute;left:4%;right:4%;bottom:17%;font:800 15px/1.05 'Trebuchet MS',sans-serif;max-width:none;word-break:normal;text-align:center;text-shadow:0 1px 1px #153c3270}
.game-choice.video-choice{color:#164a5c}.game-choice.video-choice strong{text-shadow:0 1px 0 #e0f6ff99}
.game-choice:disabled,.game-choice.video-choice:disabled{opacity:1;background:none;border:0;box-shadow:none;color:#647060}
.game-choice:disabled .choice-art{filter:grayscale(1) brightness(1.06);opacity:.64}.game-choice:disabled .navigation-icon{filter:grayscale(1);opacity:.8}.game-choice:disabled strong,.game-choice:disabled .choice-symbol{text-shadow:0 1px 0 #eef1e2}
.game-choice:not(:disabled):active{transform:translateY(2px);box-shadow:none}
.choice-reason{font:600 10px/1.25 'Trebuchet MS',sans-serif!important;min-height:15px;margin:5px 0 0!important;color:#65715b}
.unlock-wallet{margin:8px 0 0!important;font-size:11px!important;color:#465d42}
.unlock-find{font-size:12px!important;padding:10px 4px 5px!important;color:#486a49!important}
.unlock-demo-note{margin:3px 0 0!important;font-size:9px!important;line-height:1.25!important;color:#768068}
@media(max-height:640px){.unlock-card{padding:3px 14px calc(8px + env(safe-area-inset-bottom))}.unlock-hero{height:88px;width:64%}dialog[data-kind="unlock"] h2{font-size:28px;margin-bottom:6px}.unlock-description{font-size:12px!important;margin-bottom:6px!important;max-width:270px}.unlock-choices{margin-top:10px;gap:8px}.game-choice strong{font-size:13px}.game-choice .choice-symbol{font-size:24px;gap:5px}.game-choice .navigation-icon{width:30px;height:30px}.unlock-pieces{top:78px;right:15px;font-size:9px}dialog[data-kind="unlock"] .close{top:32px;right:13px;width:34px;height:34px;font-size:25px}.unlock-wallet{font-size:10px!important;margin-top:3px!important}.unlock-find{font-size:10px!important;padding:7px 4px 3px!important}.unlock-demo-note{font-size:8px!important}.choice-reason{font-size:9px!important;min-height:12px}.chapter-tag{top:calc(138px + env(safe-area-inset-top))}}
@media(prefers-reduced-motion:reduce){.chapter-tag,#toast{transition:none}.coin-gain{animation:none}.discovery-notice.show{animation:none}}

/* Início e catálogo: fluxo simples, sem classificação de dificuldade. */
.home-bottom{padding-bottom:calc(4px + env(safe-area-inset-bottom))}
.home-bottom #begin{font-size:19px;padding:16px 22px}
.home-bottom .secondary{font-size:15px;font-weight:700;padding:13px 18px;border-color:#e8d7a77a;background:#f8edce16}
.home-bottom .version{margin-top:16px;font-size:8px}
.maze-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.maze-card{min-width:0;border:1px solid #bac59b;border-radius:17px;background:#f5f0dc;color:#284f36;padding:9px;text-align:center;box-shadow:0 3px 0 #a8b38b35}
.maze-card canvas{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:10px;background:#f6f0db;pointer-events:none}
.maze-card strong{display:block;font-size:12px;line-height:1.25;margin:9px 0 5px;min-height:30px}
.maze-card small{display:block;font-size:10px;color:#74825f}
.maze-card:active{transform:translateY(2px)}
.gallery-pages{display:flex;align-items:center;justify-content:space-between;gap:9px;margin:16px 0 0}
.gallery-pages .secondary{width:auto;min-width:0;margin:0;padding:10px;font-size:11px}
.gallery-pages span{font-size:10px;white-space:nowrap;color:#6c7e58}
.preview-dimensions{text-align:center;font-size:12px!important;margin:4px!important}
@media(max-height:640px){.home-title{padding-top:22px}.home-title p{font-size:12px;margin-top:12px}.home h1{font-size:50px}.home-character{top:39%;height:25%}.home-bottom #begin{padding:13px 18px;font-size:18px}.home-bottom .secondary{padding:11px 14px;font-size:14px}.home-bottom .version{margin-top:11px}.maze-gallery{gap:9px}.maze-card{padding:6px}.maze-card strong{font-size:11px}}
