/* Ambiente y pequeñas recompensas. Sin alterar las reglas del árbol. */
.app-shell{position:relative;isolation:isolate}.app-shell::before{content:'';position:absolute;z-index:-1;width:180px;height:180px;border:2px dashed var(--blue-100);border-radius:38px;transform:rotate(16deg);right:40px;top:150px;pointer-events:none}.app-shell::after{content:'';position:absolute;z-index:-1;width:110px;height:110px;border:2px solid var(--yellow-200);border-radius:50%;left:-20px;top:520px;pointer-events:none}.door-arch{transition:transform .2s,box-shadow .2s}.door-button:hover .door-arch{box-shadow:7px 7px 0 var(--ink),0 0 0 7px var(--yellow-100)}.is-complete .door-arch{box-shadow:5px 5px 0 var(--turquoise-700),0 0 0 4px var(--turquoise-100)}.door-button:active .door-arch{transform:translateY(-1px)}.sound-button{white-space:nowrap;gap:6px}.sound-button[aria-pressed=true]{color:var(--turquoise-700)}.header-actions{flex-wrap:wrap;justify-content:flex-end}.sound-button .ui-icon{width:19px;height:19px}.welcome .sound-welcome{margin-top:14px;display:block}.welcome .sound-welcome .button{margin-right:12px}.sound-caption{font-size:12px;color:var(--neutral-600)}
.celebration-layer{position:fixed;inset:0;z-index:80;pointer-events:none;display:flex;align-items:flex-start;justify-content:center;padding:100px 20px 20px}.victory-banner{max-width:520px;width:fit-content;display:flex;gap:16px;align-items:center;background:var(--paper);border:3px solid var(--ink);box-shadow:7px 7px 0 var(--blue);border-radius:18px;padding:20px 24px;animation:victory-in .25s cubic-bezier(.2,.8,.25,1);position:relative}.victory-badge{display:grid;place-items:center;width:54px;height:54px;background:var(--yellow);border:2px solid var(--ink);border-radius:50%;flex:none}.victory-badge .ui-icon{width:29px;height:29px}.victory-banner strong{display:block;font-size:22px;line-height:1.2;color:var(--blue)}.victory-banner p{margin-top:6px;font-size:14px;line-height:1.4;color:var(--neutral-700)}.confetti-bit{position:fixed;left:var(--x);top:65px;width:var(--w,9px);height:14px;background:var(--confetti);border-radius:2px;animation:confetti-flight var(--duration) ease-out forwards;animation-delay:var(--delay);opacity:0;transform:rotate(var(--spin));pointer-events:none}.confetti-bit:nth-child(3n){border-radius:50%;width:10px;height:10px}.celebration-layer.leaving{opacity:0;transition:opacity .25s}.game-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:90;max-width:calc(100% - 32px);background:var(--blue);color:white;padding:12px 18px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink);border-radius:10px;font-size:14px;pointer-events:none}.spark-feedback{animation:check-pop .25s ease-out}.map-heading .eyebrow{letter-spacing:.12em}
@keyframes victory-in{from{transform:translateY(-16px) scale(.96)}to{transform:translateY(0) scale(1)}}
@keyframes confetti-flight{0%{opacity:0;transform:translateY(-20px) rotate(var(--spin))}12%{opacity:1}100%{opacity:0;transform:translateY(70vh) translateX(var(--drift)) rotate(calc(var(--spin) + 220deg))}}
@keyframes check-pop{0%{transform:scale(1)}45%{transform:scale(1.015)}100%{transform:scale(1)}}
@media(max-width:1100px){.topbar{flex-wrap:wrap}.header-actions{margin-left:auto}.app-shell::after{left:10px}}
@media(max-width:480px){.header-actions{gap:4px}.header-actions .button{font-size:12px;padding:7px 9px;min-height:40px}.header-actions .ui-icon{width:17px;height:17px}.victory-banner{padding:16px;gap:12px}.victory-banner strong{font-size:19px}.victory-badge{width:43px;height:43px}.celebration-layer{padding-top:120px}.app-shell::before{right:10px;width:95px;height:95px;top:210px}.app-shell::after{display:none}}
@media(prefers-reduced-motion:reduce){.victory-banner,.confetti-bit,.spark-feedback{animation:none!important}.confetti-bit{display:none}.celebration-layer.leaving{transition:none}.door-arch{transition:none}.door-button:hover .door-arch{transform:none}}
@media(max-width:480px){.app-shell::before{right:26px}}
