:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#29362f;background:#f5f5ef;--surface:#fff;--text:#29362f;--muted:#727c73;--line:#e7e9df;--soft:#f5f6f0;--accent:#41664b;--accent-soft:#edf3e6;--tile:#e4e5df;--green:#74966c;--yellow:#d7b96b;--grey:#dedfd8;color-scheme:light}
:root[data-theme=dark]{color-scheme:dark;--surface:#232a25;--text:#edf0e8;--muted:#a6b1a5;--line:#394239;--soft:#2a332c;--accent:#b0cba2;--accent-soft:#303e2e;--tile:#465047;--green:#64815c;--yellow:#a28a49;--grey:#424a43;background:#19201b;color:var(--text)}
html{scrollbar-gutter:stable}*{box-sizing:border-box}body{margin:0;color:var(--text)}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled:focus-visible{outline:none}[hidden]{display:none!important}
.site-header{max-width:932px;margin:auto;display:flex;align-items:center;gap:20px;padding:30px 24px 26px}.brand{display:flex;align-items:baseline;gap:5px;flex-shrink:0}.wordmark{font:600 49px/1.1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.022em;text-transform:lowercase;white-space:nowrap;display:block}.wordmark span{font:inherit;letter-spacing:inherit}.logo-day-number{font:400 1.44rem/normal Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#9a9a9c;letter-spacing:.02em;opacity:.84;padding:0;border:0;background:none;border-radius:0}.wordmark .title-row{color:#7f7f84}.wordmark .title-dle{color:#a8a8ac}:root[data-theme=dark] .wordmark .title-row{color:#dcdcdf}.header-tagline{font-size:12px;border-left:1px solid var(--line);padding:5px 0 5px 20px;color:var(--muted)}.header-actions{margin-left:auto;display:flex;gap:8px}.icon-button{width:38px;height:38px;background:none;border:1px solid transparent;border-radius:50%;font-size:21px;display:grid;place-items:center;color:var(--muted)}.icon-button:hover{background:var(--surface);border-color:var(--line);color:var(--text)}.help-button{font-size:18px;font-weight:650;border-color:var(--line);background:var(--surface)}
.layout{width:min(100% - 48px,884px);margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr) 310px;align-items:start;gap:24px}.game-card{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:12px 34px 24px;min-width:0;box-shadow:0 8px 28px #24372c04}.game-tabs{display:flex;gap:4px;padding:0 0 12px;border-bottom:1px solid var(--line);justify-content:space-between}.game-tabs a{padding:13px 15px 12px;color:var(--muted);font-size:13px;border-radius:10px;font-weight:550;text-align:center}.game-tabs a[aria-current=page]{background:var(--accent-soft);color:var(--accent)}.game-tabs a:hover{color:var(--text)}.game-tabs a span{font-size:10px;margin-left:3px;border:1px solid currentColor;border-radius:50%;padding:0 3px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:650;color:var(--muted);margin:0 0 10px}h1,h2{letter-spacing:-1px;margin:0}h1{font-size:35px;line-height:1.12;font-weight:600}h2{font-size:27px;line-height:1.2;font-weight:600}.game-description{font-size:13px;color:var(--muted);margin:10px 0 0}.board-grid{display:grid;grid-template-columns:repeat(var(--size,5),1fr);gap:7px;width:min(100%,var(--board-width,342px));margin:0 auto;touch-action:none;user-select:none}.tile{border:0;border-radius:7px;aspect-ratio:1;font-size:clamp(21px,3.2vw,31px);font-weight:650;text-transform:uppercase;background:var(--grey);color:var(--text);padding:0;position:relative;transition:background-color .15s,transform .15s;min-width:0;box-shadow:inset 0 -2px 0 #00000005}.tile.green{background:var(--green);color:#fff}.tile.yellow{background:var(--yellow);color:#302c20}.tile.grey{background:var(--grey);color:var(--text)}.tile.selected{outline:3px solid var(--accent);outline-offset:2px;transform:scale(.96)}.tile.drop-target{outline:3px dashed var(--accent);outline-offset:2px}.tile:disabled{opacity:1}.tile.locked:after{content:"";position:absolute;width:3px;height:3px;background:#ffffff85;border-radius:50%;right:6px;bottom:6px}.tile.mystery{font-size:33px}.board-message{min-height:20px;margin:22px 0 14px;text-align:center;font-size:12px;line-height:1.6;color:var(--muted)}.play-status{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:420px;margin:auto}.status-label{font-size:9px;letter-spacing:1.6px;display:block;color:var(--muted);margin-bottom:3px}.play-status strong{font-size:29px;font-weight:500;font-variant-numeric:tabular-nums}.status-progress{display:grid;text-align:right;gap:6px;font-size:12px}.status-progress span+span{font-size:10px;color:var(--muted)}.board-bottom-links{display:flex;justify-content:center;gap:26px;margin-top:21px}.text-button{background:none;border:0;padding:5px 0;font-size:11px;font-weight:600;color:var(--accent);text-decoration:none}.text-button:hover{text-decoration:underline}.primary-button,.secondary-button{display:inline-flex;justify-content:center;align-items:center;min-height:42px;padding:11px 16px;border-radius:9px;border:1px solid var(--accent);font-size:12px;font-weight:600}.primary-button{background:var(--accent);color:var(--surface)}.secondary-button{border-color:var(--line);background:var(--surface);color:var(--text)}.primary-button:hover,.secondary-button:hover{filter:brightness(.95)}
.quest-card{background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 13%,var(--line));border-radius:22px;padding:26px 22px;position:sticky;top:24px}.quest-heading{display:flex;justify-content:space-between;align-items:center}.quest-card h2{font-size:29px;letter-spacing:-.7px;margin:0;font-weight:600}.quest-meter{display:flex;align-items:center;gap:17px;padding:20px 0 21px}.quest-meter>strong{font-size:41px;font-weight:500;letter-spacing:-2px;color:var(--accent);font-variant-numeric:tabular-nums}.quest-meter>strong span{font-size:20px;color:var(--muted);letter-spacing:-1px}.quest-meter>div{flex:1}.quest-meter>div>span{font-size:10px;color:var(--muted)}.progress-track{height:4px;background:color-mix(in srgb,var(--accent) 12%,transparent);border-radius:4px;overflow:hidden;margin-top:10px}.progress-track>div{height:100%;width:0;background:var(--accent);border-radius:4px;transition:width .3s}.quest-list{display:grid;gap:9px}.quest-item{padding:13px 12px;border:1px solid var(--line);background:var(--surface);border-radius:12px;display:flex;gap:12px;align-items:center;transition:border-color .15s}.quest-item:hover{border-color:var(--accent)}.quest-symbol{width:29px;height:29px;border:1px solid var(--line);border-radius:7px;color:var(--muted);display:grid;place-items:center;flex-shrink:0;font-size:17px}.quest-item.done .quest-symbol{background:var(--accent);color:var(--surface);border-color:var(--accent)}.quest-item.active{border-color:color-mix(in srgb,var(--accent) 40%,var(--line))}.quest-item-main{display:grid;gap:4px;flex:1}.quest-item-main strong{font-size:12px;font-weight:600}.quest-item-main span{font-size:9px;color:var(--muted)}.quest-item-arrow{font-size:14px;color:var(--muted)}.quest-reset{margin-top:22px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid color-mix(in srgb,var(--accent) 13%,transparent);padding-top:17px;font-size:10px;color:var(--muted)}.quest-reset strong{font-weight:550;font-variant-numeric:tabular-nums;letter-spacing:.7px;color:var(--accent)}.quest-finish{padding:20px 0 0}.quest-finish strong{font-size:20px;font-weight:600;color:var(--accent)}.quest-finish p{font-size:11px;line-height:1.6;color:var(--muted)}
.completion{text-align:center;padding-top:4px}.completion h2{font-size:30px;font-weight:600;outline:none}.completion>p{font-size:12px;line-height:1.6;color:var(--muted);margin:9px 0}.completion>p strong{color:var(--text);font-weight:650}.completion-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px}.completion-secondary{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px;margin-top:15px}.completion-secondary>span{font-size:9px;color:var(--muted);font-variant-numeric:tabular-nums}.new-day-banner{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:var(--accent-soft);font-size:11px;line-height:1.5;padding:12px;border-radius:9px;margin-bottom:22px}.new-day-banner button{white-space:nowrap}.site-footer{width:min(100% - 48px,884px);margin:25px auto 32px;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:var(--muted)}
dialog{width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--line);padding:32px;border-radius:20px;background:var(--surface);color:var(--text);box-shadow:0 30px 120px #0003;position:fixed}dialog::backdrop{background:#18251dcc;backdrop-filter:blur(5px)}.dialog-close{display:grid;place-items:center;padding:0;line-height:1;position:absolute;top:12px;right:14px;border:0;background:none;font-size:25px;font-weight:300;color:var(--muted);width:32px;height:32px;border-radius:50%}.dialog-close:hover{background:var(--soft)}dialog h2{font-weight:600;font-size:35px;line-height:1.13;margin-bottom:16px}dialog>p{font-size:12px;line-height:1.7;color:var(--muted)}.tutorial-dialog{text-align:center}.tutorial-dialog h2{margin-bottom:14px}.tutorial-dialog>p#tutorialIntro{max-width:310px;margin:0 auto}.tutorial-demo{touch-action:none;user-select:none;display:grid;grid-template-columns:repeat(3,53px);justify-content:center;gap:7px;margin:21px 0 12px}.tutorial-demo .tile{width:53px;flex:none;font-size:26px}.demo-caption{font-size:10px!important;min-height:17px;margin:8px 0 0!important}.demo-reset{font-size:10px}.tutorial-rules{display:grid;gap:10px;margin:23px 0;text-align:left;padding:17px 0;border-block:1px solid var(--line)}.tutorial-rules p{display:flex;align-items:center;gap:10px;margin:0;font-size:11px}.tutorial-rules strong{min-width:42px;font-weight:600}.tutorial-rules p>span:last-child{color:var(--muted)}.legend-dot{width:13px;height:13px;border-radius:3px;flex:none}.legend-dot.green{background:var(--green)}.legend-dot.yellow{background:var(--yellow)}.legend-dot.grey{background:var(--grey)}.tutorial-tip{font-size:11px!important;text-align:left}.mystery-tip{padding:12px;background:var(--soft);border-radius:8px;font-size:11px!important;text-align:left}.tutorial-start{width:100%;margin-top:9px}.tutorial-footnote{font-size:9px!important;margin:11px 0 0!important}.dialog-note{font-size:10px!important;border-top:1px solid var(--line);padding-top:16px;margin-top:20px}#historyForm{display:grid;gap:12px;margin-top:24px}#historyForm label{font-size:11px;font-weight:600}input,textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:var(--soft);color:var(--text);padding:12px}textarea{font-size:12px;line-height:1.6;resize:vertical}.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--surface);padding:13px 20px;border-radius:10px;font-size:12px;z-index:10;box-shadow:0 8px 25px #0002;max-width:calc(100vw - 32px);text-align:center}.skip-link{position:fixed;top:-100px;left:16px;background:var(--surface);padding:12px;z-index:12}.skip-link:focus{top:12px}
@media(max-width:800px){.site-header{padding:23px 20px}.layout{width:calc(100% - 32px);grid-template-columns:minmax(0,1fr) 270px;gap:16px}.game-card{padding:12px 20px 24px}.game-tabs a{padding-inline:9px;font-size:11px}.quest-card{padding:22px 17px}.tile{font-size:25px}.site-footer{width:calc(100% - 40px)}}
@media(max-width:640px){.site-header{padding:20px 18px;gap:12px;flex-wrap:wrap}.wordmark{font-size:39px;letter-spacing:.018em}.header-tagline{order:3;flex-basis:100%;border:0;padding:0;font-size:11px}.header-actions{gap:2px}.icon-button{width:32px;height:32px;font-size:19px}.help-button{font-size:15px}.layout{width:calc(100% - 24px);display:flex;flex-direction:column;gap:16px}.game-card,.quest-card{width:100%;border-radius:17px}.game-card{padding:10px 20px 22px}.game-tabs a{padding:12px 13px;font-size:12px}.game-description{font-size:12px}.board-grid{gap:6px}.board-grid[data-size="7"]{gap:4px}.board-grid[data-size="7"] .tile{font-size:21px;border-radius:5px}.quest-card{position:static;padding:22px}.quest-list{grid-template-columns:1fr 1fr}.quest-item{padding:12px 10px;gap:9px}.quest-item-arrow{display:none}.quest-meter{padding-bottom:16px;max-width:270px}.site-footer{flex-direction:column;text-align:center;gap:9px;margin:20px auto}.completion-actions .primary-button{flex:1;max-width:260px}.new-day-banner{flex-direction:column;align-items:start;gap:5px}dialog{padding:28px 25px}.tile{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}
@media(max-width:380px){.game-tabs a{padding-inline:8px;font-size:11px}.game-card{padding-inline:17px}.quest-item{gap:7px}.quest-item-main span{font-size:8px}}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.status-progress{display:block;color:var(--muted);font-size:11px}
#soundButton{position:relative}#soundButton[aria-pressed=true]{color:var(--accent)}#soundButton.muted:after{content:"";position:absolute;width:19px;height:1.5px;background:currentColor;transform:rotate(-45deg);pointer-events:none}
.board-grid.dragging{cursor:grabbing}.tile.drag-source{opacity:.28;outline:2px dashed var(--accent);outline-offset:2px;transform:none}.drag-ghost{position:fixed;display:grid;place-items:center;pointer-events:none;z-index:100;transform:translate(-50%,-50%) scale(1.08);border:2px solid #ffffffaa;box-shadow:0 14px 30px #19251d45;font-size:31px;opacity:1;transition:none;cursor:grabbing}.drag-ghost:after{display:none}
.board-grid.celebrating .tile{animation:completed-tile-wave 3.2s cubic-bezier(.4,0,.2,1) infinite;animation-delay:calc(var(--celebration-step)*90ms);box-shadow:inset 0 0 0 1px #ffffff20}
.board-grid.celebrating .tile:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 20%,#ffffff35 48%,transparent 75%);background-size:250% 100%;pointer-events:none;animation:completion-shimmer 3.2s ease-in-out infinite;animation-delay:calc(var(--celebration-step)*90ms)}
@keyframes completed-tile-wave{0%,12%,40%,100%{transform:translateY(0) scale(1)}24%{transform:translateY(-5px) scale(1.025);box-shadow:0 5px 13px #41664b25,inset 0 0 0 1px #ffffff40}}
@keyframes completion-shimmer{0%,8%{background-position:130% 0;opacity:0}18%,30%{opacity:1}45%,100%{background-position:-80% 0;opacity:0}}
@media(max-width:640px){.drag-ghost{font-size:28px}}
@media(prefers-reduced-motion:reduce){.board-grid.celebrating .tile,.board-grid.celebrating .tile:before{animation:none!important}.board-grid.celebrating .tile{box-shadow:inset 0 0 0 2px #ffffff35}}
.archive-dialog{width:min(660px,calc(100vw - 32px));padding:28px;overflow:hidden}
.archive-dialog[open]{display:flex;flex-direction:column}
.archive-dialog h2{font-size:30px;margin:0 32px 20px 0}
.archive-controls{display:flex;align-items:center;gap:10px;margin-bottom:20px}
.archive-controls button{min-width:42px;padding:8px;font-size:16px;background:var(--soft)}
.archive-controls button:disabled{opacity:.35}
.archive-controls select{flex:1;min-width:0;background:var(--soft);color:var(--text);border:1px solid var(--line);border-radius:9px;padding:11px 12px;font:inherit;font-size:13px}
.archive-controls select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.archive-columns,.archive-row{display:grid;grid-template-columns:70px repeat(4,minmax(0,1fr));gap:8px;align-items:center}
.archive-columns{padding:0 10px 10px 0;border-bottom:1px solid var(--line);font-size:12px;color:var(--muted);text-align:center;flex-shrink:0}
.archive-columns>span:first-child{text-align:left}
.archive-rows{max-height:min(490px,55dvh);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:10px 6px 4px 0}
.archive-row{margin-bottom:8px}
.archive-date{font-size:11px;color:var(--muted);white-space:nowrap}
.archive-puzzle{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:58px;padding:9px 3px;background:var(--soft);border:1px solid var(--line);border-radius:9px;color:var(--text)}
.archive-puzzle strong{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums}
.archive-status{font-size:9px;white-space:nowrap;color:var(--muted)}
.archive-puzzle.complete{background:var(--green);border-color:var(--green);color:#fff}
.archive-puzzle.complete .archive-status{color:#ffffffd9}
.archive-puzzle.in-progress{background:color-mix(in srgb,var(--yellow) 18%,var(--surface));border-color:var(--yellow)}
.archive-puzzle.unavailable{opacity:.4;background:transparent;border-color:transparent}
.archive-puzzle:not(:disabled):hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.archive-puzzle[aria-current=page]{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:640px){.archive-dialog{padding:22px 17px}.archive-dialog h2{font-size:28px}.archive-columns,.archive-row{grid-template-columns:45px repeat(4,minmax(0,1fr));gap:5px}.archive-columns{font-size:10px;padding-right:6px}.archive-date{font-size:9px}.archive-puzzle strong{font-size:14px}.archive-status{font-size:8px}.archive-puzzle{min-height:54px;border-radius:7px}.archive-puzzle.unavailable .archive-status{font-size:6px}.archive-rows{padding-right:3px;scrollbar-gutter:auto}.archive-controls{gap:7px}}

.dialog-close svg{width:16px;height:16px;display:block;pointer-events:none}.tutorial-dialog>.eyebrow{margin:4px 26px 22px}.tutorial-demo.dragging{cursor:grabbing}.tutorial-drag-ghost{font-size:26px!important}

.game-card>.board-grid{margin-top:28px}.game-card>.new-day-banner{margin-top:20px}.new-day-banner:not([hidden])+.board-grid{margin-top:0}
.score-green{--score-color:#41664b;--score-background:#edf3e6}
.score-yellow{--score-color:#896415;--score-background:#fbefc6}
.score-red{--score-color:#b3443b;--score-background:#fce8e4}
:root[data-theme=dark] .score-green{--score-color:#b0cba2;--score-background:#303e2e}
:root[data-theme=dark] .score-yellow{--score-color:#e2c16e;--score-background:#433c22}
:root[data-theme=dark] .score-red{--score-color:#f0a29a;--score-background:#492a2a}
#swapCount,.completion>p .swap-score{color:var(--score-color)}
.completion .swap-score{display:inline-block;padding:4px 9px;border-radius:7px;background:var(--score-background);font-size:19px;font-variant-numeric:tabular-nums}
.completion #completionReaction{color:var(--text);font-size:13px;max-width:360px;margin:12px auto 9px;line-height:1.65}

.board-message.completed{font-size:9px;letter-spacing:1.8px;font-weight:650}
