:root{--blue: #0C2125;--green: #424B39;--teal: #4A6D5D;--orange: #EF4423;--eggshell: #F7F5F2;--line: #DDD9D2;--font-display: "Epilogue", sans-serif;--font-body: "Nunito Sans", sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}html{background:var(--blue)}body{margin:0;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--eggshell);color:var(--blue);font-family:var(--font-body);font-size:16px;-webkit-font-smoothing:antialiased}:focus-visible{outline:3px solid var(--orange);outline-offset:2px}.top{background:var(--blue);color:var(--eggshell);padding:12px 16px calc(12px + env(safe-area-inset-top)*0);padding-top:calc(12px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:space-between;gap:12px}.arcade{margin:0;font-size:10px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;opacity:.75}.top h1{margin:0;font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1.05;letter-spacing:.01em;text-transform:uppercase}.chip{display:inline-block;border:1px solid rgba(247,245,242,.35);border-radius:999px;padding:5px 12px;font-size:13px;font-weight:800;white-space:nowrap}main{width:100%;max-width:520px;margin:0 auto;padding:14px 16px 8px;flex:1}.puzzle-label{margin:0;font-family:var(--font-display);font-weight:700;font-size:14px}.howto{margin:2px 0 12px;font-size:13px;color:#0c2125a6}.waiting{padding:40px 8px;text-align:center}.waiting h2{font-family:var(--font-display);font-weight:700;font-size:18px;margin:0 0 8px}.waiting p{margin:0;color:#0c2125a6;font-size:14px}.solved{display:flex;flex-direction:column;gap:8px}.solved:not(:empty){margin-bottom:8px}.banner{border-radius:12px;padding:12px 14px;color:var(--eggshell)}.banner--teal{background:var(--teal)}.banner--green{background:var(--green)}.banner--blue{background:var(--blue)}.banner--orange{background:var(--orange)}.banner .group-name{margin:0;font-family:var(--font-display);font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.03em}.banner .group-items{margin:2px 0 8px;font-size:13px;font-weight:600}.banner .note-label{display:block;font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;opacity:.8;margin-bottom:2px}.banner .note{margin:0;font-size:13px;line-height:1.45}.banner .note a{color:var(--eggshell);font-weight:800}.banner.drop{animation:drop .32s ease-out}@keyframes drop{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.card{appearance:none;min-height:68px;min-width:44px;padding:4px 3px;border:1.5px solid var(--line);border-radius:10px;background:var(--eggshell);box-shadow:0 1px 2px #0c212512;color:var(--blue);font-family:var(--font-display);font-weight:700;font-size:13px;line-height:1.15;text-transform:uppercase;letter-spacing:.01em;overflow-wrap:break-word;cursor:pointer;transition:transform .12s ease,background-color .12s ease,color .12s ease}.card.long{font-size:9.5px;letter-spacing:0;padding-left:2px;padding-right:2px}.card[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:var(--eggshell)}.card.out{transform:scale(.7);opacity:0;transition:transform .3s ease-in,opacity .3s ease-in}.card.shake{animation:shake .4s ease-in-out}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}.misses{display:flex;align-items:center;justify-content:center;gap:10px;margin:16px 0 4px}.misses-label{font-size:13px;font-weight:600;color:#0c2125bf}.dots{display:inline-flex;gap:7px}.dot{width:11px;height:11px;border-radius:50%;background:var(--blue);border:2px solid var(--blue)}.dot.spent{background:transparent}.controls{display:flex;justify-content:center;gap:10px;margin:12px 0 4px}.btn{font-family:var(--font-body);font-weight:800;font-size:14px;border-radius:999px;padding:12px 20px;min-height:44px;cursor:pointer;transition:transform .1s ease}.btn:active{transform:scale(.97)}.btn-ghost{background:transparent;border:1.5px solid var(--blue);color:var(--blue)}.btn-cta{background:var(--orange);border:1.5px solid var(--orange);color:var(--eggshell)}.btn:disabled{background:transparent;border-color:var(--line);color:#0c212559;cursor:default;transform:none}.endpanel{margin-top:16px;border:1.5px solid var(--line);border-radius:12px;padding:18px 16px;text-align:center;background:var(--eggshell);box-shadow:0 1px 3px #0c212512}.result-line{margin:0;font-family:var(--font-display);font-weight:800;font-size:22px}.result-sub{margin:4px 0 12px;font-size:13px;color:#0c2125a6}.share-grid{font-size:20px;line-height:1.25;letter-spacing:.05em;margin-bottom:12px}.end-stats{display:flex;justify-content:center;gap:18px;margin-bottom:14px}.end-stat{display:flex;flex-direction:column;min-width:52px}.end-stat .num{font-family:var(--font-display);font-weight:800;font-size:20px}.end-stat .lbl{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#0c212599}.end-stat .num.streak-num{color:var(--orange)}.btn-share{padding:12px 36px}.club-line{margin:14px 0 0;font-size:13px}.club-line a{color:var(--blue);font-weight:600}.foot{text-align:center;padding:10px 16px calc(14px + env(safe-area-inset-bottom));font-size:12px;color:#0c21258c}.foot p{margin:0}.toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%) translateY(8px);background:var(--blue);color:var(--eggshell);font-size:14px;font-weight:600;padding:10px 18px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.ios-hint{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--blue);color:var(--eggshell);border-radius:12px;padding:12px 8px 12px 16px;font-size:13px;font-weight:600}.ios-hint-dismiss{background:transparent;border:none;color:var(--eggshell);font-size:22px;line-height:1;padding:8px 12px;min-width:44px;min-height:44px;cursor:pointer}@media (prefers-reduced-motion: reduce){.card,.card.out,.btn,.toast{transition:none}.card.shake,.banner.drop{animation:none}}@media (min-width: 480px){.grid{gap:10px}.card{min-height:76px;font-size:14px}.card.long{font-size:11.5px}}
