.traverse-game{display:flex;flex-direction:column;align-items:center;gap:1.1rem;width:100%}.traverse-status{display:flex;gap:1rem;align-items:center;justify-content:space-between;width:100%;height:1.75rem;font-family:var(--font-sans);font-size:.7rem;color:var(--ink-muted);letter-spacing:.18em;text-transform:uppercase;font-weight:700}.traverse-progress{display:inline-flex;align-items:baseline;gap:.3rem}.traverse-progress-num{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.traverse-progress-sep{color:var(--ink-faint);font-weight:400}.traverse-progress-total{font-family:var(--font-sans);color:var(--ink-muted);font-weight:700;font-variant-numeric:tabular-nums}.traverse-progress-label{margin-left:.35rem}.traverse-solved{color:var(--ok);font-weight:800;letter-spacing:.22em}.traverse-failed{color:var(--err);font-weight:800;letter-spacing:.18em}.traverse-svg{width:100%;max-width:450px;border-radius:var(--r-md);touch-action:none;-webkit-user-select:none;user-select:none;box-shadow:var(--shadow-1);border:1px solid var(--rule-hair);background:var(--surface)}.traverse-svg.shake{animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.traverse-bg{fill:var(--surface)}.traverse-edge{stroke:var(--rule-soft);stroke-width:2;stroke-linecap:round;transition:stroke .3s,stroke-width .3s}.traverse-edge.used{stroke:var(--ink);stroke-width:3.5}.traverse-path{fill:none;stroke:var(--accent);stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;opacity:.45}.traverse-node{fill:var(--surface-raised);stroke:var(--ink-faint);stroke-width:2;transition:all .2s ease}.traverse-node.visited{fill:var(--surface-sunk);stroke:var(--ink-soft);stroke-width:2}.traverse-node.start{fill:var(--surface-raised);stroke:var(--accent);stroke-width:3}.traverse-node.current{fill:var(--ink);stroke:var(--ink);stroke-width:2}.traverse-node-hint{fill:none;stroke:var(--accent);stroke-width:2;stroke-dasharray:4 3;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.85}}.traverse-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;justify-content:center}.stats-block{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%;max-width:320px;padding:.75rem 0;border-top:1px solid var(--rule-hair);border-bottom:1px solid var(--rule-hair);margin:.25rem 0 .5rem}.stats-newbest{font-family:var(--font-sans);font-size:.7rem;font-weight:800;color:var(--accent);letter-spacing:.28em;text-transform:uppercase}.stats-row{display:flex;gap:2rem;justify-content:center;width:100%}.stats-cell{display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:5rem}.stats-value{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.stats-label{font-family:var(--font-sans);font-size:.62rem;font-weight:700;color:var(--ink-muted);letter-spacing:.22em;text-transform:uppercase}.btn-share{background:var(--accent);color:#fff;border:2px solid var(--accent);border-radius:var(--r-sm);padding:.85rem 2rem;font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;width:100%;max-width:280px;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.btn-share:before{content:"↗";font-size:.95rem;font-weight:800;margin-right:.15rem;letter-spacing:0}.btn-share:hover:not(:disabled){background:var(--accent-deep);border-color:var(--accent-deep)}.btn-share:active{transform:translateY(1px)}.share-toast{position:fixed;bottom:calc(2rem + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);background:var(--ink);color:var(--paper);padding:.7rem 1.4rem;border-radius:var(--r-sm);font-family:var(--font-sans);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;box-shadow:0 6px 20px #14141440;z-index:100;animation:toast-in .2s ease;pointer-events:none;white-space:nowrap}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.offbalance-game{display:flex;flex-direction:column;align-items:center;gap:1.1rem;width:100%}.offbalance-instructions{font-family:var(--font-serif);font-style:italic;font-size:.98rem;color:var(--ink-muted);text-align:center;line-height:1.5;max-width:34ch}.weighings{display:flex;flex-direction:column;gap:.75rem;width:100%}.weighing{background:var(--surface);border:1px solid var(--rule-hair);border-radius:var(--r-sm);padding:.85rem 1rem .4rem;box-shadow:var(--shadow-1)}.weighing-label{font-family:var(--font-sans);font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.26em;color:var(--ink-muted);margin-bottom:.25rem}.scale-svg{width:100%;max-width:380px;display:block;margin:0 auto}.scale-base{fill:var(--ink-faint)}.scale-stem{stroke:var(--ink-faint);stroke-width:3}.scale-pivot{fill:var(--ink-faint)}.scale-beam{stroke:var(--ink-soft);stroke-width:3;stroke-linecap:round;transition:all .4s ease}.scale-chain{stroke:var(--ink-faint);stroke-width:1.5}.scale-pan{fill:var(--surface-sunk);stroke:var(--rule-soft);stroke-width:1.5;transition:all .4s ease}.scale-coin-bg{fill:var(--surface-raised);stroke:var(--ink-soft);stroke-width:1.25}.scale-coin-text{font-size:10px;font-weight:700;fill:var(--ink);font-family:var(--font-sans)}.btn-reveal{background:transparent;border:1.5px dashed var(--rule-soft);border-radius:var(--r-sm);padding:.55rem 1.25rem;font-family:var(--font-sans);font-size:.68rem;color:var(--ink-muted);letter-spacing:.18em;font-weight:700;text-transform:uppercase}.btn-reveal:hover{border-color:var(--ink);color:var(--ink);background:var(--surface)}.coin-grid{width:100%;background:var(--surface);border:1px solid var(--rule-hair);border-radius:var(--r-sm);padding:1.2rem 1rem;box-shadow:var(--shadow-1)}.coin-grid-label{font-family:var(--font-sans);font-size:.68rem;font-weight:800;color:var(--ink-muted);margin-bottom:.85rem;text-align:center;letter-spacing:.26em;text-transform:uppercase}.coins{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center}.coin{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:50%;background:var(--surface-raised);border:2px solid var(--rule-soft);font-family:var(--font-serif);font-size:1rem;font-weight:700;color:var(--ink);transition:all .15s ease;box-shadow:0 1px #1414140f}.coin:hover:not(:disabled){border-color:var(--ink);transform:translateY(-2px);box-shadow:0 3px 6px #1414141a}.coin.selected{background:var(--ink);border-color:var(--ink);color:var(--paper);box-shadow:0 4px 10px #14141440;transform:translateY(-1px)}.coin.correct{background:var(--ok);border-color:var(--ok);color:#fff;box-shadow:0 0 0 4px var(--ok-soft)}.coin.wrong{background:var(--err);border-color:var(--err);color:#fff;animation:ob-shake .3s ease}@keyframes ob-shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.offbalance-actions{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.btn-submit{max-width:220px}.attempts-left{font-family:var(--font-sans);font-size:.68rem;color:var(--err);font-weight:700;letter-spacing:.18em;text-transform:uppercase}.offbalance-result{font-family:var(--font-sans);font-size:.78rem;font-weight:700;text-align:center;padding:.8rem 1.5rem;border-radius:var(--r-sm);letter-spacing:.16em;text-transform:uppercase;border:1px solid;max-width:100%}.offbalance-result.correct{color:var(--ok);background:var(--ok-soft);border-color:var(--ok)}.offbalance-result.wrong{color:var(--err);background:var(--err-soft);border-color:var(--err)}.tl-game{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.tl-instructions{font-family:var(--font-serif);font-style:italic;font-size:.98rem;color:var(--ink-muted);text-align:center;line-height:1.5;max-width:32ch}.tl-characters{display:flex;flex-direction:column;gap:.75rem;width:100%}.tl-character{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--surface);border:1px solid var(--rule-hair);border-left:3px solid var(--ink);border-radius:var(--r-sm);padding:1.1rem 1.15rem;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.tl-character:hover{transform:translateY(-1px);box-shadow:var(--shadow-1)}.tl-statement{flex:1;font-family:var(--font-serif);font-size:1rem;color:var(--ink);line-height:1.45}.tl-name{font-family:var(--font-serif);font-weight:800;color:var(--ink);letter-spacing:-.01em;margin-right:.1em;font-style:normal}.tl-statement-text{font-style:italic;color:var(--ink-soft)}.tl-label{min-width:70px;padding:.45rem .85rem;border-radius:var(--r-xs);font-family:var(--font-sans);font-size:.62rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;border:1.5px solid var(--rule-soft);background:var(--surface-raised);color:var(--ink-faint);flex-shrink:0;transition:all .15s ease;text-align:center}.tl-label:hover:not(:disabled){border-color:var(--ink);color:var(--ink)}.tl-label.truth{background:var(--ok);border-color:var(--ok);color:#fff}.tl-label.liar{background:var(--ink);border-color:var(--ink);color:var(--paper)}.tl-label.correct-answer{opacity:1}.tl-label.wrong-answer{opacity:.55;text-decoration:line-through}.tl-actions{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:100%}.tl-attempts,.tl-wrong{font-family:var(--font-sans);font-size:.68rem;color:var(--err);font-weight:700;letter-spacing:.18em;text-transform:uppercase}.tl-result{font-family:var(--font-sans);font-size:.78rem;font-weight:700;text-align:center;padding:.8rem 1.75rem;border-radius:var(--r-sm);letter-spacing:.22em;text-transform:uppercase;border:1px solid}.tl-result.correct{color:var(--ok);background:var(--ok-soft);border-color:var(--ok)}.tl-result.wrong{color:var(--err);background:var(--err-soft);border-color:var(--err)}.cg-game{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.cg-category{font-family:var(--font-sans);font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.28em;color:var(--ink-muted);padding:.35rem .75rem;border:1px solid var(--rule-soft);border-radius:var(--r-xs);background:var(--surface)}.cg-phrase{display:flex;flex-wrap:wrap;gap:1.1rem 1.5rem;justify-content:center;width:100%;background:var(--surface);padding:1.6rem 1rem;border:1px solid var(--rule-hair);border-radius:var(--r-md);box-shadow:var(--shadow-1)}.cg-word{display:flex;gap:3px}.cg-cell{display:flex;flex-direction:column;align-items:center;width:26px;cursor:default;padding:3px 0 2px;border-radius:var(--r-xs);transition:background .12s ease}.cg-cell.letter{cursor:pointer}.cg-cell.letter:hover{background:var(--surface-sunk)}.cg-cell.selected{background:var(--ink)}.cg-cell.selected .cg-guess{color:var(--paper)}.cg-cell.selected .cg-encoded{color:#f6f2e799;border-top-color:#f6f2e766}.cg-cell.free .cg-guess{color:var(--warn)}.cg-cell.vowel .cg-encoded{color:var(--accent);font-weight:700;border-top-color:var(--accent)}.cg-cell.hinted .cg-guess{color:var(--warn);animation:hint-flash .7s ease}@keyframes hint-flash{0%{background:var(--warn-soft)}to{background:transparent}}.cg-cell.correct .cg-guess{color:var(--ok)}.cg-guess{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--ink);height:1.55rem;line-height:1.55rem;letter-spacing:-.01em}.cg-encoded{font-family:var(--font-mono);font-size:.58rem;color:var(--ink-faint);border-top:1.5px solid var(--rule-soft);width:100%;text-align:center;padding-top:2px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.cg-punct{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--ink-soft);height:1.55rem;line-height:1.55rem}.cg-keyboard{display:flex;flex-wrap:wrap;gap:5px;justify-content:center;max-width:400px;width:100%}.cg-key{width:32px;height:42px;border:1px solid var(--rule-soft);border-radius:var(--r-sm);background:var(--surface-raised);font-family:var(--font-sans);font-size:.85rem;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:all .1s ease;box-shadow:0 1px #1414140f}.cg-key:hover:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-1px)}.cg-key:disabled{opacity:.35}.cg-key.used{background:var(--surface-sunk);color:var(--ink-faint);border-color:var(--rule-hair);box-shadow:none;text-decoration:line-through;text-decoration-thickness:1px}.cg-key.backspace{width:50px;font-size:1rem}.cg-actions{display:flex;align-items:center;gap:.5rem;min-height:34px}.cg-result{font-family:var(--font-sans);font-size:.8rem;font-weight:700;color:var(--ok);background:var(--ok-soft);border:1px solid var(--ok);padding:.75rem 1.75rem;border-radius:var(--r-sm);letter-spacing:.22em;text-transform:uppercase}.ca-game{display:flex;flex-direction:column;align-items:center;gap:1.5rem;width:100%}.ca-equation{background:var(--surface);border:1px solid var(--rule-hair);border-radius:var(--r-md);box-shadow:var(--shadow-1);padding:1.4rem 1.4rem 1.6rem;display:flex;flex-direction:column;align-items:flex-end;gap:.45rem;font-feature-settings:"tnum"}.ca-row{display:flex;align-items:center;gap:.25rem}.ca-row-prefix{width:1.2rem;text-align:right;font-family:var(--font-serif);font-size:1.4rem;font-weight:700;color:var(--ink-muted);margin-right:.25rem;line-height:1}.ca-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;width:2.4rem;height:3rem;background:transparent;border:1px solid transparent;border-radius:var(--r-xs);padding:.2rem 0;cursor:pointer;transition:all .15s ease}.ca-cell-empty{background:transparent;border-color:transparent;cursor:default}.ca-cell:hover:not(.ca-cell-empty):not(.solved):not(.revealed){background:var(--surface-sunk)}.ca-cell.selected{background:var(--ink)}.ca-cell.selected .ca-letter,.ca-cell.selected .ca-digit{color:var(--paper)}.ca-cell.revealed .ca-digit{color:var(--warn)}.ca-cell.solved .ca-digit{color:var(--ok)}.ca-cell.errored .ca-digit{color:var(--err);animation:ca-shake .4s ease}@keyframes ca-shake{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}.ca-letter{font-family:var(--font-serif);font-size:1.55rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;line-height:1}.ca-digit{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--ink-muted);letter-spacing:.02em;line-height:1;margin-top:.2rem;min-height:.9rem}.ca-sumline{height:2px;background:var(--ink);margin:.25rem 0 .45rem;align-self:flex-end}.ca-tracker{display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;max-width:420px}.ca-tracker-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;width:2.2rem;height:2.55rem;border:1px solid var(--rule-soft);border-radius:var(--r-xs);background:var(--surface);padding:.2rem 0;cursor:pointer;transition:all .15s ease}.ca-tracker-cell:hover:not(.revealed){border-color:var(--ink);background:var(--surface-raised)}.ca-tracker-cell.selected{background:var(--ink);border-color:var(--ink)}.ca-tracker-cell.selected .ca-tracker-letter,.ca-tracker-cell.selected .ca-tracker-digit{color:var(--paper)}.ca-tracker-cell.revealed{border-color:var(--warn);background:var(--warn-soft)}.ca-tracker-cell.revealed .ca-tracker-digit{color:var(--warn)}.ca-tracker-letter{font-family:var(--font-serif);font-size:.95rem;font-weight:700;color:var(--ink);line-height:1}.ca-tracker-digit{font-family:var(--font-mono);font-size:.75rem;font-weight:700;color:var(--ink-faint);margin-top:.18rem;line-height:1;font-variant-numeric:tabular-nums}.ca-keypad{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;max-width:360px;width:100%}.ca-key{height:44px;border:1px solid var(--rule-soft);border-radius:var(--r-sm);background:var(--surface-raised);font-family:var(--font-sans);font-size:1rem;font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:center;transition:all .1s ease;box-shadow:0 1px #1414140f}.ca-key:hover:not(:disabled){background:var(--ink);color:var(--paper);border-color:var(--ink);transform:translateY(-1px)}.ca-key:disabled{opacity:.3}.ca-key.used{background:var(--surface-sunk);color:var(--ink-faint);border-color:var(--rule-hair);box-shadow:none;text-decoration:line-through}.ca-key.blocked{opacity:.25}.ca-key-clear{font-size:1rem}.ca-actions{display:flex;align-items:center;gap:.5rem;min-height:34px}.ca-result{font-family:var(--font-sans);font-size:.8rem;font-weight:700;color:var(--ok);background:var(--ok-soft);border:1px solid var(--ok);padding:.75rem 1.75rem;border-radius:var(--r-sm);letter-spacing:.22em;text-transform:uppercase}.screen{min-height:100vh;min-height:100dvh;padding:calc(1.25rem + env(safe-area-inset-top)) calc(1.25rem + env(safe-area-inset-right)) calc(2.25rem + env(safe-area-inset-bottom)) calc(1.25rem + env(safe-area-inset-left));display:flex;flex-direction:column;max-width:520px;margin:0 auto;position:relative}.screen.center{align-items:center;justify-content:center}.hub{width:100%;max-width:440px;display:flex;flex-direction:column;gap:0;padding:3rem 0 2rem}.hub-masthead{display:flex;flex-direction:column;align-items:center;padding-bottom:1.25rem;border-bottom:2px solid var(--ink)}.hub-eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.5rem}.hub-logo{font-family:var(--font-serif);font-variation-settings:"opsz" 144,"SOFT" 0;font-size:4.2rem;font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--ink)}.hub-tagline{font-family:var(--font-serif);font-style:italic;font-size:1rem;color:var(--ink-muted);margin-top:.35rem;letter-spacing:.01em}.hub-meta{display:flex;justify-content:space-between;width:100%;padding:.6rem 0;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-muted);font-weight:600;border-bottom:1px solid var(--rule-hair)}.game-list{display:flex;flex-direction:column;width:100%}.game-card{display:flex;align-items:stretch;gap:1rem;text-align:left;padding:1.25rem .25rem;background:transparent;border:none;border-bottom:1px solid var(--rule-hair);width:100%;position:relative;overflow:hidden}.game-card:last-child{border-bottom:2px solid var(--ink)}.game-card:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:3px;height:60%;background:var(--accent);transition:transform .2s ease;transform-origin:center}.game-card:hover:before{transform:translateY(-50%) scaleY(1)}.game-card-num{font-family:var(--font-serif);font-size:1.3rem;font-weight:700;color:var(--ink-ghost);min-width:1.5rem;padding-top:.1rem;letter-spacing:-.02em;transition:color .2s ease}.game-card:hover .game-card-num{color:var(--accent)}.game-card-left{display:flex;flex-direction:column;gap:.3rem;flex:1}.game-card-name{font-family:var(--font-serif);font-size:1.55rem;font-weight:700;color:var(--ink);letter-spacing:-.015em;line-height:1.1}.game-card-desc{font-size:.88rem;color:var(--ink-muted);line-height:1.4;max-width:28ch}.game-card-arrow{align-self:center;font-size:1.4rem;color:var(--ink-faint);font-weight:400;transition:transform .2s ease,color .2s ease;line-height:1}.game-card:hover .game-card-arrow{color:var(--ink);transform:translate(5px)}.hub-footer{margin-top:1.25rem;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);font-weight:600;text-align:center}.home{display:flex;flex-direction:column;align-items:center;gap:1.4rem;text-align:center;padding:3rem 0 1rem;width:100%;max-width:420px;position:relative}.app-name{font-size:.7rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-muted)}.game-name{font-family:var(--font-serif);font-weight:800;font-size:3.1rem;color:var(--ink);letter-spacing:-.03em;line-height:1;position:relative;padding-bottom:.75rem}.game-name:after{content:"";display:block;width:40px;height:3px;background:var(--accent);margin:.75rem auto 0}.game-description{font-family:var(--font-serif);color:var(--ink-soft);font-size:1.05rem;line-height:1.55;font-style:italic;margin:.25rem 0 1.25rem;max-width:30ch}.playing-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0 1rem;margin-bottom:.75rem;border-bottom:1px solid var(--rule-hair);gap:.75rem}.playing-meta{display:flex;flex-direction:column;gap:.1rem;align-items:center;flex:1;text-align:center}.difficulty-label{font-family:var(--font-serif);font-size:1.2rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.1}.puzzle-count{font-size:.62rem;color:var(--ink-muted);letter-spacing:.22em;text-transform:uppercase;font-weight:700}.timer{font-family:var(--font-mono);font-size:1.05rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;min-width:3.5rem;text-align:right;letter-spacing:-.02em}.results{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;padding:3rem 1rem 1rem;width:100%;max-width:380px}.results-title{font-size:.72rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.32em;margin-bottom:.25rem}.results-time{font-family:var(--font-serif);font-size:4.4rem;font-weight:800;color:var(--ink);letter-spacing:-.04em;line-height:.95;font-variant-numeric:tabular-nums}.results-meta{font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--ink-muted);margin-bottom:1rem}.results>.rule-soft{max-width:180px;margin-bottom:.25rem}.btn-primary{background:var(--ink);color:var(--paper);border:2px solid var(--ink);border-radius:var(--r-sm);padding:.95rem 2.25rem;font-size:.8rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;width:100%;max-width:280px;font-family:var(--font-sans)}.btn-primary:hover:not(:disabled){background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:active{transform:translateY(1px)}.btn-ghost{background:transparent;border:1.5px solid var(--rule-soft);border-radius:var(--r-sm);padding:.9rem 2.25rem;font-size:.78rem;color:var(--ink-soft);font-weight:700;letter-spacing:.18em;text-transform:uppercase;width:100%;max-width:280px;font-family:var(--font-sans)}.btn-ghost:hover:not(:disabled){border-color:var(--ink);color:var(--ink);background:var(--surface)}.btn-ghost.compact{padding:.55rem 1.15rem;font-size:.68rem;letter-spacing:.16em;width:auto;max-width:none}.btn-back{position:absolute;top:1rem;left:0;background:transparent;border:1px solid var(--rule-soft);border-radius:50%;width:34px;height:34px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--ink-soft);padding:0;z-index:2}.btn-back:hover{color:var(--ink);border-color:var(--ink);background:var(--surface)}.btn-quit{background:transparent;border:1px solid var(--rule-soft);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--ink-muted);padding:0;line-height:1;flex-shrink:0}.btn-quit:hover{color:var(--err);border-color:var(--err)}.btn-hint{background:var(--surface);color:var(--warn);border:1.5px solid var(--warn);border-radius:var(--r-sm);padding:.5rem 1.1rem;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;font-family:var(--font-sans)}.btn-hint:hover:not(:disabled){background:var(--warn);color:var(--paper)}.hint-label{font-size:.68rem;color:var(--warn);letter-spacing:.16em;font-weight:700;text-transform:uppercase}.difficulty-list{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:340px;margin-top:.5rem}.difficulty-item{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--rule-hair);border-radius:var(--r-sm);text-align:left;font-family:var(--font-sans);transition:all .15s ease}.difficulty-item:hover{border-color:var(--ink);background:var(--surface-raised);transform:translateY(-1px);box-shadow:var(--shadow-1)}.difficulty-item-name{font-family:var(--font-serif);font-size:1.15rem;font-weight:700;color:var(--ink);letter-spacing:-.01em}.difficulty-item-desc{font-size:.82rem;color:var(--ink-muted);font-weight:400;line-height:1.4}.picker-title{font-family:var(--font-serif);font-size:1.8rem;font-weight:700;color:var(--ink);letter-spacing:-.02em;margin-bottom:.25rem}.picker-note{font-family:var(--font-serif);font-style:italic;font-size:.95rem;color:var(--ink-muted);text-align:center;line-height:1.5;max-width:32ch;margin:-.25rem 0 .5rem}:root{--paper: #f6f2e7;--paper-deep: #ede7d4;--surface: #fdfaf1;--surface-raised: #ffffff;--surface-sunk: #f0ebda;--ink: #141414;--ink-soft: #2e2a24;--ink-muted: #595246;--ink-faint: #8a8373;--ink-ghost: #bbb5a2;--rule: #1a1a1a;--rule-soft: #cec6b0;--rule-hair: #e3dcc6;--accent: #b5432a;--accent-deep: #8d2f1c;--accent-soft: #f4d9cd;--accent-wash: #fbece4;--ok: #2f6a4a;--ok-soft: #dfece2;--warn: #a86b1f;--warn-soft: #f3e4c9;--err: #9a2a22;--err-soft: #f3dedc;--game-cryptograms: #b5432a;--game-traverse: #2b5b8a;--game-offbalance: #856b1f;--game-truthslies: #2f6a4a;--r-xs: 2px;--r-sm: 4px;--r-md: 8px;--r-lg: 14px;--shadow-1: 0 1px 0 rgba(20, 20, 20, .04), 0 1px 2px rgba(20, 20, 20, .04);--shadow-2: 0 2px 0 rgba(20, 20, 20, .05), 0 4px 10px rgba(20, 20, 20, .05);--font-serif: "Fraunces", "Iowan Old Style", Georgia, "Times New Roman", serif;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{min-height:100vh;min-height:100dvh}body{font-family:var(--font-sans);background:radial-gradient(1200px 600px at 50% -10%,rgba(181,67,42,.05),transparent 60%),var(--paper);background-attachment:fixed;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11","kern"}button{cursor:pointer;font-family:inherit;font-weight:600;color:inherit;border:none;background:none;transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease}button:active{transform:translateY(1px)}button:disabled{opacity:.4;cursor:default;transform:none}::selection{background:var(--ink);color:var(--paper)}.serif{font-family:var(--font-serif)}.mono{font-family:var(--font-mono)}.caps{text-transform:uppercase;letter-spacing:.18em;font-weight:700}.rule{height:1px;background:var(--rule);width:100%}.rule-soft{height:1px;background:var(--rule-hair);width:100%}.kicker{font-family:var(--font-sans);font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-muted)}
