@font-face{font-family:Fredoka;font-style:normal;font-weight:500;font-display:swap;src:url(fonts/fredoka-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Fredoka;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/fredoka-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Nunito;font-style:normal;font-weight:600;font-display:swap;src:url(fonts/nunito-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Nunito;font-style:normal;font-weight:800;font-display:swap;src:url(fonts/nunito-latin-800-normal.woff2) format("woff2")}:root{--bg1:#0a1b29;--bg2:#12404a;--accent:#ffc857;--accent2:#ff7eb6;--ok:#5eead4;--text:#eaf6f3;--muted:#8fb3b0;--glass:rgba(255,255,255,.07);--glass-b:rgba(255,255,255,.14)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:Nunito,system-ui,sans-serif;font-weight:600;color:var(--text);background:radial-gradient(1100px 650px at 12% -10%,rgba(45,212,191,.22),transparent 60%),radial-gradient(900px 600px at 105% 105%,rgba(190,80,220,.25),transparent 60%),linear-gradient(160deg,var(--bg1),var(--bg2));overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation;overscroll-behavior:none;-webkit-text-size-adjust:100%}.app{height:100dvh;max-width:1500px;margin:0 auto;display:flex;flex-direction:column;gap:10px;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))}header{display:flex;align-items:center;gap:14px;flex-wrap:wrap}h1{font-family:Fredoka,sans-serif;font-weight:600;font-size:clamp(20px,3.2vw,30px);letter-spacing:.3px;background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent;margin-right:auto}.chip{background:var(--glass);border:1px solid var(--glass-b);border-radius:12px;padding:6px 12px;display:flex;flex-direction:column;min-width:72px;backdrop-filter:blur(6px)}.chip small{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);font-weight:800}.chip b{font-family:Fredoka,sans-serif;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}.chip.low b{color:#fb7185;animation:blink .7s infinite alternate}.timebar{height:12px;border-radius:99px;background:#ffffff1a;overflow:hidden;border:1px solid var(--glass-b)}.timebar i{display:block;height:100%;width:100%;border-radius:99px;transform-origin:left;background:linear-gradient(90deg,#34d399,#fde047);transition:background .4s}.timebar.low i{background:linear-gradient(90deg,#f43f5e,#fb923c);animation:blink .7s infinite alternate}@keyframes blink{to{filter:brightness(1.5)}}#wrap{flex:1;min-height:0;display:grid;place-items:center;position:relative}#board{position:relative;border-radius:20px;background:linear-gradient(180deg,#ffffff12,#ffffff08);border:1px solid var(--glass-b);box-shadow:0 20px 60px #00000059,inset 0 0 40px #5eead40f}.tile{position:absolute;left:0;top:0;border-radius:10px;cursor:pointer;display:grid;place-items:center;background:linear-gradient(160deg,#fffef8,#f1ead8 60%,#e3d9bf);box-shadow:0 3px #a99d80,0 6px 10px #0006,inset 0 1px #fff;transition:translate .28s cubic-bezier(.3,1.3,.5,1),transform .15s,box-shadow .15s,filter .15s}.tile svg{width:88%;height:88%;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}.tile svg.cb{position:absolute;left:3%;top:3%;width:32%;height:32%;filter:none}@media(hover:hover){.tile:hover{transform:translateY(-2px);filter:brightness(1.05)}}.tile.sel{transform:translateY(-4px) scale(1.06);z-index:5;box-shadow:0 0 0 3px var(--accent),0 0 22px 4px #ffc857b3,0 8px 12px #0006}.tile.hint{animation:hint .5s ease-in-out infinite alternate;z-index:6;filter:brightness(1.12) saturate(1.15)}.tile.hint:after{content:"";position:absolute;inset:-4px;border-radius:16px;border:4px solid #fff;pointer-events:none;animation:ripple .9s ease-out infinite}@keyframes hint{0%{transform:scale(1.04);box-shadow:0 0 0 4px #fff,0 0 0 7px #ff3d9a,0 0 16px 6px #ff3d9abf,0 6px 10px #0006}to{transform:scale(1.2);box-shadow:0 0 0 4px #fff,0 0 0 8px #ffd23d,0 0 40px 16px #ffd23df2,0 6px 10px #0006}}@keyframes ripple{0%{transform:scale(1);opacity:.95}to{transform:scale(1.7);opacity:0}}#board.hinting .tile:not(.hint){filter:brightness(.55) saturate(.6);transition:filter .25s}.tile.bad{animation:shake .3s}@keyframes shake{25%{transform:translate(-4px) rotate(-2deg)}75%{transform:translate(4px) rotate(2deg)}}.tile.gone{animation:gone .34s ease-in forwards;z-index:6}@keyframes gone{40%{transform:scale(1.18) rotate(4deg);filter:brightness(1.3)}to{transform:scale(0) rotate(-20deg);opacity:0}}.tile.reshuffle{animation:flip .5s}@keyframes flip{50%{transform:rotateY(90deg) scale(.9)}}#fx{position:absolute;inset:0;pointer-events:none;z-index:10;overflow:visible}#fx polyline{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px rgba(255,200,87,.95));stroke-dasharray:1;stroke-dashoffset:1;animation:draw .22s ease-out forwards}@keyframes draw{to{stroke-dashoffset:0}}.spark{position:absolute;width:8px;height:8px;border-radius:50%;pointer-events:none;z-index:11;animation:spark .6s ease-out forwards}@keyframes spark{to{transform:translate(var(--dx),var(--dy)) scale(0);opacity:0}}.toast{position:absolute;top:10px;left:50%;translate:-50% 0;z-index:20;pointer-events:none;background:#0a1b29d9;border:1px solid var(--glass-b);padding:8px 16px;border-radius:16px;font-weight:800;white-space:pre-line;text-align:center;max-width:94%;opacity:0;transform:translateY(-8px);transition:.25s}.toast.show{opacity:1;transform:none}.wall{position:absolute;z-index:9;pointer-events:none;border-radius:6px;opacity:0;transform:scale(.7);transition:opacity .4s,transform .4s;background:repeating-linear-gradient(45deg,#ffcf3f 0 7px,#2a1a00 7px 14px);box-shadow:0 0 14px #ff8c00d9}.wall.on{opacity:1;transform:none}.wall.t,.wall.b{left:-6px;right:-6px;height:10px}.wall.l,.wall.r{top:-6px;bottom:-6px;width:10px}.wall.t{top:-5px}.wall.b{bottom:-5px}.wall.l{left:-5px}.wall.r{right:-5px}.pop{position:absolute;z-index:12;pointer-events:none;font-family:Fredoka,sans-serif;font-size:22px;color:var(--accent);text-shadow:0 2px 6px rgba(0,0,0,.6);animation:rise .9s ease-out forwards}@keyframes rise{to{transform:translateY(-40px);opacity:0}}footer{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}button{font:inherit;font-weight:800;color:var(--text);cursor:pointer;background:var(--glass);border:1px solid var(--glass-b);border-radius:12px;padding:9px 14px;backdrop-filter:blur(6px);transition:.15s}button:hover:not(:disabled){background:#ffffff29;transform:translateY(-1px)}button:active:not(:disabled){transform:none}button:disabled{opacity:.4;cursor:not-allowed}button .n{display:inline-block;min-width:20px;margin-left:6px;padding:0 6px;border-radius:99px;background:#ffffff26;font-size:12px}button.on{border-color:var(--ok);color:var(--ok)}button.primary{background:linear-gradient(135deg,var(--accent),#ff9f43);color:#2b1a05;border:none;padding:12px 26px;font-size:17px;box-shadow:0 6px 20px #ff9f4366}button.primary:hover:not(:disabled){background:linear-gradient(135deg,#ffd77a,#ffae5c)}.overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:#050e16b8;backdrop-filter:blur(8px)}.overlay[hidden]{display:none}.card{max-width:440px;width:100%;text-align:center;padding:28px 26px;border-radius:24px;background:linear-gradient(160deg,#ffffff24,#ffffff0d);border:1px solid var(--glass-b);box-shadow:0 30px 80px #00000080;animation:in .35s cubic-bezier(.3,1.4,.5,1)}@keyframes in{0%{transform:scale(.85);opacity:0}}.card h2{font-family:Fredoka,sans-serif;font-size:30px;margin-bottom:8px}.card p{color:#cfe6e2;line-height:1.5;margin-bottom:16px}.card ul{list-style:none;text-align:left;margin:0 auto 18px;display:inline-block;color:#cfe6e2;line-height:1.7}.card .big{font-family:Fredoka,sans-serif;font-size:44px;color:var(--accent);line-height:1.1;margin:6px 0 2px}.row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.resume{margin:0 0 14px;padding:10px 14px;border-radius:16px;background:#5eead41a;border:1px solid rgba(94,234,212,.4);display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left}.resume[hidden]{display:none}.resume span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.9px;color:var(--ok);font-weight:800}.resume b{display:block;font-family:Fredoka,sans-serif;font-size:17px;margin:2px 0 0;font-weight:600}.hero{display:flex;justify-content:center;gap:8px;margin-bottom:12px}.hero .tile{position:relative;width:58px;height:68px;animation:float 2.4s ease-in-out infinite}.hero .tile:nth-child(2){animation-delay:.4s}.hero .tile:nth-child(3){animation-delay:.8s}@keyframes float{50%{transform:translateY(-8px) rotate(3deg)}}@media(max-width:560px){.chip{min-width:0;padding:5px 9px}.chip b{font-size:16px}button{padding:8px 11px;font-size:14px}}.card{max-height:calc(100dvh - 40px);overflow:auto}.opt{margin:0 0 14px;text-align:left}.opt>span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);font-weight:800;margin-bottom:6px}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg button{flex:1 1 0;min-width:64px;padding:7px 8px;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:3px}.seg button small{opacity:.65;font-size:11px;font-weight:600}.seg button svg{width:46px;height:26px;fill:currentColor;opacity:.85}.seg button.on{background:#5eead426}table.scores{width:100%;border-collapse:collapse;margin:0 0 16px;text-align:left;font-size:15px}.scores td{padding:7px 6px;border-bottom:1px solid var(--glass-b)}.scores td:first-child{width:30px;color:var(--accent);font-family:Fredoka,sans-serif}.scores td.s{font-family:Fredoka,sans-serif;font-size:18px;text-align:right;font-variant-numeric:tabular-nums}.scores small{color:var(--muted);display:block;font-size:11px}input.name{font:inherit;font-weight:800;color:var(--text);background:#00000040;border:1px solid var(--glass-b);border-radius:12px;padding:10px 14px;width:100%;text-align:center;margin-bottom:12px;outline:none}input.name:focus{border-color:var(--accent)}@media(max-height:720px){.hero{display:none}}@media(max-width:560px){.app{gap:8px;padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}h1{display:none}header{gap:6px;flex-wrap:nowrap}.chip{flex:1 1 0;min-width:0;padding:5px 8px}.lbl{display:none}footer{flex-wrap:nowrap;gap:5px}footer button{flex:1 1 0;min-width:0;height:46px;padding:0 4px;display:flex;align-items:center;justify-content:center;font-size:18px}footer button .n{margin-left:3px;padding:0 5px;font-size:11px}.card{padding:20px 16px}.overlay{padding:12px}.toast{font-size:13px;padding:6px 12px}}@media(orientation:landscape)and (max-height:520px){.app{display:grid;grid-template-columns:1fr 176px;grid-template-rows:auto auto 1fr;column-gap:10px;row-gap:8px}#wrap{grid-column:1;grid-row:1 / 4}header{grid-column:2;grid-row:1;display:grid;grid-template-columns:1fr 1fr;gap:6px}h1{display:none}.chip{min-width:0;padding:4px 8px}.chip b{font-size:16px}.timebar{grid-column:2;grid-row:2}footer{grid-column:2;grid-row:3;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;align-content:start}.lbl{display:none}footer button{height:42px;padding:0;font-size:18px;display:flex;align-items:center;justify-content:center}footer button .n{margin-left:3px;padding:0 5px;font-size:11px}.hero{display:none}.card{padding:16px 18px}}.card.start{max-width:940px;padding:22px 28px}.start-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:8px 32px;align-items:center;margin-bottom:14px}.start-info .hero{margin-bottom:8px}.start-info h2{margin-bottom:6px}.start-info p{margin-bottom:10px}.start-info ul{margin:0;line-height:1.6}.start-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.start-opts .opt{margin:0;min-width:0}.start-opts .opt.wide{grid-column:1 / -1}.opt>span em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:600;opacity:.7}.start .keys{margin:12px 0 0;font-size:13px;color:var(--muted)}.start .seg button{min-width:0}@media(max-width:820px){.card.start{max-width:560px}.start-grid{grid-template-columns:1fr;gap:10px}.start-info ul{display:none}.start-info p{margin-bottom:0}.start-info h2{font-size:24px}}@media(max-width:560px){.card.start{padding:14px}.start-opts{gap:8px 10px}.start-opts .opt>span{margin-bottom:4px}.seg button svg{width:38px;height:22px}.start .keys{display:none}.start-info p:not(.top){display:none}}@media(hover:none){.start .keys{display:none}}@media(orientation:landscape)and (max-height:520px){.card.start{max-width:880px;padding:12px 16px}.start-grid{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:8px 18px;margin-bottom:8px}.start-info p{display:block;font-size:13px;margin-bottom:0}.start-info ul{display:none}.start-opts{gap:6px 12px}.seg button{padding:5px 6px}.resume{margin-bottom:8px;padding:6px 10px}}html,button,.overlay,.board,#board{touch-action:manipulation}@media(max-width:560px){#segShape button{font-size:10.5px;padding:6px 2px}#segSize button,#segDiff button{padding:6px 3px}}.block{position:absolute;left:0;top:0;z-index:2;pointer-events:auto;background:repeating-linear-gradient(135deg,#ffffff0d 0 6px,#00000014 6px 12px),linear-gradient(160deg,#5b6b7e,#38465a 60%,#27323f);box-shadow:inset 0 2px #ffffff38,inset 0 -3px #00000059,0 4px 6px #00000073;border:1px solid rgba(0,0,0,.35)}.block:after{content:"";position:absolute;inset:22%;border-radius:30%;border:2px solid rgba(255,255,255,.14);background:#0000002e}.start-info .top{margin:12px 0 0;padding:8px 12px;border-radius:12px;background:#ffc8571a;border:1px solid rgba(255,200,87,.45);font-size:14px;line-height:1.4}.start-info .top[hidden]{display:none}.start-info .top b{font-family:Fredoka,sans-serif;font-size:18px;color:var(--accent)}.start-info .top small{opacity:.7}.start-opts .top{grid-column:1 / -1;margin:2px 0 0;text-align:center}@media(max-width:560px){.start-opts .top{font-size:13px;padding:6px 8px}}.card.help{max-width:680px;text-align:left;padding:24px 28px}.help h2{text-align:center;margin-bottom:6px}.help h3{margin:18px 0 6px;font-family:Fredoka,sans-serif;font-size:18px;color:var(--accent)}.help p,.help li,.help dd{line-height:1.5}.help ul{margin:0;padding-left:20px}.help li{margin:3px 0}.help p{margin:0}.help dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0}.help dt{font-weight:800;white-space:nowrap}.help dd{margin:0}.help .row{margin-top:20px;position:sticky;bottom:-24px;padding:10px 0 4px;background:linear-gradient(transparent,#1a2834f2 40%)}@media(max-width:560px){.card.help{padding:18px 16px}.help dl{grid-template-columns:1fr;gap:0}.help dd{margin:0 0 8px}}.help ul{list-style:disc;padding-left:22px}.help li::marker{color:var(--accent)}.help .row{background:linear-gradient(#1a283400,#1a2834fa 35%)}
