:root{--bg: #dff1fb;--bg-2: #f4fbff;--ink: #12324a;--ink-soft: #4d6b82;--ice: #eaf6fd;--ice-alt: #d9eef9;--line: #b9dcf2;--accent: #1e88e5;--accent-ink: #fff;--gold: #f6b400;--card: #ffffff;font-family:Nunito,ui-rounded,system-ui,sans-serif;color:var(--ink);-webkit-tap-highlight-color:transparent}*{box-sizing:border-box}body{margin:0;min-height:100dvh;background:radial-gradient(circle at 50% 0%,var(--bg-2),var(--bg) 60%) fixed}main{max-width:480px;margin:0 auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}button{font:inherit;font-weight:800;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:14px;padding:10px 14px;cursor:pointer;transition:transform .08s}button:active:not(:disabled){transform:scale(.96)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:#1669b6;color:var(--accent-ink);font-size:1.15rem;padding:14px;box-shadow:0 4px #1669b6}.stars i{font-style:normal;color:#c9dbe7}.stars i.on{color:var(--gold)}.tag{font-size:.7rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;background:#ffe6a3;color:#8a5a00;border-radius:999px;padding:2px 8px;vertical-align:middle}.fish{display:inline-flex;align-items:center;gap:4px;min-width:44px;justify-content:center;background:var(--card);border:2px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:800;white-space:nowrap}.topline{display:flex;justify-content:space-between;align-items:center}.daily-freeze{grid-column:1 / -1;margin-top:6px;font-size:.85rem;font-weight:700;color:#2b7bb9}.world-stars{float:right;font-size:.9rem;color:var(--ink-soft)}.world-stars:first-letter{color:var(--gold)}.hero{text-align:center}.hero-art{width:min(260px,70%);display:block;margin:8px auto 0}.hero h1{margin:4px 0 2px;font-size:2rem;font-weight:900;letter-spacing:-.01em}.hero p{margin:0;color:var(--ink-soft)}.daily-card{display:grid;grid-template-columns:1fr auto;gap:2px 12px;text-align:left;padding:14px 16px;background:linear-gradient(135deg,#fff,#eef8ff)}.daily-title{font-size:1.1rem;font-weight:900}.daily-status{justify-self:end;color:var(--accent)}.daily-streak,.daily-date{color:var(--ink-soft);font-weight:700;font-size:.9rem}.daily-date{justify-self:end}.colony-card{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;font-size:1.05rem}.chests{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:-6px}.chest{padding:6px;font-size:.85rem;display:flex;gap:6px;justify-content:center;align-items:center}.chest span{color:var(--ink-soft)}.chest:disabled:not(.open){filter:grayscale(1)}.chest.open{opacity:.6}.chest.ready{border-color:var(--gold);background:#fff8e1;animation:glow 1.2s ease-in-out infinite alternate}@keyframes glow{to{box-shadow:0 0 0 4px #f6b40040}}.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--ink);color:#fff;font-weight:800;padding:10px 18px;border-radius:999px;animation:rise .25s ease-out;z-index:10}.island{display:block;width:100%;height:auto;border-radius:24px;box-shadow:0 10px 30px #12324a26}.colonist{cursor:pointer;transform-box:fill-box;transform-origin:50% 100%;animation:wander ease-in-out infinite alternate}.colonist .inner{transform-box:fill-box;transform-origin:50% 100%}@keyframes wander{0%{transform:translate(-18px)}48%{transform:translate(10px)}52%{transform:translate(10px) scaleX(-1)}to{transform:translate(22px) scaleX(-1)}}.colonist-news{color:#2b7bb9!important}h2{margin:6px 0 0;font-size:1.05rem;font-weight:900}.levels{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.lvl{aspect-ratio:1;padding:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px}.lvl .n{font-size:1.15rem;font-weight:900}.lvl .stars{font-size:.7rem;letter-spacing:-1px}.lvl .tag{font-size:.55rem;padding:1px 5px}.lvl.done{background:#f2fbff}.lvl.boss{border-color:#f0c34a}.bar{display:flex;align-items:center;gap:8px}.bar h1{flex:1;margin:0;text-align:center;font-size:1.3rem;font-weight:900}.icon{width:44px;height:44px;padding:0;font-size:1.6rem;line-height:1}.icon-spacer{width:44px}.status{display:flex;justify-content:space-between;color:var(--ink-soft);font-weight:700}.status b{color:var(--ink);font-size:1.1rem}.board-wrap{position:relative;touch-action:none;-webkit-user-select:none;user-select:none;background:var(--line);border-radius:22px;padding:6px;box-shadow:0 10px 30px #12324a26}#board{display:block;width:100%;height:auto}.ice{fill:var(--ice)}.tile-alt{fill:var(--ice-alt)}.peng{transform-box:view-box;will-change:transform}.peng.gone{display:none}.peng .inner{transform-box:fill-box;transform-origin:50% 100%}.inner.bump{animation:bump .3s ease-out}@keyframes bump{25%{transform:rotate(var(--tilt, 0deg)) scale(1.12,.86)}55%{transform:rotate(calc(var(--tilt, 0deg) * -.5)) scale(.95,1.06)}80%{transform:rotate(calc(var(--tilt, 0deg) * .2))}}.puff{fill:#fff;opacity:.9;animation:puff .7s ease-out forwards}@keyframes puff{to{opacity:0;r:18px;transform:translateY(-6px)}}.inner.dance{animation:dance .7s ease-in-out infinite alternate both}@keyframes dance{0%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-18%) rotate(0) scale(1.05,.95)}to{transform:translateY(0) rotate(8deg)}}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;border-radius:22px}.confetti i{position:absolute;top:-12px;left:var(--x);width:8px;height:12px;border-radius:2px;animation:confetti 1.9s cubic-bezier(.25,.6,.4,1) forwards}@keyframes confetti{to{transform:translate(var(--drift),var(--fall)) rotate(var(--spin));opacity:.2}}.inner.fall{animation:fall .45s ease-in forwards}@keyframes fall{30%{transform:translateY(-10%) rotate(-12deg)}to{transform:translateY(25%) scale(.2) rotate(20deg);opacity:0}}.cracked .crack-hole,.cracked.broken .crack-ice{display:none}.cracked.broken .crack-hole{display:inline}.inner.enter{animation:enter .38s ease-in forwards}@keyframes enter{35%{transform:translateY(-22%) scale(1.05)}to{transform:translateY(10%) scale(.1);opacity:0}}.hint-arrow{fill:var(--accent);opacity:.55;stroke:#fff;stroke-width:6;animation:pulse .9s ease-in-out infinite alternate}@keyframes pulse{to{opacity:.25}}.tutorial{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.tutorial span{font-size:3.4rem;filter:drop-shadow(0 4px 6px rgba(18,50,74,.3));animation:swipe-x 1.4s ease-in-out infinite;--from: 70px;--to: -70px}.tutorial[data-dir=R] span{--from: -70px;--to: 70px}.tutorial[data-dir=U] span{animation-name:swipe-y;--from: 70px;--to: -70px}.tutorial[data-dir=D] span{animation-name:swipe-y;--from: -70px;--to: 70px}@keyframes swipe-x{0%{transform:translate(var(--from));opacity:0}20%{opacity:1}70%{transform:translate(var(--to));opacity:1}to{transform:translate(var(--to));opacity:0}}@keyframes swipe-y{0%{transform:translateY(var(--from));opacity:0}20%{opacity:1}70%{transform:translateY(var(--to));opacity:1}to{transform:translateY(var(--to));opacity:0}}#hint small{font-weight:700;color:var(--ink-soft)}.earned{color:#2b7bb9}.msg{margin:0;min-height:1.3em;text-align:center;color:var(--ink-soft);font-weight:700}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.controls button{padding:10px 4px;white-space:nowrap}.controls[hidden]{display:none}.result{text-align:center;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:16px;animation:rise .3s ease-out}.result h2{margin:0;font-size:1.4rem}.result p{margin:4px 0 12px;color:var(--ink-soft);font-weight:700}.big-stars{font-size:2.6rem;line-height:1.2}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.actions .primary{grid-column:1 / -1}@keyframes rise{0%{transform:translateY(12px);opacity:0}}@media(prefers-reduced-motion:reduce){.inner.bump,.inner.dance,.hint-arrow,.colonist{animation:none}.confetti,.puff{display:none}}.toggles{display:flex;gap:8px}.icon.off{filter:grayscale(1);opacity:.5}.footer{text-align:center;margin-top:12px;font-weight:700}.footer a{color:var(--ink-soft)}.infinite-card{padding:14px;font-size:1.05rem;background:linear-gradient(135deg,#eef8ff,#e8e4ff)}.infinite-card:disabled{font-size:.95rem;font-weight:700;color:var(--ink-soft)}
