:root{--paper:#efe9de;--surface:#f9f5ed;--ink:#23201a;--ink-soft:#625c51;--cell:#fbf8f2;--block:#2e2b26;--line:#8f877a;--word:#f1dc9c;--cursor:#e8b444;--accent:#1f6f5c;--on-accent:#fff;--key:#fbf8f2;--key-press:#e4dccd;--key-shadow:#c3b9a7;--wrong:#b3261e;--wrong-bg:#f3d3cd;--solved:#d5eadf;--solved-flash:#9fd8be;--toast-bg:#23201a;--toast-fg:#fbf8f2;--backdrop:#0006;--shadow:#0000000f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#171614;--surface:#22201d;--ink:#ece6da;--ink-soft:#a9a294;--cell:#2b2925;--block:#0b0a09;--line:#4d4840;--word:#4a3f22;--cursor:#8a6618;--accent:#5cbfa5;--on-accent:#0d1f19;--key:#34312c;--key-press:#48443d;--key-shadow:#0e0d0b;--wrong:#ff8f85;--wrong-bg:#4d2723;--solved:#203a30;--solved-flash:#2f6b55;--toast-bg:#ece6da;--toast-fg:#171614;--backdrop:#0009;--shadow:#0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#171614;--surface:#22201d;--ink:#ece6da;--ink-soft:#a9a294;--cell:#2b2925;--block:#0b0a09;--line:#4d4840;--word:#4a3f22;--cursor:#8a6618;--accent:#5cbfa5;--on-accent:#0d1f19;--key:#34312c;--key-press:#48443d;--key-shadow:#0e0d0b;--wrong:#ff8f85;--wrong-bg:#4d2723;--solved:#203a30;--solved-flash:#2f6b55;--toast-bg:#ece6da;--toast-fg:#171614;--backdrop:#0009;--shadow:#0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--paper);height:100%;color:var(--ink);overscroll-behavior:none;-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,sans-serif}button{font:inherit;color:inherit}#app{height:100dvh}.play{max-width:560px;height:100%;padding:env(safe-area-inset-top) 0 calc(env(safe-area-inset-bottom) + 8px);-webkit-user-select:none;user-select:none;touch-action:manipulation;flex-direction:column;margin:0 auto;display:flex}.topbar{align-items:baseline;gap:12px;padding:10px 16px 6px;display:flex}.brand{color:var(--accent);letter-spacing:.02em;font-size:1.25rem;font-weight:800}.topbar-title{color:var(--ink-soft);font-size:1rem}.board-wrap{flex:1;place-items:center;min-height:0;padding:4px 16px;display:grid;container-type:size}.board{--side:min(100cqw, 100cqh);--cell-size:calc(var(--side) * var(--zoom,1) / var(--n));width:calc(var(--side) * var(--zoom,1));height:calc(var(--side) * var(--zoom,1));grid-template-columns:repeat(var(--n), 1fr);grid-template-rows:repeat(var(--n), 1fr);background:var(--block);border:2px solid var(--block);flex:none;gap:1px;display:grid}.cell{background:var(--cell);cursor:pointer;place-items:center;display:grid;position:relative}.cell.block{background:var(--block);cursor:default}.cell.in-word{background:var(--word)}.cell.active{background:var(--cursor)}.cell .num{font-size:calc(var(--cell-size) * .26);color:var(--ink-soft);font-weight:600;line-height:1;position:absolute;top:1px;left:3px}.cell .letter{font-size:calc(var(--cell-size) * .58);margin-top:6%;font-weight:700;line-height:1}.cell.locked .letter{color:var(--accent)}.cell.wrong:not(.active){background:var(--wrong-bg)}.cell.wrong .letter{color:var(--wrong)}.cell.wrong:after{content:"";background:linear-gradient(to top right, transparent calc(50% - 1.5px), var(--wrong) calc(50% - 1.5px), var(--wrong) calc(50% + 1.5px), transparent calc(50% + 1.5px));opacity:.55;pointer-events:none;position:absolute;inset:0}.board.solved .cell:not(.block){background:var(--solved);cursor:default}.actions{gap:8px;margin:8px 16px 0;display:flex}.action{border:2px solid var(--accent);height:44px;color:var(--accent);cursor:pointer;background:0 0;border-radius:22px;flex:1;font-size:1rem;font-weight:700}.action-main{background:var(--accent);color:var(--on-accent)}.action:disabled{opacity:.4;cursor:default}.cluebar{align-items:stretch;gap:6px;min-height:68px;margin:8px 16px;display:flex}.clue-nav{background:var(--word);cursor:pointer;border:0;border-radius:10px;flex:0 0 48px;font-size:1.8rem;font-weight:700}.clue{background:var(--word);text-align:left;cursor:pointer;border:0;border-radius:10px;flex:1;min-width:0;padding:8px 12px;font-size:1.15rem;line-height:1.3}.clue-ref{color:var(--accent);white-space:nowrap;margin-right:8px;font-weight:800}.keyboard{flex-direction:column;gap:7px;padding:0 4px;display:flex}.kb-row{justify-content:center;gap:5px;display:flex}.kb-row:nth-child(2){padding:0 5%}.kb-key{background:var(--key);min-width:0;height:54px;box-shadow:0 2px 0 var(--key-shadow);cursor:pointer;border:0;border-radius:8px;flex:1 1 0;font-size:1.35rem;font-weight:700}.kb-key:active{background:var(--key-press);box-shadow:0 1px 0 var(--key-shadow);transform:translateY(1px)}.kb-wide{flex-grow:1.6;font-size:1.5rem}.toast{top:calc(env(safe-area-inset-top) + 12px);background:var(--toast-bg);width:max-content;max-width:calc(100vw - 32px);color:var(--toast-fg);text-align:center;opacity:0;pointer-events:none;z-index:30;border-radius:12px;padding:12px 18px;font-size:1.05rem;line-height:1.35;transition:opacity .2s,transform .2s;position:fixed;left:50%;transform:translate(-50%,-20px)}.toast.show{opacity:1;transform:translate(-50%)}.sheet-backdrop{background:var(--backdrop);z-index:20;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;max-height:80dvh;padding:0 16px calc(env(safe-area-inset-bottom) + 16px);border-radius:18px 18px 0 0;flex-direction:column;display:flex}.sheet-head{justify-content:space-between;align-items:center;padding:14px 0 8px;display:flex}.sheet-head h2{margin:0;font-size:1.3rem}.sheet-close{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:8px 4px 8px 16px;font-size:1.05rem;font-weight:700}.sheet-body{overflow-y:auto}.sheet-text{margin:4px 0 14px;font-size:1.1rem;line-height:1.45}.sheet-btn{background:var(--accent);width:100%;min-height:52px;color:var(--on-accent);cursor:pointer;border:0;border-radius:12px;margin-bottom:10px;font-size:1.1rem;font-weight:700;display:block}.sheet-btn:disabled{opacity:.4;cursor:default}.clue-list-dir{color:var(--accent);margin:8px 0 4px;font-size:1.1rem}.clue-list-items{margin:0 0 8px;padding:0;list-style:none}.clue-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:baseline;gap:10px;width:100%;min-height:48px;padding:10px 8px;font-size:1.1rem;line-height:1.35;display:flex}.clue-item.current{background:var(--word)}.clue-item.filled{color:var(--ink-soft)}.clue-item-num{text-align:right;min-width:1.6em}@media (min-height:760px){.kb-key{height:58px}}.back{color:var(--accent);cursor:pointer;white-space:nowrap;background:0 0;border:0;flex-shrink:0;padding:6px 8px 6px 0;font-size:1.1rem;font-weight:700}.topbar:has(.back){align-items:center}.sheet-btn-alt{color:var(--accent);border:2px solid var(--accent);background:0 0}.page{max-width:560px;min-height:100%;padding:env(safe-area-inset-top) 16px calc(env(safe-area-inset-bottom) + 24px);margin:0 auto}.page .topbar{padding-left:0;padding-right:0}.home-head{text-align:center;padding:28px 0 12px}.home-title{color:var(--accent);letter-spacing:.02em;margin:0;font-size:2.6rem;font-weight:800}.home-sub{color:var(--ink-soft);margin:4px 0 0;font-size:1.15rem}.card{background:var(--surface);box-shadow:0 1px 0 var(--key-shadow), 0 4px 16px var(--shadow);border-radius:16px;margin:14px 0;padding:18px 18px 14px}.card-harian{border-top:6px solid var(--cursor)}.card-title{margin:0;font-size:1.4rem}.card-text{color:var(--ink-soft);margin:6px 0 14px;font-size:1.1rem}.card-btn{background:var(--accent);width:100%;min-height:54px;color:var(--on-accent);cursor:pointer;border:0;border-radius:12px;font-size:1.15rem;font-weight:700;display:block}.card-btn:disabled{opacity:.45;cursor:default}.card-link{width:100%;color:var(--accent);cursor:pointer;background:0 0;border:0;margin-top:6px;padding:12px 0 4px;font-size:1.05rem;font-weight:700;display:block}.progress{background:var(--key-press);border-radius:5px;height:10px;margin:0 0 14px;overflow:hidden}.progress span{background:var(--accent);border-radius:5px;height:100%;display:block}.home-foot{text-align:center;color:var(--ink-soft);margin-top:24px;font-size:.95rem}.level-grid{grid-template-columns:repeat(3,1fr);gap:12px;padding:8px 0;display:grid}.level-tile{border:2px solid var(--accent);background:var(--surface);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:2px;padding:14px 4px 12px;display:flex}.level-num{font-size:1.9rem;font-weight:800;line-height:1.1}.level-size{color:var(--ink-soft);font-size:.95rem}.level-mark{color:var(--accent);margin-top:2px;font-size:1rem;font-weight:700}.level-tile.done{background:var(--solved)}.level-tile.open{background:var(--word)}.level-tile.locked{border-color:var(--line);opacity:.6;cursor:default}.timer{font-variant-numeric:tabular-nums;color:var(--ink-soft);white-space:nowrap;background:0 0;border:0;flex-shrink:0;margin-left:auto;padding:4px 0 4px 8px;font-size:1.05rem;font-weight:700}.timer:not(:disabled){color:var(--accent);cursor:pointer}.topbar .topbar-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.result-line{margin-bottom:4px;font-weight:700}.result-streak{margin-top:0}.share-preview{letter-spacing:1px;width:max-content;margin:0 auto 14px;font-size:1.15rem;line-height:1.15}.sheet-link{text-align:center;line-height:52px;text-decoration:none}.cta{background:var(--word);border-radius:12px;margin:14px 0 6px;padding:14px}.cta-title{margin:0 0 4px;font-size:1.15rem}.cta-text{margin:0 0 12px;font-size:1.05rem;line-height:1.4}.cta .sheet-btn{margin-bottom:0}.result-next{text-align:center;color:var(--ink-soft);margin:10px 0 4px;font-size:.95rem}.proto-panel{border:1px dashed var(--line);border-radius:12px;margin-top:18px;padding:12px 14px}.proto-panel h3{color:var(--ink-soft);margin:0 0 8px;font-size:1rem}.proto-row{justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:1rem;display:flex}.proto-btn{border:2px solid var(--accent);min-height:40px;color:var(--accent);cursor:pointer;background:0 0;border-radius:20px;padding:0 14px;font-weight:700}.proto-btn.on{background:var(--accent);color:var(--on-accent)}.sheet-close:focus:not(:focus-visible){outline:none}.action{white-space:nowrap}@media (max-height:700px){.topbar{padding:6px 16px 2px}.actions{margin-top:4px}.action{height:38px}.cluebar{min-height:56px;margin:6px 16px}.clue{padding:6px 10px;font-size:1.05rem}.keyboard{gap:6px}.kb-key{height:46px}}@media (max-height:600px){.kb-key{height:42px;font-size:1.25rem}.cluebar{min-height:50px}.clue{font-size:1rem;line-height:1.25}}@media (max-width:359px){.actions{gap:6px}.action{font-size:.95rem}}.proto-col{padding:6px 0;font-size:1rem}.proto-choices{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.theme-btn{min-width:40px;height:40px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:20px;flex:none;align-items:center;gap:6px;margin-left:auto;padding:0 8px;display:inline-flex}.theme-btn svg{width:24px;height:24px}.timer+.theme-btn{margin-left:2px}.theme-btn-label{border:2px solid var(--line);padding:0 12px 0 10px;font-size:1rem;font-weight:700}.home-head{padding-top:58px;position:relative}.home-head .theme-btn{position:absolute;top:8px;right:0}.board.celebrate .cell:not(.block){animation:solved-pop .5s ease-out calc(var(--d) * 45ms) both}@keyframes solved-pop{0%{transform:scale(1)}45%{background:var(--solved-flash);transform:scale(1.14)}to{transform:scale(1)}}.confetti{pointer-events:none;z-index:40;position:fixed;inset:0;overflow:hidden}.confetti span{left:var(--ox);top:var(--oy);font-size:var(--s);opacity:0;animation:confetti-burst 1.8s cubic-bezier(.2, .7, .3, 1) var(--delay) forwards;line-height:1;position:absolute}@keyframes confetti-burst{0%{opacity:0;transform:translate(-50%,-50%)scale(.3)}10%{opacity:1}55%{transform:translate(calc(-50% + var(--x)), calc(-50% + var(--y))) rotate(var(--r)) scale(1);opacity:1}to{transform:translate(calc(-50% + var(--x)), calc(-50% + var(--y) + 140px)) rotate(calc(var(--r) * 1.4)) scale(.9);opacity:0}}@media (prefers-reduced-motion:reduce){.board.celebrate .cell:not(.block){animation:none}}.fake-ad{z-index:50;background:var(--backdrop);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.fake-ad-box{background:var(--surface);text-align:center;border-radius:16px;width:100%;max-width:420px;padding:20px}.fake-ad-tag{color:var(--ink-soft);text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:.9rem;font-weight:700}.fake-ad-title{margin:8px 0;font-size:1.3rem}.fake-ad-count{color:var(--ink-soft);margin:0 0 14px;font-size:1.1rem}.section-title{color:var(--accent);margin:18px 0 4px;font-size:1.1rem}.page-intro{color:var(--ink-soft);margin:4px 0 12px;font-size:1.05rem;line-height:1.4}.pack-card{border:2px solid var(--line);background:var(--surface);text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;gap:2px;width:100%;margin:0 0 12px;padding:14px 16px;display:flex}.pack-name{font-size:1.2rem;font-weight:800}.pack-blurb{color:var(--ink-soft);font-size:1rem}.pack-progress{color:var(--accent);margin-top:4px;font-size:.95rem;font-weight:700}.board-wrap.zoomable{touch-action:pan-x pan-y;overscroll-behavior:contain;display:flex;overflow:auto}.board-wrap.zoomable .board{margin:auto}.clue-list-items li{align-items:stretch;gap:4px;display:flex}.clue-list-items .clue-item{flex:1}.clue-flag{color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:0 0 44px;font-size:1.2rem}.report-clue{background:var(--word);border-radius:10px;margin:0 0 12px;padding:10px 12px;font-size:1.05rem}.report-options{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.report-option{border:2px solid var(--line);text-align:left;cursor:pointer;background:0 0;border-radius:12px;min-height:48px;padding:0 14px;font-size:1.05rem}.report-option[aria-pressed=true]{border-color:var(--accent);background:var(--solved);font-weight:700}.home-link{color:var(--accent);padding:8px 4px;font-weight:700;text-decoration:none;display:inline-block}.desktop-hint{display:none}@media (hover:hover) and (pointer:fine){.keyboard{display:none}.desktop-hint{color:var(--ink-soft);text-align:center;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;margin:2px 16px 10px;font-size:.95rem;display:flex}.show-kb .keyboard{display:flex}}.kb-toggle{border:1px solid var(--line);color:var(--ink-soft);cursor:pointer;background:0 0;border-radius:14px;padding:4px 10px;font-size:.9rem}
