:root{--ink:#140f22;--panel:#1c1430eb;--panel-2:#342654f2;--text:#fff7e0;--muted:#c9bfe0;--gold:#ffcf3f;--green:#46c964;--red:#e5474f;--blue:#4f8cff;--font:"Trebuchet MS", "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}#ui{font-family:var(--font);color:var(--text);font-size:clamp(15px,.55vw + 11px,22px)}#ui button{font-family:inherit}.hud{padding:calc(.5em + env(safe-area-inset-top)) .75em .5em;pointer-events:none;flex-wrap:wrap;align-items:center;gap:.5em;display:flex;position:absolute;top:0;left:0;right:0}.hud>*{pointer-events:auto}.hud .goals{flex-wrap:wrap;gap:.5em;display:flex}.dock{top:calc(.5em + env(safe-area-inset-top));pointer-events:auto;gap:.5em;display:flex;position:absolute;right:.75em}.narrow .dock{top:auto;left:0;right:0;bottom:calc(.6em + env(safe-area-inset-bottom));justify-content:center}.narrow .hud .goals{flex-basis:100%}.narrow .chip{padding:.3em .6em;font-size:.88em}.chip{background:var(--panel);border:2px solid var(--ink);white-space:nowrap;border-radius:.9em;padding:.35em .75em;font-weight:800;box-shadow:0 3px #00000059}.chip.title{font-size:1.1em}.chip.ok{color:var(--gold)}.btn{cursor:pointer;color:var(--ink);border:3px solid var(--ink);touch-action:manipulation;background:linear-gradient(#ffd966,#f2a93b);border-radius:.9em;min-width:44px;min-height:44px;padding:.45em .85em;font-size:1em;font-weight:900;box-shadow:0 4px #00000073}.btn:active{transform:translateY(2px);box-shadow:0 2px #00000073}.btn.secondary{background:linear-gradient(#a9b4ff,#6f7de6)}.btn.danger{background:linear-gradient(#ff8c90,#e5474f)}.btn[disabled]{opacity:.45;cursor:default}.btn:focus-visible,.tile:focus-visible{outline-offset:2px;outline:3px solid #fff}.toast{left:50%;bottom:calc(5em + env(safe-area-inset-bottom));background:var(--panel);border:2px solid var(--ink);text-align:center;pointer-events:none;opacity:0;border-radius:.9em;max-width:90vw;padding:.6em 1em;font-weight:800;transition:opacity .15s;position:absolute;transform:translate(-50%)}.toast.show{opacity:1}.banner{left:50%;top:calc(4.2em + env(safe-area-inset-top));background:var(--panel-2);border:3px solid var(--ink);pointer-events:auto;border-radius:1em;align-items:center;gap:.75em;max-width:94vw;padding:.6em .9em;font-weight:800;display:flex;position:absolute;transform:translate(-50%)}.narrow .banner{top:auto;bottom:calc(5em + env(safe-area-inset-bottom));text-align:center;flex-wrap:wrap;justify-content:center}.overlay{pointer-events:auto;background:#0a06189e;justify-content:center;align-items:center;padding:1em;display:flex;position:absolute;inset:0;overflow:auto}.card{background:var(--panel-2);border:4px solid var(--ink);text-align:center;border-radius:1.4em;min-width:min(26em,92vw);max-width:96vw;padding:1.3em 1.6em;box-shadow:0 8px #0006}.card h2{letter-spacing:.5px;margin:0 0 .4em;font-size:1.9em}.card .row{flex-wrap:wrap;justify-content:center;gap:.6em;margin-top:1em;display:flex}.stars{justify-content:center;gap:.8em;margin:.6em 0 .4em;display:flex}.star{color:var(--muted);flex-direction:column;align-items:center;gap:.25em;width:7em;font-size:.85em;display:flex}.star .icon{height:3.4em;line-height:1;transition:transform .3s}.star .icon img{width:auto;height:100%}.star.on .icon{transform:scale(1.1)}.star.on{color:var(--gold)}.menu{width:min(62em,96vw);max-height:92vh;overflow:auto}.grid{grid-template-columns:repeat(auto-fill,minmax(5.5em,1fr));gap:.7em;margin-top:.7em;display:grid}.tile{cursor:pointer;background:var(--panel);color:var(--text);border:3px solid var(--ink);border-radius:1em;min-height:3.4em;padding:.6em .3em;font-size:1.25em;font-weight:900;box-shadow:0 4px #0006}.tile small{letter-spacing:2px;color:var(--gold);min-height:1.1em;margin-top:.2em;font-size:.75em;display:block}.tile[disabled]{opacity:.4;cursor:default}.title-screen{text-align:center;background:radial-gradient(circle at 50% 30%,#50328c8c,#0a0618d9);flex-direction:column;gap:1em}.title-screen h1{letter-spacing:2px;text-shadow:0 6px 0 var(--ink), 0 0 30px #ffcf3f80;margin:0;font-size:clamp(2.8em,9vw,7em)}.title-screen p{color:var(--muted);margin:0;font-weight:700}.screen{pointer-events:auto;background-position:50%;background-size:cover;flex-direction:column;justify-content:center;align-items:center;padding:1em;display:flex;position:absolute;inset:0;overflow:auto}.screen:before{content:"";pointer-events:none;background:linear-gradient(#0a061840,#0a0618a6);position:absolute;inset:0}.screen>*{position:relative}.logo{letter-spacing:2px;color:#fff4cf;text-shadow:0 .06em 0 var(--ink), 0 0 .35em #ffcf3f8c;-webkit-text-stroke:.04em var(--ink);paint-order:stroke fill;text-align:center;margin:0;font-size:clamp(2.6em,8vw,6.5em);line-height:1}.menu-col{flex-direction:column;gap:.7em;min-width:min(17em,80vw);margin-top:1.2em;display:flex}.menu-col .btn{font-size:1.15em}.row-top{top:calc(.6em + env(safe-area-inset-top));z-index:2;justify-content:space-between;gap:.6em;display:flex;position:absolute;left:.8em;right:.8em}.langs{gap:.4em;display:flex}.btn.small{min-height:40px;padding:.25em .7em;font-size:.9em}.btn.active{outline:3px solid #fff}.tagline{color:#ffe9b0;text-shadow:0 2px 0 var(--ink);text-align:center;margin:.4em 0 0;font-weight:800}.panel{background:var(--panel-2);border:4px solid var(--ink);border-radius:1.2em;width:min(60em,96vw);max-height:88vh;padding:1em 1.2em;overflow:auto;box-shadow:0 8px #0006}.panel h2{text-align:center;margin:0 0 .5em;font-size:1.7em}.settings-row{border-bottom:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:1em;padding:.5em 0;font-weight:800;display:flex}.settings-row input[type=range]{accent-color:#ffcf3f;width:min(14em,45vw);height:2em}.toggle{min-width:5em}.toggle[aria-pressed=true]{background:linear-gradient(#9dff9d,#46c964)}.worldbar{flex-wrap:wrap;justify-content:center;gap:.4em;margin-bottom:.6em;display:flex}.worldtab{cursor:pointer;background:var(--panel);color:var(--text);border:3px solid var(--ink);border-radius:.8em;min-width:2.4em;min-height:40px;padding:.2em .6em;font-size:1em;font-weight:900}.worldtab.active{color:var(--ink);background:linear-gradient(#ffd966,#f2a93b)}.worldtab[disabled]{opacity:.4}.worldhead{text-align:left;flex-wrap:wrap;justify-content:center;align-items:center;gap:1em;margin-bottom:.6em;display:flex}.worldhead img{filter:drop-shadow(0 4px #0006);width:auto;height:5em}.worldhead h2{text-align:left;margin:0}.worldhead p{color:var(--muted);margin:.2em 0 0;font-weight:700}.tower-grid{grid-template-columns:repeat(auto-fill,minmax(5.2em,1fr));gap:.6em;display:grid}.node{cursor:pointer;color:var(--ink);border:3px solid var(--ink);background:linear-gradient(#fff4cf,#f2d68f);border-radius:1em;flex-direction:column;justify-content:center;align-items:center;gap:.05em;min-height:3.6em;padding:.45em .2em .35em;font-size:1.2em;font-weight:900;display:flex;position:relative;box-shadow:0 4px #0006}.node.cleared{background:linear-gradient(#d8ffd0,#8fe28a)}.node.challenge{background:linear-gradient(#ffd0f0,#e58ad0)}.node[disabled]{opacity:.5;cursor:default;background:#8a8498}.node .st{gap:.1em;font-size:.7em;display:flex}.node .st i{color:#b6b0c2;font-style:normal}.node .st i.on{color:#ff9f1c;text-shadow:0 1px 0 var(--ink)}.node .lock{font-size:.8em}.note{color:var(--muted);text-align:center;min-height:1.2em;margin:.4em 0 0;font-weight:700}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(11em,1fr));gap:.8em;display:grid}.cap{background:var(--panel);border:3px solid var(--ink);text-align:center;border-radius:1em;flex-direction:column;align-items:center;gap:.3em;padding:.6em;display:flex}.cap img{object-fit:contain;width:auto;max-width:100%;height:7em}.cap.locked img{filter:brightness(0)opacity(.55)}.cap h4{margin:0;font-size:1em}.cap p{color:var(--muted);margin:0;font-size:.82em;font-weight:700}.stats{flex-wrap:wrap;justify-content:center;gap:.6em;margin-top:.8em;display:flex}.bubble{left:.8em;bottom:calc(5.2em + env(safe-area-inset-bottom));pointer-events:auto;z-index:3;align-items:flex-end;gap:.5em;max-width:min(34em,94vw);display:flex;position:absolute}.narrow .bubble{bottom:calc(5.6em + env(safe-area-inset-bottom))}.bubble img{filter:drop-shadow(0 3px #0006);flex:none;width:auto;height:6em}.bubble .say{color:var(--ink);border:3px solid var(--ink);background:#fffaf0;border-radius:1em;padding:.6em .8em;font-weight:800;box-shadow:0 4px #00000059}.bubble .say .btn{min-height:40px;margin-top:.5em;font-size:.9em;display:block}.skip{top:calc(3.4em + env(safe-area-inset-top));z-index:6;position:absolute;right:.8em}.stars.pop .star .icon{opacity:0;transform:scale(.4)}.stars.pop .star.on .icon{animation:.5s ease-out forwards starpop}.stars.pop .star:not(.on) .icon{opacity:.75;transform:none}@keyframes starpop{0%{opacity:0;transform:scale(.2)rotate(-40deg)}70%{opacity:1;transform:scale(1.35)rotate(8deg)}to{opacity:1;transform:scale(1.1)}}.friend{width:auto;height:7em}@media (prefers-reduced-motion:reduce){.stars.pop .star.on .icon{opacity:1;animation:none;transform:scale(1.1)}}.screen,.overlay,.banner,.bubble{animation:.22s ease-out fadein}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.banner{animation-name:fadein-banner}@keyframes fadein-banner{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.screen,.overlay,.banner,.bubble{animation:none}}.reduced .screen,.reduced .overlay,.reduced .bubble{animation:none}.short .hud{gap:.35em;padding-top:.3em;padding-bottom:.2em}.short .chip{padding:.2em .55em;font-size:.8em}.short .btn{padding:.2em .55em}.short .dock .lbl{display:none}.short .dock,.narrow.short .dock{justify-content:flex-end;inset:.3em .5em auto auto}.narrow.short .hud .goals{flex-basis:auto}.narrow.short .hud .chip.title{display:none}.short .banner{top:3.4em}.short .bubble{bottom:.5em}.short .bubble img{height:3.6em}.short .menu-col{gap:.35em;margin-top:.4em}.short .logo{font-size:2.4em}.short .panel{max-height:94vh}
