@font-face{font-family:"Baloo 2";font-style:normal;font-weight:500 800;font-display:swap;src:url(/fonts/baloo2-latin-var.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@keyframes rise{0%{transform:translateY(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-620px);opacity:0}}@keyframes driftX{0%{transform:translate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translate(340px);opacity:0}}@keyframes wobble{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}@keyframes land{0%{transform:translateY(-10px) scale(1.18)}60%{transform:translateY(2px) scale(.97)}to{transform:translateY(0) scale(1)}}@keyframes shakeX{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes bloom{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.06);opacity:1}to{transform:scale(1)}}@keyframes coinFall{0%{transform:translateY(-50px) rotate(0);opacity:0}10%{opacity:1}85%{opacity:1}to{transform:translateY(720px) rotate(560deg);opacity:0}}@keyframes flyVault{0%{transform:translate(0) scale(1);opacity:0}12%{opacity:1}80%{opacity:1}to{transform:translateY(168px) scale(.45);opacity:0}}@keyframes vaultPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes redWash{0%{opacity:0}18%{opacity:.85}55%{opacity:.55}to{opacity:0}}@keyframes stampIn{0%{transform:scale(2.6) rotate(-7deg);opacity:0}55%{transform:scale(.92) rotate(2deg);opacity:1}72%{transform:scale(1.05) rotate(-1deg)}to{transform:scale(1) rotate(0);opacity:1}}.dw-press:hover,.dw-press:active{transform:translateY(var(--dw-press-y));box-shadow:0 1px 0 var(--dw-press-shadow)}.dw-hoverbg:hover,.dw-hoverbg:active{background:var(--dw-hoverbg)}html,body{height:100%}#root{min-height:100%}html,body{margin:0;background:#f0f7f1}.dw-app{display:flex;flex-direction:column;min-height:100vh}:root{--dw-pad-top: 14px;--dw-pad-bottom: 24px;--dw-gap-board: 32px;--dw-gap-msg: 18px;--dw-gap-guess: 14px;--dw-key-pad: 6px 0 5px;--dw-key-font: 18px;--dw-help-pad: 14px 16px}@media(max-height:800px){:root{--dw-pad-top: 10px;--dw-pad-bottom: 14px;--dw-gap-board: 16px;--dw-gap-msg: 10px;--dw-gap-guess: 8px;--dw-key-pad: 3px 0 2px;--dw-key-font: 16px;--dw-help-pad: 10px 14px}}@supports (min-height: 100dvh){.dw-app{min-height:100dvh}}.dw-tap{position:relative;touch-action:manipulation}.dw-tap:after{content:"";position:absolute;top:50%;left:50%;width:max(100%,var(--dw-tap-min, 44px));height:max(100%,var(--dw-tap-min, 44px));transform:translate(-50%,-50%)}.dw-root{-webkit-tap-highlight-color:transparent}.dw-focus:focus{outline:none}.dw-focus:focus-visible{outline:3px solid #26332b;outline-offset:3px}@media(prefers-reduced-motion:reduce){.dw-root,.dw-root *,.dw-root *:before,.dw-root *:after{animation-duration:.001ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}}@font-face{font-family:"Baloo 2";font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/baloo2-latin-var.woff2) format("woff2")}.gs-root{--bg: #0b0d1a;--panel: #131629;--line: #23284a;--cyan: #22d3ee;--violet: #a78bfa;--violet-dim: #4c3a82;--amber: #fbbf24;--red: #f87171;--text: #e2e8f0;--muted: #6b7394;--vh: 1vh;--cell: min(20vw, calc(9.8 * var(--vh)), 78px);position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--bg);background-image:radial-gradient(ellipse 80% 50% at 50% -10%,#1b1f3d 0%,transparent 60%);color:var(--text);font-family:"Baloo 2",Nunito,sans-serif;display:flex;flex-direction:column;align-items:center;padding:max(8px,calc(1.2 * var(--vh))) 8px calc(1 * var(--vh));gap:clamp(4px,calc(1.1 * var(--vh)),12px);-webkit-user-select:none;user-select:none}@supports (height: 1dvh){.gs-root{--vh: 1dvh}}.gs-root *{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}.gs-root button{font-family:inherit}.gs-root header{text-align:center;position:relative;width:100%;max-width:420px}.gs-root h1{font-weight:800;font-size:clamp(20px,6.5vw,26px);letter-spacing:4px;display:flex;align-items:center;justify-content:center;gap:1px;filter:drop-shadow(0 0 12px rgba(167,139,250,.35))}.gs-root h1 .word{background:linear-gradient(90deg,var(--cyan),var(--violet));-webkit-background-clip:text;background-clip:text;color:transparent}.gs-root h1 .word:last-child{background:linear-gradient(90deg,var(--violet),#e879f9);-webkit-background-clip:text;background-clip:text;color:transparent}.gs-root h1 .logoGhost{font-size:.92em;margin-right:4px;margin-left:-4px;animation:gs-logobob 2.4s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(167,139,250,.7))}@keyframes gs-logobob{50%{transform:translateY(-3px)}}.gs-root .tagline{color:var(--muted);font-size:11.5px;font-weight:600;margin-top:2px}.gs-root .puzzleNo{color:var(--cyan)}.gs-root .gradeTag{color:var(--amber)}.gs-root .helpBtn{position:absolute;right:0;top:0;width:30px;height:30px;border-radius:50%;background:var(--panel);border:1px solid var(--line);color:var(--violet);font-size:16px;font-weight:800;cursor:pointer}.gs-root .helpBtn:hover{border-color:var(--violet)}.gs-root .hud{display:flex;flex-direction:column;align-items:center;gap:1px}.gs-root .hud .label{font-size:10px;letter-spacing:3px;color:var(--muted);font-weight:800}.gs-root .guessBar{display:flex;gap:12px}.gs-root .gheart{display:inline-block;font-size:24px;line-height:1.15;font-weight:800;color:#f472b6;text-shadow:0 0 12px rgba(244,114,182,.65);transition:color .3s}.gs-root .gheart.spent{color:#2a3152;text-shadow:none}.gs-root .gheart.low{color:var(--red);text-shadow:0 0 12px rgba(248,113,113,.7);animation:gs-heartbeat 1s ease-in-out infinite}@keyframes gs-heartbeat{50%{transform:scale(1.18)}}.gs-root .playCol{display:flex;flex-direction:column;align-items:center;gap:clamp(6px,calc(1.4 * var(--vh)),14px)}.gs-root .board{position:relative;display:grid;grid-template-columns:28px repeat(3,var(--cell));grid-template-rows:24px repeat(3,var(--cell));gap:6px}.gs-root .board.shake{animation:gs-shake .4s ease-in-out}@keyframes gs-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.gs-root .sum{display:flex;align-items:center;justify-content:center;color:var(--cyan);font-weight:800;font-size:clamp(14px,calc(var(--cell) * .24),18px);text-shadow:0 0 8px rgba(34,211,238,.35)}.gs-root .cell{background:#10142a;border:1px solid var(--line);border-radius:11px;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;font-size:calc(var(--cell) * .4);font-weight:800;color:#2d3560;transition:transform .08s,border-color .15s,background .25s,box-shadow .25s}.gs-root .cell:hover{border-color:var(--violet-dim)}.gs-root .cell:active{transform:scale(.93)}.gs-root .cell .note{color:#22d3ee8c;font-style:italic;font-size:calc(var(--cell) * .34)}.gs-root .cell .gnote{font-size:calc(var(--cell) * .36);opacity:.85;font-style:normal}.gs-root .cell.selected{border:2px solid var(--cyan);box-shadow:0 0 12px #22d3ee73}.gs-root .cell.suspect{border-color:var(--violet);box-shadow:0 0 10px #a78bfa59}.gs-root .cell.real{background:#1b1f3d;border-color:#3a4278;color:#c7cdf2;cursor:default}.gs-root .cell.real .stamp{position:absolute;bottom:2px;right:6px;font-size:9px;letter-spacing:1px;color:#7d87c4;font-weight:800}.gs-root .cell.ghost{background:#a78bfa1f;border-color:var(--violet);color:var(--violet);cursor:default;box-shadow:0 0 20px #a78bfa8c;animation:gs-floaty 2.2s ease-in-out infinite}@keyframes gs-floaty{50%{box-shadow:0 0 30px #a78bfad9}}.gs-root .cell.flash{animation:gs-nope .5s ease-out}@keyframes gs-nope{0%{background:#7f1d3a;color:#fff;transform:scale(1.12)}}.gs-root .caught{position:absolute;pointer-events:none;z-index:6;font-size:34px;animation:gs-rise 1.3s ease-out forwards}@keyframes gs-rise{0%{transform:translateY(0) scale(.6);opacity:0}25%{opacity:1}to{transform:translateY(-80px) scale(1.5);opacity:0}}.gs-root .padWrap{display:flex;flex-direction:column;align-items:center}.gs-root .pad{display:grid;grid-template-columns:repeat(3,var(--cell));gap:6px}.gs-root .pad .key{height:min(44px,calc(5 * var(--vh)));border-radius:10px;background:var(--panel);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px;color:#9aa7d8;cursor:pointer;transition:border-color .15s,box-shadow .15s,color .15s}.gs-root .pad .key.noted{color:#22d3ee80}.gs-root .pad .key.out{color:#333b66;border-color:#1a1f3d;text-decoration:line-through;cursor:default}.gs-root .pad .ghostKey{grid-column:1 / -1;height:min(40px,calc(4.6 * var(--vh)));font-size:17px;gap:8px}.gs-root .pad .ghostKey .gklabel{font-size:11.5px;letter-spacing:2px;font-weight:800;color:#b9a8ef}.gs-root .pad .ghostKey.noted{opacity:.5}.gs-root .catchBtn{margin-top:6px;width:calc(3 * var(--cell) + 12px);height:min(48px,calc(5.6 * var(--vh)));border:none;border-radius:12px;background:linear-gradient(90deg,var(--cyan),var(--violet));color:#0b0d1a;font-weight:800;font-size:15px;letter-spacing:2px;cursor:pointer;box-shadow:0 0 16px #a78bfa66;transition:opacity .2s,box-shadow .2s}.gs-root .catchBtn:disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.gs-root .catchBtn:not(:disabled):active{transform:scale(.97)}.gs-root .message{margin:0 8px;font-weight:800;font-size:14px;min-height:22px;text-align:center}.gs-root .message.win{color:var(--violet);text-shadow:0 0 10px rgba(167,139,250,.6)}.gs-root .message.loss{color:var(--red)}.gs-root .message.info{color:#aab4d8}.gs-root .endbar{display:flex;gap:10px}.gs-root .endbar button{background:var(--panel);border:1px solid var(--violet);border-radius:12px;color:var(--violet);font-weight:800;font-size:12px;padding:8px 14px;cursor:pointer}.gs-root .footNote{font-size:11px;color:var(--muted);font-weight:600;margin-top:auto}.gs-root .footNote button{background:none;border:none;color:var(--amber);font-weight:800;font-size:11px;cursor:pointer;text-decoration:underline}.gs-root .footNote .streak{color:#f472b6;margin-right:8px}.gs-root .overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#050610d9;display:flex;align-items:center;justify-content:center;z-index:10;padding:16px}.gs-root .modalCard{background:var(--panel);border:1px solid var(--violet-dim);border-radius:16px;max-width:400px;padding:24px;line-height:1.55;font-size:14px;font-weight:600;max-height:88vh;overflow-y:auto}.gs-root .modalCard h2{color:var(--violet);font-size:18px;letter-spacing:2px;margin-bottom:12px}.gs-root .modalCard ul{list-style:none}.gs-root .modalCard li{color:#cbd5e1;margin-bottom:9px;padding-left:22px;position:relative}.gs-root .modalCard li:before{content:"▸";position:absolute;left:4px;color:var(--violet)}.gs-root .modalCard li.hint{color:var(--amber)}.gs-root .modalCard li.hint:before{content:"★";color:var(--amber)}.gs-root .example{display:flex;align-items:center;gap:8px;justify-content:center;margin:14px 0}.gs-root .example .ecell{width:42px;height:42px;border-radius:10px;background:#10142a;border:1px solid #3a4278;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;color:#c7cdf2;position:relative}.gs-root .example .ecell.eghost{background:#a78bfa1f;border:1px dashed var(--violet);color:#a78bfabf}.gs-root .example .ecell.eghost:after{content:"👻";position:absolute;top:-9px;right:-7px;font-size:13px}.gs-root .example .eq{font-weight:800;font-size:18px;color:var(--cyan)}.gs-root .modalCard .bigBtn,.gs-root .endCard .row button{margin-top:8px;width:100%;background:var(--violet-dim);border:1px solid var(--violet);border-radius:10px;color:#fff;font-weight:800;font-size:14px;padding:10px;cursor:pointer}.gs-root .endCard .row button.ghostbtn{background:transparent;color:var(--violet)}.gs-root .endCard{text-align:center;min-width:300px}.gs-root .endCard .bigghost{font-size:62px;display:inline-block;position:relative;filter:drop-shadow(0 0 18px rgba(167,139,250,.7))}.gs-root .endCard .bigghost.angry{animation:gs-fume .35s ease-in-out infinite}.gs-root .endCard .bigghost.angry:after{content:"💢";position:absolute;top:-6px;right:-22px;font-size:24px}.gs-root .endCard .bigghost.happy{animation:gs-gloat 1s ease-in-out infinite}.gs-root .endCard .bigghost.happy:after{content:"🎶";position:absolute;top:-4px;right:-24px;font-size:20px}@keyframes gs-fume{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-3px) rotate(-5deg)}75%{transform:translate(3px) rotate(5deg)}}@keyframes gs-gloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-10px) scale(1.06)}}.gs-root .endCard h2{margin-top:6px;letter-spacing:3px;margin-bottom:0}.gs-root .endSub{color:#cbd5e1;margin-top:4px}.gs-root .quip{margin:10px auto 0;max-width:30ch;color:var(--violet);font-style:italic;font-weight:700;font-size:14px;line-height:1.4}.gs-root .trail{font-size:22px;margin-top:10px;letter-spacing:3px}.gs-root .verdict{color:var(--amber);font-weight:800;margin-top:4px;font-size:13px}.gs-root .streakLine{margin-top:6px;font-size:13px;font-weight:800;color:#f472b6}.gs-root .countdown{margin-top:10px;font-size:12px;font-weight:800;color:var(--muted);letter-spacing:1px}.gs-root .countdown b{color:var(--cyan);font-variant-numeric:tabular-nums}.gs-root .endCard .row{display:flex;gap:10px;margin-top:14px}.gs-root .endCard .row button{flex:1;margin-top:0}.gs-root .tutCard{text-align:center;width:min(380px,92vw);position:relative}.gs-root .tutSkip{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--muted);font-weight:800;font-size:11px;cursor:pointer;letter-spacing:1px}.gs-root .tutCard h2{margin-bottom:14px}.gs-root .tutBoard{display:grid;grid-template-columns:26px repeat(3,46px);grid-template-rows:22px repeat(3,46px);gap:5px;width:fit-content;margin:0 auto}.gs-root .tutSum{display:flex;align-items:center;justify-content:center;color:var(--cyan);font-weight:800;font-size:15px;border-radius:6px;transition:all .25s}.gs-root .tutSum.hot{color:var(--amber);text-shadow:0 0 10px rgba(251,191,36,.7);transform:scale(1.15)}.gs-root .tutSum.bad{color:var(--red);text-decoration:line-through}.gs-root .tutSum.good{color:#34d399;text-shadow:0 0 10px rgba(52,211,153,.7);transform:scale(1.15)}.gs-root .tutCell{background:#10142a;border:1px solid var(--line);border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:19px;color:#c7cdf2;position:relative;transition:all .25s}.gs-root .tutCell.washRow{background:#a78bfa24;border-color:var(--violet)}.gs-root .tutCell.dimCol{opacity:.35}.gs-root .tutCell.goodCol{border-color:#34d399;box-shadow:0 0 8px #34d39959}.gs-root .tutCell.ghost{color:var(--violet);background:#a78bfa1f;border-color:var(--violet)}.gs-root .tutCell.glow{box-shadow:0 0 16px #a78bfacc;animation:gs-floaty 1.6s ease-in-out infinite}.gs-root .tutGhostTag{position:absolute;top:-8px;right:-6px;font-size:12px}.gs-root .tutBody{margin:14px auto 0;max-width:34ch;min-height:76px;color:#cbd5e1;font-size:14px;line-height:1.55;text-align:center}.gs-root .tutEq{display:block;margin-top:8px;color:var(--amber);font-weight:800;font-size:15px}.gs-root .tutNav{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px}.gs-root .tutNav button{font-weight:800;font-size:13px;cursor:pointer;border-radius:10px;padding:9px 14px}.gs-root .tutBack{background:transparent;border:1px solid var(--line);color:var(--muted)}.gs-root .tutNext{background:var(--violet-dim);border:1px solid var(--violet);color:#fff;min-width:108px}.gs-root .tutDots{display:flex;gap:6px}.gs-root .tutDot{width:7px;height:7px;border-radius:50%;background:#2a3152;cursor:pointer;transition:background .2s}.gs-root .tutDot.on{background:var(--violet)}.gs-root .toast{position:fixed;bottom:26px;left:50%;transform:translate(-50%);background:var(--violet);color:#17102b;font-weight:800;font-size:13px;padding:10px 18px;border-radius:999px;z-index:20}
