@font-face{font-family:"Fredoka";src:url(../fonts/fredoka.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Nunito";src:url(../fonts/nunito.woff2) format("woff2");font-weight:200 1000;font-display:swap}
:root{--noite:#1a0840;--roxo:#2a0f5e;--roxo2:#4a1d96;--violeta:#7c4dff;--lilas:#efe7ff;--dourado:#f6b93b;--dourado2:#ffd97a;
--rosa:#f48fb1;--rosa2:#ffd6e5;--ruivo:#d9541e;--teal:#1fa99a;--creme:#fff8ec;--texto:#2b1b4a;
--tit:"Fredoka",system-ui,sans-serif;--txt:"Nunito",system-ui,sans-serif;--btn:64px}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;overflow:hidden;background:var(--noite);overscroll-behavior:none}
body{position:fixed;inset:0;font-family:var(--txt);color:#fff;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:100%}
img{-webkit-user-drag:none;user-select:none;pointer-events:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer;touch-action:manipulation;padding:0}
button:focus-visible,a:focus-visible{outline:4px solid var(--dourado2);outline-offset:3px}
#app{position:fixed;inset:0;overflow:hidden}
.tela{position:absolute;inset:0;display:none;overflow:hidden}
.tela.ativa{display:block}
.bg{position:absolute;inset:0;background-size:cover;background-position:center}
.sprite{position:absolute;display:block}
.estrelas{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(2px 2px at 20% 30%,#fff,transparent),radial-gradient(1.5px 1.5px at 70% 20%,#ffe9a8,transparent),radial-gradient(2px 2px at 40% 80%,#fff,transparent),radial-gradient(1.5px 1.5px at 85% 65%,#fff,transparent),radial-gradient(1.5px 1.5px at 10% 70%,#ffd97a,transparent),radial-gradient(2px 2px at 55% 50%,#fff,transparent);background-size:300px 300px;animation:brilho 4s ease-in-out infinite alternate;opacity:.7}
@keyframes brilho{to{opacity:.25}}

/* ---------- botões ---------- */
.b-grande{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:72px;min-width:180px;padding:.5em 1.3em;border-radius:999px;font-family:var(--tit);font-weight:700;font-size:clamp(1.4rem,4.5vmin,2rem);transition:transform .15s}
.b-grande:active{transform:scale(.94)}
.b-dourado{background:linear-gradient(180deg,var(--dourado2),var(--dourado));color:var(--roxo);box-shadow:0 7px 0 #b9811a,0 14px 26px rgba(0,0,0,.35)}
.b-roxo{background:linear-gradient(180deg,#8a5cff,var(--roxo2));color:#fff;box-shadow:0 7px 0 #2a0f5e,0 14px 26px rgba(0,0,0,.35)}
.b-redondo{width:var(--btn);height:var(--btn);border-radius:50%;background:rgba(42,15,94,.78);border:3px solid rgba(255,217,122,.85);display:flex;align-items:center;justify-content:center;box-shadow:0 5px 0 rgba(0,0,0,.35);transition:transform .15s;flex:none}
.b-redondo:active{transform:scale(.9)}
.ico{width:34px;height:34px;background:#fff;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat;display:block}
.ico-casa{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3 2 12h3v8h5v-5h4v5h5v-8h3z'/%3E%3C/svg%3E")}
.ico-repetir{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5V1L7 6l5 5V7a6 6 0 1 1-6 6H4a8 8 0 1 0 8-8z'/%3E%3C/svg%3E")}
.ico-musica{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 3v10.6A4 4 0 1 0 14 17V7h4V3z'/%3E%3C/svg%3E")}
.ico-som{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9v6h4l5 5V4L7 9zm13.5 3A4.5 4.5 0 0 0 14 8v8a4.5 4.5 0 0 0 2.5-4zM14 3.2v2.1a7 7 0 0 1 0 13.4v2.1a9 9 0 0 0 0-17.6z'/%3E%3C/svg%3E")}
.mudo .ico-som{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 9v6h4l5 5V4L7 9zm18.4 6L20 16.4 17.6 14 15.2 16.4 13.8 15l2.4-2.4-2.4-2.4 1.4-1.4 2.4 2.4 2.4-2.4 1.4 1.4-2.4 2.4z'/%3E%3C/svg%3E")}
.ico-maq{--m:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19.4 13a7.5 7.5 0 0 0 0-2l2.1-1.6-2-3.5-2.5 1a7.6 7.6 0 0 0-1.7-1L15 3h-4l-.3 2.9a7.6 7.6 0 0 0-1.7 1l-2.5-1-2 3.5L6.6 11a7.5 7.5 0 0 0 0 2l-2.1 1.6 2 3.5 2.5-1a7.6 7.6 0 0 0 1.7 1L11 21h4l.3-2.9a7.6 7.6 0 0 0 1.7-1l2.5 1 2-3.5zM13 15.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7z'/%3E%3C/svg%3E");background:var(--roxo)}
#b-musica.desl,#b-som.desl{opacity:.55;border-color:#bbb}
#b-musica.desl::after{content:"";position:absolute;width:44px;height:4px;background:#fff;border-radius:2px;transform:rotate(-45deg)}
#b-musica{position:relative}
.ico-album{display:inline-block;width:40px;height:40px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Crect x='6' y='5' width='34' height='40' rx='5' fill='%23f48fb1' stroke='%232a0f5e' stroke-width='3'/%3E%3Crect x='6' y='5' width='8' height='40' rx='3' fill='%23d9541e' stroke='%232a0f5e' stroke-width='3'/%3E%3Cpath d='M27 14l2.6 5.3 5.8.8-4.2 4.1 1 5.8-5.2-2.7-5.2 2.7 1-5.8-4.2-4.1 5.8-.8z' fill='%23ffd97a' stroke='%232a0f5e' stroke-width='2'/%3E%3C/svg%3E") center/contain no-repeat}

/* ---------- início ---------- */
#t-inicio{background:radial-gradient(ellipse at 50% 40%,#4a1d96,#1a0840 70%)}
.inicio-cx{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2vmin;text-align:center;padding:16px}
.inicio-logo{width:min(46vmin,260px);height:auto;filter:drop-shadow(0 8px 20px rgba(0,0,0,.4))}
#t-inicio h1{font-family:var(--tit);font-weight:700;font-size:clamp(1.7rem,6vmin,3.2rem);line-height:1.05;margin:0 0 2vmin;text-shadow:0 4px 16px rgba(0,0,0,.4)}
#t-inicio h1 span{color:var(--dourado2)}
.tri{width:0;height:0;border-left:24px solid var(--roxo);border-top:15px solid transparent;border-bottom:15px solid transparent}
#b-comecar{animation:pulsa 1.6s ease-in-out infinite}
@keyframes pulsa{50%{transform:scale(1.07)}}
.inicio-dica{font-weight:800;opacity:.85;margin:1.5vmin 0 0;font-size:1.1rem}
@media (orientation:landscape) and (max-height:500px){.inicio-cx{flex-direction:row;flex-wrap:wrap;gap:3vw}.inicio-logo{width:38vh}#t-inicio h1{width:100%;order:-1;margin:0}}

/* ---------- barra ---------- */
#barra{position:absolute;left:0;right:0;top:0;display:none;align-items:center;gap:10px;padding:10px 12px;padding-top:max(10px,env(safe-area-inset-top));z-index:30;pointer-events:none}
#barra>*{pointer-events:auto}
#barra .esp{flex:1;pointer-events:none}
.tela-casa #barra,.tela-fase #barra,.tela-album #barra{display:flex}
.tela-casa #b-casa{visibility:hidden}

/* ---------- casa ---------- */
#maq-cx{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:var(--maq,60vmin);aspect-ratio:1/1}
#maq-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 12px 30px rgba(0,0,0,.45));z-index:2}
#maq-janela{position:absolute;z-index:3;border-radius:50%;overflow:hidden;left:var(--jx);top:var(--jy);width:var(--jd);height:var(--jd);box-shadow:inset 0 0 0 4px rgba(0,0,0,.15)}
#roda{position:absolute;inset:0;border-radius:50%;transition:transform 3.6s cubic-bezier(.12,.75,.15,1)}
#roda svg{width:100%;height:100%;display:block}
#roda-brilho{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 32% 25%,rgba(255,255,255,.55),rgba(255,255,255,0) 35%);pointer-events:none}
#maq-ponteiro{position:absolute;z-index:4;left:50%;top:calc(var(--jy) - 2%);width:12%;height:12%;transform:translateX(-50%);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 44'%3E%3Cpath d='M20 42 4 12a16 16 0 1 1 32 0z' fill='%23e62117' stroke='%23fff' stroke-width='3'/%3E%3Ccircle cx='20' cy='14' r='6' fill='%23fff'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 3px 3px rgba(0,0,0,.4))}
#b-girar{position:absolute;inset:0;z-index:5;border-radius:50%}
.lamp{position:absolute;z-index:3;width:9%;height:9%;border-radius:50%;background:radial-gradient(circle,rgba(255,240,170,.95),rgba(255,200,80,0) 70%);animation:lamp 1.2s ease-in-out infinite alternate;pointer-events:none}
.lamp.l1{left:var(--l1x);top:var(--l1y)}.lamp.l2{left:var(--l2x);top:var(--l2y);animation-delay:.6s}
.girando .lamp{animation-duration:.18s}
@keyframes lamp{from{opacity:.3;transform:scale(.8)}to{opacity:1;transform:scale(1.3)}}
.engr{position:absolute;z-index:1;border-radius:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cg fill='%23c9952e' stroke='%237a5310' stroke-width='3'%3E%3Cpath d='M-6-48h12l2 10 8 3 8-6 9 9-6 8 3 8 10 2v12l-10 2-3 8 6 8-9 9-8-6-8 3-2 10H-6l-2-10-8-3-8 6-9-9 6-8-3-8-10-2V-6l10-2 3-8-6-8 9-9 8 6 8-3z'/%3E%3Ccircle r='14' fill='%235a3a08'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;animation:gira 9s linear infinite}
.e1{width:34%;height:34%;left:-8%;top:8%}.e2{width:26%;height:26%;right:-4%;top:0;animation-direction:reverse;animation-duration:7s}.e3{width:30%;height:30%;right:-8%;bottom:6%;animation-duration:11s}
.girando .engr{animation-duration:1s}
@keyframes gira{to{transform:rotate(360deg)}}
.dica-toque #maq-cx{animation:chama 1.2s ease-in-out infinite}
@keyframes chama{50%{transform:translate(-50%,-50%) scale(1.05)}}
#casa-oli{z-index:6;height:var(--olih,40vh);width:auto;left:var(--olix);top:var(--oliy);filter:drop-shadow(0 10px 18px rgba(0,0,0,.4));animation:balanca 3s ease-in-out infinite;transform-origin:50% 100%}
@keyframes balanca{50%{transform:rotate(2deg) translateY(-1.5%)}}
.b-album{position:absolute;z-index:10;width:auto;height:76px;padding:0 18px 0 14px;border-radius:40px;gap:8px;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));background:linear-gradient(180deg,#8a5cff,var(--roxo2))}
.b-album b{font-family:var(--tit);font-size:1.5rem}
.b-pais{position:absolute;z-index:10;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));font-family:var(--tit);font-size:.95rem;background:rgba(0,0,0,.35);padding:10px 14px;border-radius:14px;opacity:.75}

/* ---------- fase ---------- */
.bg-fase{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,#4a1d96,#1a0840 75%)}
#palco{position:absolute;overflow:hidden;border-radius:22px;background:#000;box-shadow:0 0 0 4px rgba(255,217,122,.8),0 16px 40px rgba(0,0,0,.5)}
#mundo{position:absolute;left:0;top:0;width:1280px;height:720px;transform-origin:0 0}
#mundo .cena{position:absolute;inset:0;background-size:100% 100%;transition:opacity .6s}
#bandeja{position:absolute;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:8px;border-radius:22px;background:rgba(255,255,255,.12);border:3px solid rgba(255,255,255,.25)}
.slot{position:relative;width:var(--slot,84px);height:var(--slot,84px);border-radius:20px;background:rgba(255,255,255,.9);box-shadow:0 5px 0 rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;flex:none;touch-action:none}
.slot img{max-width:84%;max-height:84%;object-fit:contain}
.slot.apagado img{filter:grayscale(1) brightness(.35) opacity(.55)}
.slot.ok{background:linear-gradient(180deg,#fff7d6,#ffd97a)}
.slot.ok::after{content:"";position:absolute;right:-8px;top:-8px;width:32px;height:32px;border-radius:50%;background:#2fbf71 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z' fill='%23fff'/%3E%3C/svg%3E") center/70% no-repeat;border:3px solid #fff;animation:pop .4s}
.slot.usado{opacity:.35}
.slot.vestido{background:linear-gradient(180deg,#ffe0f0,#f48fb1)}
@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.3)}100%{transform:scale(1)}}
.slot.chama{animation:chama2 .9s ease-in-out infinite}
@keyframes chama2{50%{transform:scale(1.12) rotate(-4deg);box-shadow:0 0 0 6px var(--dourado2),0 5px 0 rgba(0,0,0,.25)}}

/* objetos do mundo */
.obj{position:absolute;touch-action:none}
.obj img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.alvo{position:absolute;transform:translate(-50%,-50%);width:max(var(--w),var(--hitmin,90px));height:max(var(--h),var(--hitmin,90px));border-radius:50%;z-index:20}
.achado-anel{position:absolute;border-radius:50%;border:6px solid var(--dourado2);box-shadow:0 0 18px var(--dourado2),inset 0 0 18px rgba(255,217,122,.6);transform:translate(-50%,-50%);animation:pop .5s;pointer-events:none;z-index:15}
.obj.brilha{filter:drop-shadow(0 0 10px #fff) drop-shadow(0 0 20px var(--dourado2));animation:pisca .8s ease-in-out infinite}
@keyframes pisca{50%{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 30px #ffe066);transform:scale(1.08)}}
.obj.pula{animation:pula .6s}
@keyframes pula{40%{transform:translateY(-14%) scale(1.15)}}
.oli80{animation:nada}
.oli80.danca{animation:danca .55s ease-in-out infinite alternate;transform-origin:50% 100%}
@keyframes danca{from{transform:rotate(-2.5deg)}to{transform:rotate(2.5deg) translateY(-1%)}}
.roupa{position:absolute;transition:filter .3s;pointer-events:none}
.roupa.entra{animation:entra .45s}
@keyframes entra{0%{transform:scale(1.6);opacity:0}100%{transform:scale(1);opacity:1}}

.voando{position:fixed;z-index:60;pointer-events:none;width:var(--slot,84px);height:var(--slot,84px);display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 8px 10px rgba(0,0,0,.4))}
.voando img{max-width:100%;max-height:100%}
.mao{position:absolute;z-index:40;width:70px;height:70px;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M24 6c3 0 5 2 5 5v17l3-1V24c0-3 5-3 5 0v4l3-1c0-3 5-3 5 0v3l2-1c3-1 5 1 5 4v10c0 9-7 17-16 17h-4c-6 0-10-3-13-8l-9-14c-2-3 2-6 5-3l4 4V11c0-3 2-5 5-5z' fill='%23ffe0c2' stroke='%232a0f5e' stroke-width='3' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 4px 4px rgba(0,0,0,.4))}
.faisca{position:absolute;pointer-events:none;width:14px;height:14px;z-index:50;background:radial-gradient(circle,#fff 0 25%,var(--c,#ffd97a) 40%,transparent 70%);border-radius:50%;animation:faisca .8s ease-out forwards}
@keyframes faisca{to{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
.pincel{position:absolute;z-index:30;width:150px;height:150px;pointer-events:none;transform-origin:10% 10%}
.pincel img{width:100%;height:100%;object-fit:contain}
.gema-slot{position:absolute;width:48px;height:48px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.95),rgba(255,217,122,.6) 45%,transparent 70%);animation:pisca .9s ease-in-out infinite;pointer-events:none}
.gema{position:absolute;width:58px;height:58px;transform:translate(-50%,-50%);pointer-events:none;animation:pop .4s}
.gema img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 6px #fff)}

/* legenda */
#legenda{position:absolute;z-index:45;left:50%;transform:translateX(-50%) translateY(10px);max-width:min(92vw,720px);padding:12px 22px;border-radius:22px;background:rgba(26,8,64,.82);border:3px solid rgba(255,217,122,.8);font-family:var(--tit);font-weight:600;font-size:clamp(1.25rem,4.2vmin,2rem);line-height:1.15;text-align:center;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;text-shadow:0 2px 4px rgba(0,0,0,.4)}
#legenda.vis{opacity:1;transform:translateX(-50%) translateY(0)}
#legenda.will{border-color:#ff6b6b}

/* álbum */
.album-cx{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:84px 16px 20px}
.album-cx h2{font-family:var(--tit);font-size:clamp(1.8rem,6vmin,3rem);margin:0 0 2vmin;color:var(--dourado2);text-shadow:0 4px 12px rgba(0,0,0,.5)}
#album-grade{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2.5vmin,26px);width:min(94vw,820px,calc((100vh - 170px) * 1.4))}
.fig{position:relative;aspect-ratio:1/1;border-radius:50%;display:flex;align-items:center;justify-content:center;overflow:hidden;border:6px solid #fff;box-shadow:0 8px 20px rgba(0,0,0,.45)}
.fig img{position:absolute;object-fit:contain}
.fig .rot{position:absolute;bottom:7%;left:50%;transform:translateX(-50%);font-family:var(--tit);font-weight:700;font-size:clamp(.8rem,2.6vmin,1.3rem);background:rgba(255,255,255,.92);color:var(--roxo);padding:2px 12px;border-radius:12px;white-space:nowrap}
.fig.vazia{border:5px dashed rgba(255,255,255,.55);background:rgba(255,255,255,.08);box-shadow:none}
.fig.vazia::before{content:"?";font-family:var(--tit);font-size:clamp(2rem,9vmin,4.5rem);opacity:.5}
.fig.breve{opacity:.5}
.fig.breve .rot{background:rgba(255,255,255,.5)}
.fig.nova{animation:pop .7s}
.fig-egito{background:radial-gradient(circle at 50% 35%,#ffe7a3,#f0b44c 60%,#c77a1f)}
.fig-anos80{background:radial-gradient(circle at 50% 35%,#ff9de6,#a23cff 60%,#2a0f8e)}
.fig-salao{background:radial-gradient(circle at 50% 35%,#fff0fb,#f6a6d8 60%,#a77bf0)}

/* modal / festa */
.modal{position:absolute;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:rgba(26,8,64,.72)}
.modal[hidden]{display:none}
.festa-cx{position:relative;width:100%;height:100%;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto auto;justify-items:center;align-items:center;padding:84px 16px max(16px,env(safe-area-inset-bottom));gap:8px}
#festa-oli{position:relative;height:min(36vh,420px);width:auto;animation:pulafesta .9s ease-in-out infinite alternate;filter:drop-shadow(0 12px 20px rgba(0,0,0,.4))}
@keyframes pulafesta{from{transform:translateY(0)}to{transform:translateY(-6%) rotate(2deg)}}
#festa-fato{font-family:var(--tit);font-weight:700;font-size:clamp(1.3rem,5vmin,2.4rem);text-align:center;line-height:1.15;max-width:760px;text-shadow:0 3px 10px rgba(0,0,0,.5)}
#festa-fato small{display:block;font-size:.65em;color:var(--dourado2);font-weight:600;margin-bottom:.2em}
#festa-fig{width:min(26vmin,180px);aspect-ratio:1/1}
#festa-fig .fig{width:100%;height:100%;animation:figchega 1s cubic-bezier(.3,1.6,.5,1)}
@keyframes figchega{0%{transform:scale(0) rotate(-200deg)}100%{transform:scale(1) rotate(0)}}
.festa-bts{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}
@media (orientation:landscape){
 .festa-cx{grid-template-columns:auto 1fr;grid-template-rows:1fr auto auto;padding:76px 24px 16px}
 #festa-oli{grid-row:1/4;height:min(72vh,520px)}
 #festa-fig{width:min(24vh,170px)}
}
#confete{position:absolute;inset:0;width:100%;height:100%;z-index:55;pointer-events:none}
#flash{position:absolute;inset:0;z-index:58;pointer-events:none;opacity:0;background:radial-gradient(circle,#fff 0,#ffd97a 30%,#7c4dff 70%,#1a0840 100%)}
#flash.on{animation:flash 1s ease-in-out}
@keyframes flash{0%{opacity:0;transform:scale(.2) rotate(0)}45%{opacity:1;transform:scale(1.6) rotate(90deg)}100%{opacity:0;transform:scale(2.5) rotate(180deg)}}

/* pais */
.pais-cx{position:relative;width:min(92vw,520px);max-height:92vh;overflow:auto;background:var(--creme);color:var(--texto);border-radius:26px;padding:26px 24px 20px;box-shadow:0 20px 50px rgba(0,0,0,.5);user-select:text;-webkit-user-select:text;touch-action:pan-y}
.pais-cx h2{font-family:var(--tit);margin:0 0 .6em;color:var(--roxo2)}
.pais-cx p{margin:.5em 0;line-height:1.45}
.b-fechar{position:absolute;right:10px;top:10px;width:56px;height:56px;border-radius:50%;background:var(--lilas);color:var(--roxo);font-size:1.5rem;font-weight:800}
#b-segurar{position:relative;width:150px;height:150px;margin:14px auto 6px;display:block;border-radius:50%;background:var(--roxo2);color:#fff;font-family:var(--tit);font-weight:700;font-size:1.3rem}
#b-segurar svg{position:absolute;inset:0;transform:rotate(-90deg)}
#b-segurar circle{fill:none;stroke-width:8}
#b-segurar .aro{stroke:rgba(255,255,255,.25)}
#b-segurar .prog{stroke:var(--dourado);stroke-dasharray:276.5;stroke-dashoffset:276.5;stroke-linecap:round}
#b-segurar span{position:relative}
.pais-links{display:flex;flex-direction:column;gap:10px;margin:14px 0}
.b-link{display:block;text-align:center;padding:16px;border-radius:16px;background:var(--roxo2);color:#fff;text-decoration:none;font-family:var(--tit);font-weight:600;font-size:1.15rem;width:100%}
.b-yt{background:#e62117}
.b-cinza{background:#ddd5ea;color:var(--texto);font-size:1rem;margin-top:6px}
.pais-ver{font-size:.85rem;opacity:.6;text-align:center}

/* layout paisagem: botões numa coluna à esquerda */
.paisagem #barra{bottom:0;right:auto;width:88px;flex-direction:column;padding:10px 12px;padding-left:max(12px,env(safe-area-inset-left))}
.b-pais{top:max(12px,env(safe-area-inset-top));bottom:auto;z-index:35}
.tela-casa .b-pais{display:block}
#maq-cx{aspect-ratio:644/679;width:auto;height:var(--maqh,50vh)}
#maq-janela{left:19.9%;top:26.9%;width:50.6%;height:auto;aspect-ratio:1/1}
#maq-ponteiro{top:22.5%;width:10%;height:auto;aspect-ratio:40/44}
.lamp{width:13%;height:auto;aspect-ratio:1/1}
.lamp.l1{left:20.5%;top:3.6%}.lamp.l2{left:57.3%;top:3.6%}
.cena.zoom{transform:scale(1.9);transform-origin:42% 40%;transition:transform 1.1s ease-in,opacity .6s .6s;opacity:0}
.borb svg{position:absolute;left:0;top:0;width:1280px;height:720px;pointer-events:none;overflow:visible}
.borb .contorno{fill:rgba(255,255,255,.16);stroke:#fff;stroke-width:3.2;stroke-dasharray:1 9;stroke-linecap:round;animation:tracejado 1.2s linear infinite}
@keyframes tracejado{to{stroke-dashoffset:-20}}
.borb.pronta .contorno{fill:url(#gBorb);stroke:#ffd97a;stroke-dasharray:none;stroke-width:2.5;animation:none;filter:drop-shadow(0 0 6px rgba(255,255,255,.9))}
.borb .corpo{fill:#5b2a86;opacity:0;transition:opacity .4s}
.borb.pronta .corpo{opacity:1}
.labios{position:absolute;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(ellipse at 50% 55%,rgba(255,40,130,.8),rgba(255,60,150,.45) 50%,transparent 72%);mix-blend-mode:multiply;opacity:0;transition:opacity .6s}
.labios.on{opacity:1}
.labios-brilho{position:absolute;transform:translate(-50%,-50%);pointer-events:none;border-radius:50%;background:radial-gradient(ellipse at 38% 40%,rgba(255,255,255,.95),rgba(255,255,255,0) 32%),radial-gradient(ellipse at 66% 55%,rgba(255,255,255,.8),rgba(255,255,255,0) 22%);opacity:0;transition:opacity .6s .2s}
.labios-brilho.on{opacity:1;animation:pisca2 1.4s ease-in-out infinite}
@keyframes pisca2{50%{opacity:.5}}

.borb .glitter{fill:url(#pGlit);opacity:0;transition:opacity .5s}
.borb.pronta .glitter{opacity:.9;animation:pisca2 1.6s ease-in-out infinite}
.borb.pronta .contorno{fill-opacity:.88}
.em-festa #barra{z-index:52}
.modal{background:rgba(26,8,64,.84)}
.fig .embreve{position:absolute;top:12%;left:50%;transform:translateX(-50%);font-family:var(--tit);font-size:clamp(.65rem,2vmin,.95rem);opacity:.8;white-space:nowrap}
@media (orientation:landscape){
 .paisagem .festa-cx{padding-left:100px}
 #album-grade{grid-template-columns:repeat(6,1fr);width:min(calc(100vw - 130px),calc((100vh - 170px) * 6.2),1100px)}
 .album-cx{padding:20px 20px 20px 100px}
}
