/* Small, purposeful motion; gameplay never waits for an animation. */
:root{--ease-out:cubic-bezier(.22,1,.36,1)}html{scroll-behavior:smooth;scroll-padding-top:28px}::selection{background:#dce5cc;color:#263f33}button,a{transition:background-color .18s,color .18s,border-color .18s,box-shadow .22s,transform .22s var(--ease-out)}button:active:not(:disabled),.primary:active{transform:translateY(1px) scale(.98)}button:disabled{box-shadow:none}.primary:hover{background:#3c5946;box-shadow:0 5px 14px #263f3315}.primary>span,.play>span{display:inline-block;transition:transform .25s var(--ease-out)}.primary:hover>span,.card:hover .play>span{transform:translate(3px,-3px)}.hero>div:first-child{animation:arrive .7s var(--ease-out) both}.hero-art{animation:art-arrive .9s var(--ease-out) both}.art-board{animation:board-drift 5s ease-in-out 2}.hero-art .sun{animation:sun-turn 1.2s var(--ease-out) both}.card{animation:arrive .65s var(--ease-out) both;transition:transform .3s var(--ease-out),box-shadow .3s,border-color .3s}.card:nth-child(1){animation-delay:.12s}.card:nth-child(2){animation-delay:.2s}.card:nth-child(3){animation-delay:.28s}.card:hover{border-color:#bdc8ac;box-shadow:0 12px 26px #263f3312}.card-art>div{transition:transform .55s var(--ease-out)}.art-star{transition:transform .6s var(--ease-out),opacity .3s}.card:hover .art-star{transform:rotate(60deg) scale(1.18)}.card:hover .mini-grid{transform:rotate(-4deg) translateY(-3px)}.card:hover .sequence-drawing{transform:rotate(-3deg) translateY(-3px)}.card:hover .sudoku-drawing{transform:rotate(3deg) translateY(-3px)}.section-head{animation:arrive .65s .08s var(--ease-out) both}.daily-hub{box-shadow:inset 0 1px 0 #ffffff80}.daily-hub .daily-top button:hover{background:#e4e9d9;border-color:#91a17b}.board-tabs button:hover:not(.active){background:#e9ecdf}.leaderboard tbody tr{animation:row-arrive .4s var(--ease-out) both}.leaderboard tbody tr:nth-child(2){animation-delay:35ms}.leaderboard tbody tr:nth-child(3){animation-delay:70ms}.leaderboard tbody tr:nth-child(4){animation-delay:105ms}.leaderboard tbody tr:nth-child(5){animation-delay:140ms}.leaderboard tbody tr:nth-child(6){animation-delay:175ms}.leaderboard tbody tr:hover{background:#e7ebdc}.leaderboard .you-row:hover{background:#d2dfc1}.leaderboard td{font-variant-numeric:tabular-nums}.day-tools button:hover{box-shadow:0 7px 20px #263f3329;transform:translateY(-2px)}.day-tools #simulate-day>span:first-child{display:inline-block;transition:transform .55s var(--ease-out)}.day-tools #simulate-day:hover>span:first-child{transform:rotate(90deg)}.day-tools #reset-day:hover{background:#e8ecdf}.day-announcement{position:fixed;bottom:102px;right:22px;max-width:310px;padding:15px 19px;border:1px solid #d2dac4;border-radius:9px;background:#f8f9f1;box-shadow:0 6px 25px #263f3317;z-index:6;text-align:left;pointer-events:none;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .3s var(--ease-out);margin:0}.day-announcement.is-visible{opacity:1;transform:translateY(0)}.day-announcement:empty{display:none}dialog{box-shadow:0 28px 90px #15291d2e;border-color:#d2d8c9;scrollbar-width:thin;scrollbar-color:#bdc7af transparent}dialog[open]{animation:dialog-arrive .28s var(--ease-out) both}dialog[open]::backdrop{animation:backdrop-arrive .25s ease-out both}.modal-head{gap:12px}.close{display:grid;place-items:center;flex-shrink:0;width:32px;height:32px;border-radius:50%;font-size:23px;color:#6c7a64}.close:hover{background:#e9eddf;color:var(--ink);transform:rotate(90deg)}.game-controls button:hover:not(:disabled){background:#dce5cf;border-color:#9fac8b}.game-controls button.active:hover{background:#3d5945;color:white}.game-board{padding:5px;border:1px solid #dce1d2;border-radius:7px;background:#f1f3e9}.cell{transition:background-color .15s,box-shadow .15s,transform .18s var(--ease-out);font-variant-numeric:tabular-nums}.cell:hover:not(.fixed):not(.revealed){background:#c8d6b6;box-shadow:inset 0 0 0 1px #a0b48d}.cell.selected{background:#e9efd9;box-shadow:inset 0 0 0 1px #3d5945}.cell.fixed{cursor:default}.cell.revealed{animation:tile-reveal .3s var(--reveal-delay,0ms) var(--ease-out) both}.start-cell{animation:start-glow 1.6s ease-in-out 3}.cell.start-cell.revealed{outline:none}.answer{min-width:64px;font-variant-numeric:tabular-nums}.answer:hover:not(:disabled){background:#dbe6cd;border-color:#91a47b;transform:translateY(-2px)}.answer.is-correct{background:#c8d6b6;border-color:#93ad78;color:#2c493c}.answer.is-wrong{background:#f0e1d5;border-color:#c9a78f;color:#936448}.game-status{padding:0 5px;font-size:12px}.number-sequence{animation:round-arrive .35s var(--ease-out) both;font-variant-numeric:tabular-nums}.answers{animation:round-arrive .4s .05s var(--ease-out) both}.round-progress{display:flex;align-items:center;flex-direction:column;gap:13px}.progress-dots{display:flex;gap:7px}.progress-dots i{width:6px;height:6px;border-radius:50%;background:#d9decf;transition:background .25s,transform .25s}.progress-dots i.complete{background:#758c5f}.progress-dots i.current{background:#3d5945;box-shadow:0 0 0 3px #e5eadb;transform:scale(1.15)}.results-state>.result-heading,.results-state>.result-metrics,.results-state>.personal-result,.results-state>.comparison,.results-state>.leaderboard,.results-state>.game-controls{animation:arrive .5s var(--ease-out) both}.results-state>.result-metrics{animation-delay:60ms}.results-state>.personal-result{animation-delay:100ms}.results-state>.comparison{animation-delay:140ms}.results-state>.leaderboard{animation-delay:180ms}.results-state>.game-controls{animation-delay:210ms}.result-heading{position:relative}.result-symbol{display:inline-block;animation:success-bloom .7s var(--ease-out) both}.result-metrics strong{font-variant-numeric:tabular-nums}.result-metrics>div{box-shadow:inset 0 1px 0 #ffffffa0}.result-metrics>div:first-child{background:#e8eedb;border-color:#c8d5b8}.results-state #back-puzzles{background:var(--ink);color:var(--paper);border-color:var(--ink)}.results-state #back-puzzles:hover{background:#3d5945}.celebration{position:absolute;left:50%;top:24px;pointer-events:none;width:0;height:0}.celebration i{position:absolute;left:-2px;top:-2px;width:5px;height:7px;border-radius:2px;background:var(--color);animation:petal .85s var(--ease-out) both}.result-heading p{position:relative}.run-meta span:last-child{text-align:right}@keyframes arrive{from{opacity:0;translate:0 12px}to{opacity:1;translate:0 0}}@keyframes art-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes board-drift{0%,100%{transform:rotate(-9deg) translateY(0)}50%{transform:rotate(-7deg) translateY(-5px)}}@keyframes sun-turn{from{opacity:0;transform:rotate(-50deg) scale(.7)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes row-arrive{from{opacity:0}to{opacity:1}}@keyframes dialog-arrive{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes backdrop-arrive{from{opacity:0}to{opacity:1}}@keyframes tile-reveal{from{opacity:.5;transform:scale(.83)}to{opacity:1;transform:scale(1)}}@keyframes start-glow{0%,100%{box-shadow:0 0 0 0 #91a86e00}50%{box-shadow:0 0 0 4px #91a86e35}}@keyframes round-arrive{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}@keyframes success-bloom{from{opacity:0;transform:rotate(-60deg) scale(.5)}to{opacity:1;transform:rotate(0) scale(1)}}@keyframes petal{0%{opacity:0;transform:translate(0,0) rotate(0)}20%{opacity:1}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(var(--r))}}@media(hover:none){.card:hover{transform:none;box-shadow:none}.card:hover .mini-grid{transform:rotate(-9deg)}.card:hover .sequence-drawing{transform:rotate(-8deg)}.card:hover .sudoku-drawing{transform:rotate(8deg)}.answer:hover:not(:disabled){transform:none}}@media(max-width:540px){.day-announcement{bottom:105px;right:12px;left:12px;max-width:none;font-size:11px;padding:12px 15px}.result-heading p{font-size:26px}.results-state .game-controls{gap:9px}.run-meta{gap:14px}.number-sequence{font-size:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.card:hover,.primary:hover>span,.card:hover .play>span,.card:hover .card-art>div,.card:hover .art-star,.close:hover,.day-tools button:hover,.day-tools #simulate-day:hover>span:first-child,.answer:hover:not(:disabled){transform:none}.celebration{display:none}}

/* The completed puzzle stays in place until its wave and exit have finished. */
.sequence-number{display:inline-block;min-width:.65em;text-align:center}
.finishing-state .game-board,.finishing-state .number-sequence{overflow:visible}
.finishing-state .game-board{border-color:#bcccad;background:#edf2e4;transition:background-color .3s,border-color .3s}
.finishing-state .cell,.finishing-state .answer{cursor:default}
.finishing-state .game-status{color:#526c3f}
.finishing-state button:disabled{opacity:1}
.finishing-state .game-controls{opacity:.55;pointer-events:none}
.finishing-state .cell:hover{box-shadow:none}
@media(prefers-reduced-motion:reduce){.sequence-number{transform:none}}
