:root{--sat: var(--safe-area-inset-top, env(safe-area-inset-top, 0px));--sar: var(--safe-area-inset-right, env(safe-area-inset-right, 0px));--sab: var(--safe-area-inset-bottom, env(safe-area-inset-bottom, 0px));--sal: var(--safe-area-inset-left, env(safe-area-inset-left, 0px));--ink: #eef3ff;--muted: #9aa7c7;--panel: rgba(14, 22, 40, .82);--panel-solid: #0f1830;--edge: rgba(160, 190, 255, .18);--accent: #ffd36e;--accent-ink: #2a1c00;--pink: #ff6f9c;--green: #5dffa3;--font: ui-rounded, "SF Pro Rounded", "Nunito", "Trebuchet MS", "Segoe UI", system-ui, sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#070b16;color:var(--ink);font-family:var(--font);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}#app,#stage{position:fixed;inset:0;width:100%;height:var(--app-height, 100%);overflow:hidden}#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}#ui,.screen{position:absolute;inset:0;pointer-events:none}.screen>*{pointer-events:auto}.hidden{display:none!important}.btn{appearance:none;border:0;margin:0;font:inherit;color:var(--ink);background:transparent;min-width:44px;min-height:44px;padding:0 14px;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;font-size:15px;font-weight:700;letter-spacing:.01em;touch-action:manipulation;isolation:isolate}.btn:after{content:"";position:absolute;inset:4px 0;border-radius:999px;background:linear-gradient(180deg,#2a3a60f2,#16203af2);box-shadow:inset 0 1px #ffffff1f,0 4px 14px #00000059;border:1px solid var(--edge);z-index:-1;pointer-events:none;transition:transform .12s ease,filter .12s ease}.btn:hover:after{filter:brightness(1.15)}.btn:active:after{transform:scale(.95)}.btn:focus-visible{outline:none}.btn:focus-visible:after{box-shadow:0 0 0 3px #ffd36eb3}.btn[disabled]{cursor:default;opacity:.42}.btn.primary{color:var(--accent-ink)}.btn.primary:after{background:linear-gradient(180deg,#ffe39a,#ffc24a);border-color:#fff0c899}.btn.icon{padding:0 12px}.ico{width:20px;height:20px;display:inline-block;background:currentColor;-webkit-mask:var(--m) center / contain no-repeat;mask:var(--m) center / contain no-repeat;flex:none}.ico-sound{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9h4l5-4v14l-5-4H4z'/%3E%3Cpath d='M16 8.5c1.6 1.8 1.6 5.2 0 7' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3Cpath d='M18.6 6c2.9 3.3 2.9 8.7 0 12' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}.is-muted .ico-sound{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 9h4l5-4v14l-5-4H4z'/%3E%3Cpath d='M16 9l5 6M21 9l-5 6' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E")}.ico-pause{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='6' y='5' width='4' height='14' rx='1.5'/%3E%3Crect x='14' y='5' width='4' height='14' rx='1.5'/%3E%3C/svg%3E")}.ico-full{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5'/%3E%3C/svg%3E")}.ico-hint{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-4 12.7V17h8v-2.3A7 7 0 0 0 12 2z'/%3E%3Crect x='8.5' y='18.5' width='7' height='3' rx='1.2'/%3E%3C/svg%3E")}.ico-undo{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 4L4 9l5 5'/%3E%3Cpath d='M4 9h10a5.5 5.5 0 0 1 0 11h-4'/%3E%3C/svg%3E")}.ico-restart{--m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 12a8 8 0 1 1-2.3-5.7'/%3E%3Cpath d='M20 4v5h-5'/%3E%3C/svg%3E")}.hud-top{position:absolute;left:0;right:0;top:0;padding:calc(8px + var(--sat)) calc(10px + var(--sar)) 0 calc(10px + var(--sal));display:flex;align-items:flex-start;justify-content:space-between;gap:8px;pointer-events:none}.hud-top>*{pointer-events:auto}.hud-info{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}.hud-buttons{display:flex;gap:6px;flex:none}.hud-panel{min-height:44px;display:inline-flex;align-items:center;gap:8px;padding:0 14px;border-radius:14px;background:var(--panel);border:1px solid var(--edge);font-weight:700;font-size:15px;white-space:nowrap;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.hud-level-num{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:9px;background:linear-gradient(135deg,#ff7aa8,#8b7bff 55%,#4de3ff);color:#fff;font-size:14px;text-shadow:0 1px 2px rgba(0,0,0,.4)}.hud-level-name{overflow:hidden;text-overflow:ellipsis;max-width:40vw}.hud-moves{color:var(--muted);font-variant-numeric:tabular-nums}.hud-moves strong{color:var(--ink)}.hud-bottom{position:absolute;left:0;right:0;bottom:0;padding:0 calc(10px + var(--sar)) calc(10px + var(--sab)) calc(10px + var(--sal));display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.hud-bottom>*{pointer-events:auto}.hud-tools{display:flex;gap:8px;justify-content:center}.btn.tool{min-width:88px}.tutorial{margin:0;max-width:min(560px,100%);padding:10px 16px;border-radius:16px;background:#fff5dcf5;color:#2b2140;font-size:15px;font-weight:700;line-height:1.3;text-align:center;box-shadow:0 8px 26px #00000059;animation:bubble-in .35s ease-out both;pointer-events:none!important}.tutorial b{color:#b2346a}@keyframes bubble-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:none}}@media(max-width:520px){.hud-buttons .lbl{display:none}.btn.icon{padding:0 12px}.hud-panel{padding:0 10px;font-size:14px}.hud-level-name{max-width:34vw}.btn.tool{min-width:0;padding:0 14px}.tutorial{font-size:14px;padding:8px 12px}}@media(max-width:380px){.hud-info{gap:6px}.hud-level-name{display:none}.hud-tools .lbl{font-size:14px}}body.layout-side .hud-top{right:auto;bottom:0;width:calc(var(--side-w, 150px) + var(--sal) + 10px);flex-direction:column;justify-content:flex-start;align-items:stretch;padding:calc(8px + var(--sat)) 0 calc(8px + var(--sab)) calc(10px + var(--sal))}body.layout-side .hud-info{flex-direction:column;align-items:stretch}body.layout-side .hud-panel{justify-content:center;font-size:14px;padding:0 8px}body.layout-side .hud-level-name{max-width:90px}body.layout-side .hud-buttons{flex-wrap:wrap}body.layout-side .hud-buttons .lbl{display:none}body.layout-side .hud-bottom{left:auto;top:0;width:calc(var(--side-w, 150px) + var(--sar) + 10px);padding:calc(8px + var(--sat)) calc(10px + var(--sar)) calc(8px + var(--sab)) 0;justify-content:flex-end;align-items:stretch}body.layout-side .hud-tools{flex-direction:column}body.layout-side .btn.tool{min-width:0;width:100%;justify-content:flex-start;padding-left:16px}body.layout-side .tutorial{font-size:13px;padding:8px 10px;text-align:left}.card{background:linear-gradient(180deg,#18223ef7,#0c1224f7);border:1px solid var(--edge);border-radius:22px;box-shadow:0 20px 60px #0000008c,inset 0 1px #ffffff14;padding:22px 24px;text-align:center;max-width:min(420px,calc(100vw - 24px - var(--sal) - var(--sar)));width:100%}.card h2{margin:0 0 12px;font-size:26px}.card .actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}.card .actions .btn{min-width:120px}#screen-pause,#screen-result,#modal,#ad-blocker{display:flex;align-items:center;justify-content:center;padding:calc(12px + var(--sat)) calc(12px + var(--sar)) calc(12px + var(--sab)) calc(12px + var(--sal))}#screen-pause,#modal{background:#04071099;pointer-events:auto}#screen-result{background:radial-gradient(ellipse at center,#04071040,#040710b3);pointer-events:auto}#modal{position:absolute;inset:0;z-index:20}.keys-note{margin:14px 0 0;color:var(--muted);font-size:12px}@media(hover:none){.keys-note{display:none}}.result-card{animation:card-pop .45s cubic-bezier(.2,1.4,.4,1) both}@keyframes card-pop{0%{opacity:0;transform:translateY(16px) scale(.92)}to{opacity:1;transform:none}}.eyebrow{margin:0 0 4px;color:var(--muted);text-transform:uppercase;letter-spacing:.14em;font-size:12px;font-weight:800}#result-stars{display:flex;justify-content:center;gap:10px;margin:4px 0 10px}#result-stars .star{width:46px;height:46px;background:#ffffff24;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.3 6.9.7-5.2 4.6 1.5 6.8L12 17l-6.1 3.4 1.5-6.8L2.2 9l6.9-.7z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2l2.9 6.3 6.9.7-5.2 4.6 1.5 6.8L12 17l-6.1 3.4 1.5-6.8L2.2 9l6.9-.7z'/%3E%3C/svg%3E") center / contain no-repeat}#result-stars .star.on{background:linear-gradient(135deg,#fff0a8,#ffb83e);animation:star-in .5s cubic-bezier(.2,1.6,.4,1) both}#result-stars .star.on:nth-child(2){animation-delay:.15s}#result-stars .star.on:nth-child(3){animation-delay:.3s}@keyframes star-in{0%{transform:scale(.2) rotate(-40deg);opacity:0}to{transform:none;opacity:1}}#result-stats{margin:0 0 6px;color:var(--muted);font-weight:700}@media(max-height:460px){.card{padding:14px 18px}.card h2{font-size:21px;margin-bottom:6px}#result-stars .star{width:34px;height:34px}.card .actions .btn{min-width:100px}}#screen-levels{background:linear-gradient(180deg,#080c1cf7,#060c12f7);pointer-events:auto;display:flex;flex-direction:column}.levels-chrome{flex:none;display:flex;align-items:center;gap:12px;padding:calc(8px + var(--sat)) calc(12px + var(--sar)) 8px calc(12px + var(--sal));background:#0a1020e6;border-bottom:1px solid var(--edge)}.levels-chrome h2{margin:0;font-size:22px;flex:1}.levels-progress{color:var(--muted);font-weight:700}.levels-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;padding:14px calc(12px + var(--sar)) calc(16px + var(--sab)) calc(12px + var(--sal))}#level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;max-width:980px;margin:0 auto}.level-card{appearance:none;border:1px solid var(--edge);border-radius:16px;background:linear-gradient(180deg,#17223f,#101830);color:var(--ink);font:inherit;min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;touch-action:pan-y}.level-card .num{font-size:22px;font-weight:800}.level-card .stars{font-size:13px;letter-spacing:2px;color:#fff3}.level-card .stars .on{color:#ffc94a}.level-card.current{border-color:#ffd36ecc;box-shadow:0 0 0 2px #ffd36e59}.level-card.locked{opacity:.38;cursor:default}.level-card.locked .stars{font-size:0}.level-card.locked .stars:after{content:"";display:inline-block;width:14px;height:14px;background:#ffffff8c;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 10V7a5 5 0 0 1 10 0v3h1a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-9a1 1 0 0 1 1-1zm2 0h6V7a3 3 0 0 0-6 0z'/%3E%3C/svg%3E") center / contain no-repeat}.level-card:not(.locked){box-shadow:inset 0 1px #ffffff0f}.level-card .stars .on{text-shadow:0 0 6px rgba(255,201,74,.5)}@media(min-width:900px)and (min-height:820px){#level-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:14px}.level-card{min-height:96px}.level-card .num{font-size:28px}.level-card .stars{font-size:16px}}@media(max-width:520px){#level-grid{grid-template-columns:repeat(4,1fr);gap:8px}.level-card{min-height:70px}}@media(max-width:360px){#level-grid{grid-template-columns:repeat(3,1fr)}}#toasts{position:absolute;left:50%;top:calc(64px + var(--sat));transform:translate(-50%);display:flex;flex-direction:column;gap:6px;align-items:center;z-index:30;pointer-events:none;width:min(92vw,460px)}body.layout-side #toasts{top:calc(10px + var(--sat))}.toast{background:#0e1628f2;border:1px solid var(--edge);padding:9px 14px;border-radius:12px;font-size:14px;font-weight:700;text-align:center;animation:toast 2.6s ease both}@keyframes toast{0%{opacity:0;transform:translateY(-6px)}10%,85%{opacity:1;transform:none}to{opacity:0}}#ad-blocker{position:fixed;inset:0;z-index:100;background:#02040ac7}.ad-blocker-card{max-width:220px}.ad-spinner{width:34px;height:34px;margin:0 auto 10px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--accent);animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#modal-body p{margin:0 0 6px}#modal-body h3{margin:0 0 8px;font-size:21px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
