@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-sans-latin-500-normal-B9HHJjqV.woff2) format("woff2"),url(/assets/dm-sans-latin-500-normal-Dr3UlScf.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff")}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/dm-sans-latin-700-normal-DvUfVpUG.woff2) format("woff2"),url(/assets/dm-sans-latin-700-normal-CUSSCpQX.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fraunces-latin-400-normal-6IfK1voy.woff2) format("woff2"),url(/assets/fraunces-latin-400-normal-NUPT2cO8.woff) format("woff")}@font-face{font-family:Fraunces;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fraunces-latin-500-normal-DnGCNyPD.woff2) format("woff2"),url(/assets/fraunces-latin-500-normal-BTR4KCeb.woff) format("woff")}:root{--region-0:#adcc65;--region-1:#f2a15b;--region-2:#70c2e3;--region-3:#b383d5;--region-4:#f0d05a;--region-5:#e9827c;--region-6:#57bba5;--region-7:#647fc9;--region-8:#efaed2}:root{font-family:DM Sans,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;font-weight:400;--ink:#33483c;--muted:#788074;--paper:#f8f4eb;--sage:#dce6c8}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #3b7063;outline-offset:4px}a{color:inherit}button svg{flex-shrink:0}.app-shell{max-width:1440px;margin:auto;padding:0 48px}.intro{text-align:center;padding:45px 0 35px}.eyebrow{font-size:10px;letter-spacing:1.65px;font-weight:700;display:block}h1,h2{font-family:Fraunces,Georgia,serif;font-weight:500;letter-spacing:-1.7px}h1{font-size:52px;line-height:1.15;margin:12px 0 13px}h2{font-size:32px;line-height:1.2;margin:14px 0 17px}.game-layout{display:grid;grid-template-columns:230px minmax(320px,520px) 205px;gap:34px;justify-content:center;align-items:start}.left-rail{padding-top:61px}.note-card{border-top:1px solid #dadfce;border-bottom:1px solid #dadfce;padding:22px 0}.note-card .eyebrow{color:#879077}ol{list-style:none;margin:26px 0 21px;padding:0}.note-card li{display:flex;gap:13px;margin-bottom:23px}.note-card li:last-child{margin-bottom:0}.rule-number{font-family:Fraunces,Georgia,serif;font-size:16px;color:#a4b18e;line-height:1.2}.note-card strong{font-size:12px;font-weight:600}.note-card p{font-size:12px;line-height:1.65;color:#7d8476;margin:6px 0 0}.text-button{border:0;padding:0;background:none;font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:4px;display:inline-flex;gap:25px;align-items:center}.text-button span{font-size:16px}.cat-note{margin:34px auto 0;display:flex;align-items:center;gap:15px;transform:rotate(-5deg);justify-content:center}.cat-note svg{width:77px}.cat-note p{font-family:Fraunces,Georgia,serif;font-style:italic;font-size:15px;color:#8c8e78;line-height:1.55}.game-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;min-height:43px}.difficulty{display:flex;background:#eaece0;border-radius:12px;padding:4px;gap:4px}.difficulty button{padding:9px 15px;border:0;border-radius:9px;background:none;font-size:12px;font-weight:600;display:flex;align-items:center;gap:12px}.difficulty button span{font-size:10px;opacity:.55;font-weight:400}.difficulty button[aria-pressed=true]{background:var(--ink);color:var(--paper);box-shadow:0 2px 4px #33483c22}.cat-counter{display:flex;gap:7px;align-items:center;font-size:13px;padding-right:6px}.cat-counter svg{width:16px;height:16px;opacity:.65}.cat-counter>span{color:#9ca28f}.board-frame{position:relative;background:#fffdf8;border:1px solid #e2e4d5;border-radius:22px;padding:16px;box-shadow:0 7px 0 -1px #e6e7d9,0 16px 35px #4c604709;min-height:350px;aspect-ratio:1}.board{height:100%;width:100%;display:grid;gap:5px}.cell{border:1px solid #ffffff70;border-radius:10px;display:flex;align-items:center;justify-content:center;padding:3px;position:relative;min-width:0;min-height:0;transition:filter .13s,transform .13s,box-shadow .13s}@media(hover:hover)and (pointer:fine){.cell:hover:not(:disabled){filter:brightness(1.035);transform:translateY(-1px)}}.cell:focus-visible{outline:3px solid #33483c;outline-offset:0;z-index:2}.cell svg{width:94%;height:94%;max-width:65px;max-height:65px;animation:cat-in .17s ease-out}.cell.has-cat{box-shadow:inset 0 0 0 2px #ffffff9c}.cell.conflict{box-shadow:inset 0 0 0 3px #bd584c}.cross{font-family:Arial,sans-serif;font-size:34px;font-weight:300;line-height:1;color:#fff}.region-0{background-color:var(--region-0)}.region-1{background-color:var(--region-1)}.region-2{background-color:var(--region-2)}.region-3{background-color:var(--region-3)}.region-4{background-color:var(--region-4)}.region-5{background-color:var(--region-5)}.region-6{background-color:var(--region-6)}.region-7{background-color:var(--region-7)}.loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#fffdf8ee;border-radius:22px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-cat{width:85px;animation:sway 1.5s ease-in-out infinite}.loading strong{font-family:Fraunces,Georgia,serif;font-size:25px;font-weight:400}.loading>span{font-size:12px;color:var(--muted)}.empty-board{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.empty-board>svg{width:80px}.empty-board p{font-size:14px}.board-status{margin-top:23px;min-height:42px;display:flex;align-items:center;justify-content:center;gap:8px;color:#818a77;font-size:11px;text-align:center}.status-dot{width:5px;height:5px;background:#a4b889;border-radius:50%}.board-status.warning{color:#a24f45}.board-status.warning>span{border:1px solid #b2665b;width:16px;height:16px;border-radius:50%;display:grid;place-items:center;font-weight:700}.board-status.success{color:#466040;gap:13px}.board-status.success>span{font-size:26px}.board-status.success div{display:flex;flex-direction:column;text-align:left;gap:3px}.board-status.success strong{font-size:14px;font-weight:600}.board-won{border-color:#a4ba8c}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}.toolbar>div{display:flex;gap:8px}.secondary,.primary{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-size:12px;font-weight:600;border-radius:10px;padding:12px 15px;min-height:43px}.secondary{border:1px solid #dfe3d4;background:transparent}.secondary:hover:not(:disabled){background:#ecefdf}.primary{background:#33483c;color:#fffaf0;border:1px solid #33483c;box-shadow:0 3px #223326;padding:12px 18px}.primary:hover:not(:disabled){background:#455e4b}.primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px #223326}.input-guide{display:flex;align-items:center;justify-content:center;gap:14px;color:#8b917e;font-size:9px;margin:24px 0 0}.input-guide>span{display:flex;align-items:center;gap:4px;white-space:nowrap}.input-guide b{font-size:18px;line-height:1;font-weight:400}.input-guide svg{width:21px;height:21px}.mini-empty{width:13px;height:13px;border:1px solid #aab597;border-radius:4px}.guide-tail{border-left:1px solid #dddccc;padding-left:13px;color:#a2a38f}.right-rail{padding-top:61px}.progress-card{background:#eeefdf;border:1px solid #e0e4d1;border-radius:16px;padding:23px 22px}.progress-card .eyebrow{font-size:9px;letter-spacing:1.2px;color:#788768;white-space:nowrap}.progress-number{font-family:Fraunces,Georgia,serif;font-size:55px;line-height:1;margin:25px 0}.progress-number span{display:block;font-family:DM Sans,sans-serif;font-size:11px;font-weight:400;color:#899277;letter-spacing:0;margin-top:8px}.stat-row{display:flex;justify-content:space-between;font-size:12px;padding:12px 0;border-top:1px solid #dce1cc}.stat-row strong{font-weight:500}.seed-note{margin:25px 0 0 23px;font-size:8px;line-height:1.8;letter-spacing:1.5px;color:#aaa997}.seed-note span{font-size:10px;letter-spacing:1px;color:#919882}footer{border-top:1px solid #e3e2d4;display:flex;justify-content:space-between;gap:15px;color:#949985;font-size:10px;margin-top:55px;padding:22px 0 25px}footer a{text-decoration:none;border-bottom:1px solid #c5cbb7}.error,.storage-warning{color:#9d5246;font-size:12px;line-height:1.7}.storage-warning{text-align:center;margin-top:30px}dialog{background:#fffdf8;color:var(--ink);border:1px solid #dce2d0;border-radius:22px;max-width:510px;width:calc(100% - 32px);padding:36px;box-shadow:0 30px 100px #33483c30}dialog::backdrop{background:#26332966;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-close{position:absolute;right:16px;top:16px;border:0;background:#eef0e4;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.dialog-cat{width:70px;display:block;margin:0 auto 15px}dialog p{font-size:13px;line-height:1.8;color:#7d8674}dialog .eyebrow{color:#8a967b}.tutorial-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:22px 0}.tutorial-steps>div{display:flex;flex-direction:column;align-items:center;gap:7px;font-size:10px;color:#8b957c}.tutorial-steps strong{font-size:11px;color:var(--ink)}.demo-cell{display:grid;place-items:center;width:61px;height:61px;background:var(--region-0);border-radius:10px;margin-bottom:3px}.demo-cell svg{width:56px}dialog .dialog-small{font-size:11px;line-height:1.8}dialog>.primary{width:100%;margin-top:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}@keyframes cat-in{0%{transform:scale(.7);opacity:.5}to{transform:scale(1);opacity:1}}@keyframes sway{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}@media(min-width:1400px){.game-layout{gap:45px}}@media(max-width:1150px){.app-shell{padding:0 30px}.game-layout{grid-template-columns:180px minmax(320px,480px) 170px;gap:24px}.progress-card{padding:22px 17px}.progress-card .eyebrow{font-size:8px}.note-card strong,.note-card p{font-size:11px}}@media(max-width:930px){.game-layout{grid-template-columns:minmax(320px,500px) 190px;gap:28px}.left-rail{display:none}.intro{padding-top:32px}h1{font-size:44px}.right-rail{padding-top:61px}}@media(max-width:700px){.app-shell{padding:0 20px}.intro{padding:29px 0 27px}h1{font-size:39px;letter-spacing:-1.4px;margin-top:9px}.game-layout{display:flex;flex-direction:column;align-items:center;gap:28px}.game{width:100%;max-width:500px}.game-top{margin-bottom:13px}.difficulty button{font-size:11px;padding:8px 13px;gap:9px}.board-frame{padding:11px;border-radius:18px;min-height:0}.board{gap:4px}.cell{border-radius:8px;padding:1px}.cat-counter{font-size:12px}.board-status{font-size:10px;margin-top:17px;min-height:35px}.toolbar{margin-top:9px}.secondary,.primary{font-size:11px;padding:11px 12px;gap:7px}.secondary svg,.primary svg{width:17px;height:17px}.toolbar>div{gap:6px}.input-guide{font-size:8px;gap:12px;margin-top:22px}.guide-tail{display:none!important}.right-rail{padding:0;width:100%;max-width:500px;display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.progress-card{grid-column:1/-1;padding:18px 20px;display:grid;grid-template-columns:1fr 70px 70px;gap:9px 15px;align-items:center}.progress-card .eyebrow{grid-column:1/-1;font-size:8px}.progress-number{font-size:32px;margin:0;grid-row:2}.progress-number span{font-size:9px;margin-top:5px}.stat-row{flex-direction:column;gap:6px;border:0;padding:0;font-size:10px}.stat-row strong{font-size:19px}.seed-note{text-align:right;margin:16px 0 0}footer{margin-top:30px;font-size:9px;line-height:1.7;flex-direction:column;gap:3px;padding:17px 0}dialog{padding:29px 24px}.board-status.success strong{font-size:12px}}@media(max-width:350px){.app-shell{padding:0 12px}.secondary,.primary{padding:10px;font-size:10px}.toolbar{gap:7px}h1{font-size:35px}.input-guide{gap:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.game-top-right{display:flex;align-items:center;gap:12px}.mobile-rules{display:none;width:28px;height:28px;place-items:center;border:1px solid #dfe3d4;background:none;border-radius:50%;font-family:Georgia,serif;font-size:16px}@media(max-width:930px){.mobile-rules{display:grid}}.cell svg.cross{width:100%;height:100%;max-width:none;max-height:none;color:#fff;animation:none}.board{touch-action:none;user-select:none;-webkit-user-select:none}.cell svg.cross{pointer-events:none}.win-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:20}.intro h1{margin:0}.seed-row{display:flex;align-items:center;gap:7px}.puzzle-share{display:inline-flex;position:relative}.share-button{border:1px solid #dfe3d4;border-radius:7px;background:transparent;width:28px;height:28px;display:grid;place-items:center;padding:5px}.share-button:hover:not(:disabled){background:#ecefdf}.share-button svg{width:15px;height:15px}.seed-note .share-status{position:absolute;top:32px;right:0;white-space:nowrap;font-size:10px;letter-spacing:0;color:var(--ink)}.share-link{position:absolute;top:52px;right:0;width:220px;padding:8px;border:1px solid #dfe3d4;border-radius:7px;color:var(--ink);background:#fffdf8;font:inherit;letter-spacing:0;z-index:3}@media(max-width:700px){.seed-note{grid-column:1/-1}.seed-row{justify-content:flex-end}}.win-dialog{width:calc(100% - 32px);max-width:420px;padding:28px;text-align:center}.win-dialog:focus{outline:none}.win-dialog h2{margin:0 0 20px}.win-cat{display:block;margin:auto;width:220px;max-width:100%;height:220px;object-fit:contain;border-radius:14px}.win-dialog .board-status{margin-top:22px;min-height:0}.win-dialog .board-status.success strong{font-size:14px}.win-dialog .board-status.success div{gap:6px}.win-dialog>.primary{margin-top:24px}.board{transition:opacity .12s ease-out}.board-exit{opacity:0}.board-enter .cell{animation:tile-wave .34s cubic-bezier(.2,.75,.3,1) both}.loading{animation:loading-reveal .12s .14s both}@keyframes tile-wave{0%{opacity:0;transform:translateY(14px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes loading-reveal{0%{opacity:0}to{opacity:1}}.region-8{background-color:var(--region-8)}@media(max-width:700px){.difficulty button{padding:8px 9px;gap:6px}.difficulty button span{font-size:9px}.game-top-right{gap:8px}.progress-card{grid-template-columns:1.5fr repeat(3,1fr);column-gap:10px}}@media(max-width:380px){.difficulty button span{display:none}}.cell.hint-cell{outline:3px solid var(--ink);outline-offset:-4px;box-shadow:inset 0 0 0 6px #fffdf8;position:relative;z-index:1}.cell.hint-cell:after{content:"✦";position:absolute;right:10%;top:5%;color:var(--ink);font-size:clamp(14px,2vw,23px);line-height:1;text-shadow:0 0 3px #fffdf8}.hint-dialog{max-width:390px;text-align:center;padding:42px 28px 28px}.hint-picture{display:block;width:auto;max-width:100%;height:auto;max-height:260px;margin:0 auto;border-radius:12px}.hint-dialog .dialog-actions{justify-content:center}@media(max-width:700px){.toolbar{flex-wrap:wrap}.toolbar>.primary{margin-left:auto}}.cat-icon{color:#1a1a1a}.arcade-header{max-width:1440px;margin:auto;padding:10px 48px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #e3e2d4}.arcade-brand{font-size:22px;font-weight:700;letter-spacing:-.9px;text-decoration:none}.arcade-brand span{color:#b87950}.arcade-home-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;font-size:12px;font-weight:600;text-decoration:none;border:1px solid #dce2d0;background:#eeefdf;border-radius:10px;padding:9px 12px}.arcade-home-button:hover{background:#e2e7d3}.arcade-home{max-width:1080px;margin:auto;padding:0 48px}.arcade-intro{padding:64px 0 36px}.arcade-intro .eyebrow{color:#788768}.arcade-intro h1{font-size:64px;line-height:1.05;margin:18px 0 22px}.arcade-intro p{color:var(--muted);font-size:15px;line-height:1.7}.game-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.game-card{display:grid;grid-template-columns:240px 1fr;max-width:760px;overflow:hidden;border:1px solid #dce2d0;border-radius:22px;background:#fffdf8;text-decoration:none;transition:transform .15s,box-shadow .15s}.game-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #33483c12}.game-card-art{background:#eceede;display:flex;align-items:center;justify-content:center;padding:30px}.mini-board{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;width:172px;transform:rotate(-5deg);padding:8px;background:#fffdf8;border-radius:16px;box-shadow:0 6px #33483c0a}.mini-board>span{aspect-ratio:1;display:grid;place-items:center;border-radius:7px}.mini-board svg{width:85%;height:85%}.game-card-copy{padding:28px 30px}.game-card-copy .eyebrow{color:#788768;font-size:9px}.game-card-copy h2{font-size:34px;margin:12px 0}.game-card-copy p{font-size:13px;line-height:1.7;color:var(--muted);margin:0 0 18px}.game-card-detail{display:block;font-size:10px;color:#899277}.game-card-play{display:inline-flex;align-items:center;gap:12px;margin-top:22px;font-size:13px;font-weight:700}.arcade-footer{margin-top:64px;justify-content:flex-end}.not-found{padding-top:60px}.not-found p{color:var(--muted)}.not-found .arcade-home-button{margin-top:12px}.route-loading{max-width:1080px;margin:60px auto;padding:0 48px;color:var(--muted)}@media(max-width:700px){.arcade-header{padding:8px 20px}.arcade-brand{font-size:20px}.arcade-home{padding:0 20px}.arcade-intro{padding:40px 0 24px}.arcade-intro h1{font-size:48px}.game-card{grid-template-columns:1fr}.game-card-art,.game-card-copy{padding:25px}.arcade-footer{margin-top:40px}.arcade-header+.app-shell .intro{padding-top:20px}}:root{color-scheme:light;--surface:#fffdf8;--surface-soft:#eeefdf;--surface-hover:#ecefdf;--line:#dce2d0;--accent:#788768}.theme-toggle{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--ink)}.theme-toggle svg{display:block;width:18px;height:18px}.theme-toggle:hover{background:var(--surface-hover)}:root[data-theme=dark]{color-scheme:dark;--ink:#e1e9db;--muted:#b1bdac;--paper:#1d2521;--sage:#46553e;--surface:#27322c;--surface-soft:#303c32;--surface-hover:#3b483d;--line:#4c594a;--accent:#b0c39a}[data-theme=dark] .arcade-header,[data-theme=dark] footer,[data-theme=dark] .note-card,[data-theme=dark] .stat-row{border-color:var(--line)}[data-theme=dark] .game-card,[data-theme=dark] .board-frame,[data-theme=dark] .mini-board,[data-theme=dark] dialog,[data-theme=dark] .share-link{background:var(--surface);border-color:var(--line)}[data-theme=dark] .board-frame{box-shadow:0 7px 0 -1px #121a15,0 16px 35px #00000020}[data-theme=dark] .game-card-art,[data-theme=dark] .progress-card,[data-theme=dark] .difficulty,[data-theme=dark] .dialog-close,[data-theme=dark] .arcade-home-button{background:var(--surface-soft);border-color:var(--line)}[data-theme=dark] .secondary,[data-theme=dark] .share-button,[data-theme=dark] .mobile-rules{border-color:var(--line)}[data-theme=dark] .secondary:hover:not(:disabled),[data-theme=dark] .share-button:hover:not(:disabled),[data-theme=dark] .arcade-home-button:hover{background:var(--surface-hover)}[data-theme=dark] .loading{background:#27322cee}[data-theme=dark] .note-card p,[data-theme=dark] .cat-note p,[data-theme=dark] .board-status,[data-theme=dark] .input-guide,[data-theme=dark] .guide-tail,[data-theme=dark] .seed-note,[data-theme=dark] .seed-note span,[data-theme=dark] .progress-number span,[data-theme=dark] .game-card-detail,[data-theme=dark] dialog p,[data-theme=dark] .tutorial-steps>div,[data-theme=dark] footer,[data-theme=dark] .cat-counter>span{color:var(--muted)}[data-theme=dark] .eyebrow,[data-theme=dark] .rule-number{color:var(--accent)}[data-theme=dark] .board-status.success{color:#bfdaa6}[data-theme=dark] .board-status.warning,[data-theme=dark] .error,[data-theme=dark] .storage-warning{color:#f0afa0}[data-theme=dark] .cell:focus-visible{outline-color:#fffdf8}[data-theme=dark] .cell.hint-cell{outline-color:#33483c}[data-theme=dark] .cell.hint-cell:after{color:#33483c}.board[data-pointer-focus=true] .cell:focus:not(.hint-cell){outline:none}
