:root{--ink: #172033;--muted: #617086;--paper: #f4f0e7;--surface: #fffdf7;--surface-strong: #ffffff;--line: #d8d0c1;--blue: #245da8;--blue-soft: #e8f0ff;--red: #c84f3c;--red-soft: #ffece7;--gold: #e9ad3d;--gold-ink: #745213;--green: #2f7f6f;--kenken-line: #c5b8a4;--kenken-cage-line: #8b765d;--shadow: 0 22px 55px rgba(23, 32, 51, .14)}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;max-width:100vw;color:var(--ink);overflow-x:hidden;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{border:0;font:inherit}.game-coach{width:100%;display:grid;gap:4px;margin:10px 0 4px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--gold) 52%,var(--line));border-radius:10px;background:#fff8e8;color:var(--gold-ink);text-align:left}.game-coach strong{font-size:.78rem;line-height:1.1;text-transform:uppercase;letter-spacing:0}.game-coach span,.game-review-note{font-size:.86rem;line-height:1.45}.game-review-note{margin:10px 0 0;color:var(--muted)}.game-reward-strip{margin:10px 0;border:1px solid rgba(233,173,61,.5);border-radius:12px;background:#fff8e8;color:var(--gold-ink);padding:10px 12px;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;text-align:left}.game-reward-strip span,.game-reward-strip small{font-size:12px;font-weight:900}.game-reward-strip span{text-transform:uppercase}.game-reward-strip strong{color:var(--ink);font-size:18px;letter-spacing:0;white-space:nowrap}.reward-feedback{position:relative;isolation:isolate;margin:12px 0;border:1px solid rgba(233,173,61,.55);border-radius:14px;background:radial-gradient(circle at 12% 20%,rgba(255,255,255,.95),transparent 30%),linear-gradient(135deg,#fff6d6,#fffaf0 45%,#e8f8ee);color:var(--ink);box-shadow:0 14px 28px #6f4e1624;padding:12px 14px;width:min(100%,340px);box-sizing:border-box;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;overflow:hidden;text-align:left;animation:reward-pop .36s cubic-bezier(.2,1.4,.35,1) both}.reward-medal{width:46px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#f7b82f,#fff0a8 48%,#d4891f);color:#172033;font-size:1.2rem;font-weight:950;box-shadow:inset 0 0 0 3px #ffffff9e,0 8px 16px #7a500b2e}.reward-copy{min-width:0;display:grid;gap:2px}.reward-copy small{color:var(--gold-ink);font-size:.72rem;font-weight:950;line-height:1;text-transform:uppercase}.reward-copy strong{font-size:clamp(1rem,2vw,1.2rem);line-height:1.1}.reward-stars{color:#c98512;font-size:1rem;letter-spacing:0}.reward-side{display:grid;justify-items:end;gap:6px;min-width:0}.reward-sound-toggle{min-height:28px;border:1px solid rgba(29,113,72,.24);border-radius:999px;background:#ffffffb8;color:#1d7148;cursor:pointer;font-size:.72rem;font-weight:950;line-height:1;padding:6px 9px;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease;white-space:nowrap}.reward-sound-toggle[aria-pressed=true]{background:#1d7148;border-color:#1d7148;color:#fffdf5}.reward-sound-toggle:hover{border-color:#1d71488c;box-shadow:0 8px 16px #1d71481f;transform:translateY(-1px)}.reward-sound-toggle:focus-visible{outline:3px solid rgba(29,113,72,.28);outline-offset:2px}.reward-meta{display:grid;justify-items:end;gap:5px;font-size:.78rem;font-weight:900;color:var(--muted);white-space:nowrap}.reward-meta b{border-radius:999px;background:#228b5721;color:#1d7148;padding:4px 8px}.reward-burst span{position:absolute;width:7px;height:7px;border-radius:50%;background:#f0aa27;opacity:.8;animation:reward-spark .95s ease-out both}.reward-burst span:nth-child(1){left:18px;top:10px}.reward-burst span:nth-child(2){left:68px;top:8px;animation-delay:80ms}.reward-burst span:nth-child(3){right:38px;top:12px;animation-delay:.13s}.reward-burst span:nth-child(4){right:18px;bottom:16px;animation-delay:.18s}.reward-burst span:nth-child(5){left:42%;bottom:10px;animation-delay:.23s}@keyframes reward-pop{0%{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes reward-spark{0%{transform:translateY(0) scale(.6)}to{opacity:0;transform:translateY(-18px) scale(1.25)}}@media(prefers-reduced-motion:reduce){.reward-feedback,.reward-burst span{animation:none}}button:focus-visible{outline:3px solid rgba(36,93,168,.35);outline-offset:3px}.app-shell{width:min(1180px,100%);min-height:100vh;margin:0 auto;padding:18px;display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}.static-shell{width:min(760px,100%);min-height:100vh;margin:0 auto;padding:18px;display:grid;place-items:center}.static-page{border:1px solid rgba(216,208,193,.82);border-radius:18px;background:#fffdf7f2;box-shadow:var(--shadow);padding:28px;display:grid;gap:14px}.static-page h1{margin-bottom:4px}.static-page p{margin-bottom:0;color:var(--muted);font-weight:650;line-height:1.55}.static-action{margin-top:8px}.play-surface,.side-rail{border:1px solid rgba(216,208,193,.82);background:#fffdf7eb;box-shadow:var(--shadow)}.play-surface{min-width:0;border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:16px;background:radial-gradient(circle at 18% 0%,rgba(233,173,61,.28),transparent 34%),linear-gradient(145deg,#fffdf7fa,#f4fbf8f2);position:relative;overflow:hidden}.play-surface:before{content:"";position:absolute;inset:12px;border:1px solid rgba(233,173,61,.18);border-radius:14px;pointer-events:none}.topbar,.duel-strip,.statusbar,.rack-head,.block-title,.wide-action,.status-actions{display:flex;align-items:center}.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px 16px;position:relative;z-index:1}.top-controls{display:grid;grid-template-columns:repeat(2,auto);justify-content:end;gap:8px}.language-select{justify-self:end;min-height:40px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);padding:0 8px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:850}.games-anchor{justify-self:end;min-height:40px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);padding:0 10px;color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:900}.games-anchor:hover{border-color:#2f7f6f80;background:#f4fbf8}.language-select select{border:0;background:transparent;color:var(--ink);font:inherit;font-size:12px;font-weight:850}.eyebrow{margin:0 0 5px;color:var(--green);font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(34px,5vw,58px);line-height:.92;letter-spacing:0;text-shadow:0 10px 30px rgba(23,32,51,.12)}h2{margin-bottom:0;font-size:18px;letter-spacing:0}.mode-switch{grid-column:1 / -1;width:100%;padding:5px;border:1px solid var(--line);border-radius:13px;background:#ffffffd6;box-shadow:0 10px 26px #1720330f;display:grid;grid-template-columns:minmax(150px,.42fr) minmax(0,1.58fr);gap:5px}.mode-group{display:grid;gap:4px}.play-mode-group{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-mode-group{grid-template-columns:repeat(5,minmax(0,1fr))}.mode-switch button,.wide-action,.statusbar button,.nickname-field input{min-height:40px;border-radius:10px;color:var(--ink);background:transparent;cursor:pointer;font-weight:850}.mode-switch button,.wide-action,.statusbar button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.mode-switch button{padding:0 10px;border:1px solid transparent;font-size:14px;line-height:1.05;white-space:nowrap}.mode-switch button.selected,.wide-action,.statusbar button{background:var(--ink);color:#fff}.mode-switch button.selected{box-shadow:0 7px 18px #17203324}.mode-switch button.featured-rule{border:1px solid rgba(233,173,61,.55);background:#fff7dc;color:var(--gold-ink)}.mode-switch button.featured-rule.selected{background:linear-gradient(135deg,#172033,#263c61 64%,#745213);color:#fff;box-shadow:0 7px 18px #17203329}.mode-switch button.locked{color:var(--muted);cursor:not-allowed;opacity:.72}.turn-callout{border:1px solid var(--line);border-radius:12px;background:#ffffffdb;padding:12px 14px;display:grid;gap:3px;position:relative;z-index:1}.turn-callout strong{font-size:20px}.turn-callout span{color:var(--muted);font-weight:750}.turn-callout.active{border-color:#2f7f6f80;background:linear-gradient(90deg,#eefaf6fa,#fff7dce6);box-shadow:0 12px 32px #2f7f6f1f}.turn-callout.waiting{border-color:#245da83d;background:var(--blue-soft)}.turn-callout.setup{border-color:#e9ad3d73;background:#fff6db}.mode-rule-note{border:1px solid rgba(36,93,168,.18);border-radius:12px;background:#ffffffad;padding:9px 12px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;position:relative;z-index:1}.mode-rule-note strong{border-radius:999px;background:var(--ink);color:#fff;padding:5px 9px;font-size:12px;font-weight:950;white-space:nowrap}.mode-rule-note span{color:var(--muted);font-size:13px;font-weight:800;line-height:1.3}.rules-entry button{width:100%;min-height:44px;border:1px solid rgba(216,208,193,.9);border-radius:12px;background:#fffdf7db;color:var(--ink);cursor:pointer;padding:8px 10px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;text-align:left}.rules-entry span{min-width:0;display:grid;gap:2px}.rules-entry small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800}.rules-entry b{border-radius:8px;background:var(--ink);color:#fff;padding:6px 9px;font-size:12px;font-weight:900}.duel-strip{display:grid;grid-template-columns:1fr minmax(160px,auto) 1fr;gap:10px}.player-panel{min-width:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:12px;display:flex;align-items:center;gap:11px}.player-panel.active{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.avatar{width:39px;height:39px;border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:950;flex:0 0 auto}.avatar.blue{background:var(--blue)}.avatar.red{background:var(--red)}.player-panel span,.compact,.history-item span,.operation span,.rack-head,.tool-block p{color:var(--muted)}.operation{border-radius:12px;background:var(--ink);color:#fff;padding:12px 14px;min-width:168px;display:grid;place-items:center;gap:4px;text-align:center}.operation span{color:#ffffffb8;font-size:12px;font-weight:800}.board-wrap{flex:1;display:grid;place-items:center;min-height:0;position:relative;z-index:1}.board-wrap.board-stage{border:1px solid rgba(233,173,61,.34);border-radius:18px;background:linear-gradient(135deg,#172033f5,#245da8c7),var(--ink);padding:22px;box-shadow:inset 0 0 0 1px #ffffff14;align-content:center;justify-items:center;gap:14px}.board-stage-head{width:min(100%,560px);display:flex;justify-content:flex-start}.board-goal{max-width:min(260px,100%);border-radius:12px;background:var(--gold);color:var(--ink);padding:8px 10px;display:grid;gap:1px;box-shadow:0 12px 24px #0003}.board-goal strong{font-size:24px;line-height:.9}.board-goal span{font-size:10px;font-weight:900;line-height:1.15;overflow-wrap:anywhere}.board-stage .board{filter:drop-shadow(0 22px 36px rgba(0,0,0,.22))}.board{width:min(100%,560px);aspect-ratio:1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,1.3vw,10px)}.compact-board{width:min(100%,455px)}.cell{min-width:0;min-height:0;border:1px solid var(--line);border-radius:8px;background:#fff8eb;color:var(--ink);cursor:pointer;font-size:clamp(19px,4vw,31px);font-weight:950;position:relative;transition:transform .14s ease,border-color .14s ease,background .14s ease,box-shadow .14s ease}.cell:not(:disabled):hover{transform:translateY(-2px)}.cell.target{background:#fff0c2;border-color:var(--gold)}.cell.legal{box-shadow:0 0 0 2px #e9ad3d40,0 12px 28px #e9ad3d33;animation:legal-cell-pulse 1.45s ease-in-out infinite}.cell.center-play{background:#fff9d9;border-color:#ffe08a;color:#172033;transform:scale(1.04)}.cell.center-play:before{content:"";position:absolute;inset:-7px;border:2px solid rgba(233,173,61,.46);border-radius:12px;pointer-events:none}.cell.target:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--gold);position:absolute;right:8px;top:8px}.cell.claimed-p1{background:var(--blue);border-color:var(--blue);color:#fff}.cell.claimed-p2{background:var(--red);border-color:var(--red);color:#fff}.cell.winning{outline:4px solid var(--gold);outline-offset:-4px;animation:winning-cell-pop 1.18s ease both}.cell.winning:nth-child(2n){animation-delay:80ms}.cell.winning:nth-child(3n){animation-delay:.15s}.cell.winning:nth-child(4n){animation-delay:.22s}.number-rack{display:grid;gap:9px}.rack-head{justify-content:space-between;font-size:13px;font-weight:800}.numbers{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:6px}.numbers button{min-width:0;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:900}.numbers button.selected{background:var(--blue);border-color:var(--blue);color:#fff}.numbers button.opponent-selected{border-color:var(--red);box-shadow:inset 0 0 0 2px #c84f3c47,0 8px 18px #c84f3c1f;position:relative}.numbers button.opponent-selected:after{content:"";width:8px;height:8px;border-radius:50%;background:var(--red);position:absolute;right:5px;top:5px}.numbers button.selected.opponent-selected{background:linear-gradient(135deg,var(--blue) 0 58%,var(--red) 58% 100%);border-color:var(--red)}.rack-legend{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}.legend-chip{min-height:28px;border:1px solid var(--line);border-radius:999px;background:#ffffffbf;color:var(--muted);display:inline-flex;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:900}.legend-chip:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--blue)}.opponent-chip:before{background:var(--red)}.numbers button:disabled,.cell:disabled{cursor:default}.statusbar{justify-content:space-between;gap:14px;min-height:54px;border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:10px 12px}.statusbar span{color:var(--muted);font-weight:750}.statusbar button{flex:0 0 auto;padding:0 13px}.status-actions{justify-content:flex-end;gap:8px}.footer-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.footer-links a,.footer-links button{min-height:34px;border-radius:8px;background:transparent;color:var(--muted);cursor:pointer;font-weight:800;padding:0 10px}.footer-links a{align-items:center;display:inline-flex;text-decoration:none}.footer-links a:hover,.footer-links button:hover{color:var(--ink)}.side-rail{border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:12px}.tool-block{border:1px solid var(--line);border-radius:12px;background:var(--surface-strong);padding:14px;display:grid;gap:11px}.result-block{background:var(--blue-soft);border-color:#245da840}.match-review-note,.result-review{border:1px solid rgba(233,173,61,.42);border-radius:10px;background:#fff8e8;color:var(--gold-ink);padding:10px;display:grid;gap:4px}.match-review-note strong,.result-review strong{font-size:.78rem;line-height:1.1;text-transform:uppercase;letter-spacing:0}.match-review-note span,.result-review span{color:var(--gold-ink);font-size:.86rem;font-weight:800;line-height:1.4}.tool-block p{margin-bottom:0;line-height:1.45}.block-title{gap:8px}.invite-line{border:1px dashed var(--line);border-radius:8px;padding:10px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}.wide-action{width:100%}.games-catalog{grid-column:1 / -1;border:1px solid rgba(47,127,111,.22);border-radius:18px;background:#f3fbf7;box-shadow:var(--shadow);padding:16px;display:grid;gap:12px}.games-catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:10px}.daily-quest-card{border:1px solid rgba(36,93,168,.2);border-radius:14px;background:var(--surface-strong);padding:12px;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);gap:10px;align-items:stretch}.quest-progress,.quest-next{border-radius:12px;padding:12px;display:grid;gap:5px}.quest-progress{background:#eefaf6;color:var(--green)}.quest-next{border:1px solid rgba(233,173,61,.48);background:#fff8e8;color:var(--ink);text-decoration:none;grid-template-columns:minmax(0,1fr) auto;align-items:center;transition:transform .16s ease,border-color .16s ease}.quest-next:hover{border-color:#e9ad3dd1;transform:translateY(-1px)}.quest-progress small,.quest-next small{color:var(--gold-ink);font-size:12px;font-weight:950;text-transform:uppercase}.quest-progress strong,.quest-next strong{color:var(--ink);font-size:18px;line-height:1.1}.quest-progress .quest-stars{color:var(--ink);font-size:17px;font-weight:950}.quest-next span{min-width:0;display:grid;gap:4px}.quest-next em{color:var(--muted);font-size:13px;font-style:normal;font-weight:800}.quest-next b{min-height:36px;border-radius:10px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;font-size:13px;font-weight:950;white-space:nowrap}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd){grid-column:1 / -1}.games-recommendation{border:1px solid rgba(233,173,61,.52);border-radius:14px;background:linear-gradient(135deg,#fff8df,#fffffff5);color:var(--ink);text-decoration:none;padding:14px;display:grid;grid-template-columns:86px minmax(0,1fr) auto;gap:14px;align-items:center;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.games-recommendation>span{min-width:0;display:grid;gap:4px}.games-recommendation small{color:var(--gold-ink);font-size:12px;font-weight:950;text-transform:uppercase}.games-recommendation strong{font-size:26px;line-height:1}.games-recommendation em{color:var(--muted);font-size:13px;font-style:normal;font-weight:800}.games-recommendation b{min-height:40px;border-radius:10px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;font-size:13px;font-weight:950;white-space:nowrap}.games-recommendation:hover{border-color:#e9ad3dd1;background:#fffdf7;box-shadow:0 12px 28px #17203314;transform:translateY(-1px)}.games-groups{display:grid;gap:14px}.games-group{display:grid;gap:9px}.games-group-head{display:grid;gap:2px}.games-group h3{margin:0;color:var(--green);font-size:13px;font-weight:950;letter-spacing:.04em;text-transform:uppercase}.games-group-head p{margin:0;color:var(--muted);font-size:13px;font-weight:750;line-height:1.35}.games-catalog-card{min-height:188px;border:1px solid rgba(47,127,111,.28);border-radius:12px;background:var(--surface-strong);color:var(--ink);text-decoration:none;padding:14px;display:grid;grid-template-columns:76px minmax(0,1fr);grid-template-rows:auto 1fr auto;align-items:stretch;gap:12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd){grid-template-columns:76px minmax(0,1fr) minmax(150px,.28fr);min-height:138px}.games-catalog-card span{min-width:0;display:grid;gap:5px;align-content:start}.games-catalog-card strong{font-size:20px;line-height:1.12}.games-catalog-card small{color:var(--muted);font-size:13px;font-weight:750;line-height:1.35}.games-catalog-card b{grid-column:1 / -1;min-height:38px;border-radius:9px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 12px;font-size:13px;font-weight:900}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd) b{grid-column:3;grid-row:1 / 4;align-self:stretch;min-height:0}.game-card-meta{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:6px;align-self:end}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd) .game-card-meta{grid-column:2}.game-card-meta i{border:1px solid rgba(47,127,111,.18);border-radius:999px;background:#f3fbf7;color:var(--green);padding:4px 8px;font-size:11px;font-style:normal;font-weight:950}.games-catalog-card:hover{border-color:#2f7f6f8c;background:#fff;box-shadow:0 12px 28px #17203314;transform:translateY(-1px)}.games-recommendation:focus-visible,.games-catalog-card:focus-visible{outline:3px solid rgba(233,173,61,.42);outline-offset:3px}.game-preview{width:100%;min-width:0;min-height:74px;border-radius:10px;background:#f8f1df;color:var(--ink);display:grid;place-items:center;border:1px solid rgba(216,208,193,.9);overflow:hidden}.game-preview-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px}.game-preview-tiles span,.game-preview-grid span{border-radius:7px;background:var(--surface-strong);display:grid;place-items:center;font-weight:950}.game-preview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:7px}.game-preview-grid span{aspect-ratio:1;font-size:13px}.kenken-preview span:nth-child(1),.kenken-preview span:nth-child(5),.kenken-preview span:nth-child(9){box-shadow:inset 0 0 0 2px #8b765db8}.g2048-preview{background:#e5d2b2}.g2048-preview span{background:#f4dfab;font-size:12px}.mental-preview{background:var(--ink);color:#fff;gap:2px}.mental-preview strong{font-size:20px}.mental-preview span{color:var(--gold);font-weight:950}.memory-preview{position:relative;align-content:center;justify-content:center;gap:5px;background:radial-gradient(circle at 82% 18%,rgba(233,173,61,.22),transparent 23px),#fbf6e8}.memory-preview span{border-radius:8px;display:grid;font-size:11px;font-weight:950;min-height:26px;place-items:center;width:52px}.memory-preview span:nth-child(1){background:#fff;border:1px solid rgba(16,24,40,.1);color:var(--ink);transform:rotate(-3deg)}.memory-preview span:nth-child(2){background:var(--blue);box-shadow:0 7px 14px #2a68b42e;color:#fff;transform:rotate(3deg)}.memory-preview span:nth-child(3){position:absolute;right:9px;top:9px;width:8px;min-height:8px;border-radius:999px;background:var(--gold)}.nerdle-preview{align-content:center;justify-items:center;gap:5px;padding:9px;background:linear-gradient(135deg,#2f7f6f14,#e9ad3d1f),#fbf7ea}.nerdle-preview span,.nerdle-preview strong{display:grid;font-weight:950;place-items:center}.nerdle-preview span{min-height:27px;width:54px;border-radius:9px;background:#f4d383;border:1px solid #e9ad3d;color:#111827;font-size:13px;box-shadow:0 5px 12px #1720330f}.nerdle-preview strong{min-height:28px;width:44px;border-radius:999px;background:#2f7f6f;color:#fff;font-size:15px;line-height:1}.bingo-preview span:nth-child(5){background:var(--gold);color:var(--ink)}.times-preview,.prime-preview{align-content:center;gap:3px;background:#eef5ff;color:var(--blue)}.times-preview strong,.prime-preview strong{font-size:20px}.times-preview span,.prime-preview span{color:var(--ink);font-size:12px;font-weight:950}.prime-preview{background:#f3fbf7;color:var(--green)}.coordinate-preview{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:8px;background:#eef5ff}.coordinate-preview span,.coordinate-preview i{aspect-ratio:1;border-radius:6px;display:grid;place-items:center}.coordinate-preview span{color:var(--blue);font-size:11px;font-style:normal;font-weight:950}.coordinate-preview i{background:#fff;border:1px solid rgba(42,104,180,.22)}.coordinate-preview i:nth-of-type(2){background:var(--red);box-shadow:0 0 0 3px #cc503a29}.number-line-preview{grid-template-columns:auto 1fr auto 1fr auto;gap:5px;padding:0 10px;background:#fff8df;color:var(--ink)}.number-line-preview span,.number-line-preview strong{font-size:11px;font-weight:950}.number-line-preview strong{border-radius:999px;background:var(--gold);color:var(--ink);padding:4px 7px}.number-line-preview i{height:3px;width:100%;background:#1018283d}.number-line-estimator-preview{background:#eef7ff}.number-line-estimator-preview strong{background:var(--green);color:#fff}.dot-sense-preview{grid-template-columns:repeat(3,1fr);gap:5px;padding:11px;background:#fff8df}.dot-sense-preview i,.bead-bridge-preview i,.array-preview i{width:12px;height:12px;border-radius:50%;background:var(--green);box-shadow:inset 0 -2px #10182826}.bead-bridge-preview{grid-template-columns:repeat(5,1fr);gap:5px 7px;padding:10px;background:#eef7ff}.bead-bridge-preview i{background:var(--blue);transition:transform .16s ease}.bead-bridge-preview i.moved{background:var(--gold);transform:translate(-5px)}.balance-preview{grid-template-columns:auto 1fr auto;gap:6px;padding:10px;background:#eef7ff;color:var(--ink)}.balance-preview span{border-radius:8px;background:#fff;padding:6px;font-size:11px;font-weight:950}.balance-preview b{height:4px;border-radius:999px;background:var(--blue);transform:rotate(-2deg)}.array-preview{grid-template-columns:repeat(4,1fr);gap:3px;padding:9px;background:#f3fbf7}.array-preview i{width:10px;height:10px;border-radius:4px;background:var(--blue)}.fraction-builder-preview{grid-template-columns:1.2fr .6fr .7fr auto;gap:4px;padding:8px;background:#f3fbf7;color:var(--ink)}.fraction-builder-preview span,.fraction-builder-preview b{align-self:stretch;border-radius:6px;display:grid;place-items:center;font-size:10px;font-weight:950}.fraction-builder-preview span{background:#dff4e7;border:1px solid rgba(34,139,87,.2);color:#1d7148}.fraction-builder-preview i{align-self:stretch;border-radius:6px;background:#228b5724;border:1px dashed rgba(34,139,87,.28)}.fraction-builder-preview b{color:var(--gold-ink)}.place-value-preview{grid-template-columns:1.2fr .9fr .7fr;gap:5px;padding:8px;background:#eef5ff}.place-value-preview span{align-self:stretch;border-radius:6px;background:#dbeafe;color:var(--blue);display:grid;place-items:center;font-size:10px;font-weight:950}.place-value-preview span:first-child{background:#cfe0ff}.decomposer-preview{background:#fff8df;color:var(--ink);align-content:center}.decomposer-preview strong{color:var(--gold-ink);font-size:18px}.decomposer-preview span{font-size:10px;font-weight:950}.ten-frame-preview{grid-template-columns:repeat(5,1fr);gap:4px;padding:8px;background:#f3fbf7}.ten-frame-preview i{aspect-ratio:1;border:1px solid rgba(47,127,111,.18);border-radius:6px;background:#fff}.ten-frame-preview i.filled{background:var(--green);box-shadow:inset 0 -3px #10182824}.missing-keys-preview{grid-template-columns:1fr auto;grid-template-rows:1fr auto;gap:5px;padding:8px;background:#fff8df;color:var(--ink)}.missing-keys-preview span,.missing-keys-preview b,.missing-keys-preview em{border-radius:7px;display:grid;place-items:center;font-weight:950}.missing-keys-preview span{background:#fff;color:var(--green);font-size:18px}.missing-keys-preview b{min-width:24px;background:#f1e7d7;color:var(--muted);text-decoration:line-through}.missing-keys-preview em{grid-column:1 / -1;background:#eef7ff;color:var(--blue);font-size:10px;font-style:normal}.shape-composer-preview{grid-template-columns:repeat(3,1fr);gap:5px;padding:9px;background:#eef7ff}.shape-composer-preview i{width:100%;aspect-ratio:1;background:var(--green)}.shape-composer-preview .triangle{clip-path:polygon(50% 7%,94% 88%,6% 88%)}.shape-composer-preview .square{border-radius:7px;background:var(--blue)}.shape-composer-preview .trapezoid{clip-path:polygon(22% 18%,78% 18%,96% 86%,4% 86%);background:var(--gold)}.puzzle-preview{align-content:center;gap:4px;background:#eefaf6;color:var(--green);font-size:11px;font-weight:950}.nickname-field{display:grid;gap:7px}.nickname-field span{color:var(--muted);font-size:13px;font-weight:800}.nickname-field input{width:100%;border:1px solid var(--line);background:var(--surface);padding:0 11px;font-weight:800}.history-list{display:grid;gap:8px}.daily-list{margin:0;padding:0;display:grid;gap:8px;list-style:none}.daily-challenge{border:1px solid rgba(233,173,61,.48);border-radius:10px;background:#fff7de;padding:10px;display:grid;gap:3px}.daily-challenge strong{font-size:14px}.daily-challenge span{color:var(--gold-ink);font-size:13px;font-weight:800;line-height:1.35}.daily-item,.daily-empty{border:1px solid var(--line);border-radius:8px;min-height:42px;padding:9px 10px}.daily-item{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:9px}.daily-item strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daily-item span:last-child,.daily-empty{color:var(--muted);font-size:13px;font-weight:800}.daily-rank{width:26px;height:26px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;font-size:12px;font-weight:950}.history-item{border:1px solid var(--line);border-radius:8px;padding:10px;display:flex;justify-content:space-between;gap:10px}.history-item strong{text-transform:capitalize}.rules-overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:18px;background:#1720336b}.rules-sheet{width:min(520px,100%);border:1px solid rgba(216,208,193,.9);border-radius:14px;background:var(--surface-strong);box-shadow:var(--shadow);padding:18px;display:grid;gap:14px}.rules-head{display:flex;justify-content:space-between;gap:14px;align-items:start}.rules-head h2{font-size:26px}.rules-head button{min-height:34px;border-radius:9px;background:var(--ink);color:#fff;cursor:pointer;padding:0 12px;font-weight:900}.rules-demo{border:1px solid rgba(216,208,193,.86);border-radius:12px;background:var(--surface);padding:12px;display:grid;grid-template-columns:1fr auto 1.15fr;gap:10px;align-items:center}.demo-players,.demo-sum{display:flex;align-items:center;justify-content:center;gap:7px;font-weight:950}.demo-token{width:30px;height:30px;border-radius:50%;color:#fff;display:grid;place-items:center;font-size:13px}.demo-token.blue{background:var(--blue)}.demo-token.red{background:var(--red)}.demo-sum{border-radius:10px;background:var(--ink);color:#fff;padding:10px}.demo-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.demo-board span{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:#fff8eb;display:grid;place-items:center;font-weight:950}.demo-board span.target{border-color:var(--gold);background:#fff0c2;color:var(--ink)}.rules-steps{margin:0;padding:0;display:grid;gap:8px;list-style:none;counter-reset:rules-step}.rules-steps li{min-height:42px;border:1px solid var(--line);border-radius:10px;color:var(--muted);font-weight:800;line-height:1.35;padding:9px 10px 9px 40px;position:relative}.rules-steps li:before{counter-increment:rules-step;content:counter(rules-step);width:24px;height:24px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:950;position:absolute;left:10px;top:9px}.result-dialog{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:18px;background:#1720336b;animation:result-backdrop-in .18s ease both}.result-panel{width:min(360px,100%);border:1px solid rgba(216,208,193,.9);border-radius:12px;background:var(--surface-strong);box-shadow:var(--shadow);padding:18px;display:grid;gap:13px;overflow:hidden;position:relative;animation:result-panel-in .36s cubic-bezier(.2,.9,.2,1.1) both}.result-win .result-panel{border-color:#e9ad3db8;background:linear-gradient(140deg,#fff8defa,#fffdf7fa 52%,#eefaf6eb),var(--surface-strong);box-shadow:0 30px 70px #17203340,0 0 0 1px #e9ad3d3d,0 0 46px #e9ad3d52}.result-win .result-panel:before{content:"";position:absolute;inset:-50% -25%;background:linear-gradient(90deg,transparent 35%,rgba(255,255,255,.58),transparent 65%);transform:rotate(18deg) translate(-45%);animation:result-gold-sweep 1.9s ease-out .26s both;pointer-events:none}.result-loss .result-panel{border-color:#c84f3c5c;animation-name:result-panel-loss-in}.result-draw .result-panel{border-color:#245da842}.result-panel h2{font-size:28px}.result-panel p{margin-bottom:0;color:var(--muted);line-height:1.45;font-weight:750}.result-panel .result-reason{border:1px solid rgba(233,173,61,.48);border-radius:10px;background:#fff7de;color:var(--gold-ink);padding:10px;font-weight:900}.result-mark{width:54px;height:54px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:28px;font-weight:950;box-shadow:0 14px 30px #1720332e;animation:result-mark-in .52s cubic-bezier(.2,.9,.2,1.18) both}.result-win .result-mark{background:var(--gold);color:var(--ink);box-shadow:0 16px 34px #e9ad3d73,0 0 0 8px #e9ad3d2e;animation:result-mark-in .52s cubic-bezier(.2,.9,.2,1.18) both,result-mark-victory 1.45s ease-out .52s both}.result-loss .result-mark{background:var(--red)}.result-draw .result-mark{background:var(--blue)}.result-sparks{position:absolute;inset:0;pointer-events:none}.victory-confetti{position:fixed;inset:0;z-index:21;overflow:hidden;pointer-events:none}.victory-confetti span{--fall-x: 0px;--spin: 180deg;width:8px;height:14px;border-radius:2px;background:var(--gold);opacity:0;position:absolute;top:-24px;left:50%;animation:victory-confetti-fall 3.2s cubic-bezier(.16,.62,.26,1) both}.victory-confetti span:nth-child(3n){width:7px;height:7px;border-radius:50%;background:var(--green)}.victory-confetti span:nth-child(4n){background:var(--blue)}.victory-confetti span:nth-child(5n){background:#fff2b7}.victory-confetti span:nth-child(1){left:6%;--fall-x: 38px;--spin: 250deg;animation-delay:0ms}.victory-confetti span:nth-child(2){left:12%;--fall-x: -18px;--spin: -220deg;animation-delay:.14s}.victory-confetti span:nth-child(3){left:18%;--fall-x: 26px;--spin: 300deg;animation-delay:.26s}.victory-confetti span:nth-child(4){left:23%;--fall-x: -34px;--spin: -260deg;animation-delay:80ms}.victory-confetti span:nth-child(5){left:29%;--fall-x: 20px;--spin: 210deg;animation-delay:.34s}.victory-confetti span:nth-child(6){left:35%;--fall-x: -24px;--spin: -180deg;animation-delay:.2s}.victory-confetti span:nth-child(7){left:41%;--fall-x: 30px;--spin: 240deg;animation-delay:.46s}.victory-confetti span:nth-child(8){left:47%;--fall-x: -12px;--spin: -300deg;animation-delay:40ms}.victory-confetti span:nth-child(9){left:53%;--fall-x: 18px;--spin: 220deg;animation-delay:.3s}.victory-confetti span:nth-child(10){left:58%;--fall-x: -30px;--spin: -260deg;animation-delay:.12s}.victory-confetti span:nth-child(11){left:63%;--fall-x: 32px;--spin: 280deg;animation-delay:.42s}.victory-confetti span:nth-child(12){left:68%;--fall-x: -18px;--spin: -200deg;animation-delay:.24s}.victory-confetti span:nth-child(13){left:73%;--fall-x: 24px;--spin: 330deg;animation-delay:70ms}.victory-confetti span:nth-child(14){left:78%;--fall-x: -26px;--spin: -240deg;animation-delay:.38s}.victory-confetti span:nth-child(15){left:84%;--fall-x: 16px;--spin: 190deg;animation-delay:.18s}.victory-confetti span:nth-child(16){left:90%;--fall-x: -36px;--spin: -310deg;animation-delay:.32s}.victory-confetti span:nth-child(17){left:95%;--fall-x: 14px;--spin: 210deg;animation-delay:.1s}.victory-confetti span:nth-child(18){left:4%;--fall-x: 58px;--spin: -230deg;animation-delay:.56s}.victory-confetti span:nth-child(19){left:15%;--fall-x: 42px;--spin: 270deg;animation-delay:.68s}.victory-confetti span:nth-child(20){left:26%;--fall-x: -44px;--spin: -280deg;animation-delay:.61s}.victory-confetti span:nth-child(21){left:38%;--fall-x: 36px;--spin: 250deg;animation-delay:.76s}.victory-confetti span:nth-child(22){left:50%;--fall-x: -34px;--spin: -250deg;animation-delay:.64s}.victory-confetti span:nth-child(23){left:62%;--fall-x: 46px;--spin: 300deg;animation-delay:.82s}.victory-confetti span:nth-child(24){left:74%;--fall-x: -42px;--spin: -320deg;animation-delay:.59s}.victory-confetti span:nth-child(25){left:86%;--fall-x: 26px;--spin: 240deg;animation-delay:.73s}.victory-confetti span:nth-child(26){left:10%;--fall-x: -22px;--spin: -190deg;animation-delay:.98s}.victory-confetti span:nth-child(27){left:52%;--fall-x: 28px;--spin: 220deg;animation-delay:1.08s}.victory-confetti span:nth-child(28){left:92%;--fall-x: -52px;--spin: -300deg;animation-delay:.9s}.result-sparks span{width:8px;height:8px;border-radius:50%;background:var(--gold);opacity:0;position:absolute;animation:result-spark 1.45s ease-out both}.result-sparks span:nth-child(1){left:17%;top:26%}.result-sparks span:nth-child(2){left:78%;top:22%;animation-delay:70ms}.result-sparks span:nth-child(3){left:88%;top:55%;animation-delay:.13s}.result-sparks span:nth-child(4){left:12%;top:62%;animation-delay:.19s}.result-sparks span:nth-child(5){left:38%;top:15%;animation-delay:.23s}.result-sparks span:nth-child(6){left:58%;top:76%;animation-delay:.28s}.result-sparks span:nth-child(7){left:50%;top:31%;background:var(--green);animation-delay:.34s}.result-sparks span:nth-child(8){left:25%;top:80%;background:var(--blue);animation-delay:.39s}.result-sparks span:nth-child(9){left:71%;top:72%;animation-delay:.43s}.result-sparks span:nth-child(10){left:8%;top:34%;background:#fff2b7;animation-delay:.48s}.result-aura{position:absolute;width:150px;height:150px;left:-48px;top:-54px;border-radius:50%;background:radial-gradient(circle,#e9ad3d57,#e9ad3d00 68%);animation:result-aura-in 1.5s ease-out both;pointer-events:none}.result-ribbons{position:absolute;inset:0;overflow:hidden;pointer-events:none}.result-ribbons span{position:absolute;width:46px;height:7px;border-radius:999px;background:var(--gold);opacity:0;animation:result-ribbon-fall 1.9s ease-out both}.result-ribbons span:nth-child(1){left:68%;top:-10px;transform:rotate(20deg)}.result-ribbons span:nth-child(2){left:18%;top:-8px;background:var(--green);animation-delay:.12s;transform:rotate(-18deg)}.result-ribbons span:nth-child(3){left:45%;top:-12px;background:var(--blue);animation-delay:.22s;transform:rotate(8deg)}.result-stats,.result-actions{display:grid;gap:8px}.result-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.result-stats span{border:1px solid var(--line);border-radius:8px;min-height:38px;display:grid;place-items:center;color:var(--ink);font-weight:900;text-align:center;animation:result-stat-in .28s ease both}.result-stats span:nth-child(2){animation-delay:80ms}.result-actions{grid-template-columns:repeat(2,minmax(0,1fr));animation:result-actions-in .28s ease .15s both}.result-actions button{min-width:0;min-height:42px;border-radius:9px;background:var(--ink);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font-weight:900;transition:transform .14s ease,background .14s ease}.result-actions button:hover{transform:translateY(-1px)}.result-actions button.copied{background:var(--green)}.result-actions button:only-child{grid-column:1 / -1}@keyframes winning-cell-pop{0%{transform:scale(1);box-shadow:inset 0 0 0 1px var(--gold)}35%{transform:scale(1.14) rotate(-1deg);box-shadow:inset 0 0 0 2px var(--gold),0 0 0 8px #e9ad3d3d,0 16px 34px #e9ad3d47}68%{transform:scale(.98) rotate(0)}to{transform:scale(1);box-shadow:inset 0 0 0 2px var(--gold),0 0 0 4px #e9ad3d2e}}@keyframes legal-cell-pulse{0%,to{transform:translateY(0);box-shadow:0 0 0 2px #e9ad3d38,0 12px 28px #e9ad3d29}50%{transform:translateY(-2px);box-shadow:0 0 0 4px #e9ad3d57,0 18px 34px #e9ad3d40}}@keyframes result-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes result-panel-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-panel-loss-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes result-mark-in{0%{opacity:0;transform:scale(.72) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes result-mark-victory{0%{transform:scale(1)}36%{transform:scale(1.18) rotate(5deg)}62%{transform:scale(.96) rotate(-2deg)}to{transform:scale(1) rotate(0)}}@keyframes result-gold-sweep{0%{transform:rotate(18deg) translate(-48%);opacity:0}28%{opacity:1}to{transform:rotate(18deg) translate(48%);opacity:0}}@keyframes result-aura-in{0%{opacity:0;transform:scale(.6)}55%{opacity:1}to{opacity:.78;transform:scale(1)}}@keyframes result-ribbon-fall{0%{opacity:0;transform:translateY(-18px) rotate(var(--ribbon-rotation, 12deg))}20%{opacity:1}to{opacity:0;transform:translateY(140px) rotate(80deg)}}@keyframes victory-confetti-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}12%{opacity:1}to{opacity:0;transform:translate3d(var(--fall-x),105vh,0) rotate(var(--spin))}}@keyframes result-spark{0%{opacity:0;transform:translateY(12px) scale(.5)}22%{opacity:1}to{opacity:0;transform:translateY(-28px) scale(1)}}@keyframes result-stat-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes result-actions-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.cell.winning,.cell.legal,.result-dialog,.result-panel,.result-mark,.result-aura,.victory-confetti span,.result-ribbons span,.result-sparks span,.result-stats span,.result-actions{animation:none}.result-actions button{transition:none}}@media(max-width:900px){.app-shell{grid-template-columns:1fr;width:100%;max-width:390px;max-width:100vw;padding:10px;overflow-x:hidden;margin:0}.static-shell{width:min(430px,100%);margin:0;padding:8px}.static-page{border-radius:14px;padding:18px}.play-surface,.side-rail{border-radius:14px;width:100%;max-width:100%;overflow-x:hidden}.play-surface{gap:9px}.play-surface:before{inset:7px;border-radius:11px}.play-surface>*,.side-rail>*{min-width:0}.topbar,.statusbar{align-items:stretch}.topbar{grid-template-columns:minmax(0,1fr) auto;display:grid}.topbar{gap:8px 10px;align-items:start}.statusbar{display:grid;grid-template-columns:1fr;position:sticky;bottom:8px;z-index:12;box-shadow:0 14px 34px #17203329}.top-controls{display:contents}.language-select{grid-column:2;grid-row:1;justify-self:end;align-self:start;min-height:40px;max-width:132px;padding:0 7px;border-radius:10px}.language-select select{max-width:92px;font-size:12px}.games-anchor{display:none}.turn-callout{padding:8px 10px;border-radius:10px;gap:1px}.turn-callout strong{font-size:16px}.turn-callout span,.mode-rule-note span,.rules-entry small{font-size:12px}.mode-rule-note{grid-template-columns:1fr;gap:6px;padding:8px 10px}.mode-rule-note strong{width:fit-content}.rules-entry button{min-height:44px;border-radius:10px;padding:7px 8px;gap:7px}.rules-entry b{padding:5px 8px}.rules-overlay{place-items:end center;padding:0}.rules-sheet{width:min(390px,100%);max-height:min(82vh,620px);overflow:auto;border-radius:18px 18px 0 0;padding:16px}.rules-demo{grid-template-columns:1fr;gap:8px}.rules-head h2{font-size:22px}.mode-switch{grid-column:1 / -1;grid-row:2;width:100%;min-width:0;grid-template-columns:1fr;gap:4px;padding:3px}.play-mode-group{grid-template-columns:repeat(2,minmax(0,1fr))}.rule-mode-group{grid-template-columns:repeat(3,minmax(0,1fr))}.mode-switch button{min-width:0;min-height:44px;padding:0 5px;gap:4px;border-radius:8px;font-size:13px}.mode-switch svg{width:15px;height:15px}.duel-strip{grid-template-columns:minmax(0,1fr) 94px minmax(0,1fr);align-items:stretch;gap:6px}.player-panel{padding:8px;gap:7px;border-radius:10px}.player-panel h2{font-size:15px;line-height:1.05}.player-panel span{font-size:12px;line-height:1.1}.avatar{width:31px;height:31px;font-size:14px}.operation{width:100%;min-width:0;padding:7px 6px;gap:1px;border-radius:10px}.operation svg{width:14px;height:14px}.operation strong{font-size:15px;line-height:1.05}.operation span{font-size:10px}.board-wrap{width:100%;overflow:hidden}.board-wrap.board-stage{padding:16px 12px 12px;border-radius:14px;gap:10px}.board-stage-head{width:100%;max-width:340px}.board-goal{padding:6px 8px;border-radius:10px}.board-goal strong{font-size:18px}.board-goal span{display:none}.board{width:100%;max-width:340px;gap:6px}.numbers{grid-template-columns:repeat(7,minmax(0,1fr))}.rack-legend{justify-content:space-between;gap:6px}.legend-chip{min-height:25px;padding:0 8px;font-size:11px}.side-rail{box-shadow:none}.side-rail .result-block{display:none}.games-catalog{border-radius:14px;box-shadow:none;padding:12px;width:100%;max-width:100%}.games-catalog-grid{grid-template-columns:1fr;gap:8px}.daily-quest-card{grid-template-columns:1fr;padding:10px}.reward-feedback{grid-template-columns:1fr;justify-items:center;gap:10px;padding:11px;text-align:center}.reward-medal{width:40px}.reward-meta{grid-column:auto;justify-items:center;white-space:normal}.reward-side{justify-items:center}.quest-next{grid-template-columns:1fr}.quest-next b{width:100%}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd){grid-column:auto;grid-template-columns:68px minmax(0,1fr);min-height:108px}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd) b{grid-column:1 / -1;grid-row:auto;min-height:36px}.games-catalog-grid>.games-catalog-card:last-child:nth-child(odd) .game-card-meta{grid-column:1 / -1}.games-recommendation{grid-template-columns:68px minmax(0,1fr);padding:12px;gap:10px}.games-recommendation b{grid-column:1 / -1;min-height:36px}.games-recommendation strong{font-size:20px}.games-recommendation em{font-size:12px}.games-groups{gap:12px}.games-catalog-card{min-height:108px;padding:12px;grid-template-columns:68px minmax(0,1fr)}.games-catalog-card strong{font-size:18px}.game-preview{min-height:68px}}@media(max-width:430px){.app-shell{padding:8px}.tf-shell,.sudoku-shell,.g2048-shell,.mem-shell,.kk-shell{width:100%;max-width:390px;margin-inline:auto;overflow-x:hidden}.mem-header,.kk-header{align-items:flex-start;flex-direction:column}.mem-header .mini-language-select,.kk-header .mini-language-select{align-self:flex-start}.play-surface,.side-rail{padding:12px}h1{font-size:32px}.cell{font-size:24px}.eyebrow{margin-bottom:2px;font-size:11px}.mode-switch button{font-size:12px}.tf-numbers{width:100%;max-width:340px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.tf-number-btn{width:100%;height:auto;min-height:68px}.tf-operators{width:100%;max-width:340px;margin:0 auto;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.tf-operators button{width:100%;min-width:0}.tf-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.tf-actions button{padding-inline:10px}.duel-strip{grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr)}.player-panel{padding:7px}.player-panel h2,.operation strong{font-size:14px}}.tf-shell{width:min(560px,100%);min-height:100vh;margin:0 auto;padding:18px;display:flex;flex-direction:column;gap:14px}.tf-home-link{align-self:flex-start}.game-home-link{min-height:44px;padding:0 14px;border-radius:9px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;font-size:13px;font-weight:850;box-shadow:0 8px 20px #17203324;transition:transform .12s,background .12s}.game-home-link:hover,.game-home-link:focus-visible{background:var(--blue);color:#fff}.game-home-link:active{transform:translateY(1px)}.mm-home-link,.g2048-home-link,.mem-home-link,.kk-home-link{align-self:flex-start}.tf-header{text-align:center}.tf-header h1{margin:0 0 4px;font-size:28px;color:var(--ink)}.tf-header p{margin:0 0 10px;color:var(--muted);font-size:14px;font-weight:650}.tf-mode-switch{display:inline-flex;gap:6px;background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:3px}.tf-mode-switch button{min-height:44px;padding:6px 16px;border-radius:7px;font-size:13px;font-weight:700;color:var(--muted);background:transparent;cursor:pointer;transition:background .15s,color .15s}.tf-mode-switch button.selected{background:var(--blue);color:#fff}.tf-info{display:flex;justify-content:center;gap:12px;align-items:center}.tf-badge{padding:3px 10px;border-radius:8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.tf-difficulty-easy{background:#e6f4ed;color:var(--green)}.tf-difficulty-medium{background:#fff4e0;color:var(--gold-ink)}.tf-difficulty-hard{background:var(--red-soft);color:var(--red)}.tf-stat{font-size:13px;font-weight:650;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.tf-battle-panel{border:1px solid rgba(47,127,111,.25);border-radius:12px;background:#f3fbf7;padding:12px;display:grid;gap:10px}.tf-battle-head,.tf-score-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.tf-battle-head div{min-width:0;display:grid;gap:2px}.tf-battle-head strong{font-size:16px}.tf-battle-head span,.tf-battle-note{color:var(--muted);font-size:13px;font-weight:750}.tf-battle-head b{flex:0 0 auto;border-radius:8px;background:var(--ink);color:#fff;padding:6px 9px;font-size:12px;font-weight:900}.tf-score-row span{min-width:0;flex:1;border:1px solid rgba(216,208,193,.86);border-radius:10px;background:var(--surface-strong);padding:9px 10px;color:var(--muted);display:flex;justify-content:space-between;gap:8px;font-size:13px;font-weight:850}.tf-score-row span.active{border-color:var(--blue);color:var(--ink)}.tf-score-row b{color:var(--ink)}.tf-battle-action,.tf-round-result button{min-height:40px;border-radius:10px;background:var(--ink);color:#fff;cursor:pointer;font-weight:900}.tf-battle-action:disabled{opacity:.55;cursor:default}.tf-invite-line{margin:0;border:1px dashed rgba(47,127,111,.35);border-radius:9px;background:var(--surface-strong);color:var(--muted);padding:9px 10px;font-size:12px;font-weight:750;overflow-wrap:anywhere}.tf-round-result{border:1px solid rgba(233,173,61,.45);border-radius:10px;background:#fff8e8;padding:10px;display:grid;gap:8px;color:var(--ink);font-weight:850}.tf-round-result code{color:var(--muted);font-family:inherit;font-size:13px;overflow-wrap:anywhere}.tf-battle-note{margin:0}.tf-how,.game-howto{border:1px solid rgba(216,208,193,.86);border-radius:12px;background:var(--surface-strong)}.tf-how{padding:0;display:grid}.game-howto-toggle{min-height:46px;width:100%;padding:0 12px;border-radius:11px;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer}.game-howto-toggle span{font-size:16px;font-weight:900}.game-howto-toggle b{flex:0 0 auto;min-width:58px;min-height:28px;border-radius:8px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:0 9px;font-size:12px;font-weight:900}.game-howto-toggle:hover b,.game-howto-toggle:focus-visible b{background:var(--blue)}.game-howto-content{border-top:1px solid rgba(216,208,193,.75)}.tf-how .game-howto-content{padding:12px 14px;display:grid;gap:8px}.mm-howto,.g2048-howto,.mem-howto,.kk-howto{padding:0;display:grid}.mm-howto ol.game-howto-content,.mem-howto ol.game-howto-content,.kk-howto ol.game-howto-content{margin:0;padding:12px 14px 12px 34px;display:grid;gap:7px;color:var(--muted, var(--text-dim));font-size:13px;font-weight:750;line-height:1.35}.g2048-howto .game-howto-content{padding:12px 14px}.g2048-howto .game-howto-content p{margin:0;color:var(--muted, var(--text-dim));font-size:13px;font-weight:750;line-height:1.4}.g2048-howto .game-howto-content strong{color:var(--ink, var(--text))}.tf-how ol{margin:0;padding-left:20px;color:var(--ink);font-size:14px;font-weight:750;line-height:1.45}.tf-how p{margin:0;color:var(--muted);font-size:13px;font-weight:750}.tf-numbers{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.tf-number-btn{width:72px;height:72px;border-radius:16px;font-size:32px;font-weight:800;color:var(--ink);background:var(--surface-strong);border:2px solid var(--line);cursor:pointer;transition:transform .12s,border-color .15s,opacity .15s;box-shadow:0 4px 12px #1720330f}.tf-number-btn:hover:not(:disabled){border-color:var(--blue);transform:translateY(-2px)}.tf-number-btn.used{opacity:.3;cursor:default}.tf-number-btn:disabled{cursor:default}.tf-expression-area{min-height:72px;border:2px dashed var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--surface)}.tf-expression{font-size:22px;font-weight:700;color:var(--ink);text-align:center;word-break:break-all;line-height:1.4}.tf-placeholder{color:var(--muted);font-weight:600;font-size:15px}.tf-result{font-size:16px;font-weight:700}.tf-result.solved{color:var(--green)}.tf-result.given-up{color:var(--muted)}.tf-solution-list{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.tf-solution-list li{font-size:16px;font-weight:700;color:var(--blue)}.tf-operators{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.tf-operators button{width:52px;height:52px;border-radius:12px;font-size:24px;font-weight:800;color:var(--ink);background:var(--blue-soft);border:1px solid var(--line);cursor:pointer;transition:background .12s}.tf-operators button:hover:not(:disabled){background:#d0e3ff}.tf-operators button:disabled{opacity:.4;cursor:default}.tf-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.tf-actions button{min-height:44px;padding:10px 18px;border-radius:11px;font-size:14px;font-weight:700;cursor:pointer;border:1px solid var(--line);transition:background .12s,transform .1s;display:inline-flex;align-items:center;justify-content:center;gap:7px}.tf-actions button:active:not(:disabled){transform:scale(.97)}.tf-action-back,.tf-action-clear{background:var(--paper);color:var(--muted)}.tf-action-hint{background:#fff4e0;color:var(--gold-ink)}.tf-action-submit{background:var(--green);color:#fff;border-color:var(--green)}.tf-actions button:disabled{opacity:.4;cursor:default}.tf-hint-box{padding:12px 16px;border-radius:12px;background:#fff8e8;border:1px solid #f0d88c;font-size:14px;font-weight:650;color:#8a6d20;text-align:center}.tf-give-up{text-align:center}.tf-give-up button{padding:6px 16px;border-radius:9px;font-size:13px;font-weight:650;color:var(--muted);background:transparent;border:1px solid var(--line);cursor:pointer}.tf-give-up button:hover{color:var(--red);border-color:var(--red)}.tf-next{display:flex;flex-direction:column;align-items:center;gap:8px}.tf-action-new{padding:12px 32px;border-radius:12px;font-size:16px;font-weight:800;background:var(--blue);color:#fff;border:none;cursor:pointer;transition:transform .1s}.tf-action-new:active{transform:scale(.97)}.tf-back-link{font-size:13px;font-weight:650;color:var(--muted);text-decoration:none}.tf-back-link:hover{color:var(--blue)}.tf-nav{display:flex;justify-content:center;gap:16px;padding-top:8px;border-top:1px solid var(--line)}.tf-nav a{font-size:13px;font-weight:650;color:var(--muted);text-decoration:none}.tf-nav a:hover{color:var(--blue)}.tf-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 24px;border-radius:12px;font-size:15px;font-weight:700;box-shadow:var(--shadow);z-index:100;animation:tf-toast-in .2s ease}.tf-toast-success{background:var(--green);color:#fff}.tf-toast-error{background:var(--red);color:#fff}.tf-toast-info{background:var(--blue);color:#fff}@keyframes tf-toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.sudoku-shell{width:min(560px,100%);min-height:100vh;margin:0 auto;padding:14px;display:flex;flex-direction:column;gap:12px}.sudoku-header{text-align:center;display:grid;gap:10px;justify-items:stretch}.sudoku-header h1{margin:0 0 6px;font-size:26px}.sudoku-topbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.sudoku-home-button{flex:0 1 auto}.sudoku-mode-switch,.sudoku-size-switch,.sudoku-diff-switch{display:inline-flex;gap:4px;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:3px}.sudoku-language-select{min-height:44px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);padding:0 9px;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:850}.sudoku-language-select select{border:0;background:transparent;color:var(--ink);font:inherit}.mini-language-select{min-height:44px;border:1px solid var(--line, var(--border));border-radius:9px;background:var(--surface-strong, var(--card));padding:0 9px;display:inline-flex;align-items:center;gap:8px;color:var(--muted, var(--text-dim));font-size:12px;font-weight:850}.mini-language-select span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mini-language-select select{border:0;background:transparent;color:var(--ink, var(--text));font:inherit}.mini-howto{max-width:620px;margin:0 auto 16px;padding:14px 16px;border:1px solid var(--line, var(--border));border-radius:8px;background:var(--surface-strong, rgba(15, 23, 42, .55))}.mini-howto h2{margin:0 0 8px;font-size:1rem}.mini-howto ol{margin:0;padding-left:1.25rem;color:var(--muted, var(--text-dim))}.mini-howto li+li{margin-top:5px}.sudoku-howto{padding:0;border:1px solid rgba(233,173,61,.42);border-radius:10px;background:#fff8e8}.sudoku-howto ol{margin:0;padding:12px 14px;display:grid;gap:7px;list-style:none;counter-reset:sudoku-rule}.sudoku-howto li{counter-increment:sudoku-rule;display:grid;grid-template-columns:22px 1fr;align-items:start;gap:8px;color:var(--muted);font-size:13px;line-height:1.35}.sudoku-howto li:before{content:counter(sudoku-rule);width:22px;height:22px;border-radius:999px;background:var(--gold);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900}.sudoku-mode-switch button,.sudoku-diff-switch button{min-height:44px;padding:5px 14px;border-radius:6px;font-size:13px;font-weight:700;color:var(--muted);background:transparent;cursor:pointer;border:0;transition:background .12s,color .12s}.sudoku-mode-switch button.selected,.sudoku-diff-switch button.selected{background:var(--blue);color:#fff}.sudoku-size-switch button{min-height:44px;padding:6px 12px;border-radius:6px;background:transparent;border:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:0;transition:background .12s}.sudoku-size-switch button strong{font-size:14px;color:var(--ink)}.sudoku-size-switch button small{font-size:10px;color:var(--muted)}.sudoku-size-switch button.selected{background:var(--blue-soft)}.sudoku-size-switch button.selected strong{color:var(--blue)}.sudoku-controls{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.sudoku-info{display:flex;justify-content:center;gap:14px;align-items:center}.sudoku-stat{font-size:13px;font-weight:650;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.sudoku-difficulty-badge{padding:2px 8px;border-radius:6px;font-size:11px;text-transform:uppercase;font-weight:800}.sudoku-difficulty-easy{background:#e6f4ed;color:var(--green)}.sudoku-difficulty-medium{background:#fff4e0;color:var(--gold-ink)}.sudoku-difficulty-hard{background:var(--red-soft);color:var(--red)}.sudoku-board-wrap{display:flex;justify-content:center}.sudoku-board{display:grid;gap:0;width:100%;max-width:420px;aspect-ratio:1;border:2px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--surface-strong)}.sudoku-cell{display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;color:var(--ink);background:var(--surface-strong);border:.5px solid var(--line);cursor:pointer;padding:0;transition:background .08s;position:relative}.sudoku-9 .sudoku-cell{font-size:16px}.sudoku-cell.given{color:var(--ink);font-weight:800;background:var(--paper)}.sudoku-cell.selected{background:var(--blue-soft)!important}.sudoku-cell.related{background:#245da80f}.sudoku-cell.error{color:var(--red)!important;background:var(--red-soft)!important}.sudoku-cell.same-value{background:#e9ad3d1f}.sudoku-cell.border-right{border-right:2px solid var(--ink)}.sudoku-cell.border-bottom{border-bottom:2px solid var(--ink)}.sudoku-notes{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);width:100%;height:100%;font-size:9px;color:var(--muted)}.sudoku-notes em{font-style:normal;display:flex;align-items:center;justify-content:center;font-weight:600}.sudoku-number-pad{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.sudoku-pad-btn{width:44px;height:44px;border-radius:10px;font-size:20px;font-weight:800;color:var(--ink);background:var(--blue-soft);border:1px solid var(--line);cursor:pointer;transition:background .1s,transform .08s}.sudoku-pad-btn:hover:not(:disabled){background:#d0e3ff}.sudoku-pad-btn:active:not(:disabled){transform:scale(.94)}.sudoku-pad-btn.note-mode{background:#fff4e0;color:var(--gold-ink)}.sudoku-pad-btn.sudoku-erase{background:var(--paper);color:var(--muted)}.sudoku-pad-btn:disabled{opacity:.35;cursor:default}.sudoku-action-row{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.sudoku-action-row button{min-height:44px;padding:8px 14px;border-radius:9px;font-size:13px;font-weight:700;border:1px solid var(--line);cursor:pointer;transition:background .1s;display:inline-flex;align-items:center;justify-content:center;gap:7px}.sudoku-toggle-notes{background:var(--paper);color:var(--muted)}.sudoku-toggle-notes.active{background:#fff4e0;color:var(--gold-ink);border-color:#e9ad3dad}.sudoku-hint-btn{background:#fff4e0;color:var(--gold-ink)}.sudoku-new-btn{background:var(--blue);color:#fff;border-color:var(--blue)}.sudoku-solved-banner{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border-radius:12px;background:#e6f4ed;border:1px solid rgba(47,127,111,.3);text-align:center}.sudoku-solved-banner strong{font-size:18px;color:var(--green)}.sudoku-solved-banner button{padding:10px 28px;border-radius:10px;font-size:15px;font-weight:800;background:var(--blue);color:#fff;border:none;cursor:pointer}.sudoku-nav{display:flex;justify-content:center;gap:14px;padding-top:6px;border-top:1px solid var(--line)}.sudoku-nav a{font-size:13px;font-weight:650;color:var(--muted);text-decoration:none}.sudoku-nav a:hover{color:var(--blue)}.sudoku-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:10px;font-size:14px;font-weight:700;box-shadow:var(--shadow);z-index:100}.sudoku-toast-success{background:var(--green);color:#fff}.sudoku-toast-error{background:var(--red);color:#fff}.sudoku-toast-info{background:var(--blue);color:#fff}.mm-shell{max-width:500px;margin:0 auto;padding:16px;min-height:100vh;display:flex;flex-direction:column;gap:16px}.mm-header{display:flex;align-items:center;justify-content:space-between}.mm-header h1{font-size:1.4rem;margin:0}.mm-start{display:flex;align-items:center;justify-content:center;flex:1}.mm-start-card{text-align:center;background:var(--card);border-radius:16px;padding:32px 24px;max-width:380px;width:100%}.mm-start-card h2{margin:0 0 8px}.mm-start-card>p{color:var(--text-dim);margin:0 0 16px}.mm-rules{text-align:left;list-style:none;padding:0;margin:0 0 20px}.mm-rules li{padding:6px 0;color:var(--text-dim);font-size:.9rem}.mm-rules li:before{content:"✓";margin-right:8px;color:var(--green)}.mm-best{color:var(--text-dim);font-size:.9rem;margin:8px 0}.mm-new-best{color:var(--green);font-weight:600;margin:8px 0}.mm-start-btn{display:inline-block;padding:14px 40px;border-radius:12px;border:none;background:var(--blue);color:#fff;font-size:1.1rem;font-weight:700;cursor:pointer;transition:transform .1s}.mm-start-btn:hover{transform:scale(1.03)}.mm-hud{display:flex;justify-content:space-around;align-items:center;padding:12px 0;font-weight:600}.mm-timer{font-size:1.6rem;font-variant-numeric:tabular-nums}.mm-timer.low{color:var(--red);animation:mm-pulse .5s infinite}@keyframes mm-pulse{0%,to{opacity:1}50%{opacity:.5}}.mm-score,.mm-streak{font-size:1.1rem}.mm-level{font-size:.9rem;color:var(--text-dim)}.mm-question{text-align:center;padding:40px 16px;border-radius:16px;background:var(--card);transition:background .2s}.mm-question.correct{background:#22c55e26}.mm-question.wrong{background:#ef444426}.mm-question-text{font-size:2.5rem;font-weight:800;font-variant-numeric:tabular-nums}.mm-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mm-option{display:flex;flex-direction:column;align-items:center;padding:20px;border-radius:14px;border:2px solid var(--border);background:var(--card);cursor:pointer;transition:border-color .1s,transform .08s}.mm-option:hover{border-color:var(--blue)}.mm-option:active{transform:scale(.96)}.mm-option-key{font-size:.7rem;color:var(--text-dim);margin-bottom:4px}.mm-option-value{font-size:1.8rem;font-weight:700;font-variant-numeric:tabular-nums}.mm-result{display:flex;align-items:center;justify-content:center;flex:1}.mm-result-card{text-align:center;background:var(--card);border-radius:16px;padding:32px 24px;max-width:380px;width:100%}.mm-result-card h2{margin:0 0 8px}.mm-result-score{font-size:3rem;font-weight:800;color:var(--blue);margin:8px 0 20px}.mm-result-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.mm-stat{background:var(--bg);border-radius:10px;padding:12px}.mm-stat-label{display:block;font-size:.75rem;color:var(--text-dim);margin-bottom:4px}.mm-stat-value{display:block;font-size:1.3rem;font-weight:700}.mm-nav{display:flex;justify-content:center;gap:16px;padding:12px 0;font-size:.85rem}.mm-nav a{color:var(--text-dim);text-decoration:none}.mm-nav a:hover{color:var(--text)}.sg-shell{width:min(760px,100%);min-height:100dvh;margin:0 auto;padding:18px 14px 30px;display:flex;flex-direction:column;gap:14px}.sg-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.sg-header p{margin:0 0 4px;color:var(--gold-ink);font-size:.82rem;font-weight:950}.sg-header h1{margin:0;font-size:clamp(1.9rem,6vw,3rem);line-height:1;font-weight:950}.sg-card{border:1px solid var(--line);border-radius:16px;background:var(--surface-strong);box-shadow:0 18px 34px #10182814;padding:18px;display:grid;gap:14px}.sg-status{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-weight:900}.sg-status strong{color:var(--ink);font-size:1.15rem}.sg-card h2{margin:0;font-size:1.45rem;line-height:1.05}.sg-instructions{border:1px solid rgba(36,93,168,.14);border-radius:14px;background:#eef7ff;padding:12px;display:grid;gap:8px;text-align:left}.sg-instructions h2{color:var(--blue);font-size:.95rem;line-height:1.1}.sg-instructions ol{margin:0;padding-left:20px;color:var(--ink);font-weight:850;line-height:1.35}.sg-instructions li+li{margin-top:4px}.sg-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.sg-options button,.sg-primary,.array-controls button,.bead{min-height:44px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:950;padding:0 14px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.sg-primary{border-color:var(--green);background:var(--green);color:#fff}.sg-primary:disabled{cursor:default;opacity:.48}.sg-options button:hover,.sg-primary:not(:disabled):hover,.array-controls button:hover,.bead:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1018281f}.sg-options button:focus-visible,.sg-primary:focus-visible,.array-controls button:focus-visible,.bead:focus-visible{outline:3px solid rgba(42,104,180,.24);outline-offset:2px}.sg-feedback{margin:0;border-radius:12px;padding:10px 12px;background:var(--paper);color:var(--muted);font-weight:900}.sg-feedback.correct{background:#228b5721;color:#1d7148}.sg-feedback.wrong,.sg-feedback.light,.sg-feedback.heavy{background:#fff8df;color:var(--gold-ink)}.sg-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 16px}.sg-nav a{color:var(--muted);font-size:.9rem;font-weight:900;text-decoration:none}.sg-nav a:hover{color:var(--green)}.sg-nav a:focus-visible{outline:3px solid rgba(47,127,111,.24);outline-offset:3px}.sg-result{animation:reward-pop .36s cubic-bezier(.2,1.4,.35,1) both}.dot-stage{position:relative;min-height:220px;border-radius:18px;background:radial-gradient(circle at 18% 16%,rgba(255,255,255,.9),transparent 28%),linear-gradient(135deg,#fff8df,#e9f7ee);display:flex;align-items:center;justify-content:center;gap:18px;padding:18px;overflow:hidden;transition:border-color .18s ease,filter .18s ease}.dot-stage.hidden .dot-group{opacity:.12;transform:scale(.98)}.dot-stage.five-frame,.dot-stage.ten-frame,.dot-stage.array{flex-direction:column;gap:10px}.dot-group{display:grid;grid-template-columns:repeat(2,34px);gap:12px;align-items:center;justify-content:center;transition:opacity .18s ease,transform .18s ease}.dot-stage.five-frame .dot-group,.dot-stage.ten-frame .dot-group{width:min(100%,250px);grid-template-columns:repeat(5,minmax(24px,34px));justify-content:center}.dot-stage.array .dot-group{grid-template-columns:repeat(5,minmax(24px,32px));gap:10px}.dot-stage.array .dot-group i{border-radius:10px;background:var(--blue);box-shadow:inset 0 -5px #10182829,0 8px 14px #245da82e}.dot-group i{width:30px;height:30px;border-radius:50%;background:var(--green);box-shadow:inset 0 -5px #10182829,0 8px 14px #1d71482e}.dot-cover{position:absolute;inset:14px;border:1px dashed rgba(47,127,111,.34);border-radius:14px;background:#fffdf7e6;color:var(--green);display:grid;place-items:center;padding:18px;text-align:center;font-weight:950;line-height:1.25}.dot-peek{width:fit-content;min-height:34px;border:1px solid rgba(36,93,168,.18);border-radius:999px;background:var(--blue-soft);color:var(--blue);cursor:pointer;font-size:.82rem;font-weight:950;padding:0 12px}.dot-peek:hover{border-color:#245da861}.dot-peek:focus-visible{outline:3px solid rgba(42,104,180,.24);outline-offset:2px}.dot-strategy{border:1px solid rgba(47,127,111,.2);border-radius:14px;background:#f3fbf7;padding:12px;display:grid;gap:10px}.dot-strategy h3{margin:0;color:var(--green);font-size:.92rem;line-height:1.1}.dot-strategy div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dot-strategy button{min-height:42px;border:1px solid rgba(47,127,111,.24);border-radius:10px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:900;padding:8px 10px;text-align:left}.dot-strategy button.selected{border-color:var(--green);background:var(--green);color:#fff}.dot-strategy button:focus-visible{outline:3px solid rgba(47,127,111,.24);outline-offset:2px}.ten-frame-card{gap:14px}.ten-frame-mode{border:1px solid rgba(47,127,111,.18);border-radius:14px;background:#f3fbf7;color:var(--green);padding:10px 12px;display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:950}.ten-frame-mode select{min-height:36px;border:1px solid rgba(47,127,111,.24);border-radius:10px;background:var(--surface-strong);color:var(--ink);font:inherit;padding:0 10px}.ten-frame-mode select:focus-visible{outline:3px solid rgba(47,127,111,.24);outline-offset:2px}.ten-frame-board{min-height:210px;border:1px solid rgba(47,127,111,.18);border-radius:20px;background:radial-gradient(circle at 18% 15%,rgba(255,255,255,.92),transparent 26%),linear-gradient(135deg,#fff8df,#e9f7ee);display:grid;grid-template-columns:repeat(5,minmax(34px,64px));grid-auto-rows:minmax(34px,64px);justify-content:center;align-content:center;gap:10px;padding:18px}.ten-frame-board i{border:2px solid rgba(47,127,111,.18);border-radius:16px;background:#ffffffd1;box-shadow:inset 0 -5px #1018280a;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.ten-frame-board i.human{border-color:#2f7f6f57;background:linear-gradient(180deg,#3b917f,var(--green));box-shadow:inset 0 -7px #10182824,0 10px 18px #1d714829;transform:translateY(-1px)}.ten-frame-board i.bot{border-color:#245da852;background:linear-gradient(180deg,#3b73bd,var(--blue));box-shadow:inset 0 -7px #10182824,0 10px 18px #245da829}.ten-frame-board.ended i{filter:saturate(1.08)}.ten-frame-hint{margin:0;border-radius:12px;background:#fff8df;color:var(--gold-ink);padding:10px 12px;font-weight:900;line-height:1.32}.missing-card{gap:14px}.missing-target{border:1px solid rgba(47,127,111,.18);border-radius:18px;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.9),transparent 26%),linear-gradient(135deg,#f3fbf7,#eef7ff);padding:16px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center}.missing-target span{color:var(--green);font-weight:950}.missing-target strong{grid-row:1 / 3;grid-column:2;color:var(--ink);font-size:clamp(2.4rem,9vw,4rem);line-height:1}.missing-target em{color:var(--muted);font-size:.9rem;font-style:normal;font-weight:850}.missing-hint{margin:0;border-radius:12px;background:#fff8df;color:var(--gold-ink);padding:10px 12px;font-weight:900;line-height:1.32}.missing-expression{min-height:68px;border:2px solid rgba(23,32,51,.1);border-radius:16px;background:var(--ink);color:#fff;display:flex;align-items:center;padding:12px 14px;font-size:clamp(1.25rem,4vw,2rem);font-weight:950;line-height:1.1;overflow-wrap:anywhere}.missing-expression span{color:#ffffff9e;font-size:.95rem;line-height:1.25}.missing-broken{border-radius:12px;background:#f4efe7;color:var(--muted);padding:10px 12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-weight:900}.missing-broken b{min-width:30px;min-height:30px;border-radius:9px;background:#fff;color:var(--ink);display:grid;place-items:center;text-decoration:line-through;box-shadow:inset 0 -3px #10182814}.missing-keypad{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.missing-keypad button,.missing-actions button{min-height:46px;border:1px solid var(--line);border-radius:11px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:950;padding:0 10px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.missing-keypad button:hover,.missing-actions button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1018281a}.missing-keypad button:focus-visible,.missing-actions button:focus-visible{outline:3px solid rgba(42,104,180,.24);outline-offset:2px}.missing-keypad button.broken,.missing-keypad button:disabled{background:#f1e7d7;color:var(--muted);cursor:not-allowed;text-decoration:line-through;transform:none;box-shadow:none}.missing-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.shape-card{gap:14px}.array-home-link,.bead-home-link,.pattern-home-link,.part-whole-home-link,.ten-frame-home-link,.missing-keys-home-link,.shape-home-link{align-self:flex-start}.bead-card{gap:14px}.bead-hint{margin:0;border-radius:12px;background:#fff8df;color:var(--gold-ink);padding:10px 12px;font-weight:900;line-height:1.32}.bead-frame{border:1px solid rgba(36,93,168,.14);border-radius:20px;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.95),transparent 26%),linear-gradient(135deg,#eef7ff,#f3fbf7);padding:24px 18px;display:grid;gap:18px}.bead-row{position:relative;min-height:64px;display:grid;grid-template-columns:repeat(10,minmax(26px,42px));justify-content:center;align-items:center;gap:8px}.bead-row.short{grid-template-columns:repeat(5,minmax(26px,42px))}.bead-row>i{position:absolute;left:4%;right:4%;top:50%;height:5px;border-radius:999px;background:#245da838;transform:translateY(-50%)}.bead{position:relative;z-index:1;width:38px;height:38px;min-height:38px;border-radius:999px;padding:0;justify-self:center;background:linear-gradient(180deg,#3b73bd,var(--blue));box-shadow:inset 0 -5px #10182824,0 8px 14px #245da821}.bead.warm{background:linear-gradient(180deg,#f6c567,var(--gold))}.bead.moved{transform:translate(-22px);border-color:#2f7f6f57;background:linear-gradient(180deg,#3b917f,var(--green))}.bead.moved:hover{transform:translate(-22px) translateY(-1px)}.bead-count{border-radius:16px;background:var(--ink);color:#fff;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:950}.bead-count strong{color:#fff;font-size:1.8rem;line-height:1}.shape-hint{margin:0;border-radius:12px;background:#fff8df;color:var(--gold-ink);padding:10px 12px;font-weight:900;line-height:1.32}.shape-workspace{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr);gap:14px;align-items:start}.shape-workspace h2{margin-bottom:10px}.shape-target{min-height:260px;border:1px solid rgba(47,127,111,.18);border-radius:20px;background:radial-gradient(circle at 16% 18%,rgba(255,255,255,.95),transparent 28%),linear-gradient(135deg,#fff8df,#e9f7ee);display:grid;justify-content:center;align-content:center;gap:10px;padding:18px}.shape-target.level-1{grid-template-columns:repeat(2,92px)}.shape-target.level-2{grid-template-columns:repeat(3,86px)}.shape-target.level-3{grid-template-columns:repeat(2,88px)}.shape-slot{width:88px;height:88px;border:2px dashed rgba(47,127,111,.32);border-radius:18px;background:#ffffff9e;display:grid;place-items:center;cursor:pointer;padding:10px;transition:transform .16s ease,border-color .16s ease,background .16s ease}.shape-slot:hover{border-color:#2f7f6f8c;transform:translateY(-1px)}.shape-slot.filled{border-style:solid;background:#ffffffd9}.shape-slot:focus-visible,.shape-piece-panel button:focus-visible{outline:3px solid rgba(47,127,111,.24);outline-offset:3px}.shape-icon{width:58px;height:58px;display:block;background:linear-gradient(180deg,#3b917f,var(--green));box-shadow:inset 0 -6px #10182824,0 8px 14px #1d714826;transition:transform .18s ease}.shape-icon.ghost{background:#2f7f6f1f;box-shadow:none}.shape-icon.triangle{clip-path:polygon(50% 7%,94% 88%,6% 88%)}.shape-icon.square{border-radius:13px;background:linear-gradient(180deg,#3b73bd,var(--blue))}.shape-icon.rectangle{width:68px;height:42px;border-radius:12px;background:linear-gradient(180deg,#3b73bd,var(--blue))}.shape-icon.trapezoid{clip-path:polygon(22% 18%,78% 18%,96% 86%,4% 86%);background:linear-gradient(180deg,#f6c567,var(--gold))}.shape-icon.hexagon{clip-path:polygon(25% 7%,75% 7%,98% 50%,75% 93%,25% 93%,2% 50%);background:linear-gradient(180deg,#f6c567,var(--gold))}.shape-piece-panel{border:1px solid rgba(36,93,168,.14);border-radius:16px;background:#eef7ff;padding:12px;display:grid;gap:10px}.shape-pieces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shape-pieces button,.shape-rotate{min-height:76px;border:1px solid rgba(36,93,168,.18);border-radius:12px;background:var(--surface-strong);color:var(--ink);cursor:pointer;display:grid;place-items:center;gap:6px;font-weight:950;padding:8px}.shape-pieces button.selected{border-color:var(--green);background:#f3fbf7;box-shadow:0 0 0 3px #2f7f6f1f}.shape-pieces span{font-size:.78rem}.shape-rotate{min-height:44px;background:var(--green);color:#fff}.shape-rotate:disabled{cursor:default;opacity:.45}.shape-selected{margin:0;color:var(--muted);font-size:.88rem;font-weight:850}.scale-stage{position:relative;min-height:260px;display:grid;grid-template-columns:minmax(0,1fr) 58px minmax(0,1fr);gap:8px;align-items:end;padding:82px 4px 10px;isolation:isolate}.balance-relation{margin:0;border-radius:12px;background:#f3fbf7;color:var(--green);padding:10px 12px;font-weight:900}.scale-pan{position:relative;min-height:126px;border:2px solid rgba(36,93,168,.2);border-radius:22px 22px 32px 32px;background:radial-gradient(circle at 50% 0%,rgba(255,255,255,.9),transparent 42%),linear-gradient(180deg,#eef7ff,#dbeafe);box-shadow:inset 0 -8px #245da814,0 12px 22px #17203314;padding:14px 12px 12px;display:grid;gap:10px;align-content:end;text-align:center;transition:transform .22s cubic-bezier(.2,.9,.2,1),border-color .16s ease,background .16s ease}.scale-pan:before,.scale-pan:after{content:"";position:absolute;top:-58px;width:2px;height:62px;border-radius:999px;background:#1720337a}.scale-pan:before{left:24%}.scale-pan:after{right:24%}.scale-stage.light .scale-pan.left,.scale-stage.heavy .scale-pan.right{transform:translateY(18px)}.scale-stage.light .scale-pan.right,.scale-stage.heavy .scale-pan.left{transform:translateY(-14px)}.scale-stage.correct .scale-pan{border-color:#228b5757;background:#e9f7ee}.scale-pan span{color:var(--muted);font-size:.76rem;font-weight:900}.scale-pan div{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.scale-pan b{min-width:42px;min-height:40px;border-radius:12px 12px 10px 10px;background:linear-gradient(180deg,#3b73bd 0%,var(--blue) 100%);color:#fff;display:grid;place-items:center;font-weight:950;box-shadow:inset 0 -5px #1018282e,0 8px 12px #245da82e}.scale-pan b.missing{background:linear-gradient(180deg,#f6c567 0%,var(--gold) 100%);color:var(--ink)}.balance-card .sg-options button{white-space:normal;line-height:1.15;padding-block:8px}.scale-stand{position:relative;z-index:1;width:52px;height:150px;justify-self:center;display:grid;justify-items:center;align-items:end}.scale-stand:before{content:"";width:8px;height:112px;border-radius:999px;background:linear-gradient(180deg,#344057,var(--ink));box-shadow:0 8px 16px #17203329}.scale-stand:after{content:"";width:54px;height:24px;margin-top:-2px;clip-path:polygon(50% 0,100% 100%,0 100%);background:linear-gradient(180deg,#344057,var(--ink))}.scale-stand i{position:absolute;top:2px;width:20px;height:20px;border:4px solid var(--ink);border-radius:50%;background:var(--surface-strong)}.scale-beam{position:absolute;z-index:2;left:8%;right:8%;top:68px;height:14px;border-radius:999px;background:linear-gradient(180deg,#344057,var(--ink));box-shadow:0 12px 18px #17203324;transform-origin:center;transition:transform .22s cubic-bezier(.2,.9,.2,1)}.scale-stage.light .scale-beam{transform:rotate(-4deg)}.scale-stage.heavy .scale-beam{transform:rotate(4deg)}.scale-stage.correct .scale-beam{background:linear-gradient(180deg,#3b917f,var(--green))}.array-stage{min-height:230px;border-radius:18px;background:linear-gradient(135deg,#f3fbf7,#eef7ff);border:1px solid rgba(36,93,168,.13);display:grid;gap:8px;align-content:center;justify-content:center;padding:18px}.array-stage i{width:34px;height:34px;border-radius:9px;background:var(--blue);box-shadow:inset 0 -4px #10182824}.array-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.array-controls div{border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.array-controls span{grid-column:1 / -1;color:var(--ink);font-weight:950}@media(max-width:620px){.sg-shell{padding:14px 10px 24px}.sg-header{align-items:flex-start}.dot-stage{min-height:190px;gap:10px}.dot-group{grid-template-columns:repeat(2,26px);gap:8px}.dot-group i{width:24px;height:24px}.dot-stage.five-frame .dot-group,.dot-stage.ten-frame .dot-group,.dot-stage.array .dot-group{grid-template-columns:repeat(5,24px)}.ten-frame-mode{align-items:stretch;flex-direction:column;gap:8px}.ten-frame-board{min-height:172px;grid-template-columns:repeat(5,minmax(28px,44px));grid-auto-rows:minmax(28px,44px);gap:7px;padding:14px 10px}.ten-frame-board i{border-radius:12px}.missing-target{grid-template-columns:1fr}.missing-target strong{grid-row:auto;grid-column:auto}.missing-keypad{grid-template-columns:repeat(4,minmax(0,1fr))}.missing-actions{grid-template-columns:1fr}.bead-frame{padding:18px 10px}.bead-row{grid-template-columns:repeat(5,minmax(28px,42px));gap:9px 8px}.bead-row>i{left:2%;right:2%}.bead.moved{transform:translate(-10px)}.bead.moved:hover{transform:translate(-10px) translateY(-1px)}.shape-workspace{grid-template-columns:1fr}.shape-target{min-height:220px;padding:14px 10px}.shape-target.level-1,.shape-target.level-2,.shape-target.level-3{grid-template-columns:repeat(2,78px)}.shape-slot{width:76px;height:76px;border-radius:15px;padding:8px}.shape-icon{width:50px;height:50px}.shape-icon.rectangle{width:58px;height:36px}.sg-options,.array-controls,.dot-strategy div{grid-template-columns:1fr}.scale-stage{min-height:224px;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:4px;padding:72px 0 8px}.scale-stand{width:34px;height:122px}.scale-stand:before{width:6px;height:88px}.scale-stand:after{width:38px;height:19px}.scale-stand i{width:15px;height:15px;border-width:3px}.scale-beam{left:5%;right:5%;top:62px;height:11px}.scale-pan{min-height:112px;padding:12px 8px 10px}.scale-pan:before,.scale-pan:after{top:-50px;height:54px}.scale-pan b{min-width:34px;min-height:34px;border-radius:10px;font-size:.92rem}}.g2048-shell{max-width:480px;margin:0 auto;padding:16px;min-height:100vh;display:flex;flex-direction:column;gap:12px;-webkit-user-select:none;user-select:none;touch-action:none}.g2048-header{display:flex;align-items:center;justify-content:space-between}.g2048-header h1{font-size:2.5rem;font-weight:800;color:#776e65;margin:0}.g2048-scores{display:flex;gap:8px}.g2048-score-box{background:#bbada0;border-radius:8px;padding:6px 16px;text-align:center;min-width:70px}.g2048-score-label{display:block;font-size:.7rem;color:#eee4da;text-transform:uppercase;font-weight:700}.g2048-score-value{display:block;font-size:1.3rem;font-weight:800;color:#fff}.g2048-controls{display:flex;gap:8px}.g2048-btn{padding:8px 20px;border-radius:8px;border:none;background:#8f7a66;color:#fff;font-weight:700;font-size:.9rem;cursor:pointer;transition:opacity .1s}.g2048-btn:hover:not(:disabled){opacity:.85}.g2048-btn:disabled{opacity:.4;cursor:default}.g2048-board{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;background:#bbada0;border-radius:10px;padding:8px;aspect-ratio:1}.g2048-cell{background:#eee4da59;border-radius:6px;display:flex;align-items:center;justify-content:center}.g2048-tile{border-radius:6px;transition:background .1s}.g2048-tile-text{font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums}.g2048-tile-text.medium{font-size:1.6rem}.g2048-tile-text.small{font-size:1.2rem}.g2048-overlay{position:fixed;inset:0;background:#eee4daba;display:flex;align-items:center;justify-content:center;z-index:100}.g2048-overlay-content{text-align:center;background:#fff;border-radius:16px;padding:32px 40px}.g2048-overlay-content h2{margin:0 0 8px;color:#776e65}.g2048-overlay-content p{color:#776e65;margin:0 0 16px}.g2048-nav{display:flex;justify-content:center;gap:16px;padding:12px 0;font-size:.85rem}.g2048-nav a{color:var(--text-dim);text-decoration:none}.g2048-nav a:hover{color:var(--text)}.mem-shell{max-width:500px;margin:0 auto;padding:16px;min-height:100vh;display:flex;flex-direction:column;gap:12px}.mem-header,.kk-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.mem-header h1,.kk-header h1{min-width:0;font-size:1.4rem;margin:0}.mem-hud{display:flex;justify-content:space-around;font-weight:600;padding:8px 0}.mem-hud-stat{font-size:.95rem}.mem-controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.mem-diff-btn{padding:6px 16px;border-radius:8px;border:2px solid var(--border);background:var(--card);color:var(--text);font-size:.85rem;cursor:pointer;transition:border-color .1s}.mem-diff-btn.selected{border-color:var(--blue);background:var(--blue);color:#fff}.mem-board{display:grid;gap:8px}.mem-card{aspect-ratio:1;perspective:600px;border:none;background:transparent;padding:0;cursor:pointer}.mem-card-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .3s}.mem-card.flipped .mem-card-inner{transform:rotateY(180deg)}.mem-card-front,.mem-card-back{position:absolute;inset:0;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;border-radius:10px;font-weight:700}.mem-card-front{background:var(--blue);color:#fff;font-size:1.5rem}.mem-card-back{background:var(--card);border:2px solid var(--border);transform:rotateY(180deg)}.mem-card.matched .mem-card-back{background:#22c55e33;border-color:var(--green)}.mem-expr{font-size:1rem}.mem-answer{font-size:1.4rem}.mem-result{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.mem-result-card{text-align:center;background:var(--bg);border-radius:16px;padding:32px 40px}.mem-result-card h2{margin:0 0 8px}.mem-stars{font-size:2rem;margin:8px 0}.mem-start-btn{padding:12px 32px;border-radius:10px;border:none;background:var(--blue);color:#fff;font-weight:700;font-size:1rem;cursor:pointer}.mem-nav{display:flex;justify-content:center;gap:16px;padding:12px 0;font-size:.85rem}.mem-nav a{color:var(--text-dim);text-decoration:none}.mem-nav a:hover{color:var(--text)}.kk-shell{max-width:500px;margin:0 auto;padding:16px;min-height:100vh;display:flex;flex-direction:column;gap:12px}.kk-controls{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.kk-size-switch,.kk-diff-switch{display:flex;gap:4px}.kk-size-switch button,.kk-diff-switch button{padding:6px 12px;border-radius:8px;border:2px solid var(--line);background:var(--surface-strong);color:var(--ink);font-size:.85rem;cursor:pointer}.kk-size-switch button.selected,.kk-diff-switch button.selected{border-color:var(--blue);background:var(--blue);color:#fff}.kk-info{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:.9rem}.kk-info button{padding:4px 12px;border-radius:6px;border:2px solid var(--line);background:var(--surface-strong);color:var(--ink);cursor:pointer}.kk-board-wrap{display:flex;justify-content:center}.kk-board{display:grid;gap:0;background:var(--surface-strong);border:2px solid var(--kenken-cage-line);border-radius:8px;aspect-ratio:1;width:100%;max-width:400px}.kk-cell{position:relative;display:flex;align-items:center;justify-content:center;border:1px solid var(--kenken-line);background:var(--surface-strong);font-size:1.4rem;font-weight:600;cursor:pointer;min-height:0;transition:background .1s}.kk-cell.given{background:var(--paper);color:var(--muted)}.kk-cell.selected{background:#3b82f640}.kk-cell.related{background:#3b82f614}.kk-cell.error{background:#ef444433}.kk-cell.same-value{background:#22c55e1f}.kk-border-top{border-top:2px solid var(--kenken-cage-line)}.kk-border-bottom{border-bottom:2px solid var(--kenken-cage-line)}.kk-border-left{border-left:2px solid var(--kenken-cage-line)}.kk-border-right{border-right:2px solid var(--kenken-cage-line)}.kk-cage-label{position:absolute;top:2px;left:3px;font-size:.65rem;font-weight:700;color:var(--ink)}.kk-value{font-size:1.4rem}.kk-number-pad{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.kk-number-pad button{flex:1;min-width:40px;max-width:60px;padding:12px;border-radius:10px;border:2px solid var(--line);background:var(--surface-strong);color:var(--ink);font-size:1.2rem;font-weight:700;cursor:pointer}.kk-number-pad button:hover:not(:disabled){border-color:var(--blue)}.kk-number-pad button:disabled{opacity:.4}.kk-action-row{display:flex;justify-content:center}.kk-action-row button{padding:8px 20px;border-radius:8px;border:2px solid var(--line);background:var(--surface-strong);color:var(--gold-ink);cursor:pointer}.kk-action-row button:disabled{opacity:.4}.kk-solved-banner{text-align:center;padding:16px;background:#22c55e26;border-radius:12px}.kk-solved-banner button{margin-left:12px;padding:6px 16px;border-radius:8px;border:none;background:var(--green);color:#fff;cursor:pointer}.kk-nav{display:flex;justify-content:center;gap:16px;padding:12px 0;font-size:.85rem}.kk-nav a{color:var(--muted);text-decoration:none}.kk-nav a:hover{color:var(--ink)}.kk-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);padding:10px 20px;border-radius:10px;font-weight:600;z-index:200;animation:kk-slide-up .3s}@keyframes kk-slide-up{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.kk-toast-info{background:var(--blue);color:#fff}.kk-toast-success{background:var(--green);color:#fff}.nd-shell{width:min(420px,100%);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:18px 14px 28px;gap:12px}.nd-home-link{align-self:flex-start;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.nd-home-link:hover{color:var(--ink)}.nd-header{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.nd-header h1{font-size:1.6rem;font-weight:950;margin:0;letter-spacing:-.02em}.nd-puzzle-num{font-size:.8rem;font-weight:700;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:2px 8px}.nd-intro{text-align:center;color:var(--muted);font-size:.88rem;margin:0;padding:0 8px}.nd-grid{display:flex;flex-direction:column;gap:6px;padding:8px 0}.nd-row{display:flex;gap:6px}.nd-tile{width:44px;height:44px;display:grid;place-items:center;font-size:1.3rem;font-weight:800;border:2px solid var(--line);border-radius:6px;background:var(--surface);text-transform:uppercase;transition:transform .1s,border-color .15s;-webkit-user-select:none;user-select:none}.nd-tile.has-char{border-color:var(--muted)}.nd-tile.filled{animation:nd-pop .12s ease-out}@keyframes nd-pop{0%{transform:scale(1)}50%{transform:scale(1.08)}to{transform:scale(1)}}.nd-tile.shake{border-color:var(--red);animation:nd-shake .4s ease-in-out}@keyframes nd-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.nd-tile.correct{background:var(--green);border-color:var(--green);color:#fff}.nd-tile.present{background:var(--gold);border-color:var(--gold);color:#fff}.nd-tile.absent{background:var(--ink);border-color:var(--ink);color:#fff;opacity:.6}.nd-result{text-align:center;padding:4px 0}.nd-result-title{font-size:1.3rem;font-weight:900;margin:0}.nd-answer{color:var(--muted);font-size:.9rem;margin:4px 0 0}.nd-stats-box{text-align:center;padding:8px 0}.nd-stats-row{display:flex;justify-content:center;gap:28px;margin-bottom:8px}.nd-stat{display:flex;flex-direction:column;align-items:center}.nd-stat-val{font-size:1.5rem;font-weight:900}.nd-stat-lbl{font-size:.75rem;color:var(--muted);font-weight:600}.nd-new-game{color:var(--muted);font-size:.82rem;margin:8px 0 0}.nd-keypad{display:flex;flex-direction:column;gap:6px;padding:8px 0}.nd-key-row{display:flex;justify-content:center;gap:5px}.nd-key{min-width:32px;height:44px;padding:0 8px;border-radius:6px;background:var(--surface-strong);border:1px solid var(--line);font-weight:800;font-size:.95rem;cursor:pointer;transition:background .1s}.nd-key:hover{background:var(--paper)}.nd-key:active{transform:scale(.95)}.nd-key.nd-key-wide{min-width:52px;font-size:.75rem}.nd-key.correct{background:var(--green);color:#fff;border-color:var(--green)}.nd-key.present{background:var(--gold);color:#fff;border-color:var(--gold)}.nd-key.absent{background:var(--ink);color:#fff;border-color:var(--ink);opacity:.6}.nd-nav{display:flex;gap:16px;padding:12px 0;font-size:.85rem}.nd-nav a{color:var(--muted);text-decoration:none}.nd-nav a:hover{color:var(--ink)}.fb-shell{width:min(760px,100%);min-height:100dvh;margin:0 auto;padding:18px 14px 30px;display:flex;flex-direction:column;gap:14px;box-sizing:border-box}.fb-shell *,.fb-shell *:before,.fb-shell *:after{box-sizing:border-box}.fb-home-link{align-self:flex-start}.fb-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.fb-header h1{margin:0;font-size:clamp(1.8rem,5vw,2.7rem);font-weight:950;line-height:1}.fb-kicker{margin:0 0 4px;color:var(--gold-ink);font-size:.78rem;font-weight:950;text-transform:uppercase}.fb-header label{display:grid;gap:4px;color:var(--muted);font-size:.76rem;font-weight:900}.fb-header select{min-height:34px;border:1px solid var(--line);border-radius:8px;background:var(--surface-strong);color:var(--ink);font-weight:850;padding:0 8px}.fb-start-card,.fb-bridge-card,.fb-result-card{border:1px solid var(--line);border-radius:16px;background:var(--surface-strong);box-shadow:0 18px 34px #10182814}.fb-start-card{padding:22px;display:grid;gap:16px;min-width:0}.fb-start-card h2,.fb-result-card h2{margin:0;font-size:1.55rem;line-height:1.05}.fb-start-card p{margin:0;color:var(--muted);max-width:58ch;min-width:0}.fb-demo-bridge{height:54px;display:flex;overflow:hidden;border:4px solid #8b5a2b;border-radius:13px;background:#f8ead7;box-shadow:inset 0 -8px #8b5a2b1f}.fb-demo-bridge span{display:grid;place-items:center;border-right:2px solid rgba(139,90,43,.24);background:linear-gradient(180deg,#f6c66c,#e7a94d);color:#3b2613;font-weight:950}.fb-rules{display:grid;gap:8px}.fb-rules strong{font-weight:950}.fb-rules ul{margin:0;padding-left:20px;color:var(--muted)}.fb-rules li+li{margin-top:4px}.fb-primary-btn,.fb-actions button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:950;padding:0 16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.fb-primary-btn{justify-self:start;border-color:var(--green);background:var(--green);color:#fff}.fb-primary-btn:hover,.fb-actions button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px #1018281f}.fb-primary-btn:focus-visible,.fb-actions button:focus-visible,.fb-piece:focus-visible{outline:3px solid rgba(42,104,180,.24);outline-offset:2px}.fb-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.fb-hud div{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:10px;display:grid;gap:3px}.fb-hud span{color:var(--muted);font-size:.76rem;font-weight:850}.fb-hud strong{font-size:1.15rem;font-weight:950}.fb-bridge-card{padding:16px;display:grid;gap:14px}.fb-bridge-card.complete{border-color:#228b5761;box-shadow:0 22px 42px #228b571f}.fb-bridge-card.long{border-color:#cc503a6b}.fb-bridge-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.fb-bridge-title h2{margin:0 0 4px;font-size:1.25rem;line-height:1.1}.fb-bridge-title p{margin:0;color:var(--muted);font-size:.9rem}.fb-bridge-title>span{border-radius:999px;background:#228b571f;color:#1d7148;font-size:.78rem;font-weight:950;padding:6px 10px;white-space:nowrap}.fb-bridge-scene{--fb-target: 100%;position:relative;min-height:198px;overflow:hidden;border:1px solid rgba(36,93,168,.16);border-radius:18px;background:linear-gradient(180deg,#f7fbff,#eef7f2 45%,#d8f0f1 46%,#c5e5eb);box-shadow:inset 0 -20px #245da80f,0 12px 22px #10182814;padding:62px 18px 54px}.fb-bridge-scene:before{content:"";position:absolute;left:7%;right:7%;bottom:52px;height:68px;border:8px solid rgba(123,84,44,.22);border-top:0;border-radius:0 0 999px 999px;pointer-events:none}.fb-bridge-scene:after{content:"";position:absolute;top:55px;left:18px;width:var(--fb-target);max-width:calc(100% - 36px);height:102px;border-right:2px dashed rgba(29,113,72,.44);pointer-events:none}.fb-bridge-rail{position:absolute;left:26px;right:26px;top:36px;height:36px;border-top:5px solid #7b542c;border-bottom:4px solid rgba(123,84,44,.55);display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;pointer-events:none}.fb-bridge-rail i{justify-self:center;width:6px;height:40px;border-radius:999px;background:#8b5a2b;box-shadow:inset 0 0 0 1px #ffffff2e}.fb-bridge-track{position:relative;z-index:2;height:72px;display:flex;align-items:stretch;overflow:hidden;border:5px solid #7b542c;border-radius:15px;background:linear-gradient(90deg,rgba(255,255,255,.6) 0 1px,transparent 1px 8.333%),linear-gradient(180deg,#fff7ea,#eadcc7);box-shadow:inset 0 -12px #50301414,0 12px #50301429}.fb-bridge-segment{min-width:0;display:grid;place-items:center;border-right:2px solid rgba(99,61,27,.22);background:linear-gradient(180deg,#f6c66c,#e8a748);color:#3b2613;font-size:clamp(.75rem,2.4vw,1rem);font-weight:950;animation:fb-board-drop .18s ease-out both}.fb-bridge-segment.overflow{background:linear-gradient(180deg,#f2a292,#dd6955);color:#fff}.fb-target-line{position:absolute;top:-5px;bottom:-5px;left:var(--fb-target);width:0;border-left:3px solid #1d7148;pointer-events:none}.fb-bridge-arch{position:absolute;z-index:1;left:32px;right:32px;top:104px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;pointer-events:none}.fb-bridge-arch span{height:52px;border:6px solid rgba(123,84,44,.34);border-top:0;border-radius:0 0 999px 999px;background:#ffffff2e}.fb-bridge-piers{position:absolute;z-index:1;left:13%;right:13%;top:126px;display:flex;justify-content:space-between;pointer-events:none}.fb-bridge-piers i{width:24px;height:56px;border-radius:8px 8px 2px 2px;background:linear-gradient(180deg,#9b6b3b,#704823);box-shadow:inset 0 0 0 2px #ffffff1f}.fb-river{position:absolute;left:0;right:0;bottom:0;height:54px;overflow:hidden;background:linear-gradient(180deg,#5caebe3d,#509ab561);pointer-events:none}.fb-river i{position:absolute;left:-8%;right:-8%;height:12px;border-radius:999px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.62) 0 38px,transparent 38px 76px);opacity:.76}.fb-river i:first-child{top:14px}.fb-river i:last-child{top:33px;transform:translate(34px);opacity:.48}.fb-feedback{border-radius:12px;padding:10px 12px;background:var(--paper);color:var(--muted);font-weight:900}.fb-feedback.short{background:#fff8df;color:var(--gold-ink)}.fb-feedback.long{background:#cc503a1f;color:#9b3828}.fb-feedback.complete{background:#228b5721;color:#1d7148}.fb-formula{margin:0;color:var(--ink);font-size:1rem;font-weight:950}.fb-formula span{color:var(--muted);font-size:.8rem;margin-right:6px;text-transform:uppercase}.fb-piece-bank{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.fb-piece{min-height:82px;border:1px solid rgba(139,90,43,.28);border-radius:13px;background:#fff7ea;color:#3b2613;cursor:grab;display:grid;gap:8px;align-content:center;padding:10px;text-align:left}.fb-piece:active{cursor:grabbing;transform:scale(.98)}.fb-piece strong{font-size:1.2rem;font-weight:950}.fb-piece span{display:block;height:14px;min-width:18px;border-radius:999px;background:linear-gradient(90deg,#f6c66c,#e8a748)}.fb-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fb-actions button:disabled{cursor:not-allowed;opacity:.45}.fb-result-card{padding:18px;display:grid;gap:12px;justify-items:start;animation:reward-pop .36s cubic-bezier(.2,1.4,.35,1) both}.fb-nav{display:flex;justify-content:center;gap:16px;padding:10px 0 0;font-size:.85rem}.fb-nav a{color:var(--muted);text-decoration:none;font-weight:750}.fb-nav a:hover{color:var(--ink)}@keyframes fb-board-drop{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:560px){.fb-shell{padding:14px 10px 24px}.fb-header{align-items:flex-start}.fb-header h1{font-size:1.9rem}.fb-start-card,.fb-bridge-card,.fb-result-card{border-radius:13px}.fb-start-card{padding:16px}.fb-hud{grid-template-columns:1fr}.fb-bridge-title{display:grid}.fb-bridge-title>span{justify-self:start}.fb-bridge-track{height:64px;border-width:4px}.fb-bridge-scene{min-height:174px;padding:54px 12px 46px;border-radius:15px}.fb-bridge-scene:before{left:6%;right:6%;bottom:44px;height:56px;border-width:6px}.fb-bridge-scene:after{top:48px;left:12px;max-width:calc(100% - 24px);height:90px}.fb-bridge-rail{left:18px;right:18px;top:30px;height:31px}.fb-bridge-rail i{width:5px;height:35px}.fb-bridge-arch{left:20px;right:20px;top:92px;gap:6px}.fb-bridge-arch span{height:42px;border-width:5px}.fb-bridge-piers{top:111px}.fb-bridge-piers i{width:20px;height:48px}.fb-river{height:46px}.fb-piece-bank{grid-template-columns:repeat(2,minmax(0,1fr))}.fb-piece{min-height:74px}.fb-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.fb-actions .fb-primary-btn{grid-column:1 / -1}}.nle-shell{width:min(780px,100%);min-height:100dvh;margin:0 auto;padding:18px 14px 30px;display:flex;flex-direction:column;gap:14px}.nle-shell *,.nle-shell *:before,.nle-shell *:after{box-sizing:border-box}.nle-home-link{align-self:flex-start}.nle-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.nle-header h1{margin:0;font-size:clamp(1.8rem,5vw,2.65rem);font-weight:950;line-height:1}.nle-kicker{margin:0 0 4px;color:var(--gold-ink);font-size:.78rem;font-weight:950;text-transform:uppercase}.nle-start-card,.nle-board,.nle-result-card{border:1px solid var(--line);border-radius:16px;background:var(--surface-strong);box-shadow:0 18px 34px #10182814}.nle-start-card{padding:22px;display:grid;gap:16px}.nle-start-card h2,.nle-result-card h2{margin:0;font-size:1.55rem;line-height:1.05}.nle-start-card p{margin:0;color:var(--muted);max-width:58ch}.nle-start-card ul{margin:0;padding-left:20px;color:var(--muted)}.nle-demo-line{min-height:74px;border-radius:14px;background:linear-gradient(180deg,#fffaf0,#e8f4ff);display:grid;grid-template-columns:auto 1fr auto 1fr auto;gap:10px;align-items:center;padding:0 16px}.nle-demo-line i{height:5px;border-radius:999px;background:var(--line)}.nle-demo-line span,.nle-demo-line strong{font-weight:950}.nle-demo-line strong{border-radius:999px;background:var(--green);color:#fff;padding:7px 10px}.nle-target-card{position:relative;overflow:hidden;border:2px solid rgba(233,173,61,.46);border-radius:16px;background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.92),transparent 34%),linear-gradient(135deg,#fff5c7,#fffaf0 48%,#e9f7ee);box-shadow:0 16px 32px #74521329;padding:14px 16px 16px;display:grid;justify-items:center;gap:2px;text-align:center}.nle-target-card:after{content:"";position:absolute;inset:auto 18px 12px;height:6px;border-radius:999px;background:#e9ad3d42}.nle-target-card span{color:var(--gold-ink);font-size:.82rem;font-weight:950;text-transform:uppercase}.nle-target-card strong{color:var(--ink);font-size:clamp(3rem,16vw,5.6rem);font-weight:950;line-height:.95}.nle-scoreboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.nle-scoreboard div{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:10px;display:grid;gap:3px}.nle-scoreboard span,.nle-range-label span,.nle-slider-label span{color:var(--muted);font-size:.76rem;font-weight:850}.nle-scoreboard strong,.nle-range-label strong{font-size:1.15rem;font-weight:950}.nle-board{padding:16px;display:grid;gap:18px}.nle-board.hit{border-color:#228b5761;box-shadow:0 22px 42px #228b571f}.nle-range-label{display:flex;justify-content:space-between;gap:12px;align-items:center}.nle-number-line{--nle-marker: 50%;--nle-target: 50%;position:relative;min-height:132px;border-radius:16px;background:linear-gradient(180deg,#f8fbff,#eef7ff 55%,#fffaf0 56%,#fff7e7);border:1px solid rgba(36,93,168,.15);padding:42px 18px 30px}.nle-number-line:before{content:"";position:absolute;left:22px;right:22px;top:66px;height:7px;border-radius:999px;background:linear-gradient(90deg,rgba(36,93,168,.14) 0 1px,transparent 1px 10%),var(--line)}.nle-number-line:after{content:"";position:absolute;left:calc(22px + (100% - 44px)/2);top:54px;width:3px;height:31px;border-radius:999px;background:#17203352}.nle-end,.nle-mid{position:absolute;top:92px;color:var(--muted);font-weight:950;font-size:.86rem}.nle-end.left{left:22px}.nle-end.right{right:22px}.nle-mid{left:50%;transform:translate(-50%)}.nle-hidden-target{position:absolute;left:max(22px,min(calc(100% - 22px),var(--nle-target)));top:50px;width:2px;height:38px;border-left:2px dashed rgba(34,139,87,.35);opacity:0;transition:opacity .15s ease}.nle-board.left .nle-hidden-target,.nle-board.right .nle-hidden-target,.nle-board.close .nle-hidden-target,.nle-board.hit .nle-hidden-target{opacity:1}.nle-marker{position:absolute;left:max(22px,min(calc(100% - 22px),var(--nle-marker)));top:37px;transform:translate(-50%);min-width:42px;min-height:42px;border:3px solid var(--surface-strong);border-radius:50%;background:var(--green);color:#fff;box-shadow:0 10px 18px #1d714847;display:grid;place-items:center;font-size:.86rem;font-weight:950;transition:left .15s ease,transform .15s ease}.nle-board.left .nle-marker,.nle-board.right .nle-marker{background:var(--gold);color:var(--ink)}.nle-board.close .nle-marker{background:var(--blue)}.nle-slider-label{display:grid;gap:8px}.nle-slider-label input{width:100%;accent-color:var(--green)}.nle-actions{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.nle-primary-btn,.nle-actions button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:950;padding:0 16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.nle-primary-btn{border-color:var(--green);background:var(--green);color:#fff}.nle-primary-btn:hover,.nle-actions button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1018281f}.nle-primary-btn:focus-visible,.nle-actions button:focus-visible,.nle-slider-label input:focus-visible{outline:3px solid rgba(42,104,180,.24);outline-offset:2px}.nle-actions .nle-primary-btn:last-child{grid-column:1 / -1}.nle-feedback{margin:0;border-radius:12px;padding:10px 12px;background:var(--paper);color:var(--muted);font-weight:900}.nle-feedback.left,.nle-feedback.right,.nle-feedback.close{background:#fff8df;color:var(--gold-ink)}.nle-feedback.hit{background:#228b5721;color:#1d7148}.nle-result-card{padding:18px;display:grid;gap:12px;justify-items:start;animation:reward-pop .36s cubic-bezier(.2,1.4,.35,1) both}.nle-nav{display:flex;justify-content:center;gap:16px;padding:10px 0 0;font-size:.85rem}.nle-nav a{color:var(--muted);text-decoration:none;font-weight:750}.nle-nav a:hover{color:var(--ink)}@media(max-width:620px){.nle-shell{padding:14px 10px 24px}.nle-header{align-items:flex-start}.nle-scoreboard{grid-template-columns:repeat(3,minmax(0,1fr))}.nle-board{padding:12px}.nle-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.nle-actions .nle-primary-btn{grid-column:1 / -1}}.pv-shell,.dec-shell{width:min(780px,100%);min-height:100dvh;margin:0 auto;padding:18px 14px 30px;display:flex;flex-direction:column;gap:14px}.pv-home-link,.dec-home-link{align-self:flex-start}.pv-header,.dec-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.pv-header h1,.dec-header h1{margin:0;font-size:clamp(1.8rem,5vw,2.65rem);font-weight:950;line-height:1}.pv-kicker,.dec-kicker{margin:0 0 4px;color:var(--gold-ink);font-size:.78rem;font-weight:950;text-transform:uppercase}.pv-start-card,.dec-start-card,.pv-workbench,.dec-workbench,.pv-result-card,.dec-result-card{border:1px solid var(--line);border-radius:16px;background:var(--surface-strong);box-shadow:0 18px 34px #10182814}.pv-start-card,.dec-start-card{padding:22px;display:grid;gap:14px}.pv-start-card h2,.dec-start-card h2,.pv-result-card h2,.dec-result-card h2{margin:0;font-size:1.55rem;line-height:1.05}.pv-start-card p,.dec-start-card p{margin:0;color:var(--muted);max-width:60ch}.pv-start-card ul,.dec-start-card ul{margin:0;padding-left:20px;color:var(--muted)}.pv-demo,.dec-demo{min-height:64px;display:flex;align-items:stretch;gap:8px}.pv-demo span,.dec-demo span{border-radius:12px;display:grid;place-items:center;font-weight:950}.pv-demo span{flex:1;background:#dbeafe;color:var(--blue)}.dec-demo span{min-width:58px;background:#fff8df;color:var(--gold-ink);border:1px solid rgba(233,173,61,.35)}.pv-primary-btn,.dec-primary-btn,.pv-actions button,.dec-actions button{min-height:42px;border:1px solid var(--line);border-radius:10px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:950;padding:0 16px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.pv-primary-btn,.dec-primary-btn{justify-self:start;border-color:var(--green);background:var(--green);color:#fff}.pv-primary-btn:hover,.dec-primary-btn:hover,.pv-actions button:hover:not(:disabled),.dec-actions button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 20px #1018281f}.pv-primary-btn:focus-visible,.dec-primary-btn:focus-visible,.pv-actions button:focus-visible,.dec-actions button:focus-visible,.pv-column-actions button:focus-visible,.dec-chunks button:focus-visible{outline:3px solid rgba(42,104,180,.24);outline-offset:2px}.pv-scoreboard,.dec-scoreboard{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dec-scoreboard{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.pv-target-card,.dec-target-card{position:relative;overflow:hidden;border:2px solid rgba(233,173,61,.46);border-radius:16px;background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.92),transparent 34%),linear-gradient(135deg,#fff5c7,#fffaf0 48%,#e9f7ee);box-shadow:0 16px 32px #74521329;padding:14px 16px 16px;display:grid;justify-items:center;gap:2px;text-align:center}.pv-target-card:after,.dec-target-card:after{content:"";position:absolute;inset:auto 18px 12px;height:6px;border-radius:999px;background:#e9ad3d42}.pv-target-card span,.dec-target-card span{color:var(--gold-ink);font-size:.82rem;font-weight:950;text-transform:uppercase}.pv-target-card strong,.dec-target-card strong{color:var(--ink);font-size:clamp(3rem,16vw,5.6rem);font-weight:950;line-height:.95;letter-spacing:0}.pv-scoreboard div,.dec-scoreboard div{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:10px;display:grid;gap:3px}.pv-scoreboard span,.dec-scoreboard span{color:var(--muted);font-size:.76rem;font-weight:850}.pv-scoreboard strong,.dec-scoreboard strong{font-size:1.2rem;font-weight:950}.pv-workbench,.dec-workbench{padding:16px;display:grid;gap:14px}.pv-expanded,.dec-recipe{border-radius:12px;background:var(--paper);padding:12px;display:grid;gap:4px}.pv-expanded span,.dec-recipe span{color:var(--muted);font-size:.78rem;font-weight:900}.pv-expanded strong,.dec-recipe strong{font-size:clamp(1.25rem,5vw,1.8rem);font-weight:950}.dec-recipe em{color:var(--green);font-size:.85rem;font-style:normal;font-weight:900}.dec-model{border:1px solid rgba(36,93,168,.14);border-radius:16px;background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.88),transparent 28%),linear-gradient(135deg,#eef7ff,#f3fbf7);padding:12px;display:grid;gap:10px}.dec-model-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.dec-model-head span{color:var(--muted);font-size:.78rem;font-weight:950}.dec-model-head strong{color:var(--ink);font-size:1rem;font-weight:950}.dec-progress{height:9px;border-radius:999px;background:#245da81f;overflow:hidden}.dec-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .18s ease}.dec-model-pieces{min-height:88px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.dec-empty-model{width:100%;min-height:72px;border:1px dashed rgba(36,93,168,.22);border-radius:12px;color:var(--muted);display:grid;place-items:center;padding:12px;text-align:center;font-weight:900}.dec-piece{min-height:38px;border:1px solid rgba(36,93,168,.16);border-radius:10px;background:#dbeafe;color:var(--blue);display:grid;place-items:center;font-weight:950;box-shadow:inset 0 -4px #10182814}.dec-piece.one{width:38px;background:#fff0c2;color:var(--gold-ink)}.dec-piece.five{width:68px;background:#e9f7ee;color:var(--green)}.dec-piece.ten{width:112px}.dec-piece.large{width:158px;background:#dff4e7;color:var(--green)}.pv-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pv-column{min-width:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:12px;display:grid;gap:10px}.pv-column h2{margin:0;font-size:1rem}.pv-column>strong{color:var(--muted);font-size:.9rem}.pv-block-stack{min-height:138px;display:flex;flex-wrap:wrap-reverse;align-content:flex-end;gap:4px}.pv-block-stack i{display:block;border-radius:5px;background:#dbeafe;border:1px solid rgba(36,93,168,.18)}.pv-column.hundreds .pv-block-stack i{width:32px;height:32px;background:#cfe0ff}.pv-column.tens .pv-block-stack i{width:18px;height:32px;background:#dff4e7}.pv-column.ones .pv-block-stack i{width:18px;height:18px;background:#fff0c2}.pv-column-actions,.pv-actions,.dec-actions{display:flex;flex-wrap:wrap;gap:8px}.pv-column-actions button,.dec-chunks button{min-height:38px;border:1px solid var(--line);border-radius:9px;background:var(--surface-strong);color:var(--ink);cursor:pointer;font-weight:950;padding:0 12px}.pv-column-actions button:disabled,.pv-actions button:disabled,.dec-actions button:disabled{cursor:not-allowed;opacity:.45}.pv-feedback,.dec-feedback{margin:0;border-radius:12px;padding:10px 12px;background:var(--paper);color:var(--muted);font-weight:900}.pv-feedback.short,.dec-feedback.short{background:#fff8df;color:var(--gold-ink)}.pv-feedback.long,.dec-feedback.long{background:#cc503a1f;color:#9b3828}.pv-feedback.complete,.dec-feedback.exact{background:#228b5721;color:#1d7148}.dec-feedback.duplicate{background:#2a68b41f;color:var(--blue)}.dec-chunks{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.dec-chunks button{min-height:58px;background:#fff8df;color:var(--gold-ink);border-color:#e9ad3d61;font-size:1.1rem}.dec-found{display:flex;flex-wrap:wrap;gap:8px}.dec-found span{border-radius:12px;background:#228b571f;color:#1d7148;font-size:.85rem;font-weight:950;padding:7px 10px;display:inline-grid;gap:2px}.dec-found small{color:var(--muted);font-size:.68rem;font-weight:900}.pv-result-card,.dec-result-card{padding:18px;display:grid;gap:12px;justify-items:start;animation:reward-pop .36s cubic-bezier(.2,1.4,.35,1) both}.pv-nav,.dec-nav{display:flex;justify-content:center;gap:16px;padding:10px 0 0;font-size:.85rem}.pv-nav a,.dec-nav a{color:var(--muted);text-decoration:none;font-weight:750}.pv-nav a:hover,.dec-nav a:hover{color:var(--ink)}@media(max-width:620px){.pv-shell,.dec-shell{padding:14px 10px 24px}.pv-header,.dec-header{align-items:flex-start}.pv-scoreboard,.dec-scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))}.dec-scoreboard{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-columns{grid-template-columns:1fr}.pv-block-stack{min-height:80px}.dec-chunks{grid-template-columns:repeat(3,minmax(0,1fr))}.pv-actions,.dec-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:430px){.nd-tile{width:38px;height:38px;font-size:1.1rem}.nd-key{min-width:28px;height:40px;font-size:.85rem}}.mb-shell{width:min(480px,100%);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:18px 14px 28px;gap:12px}.mb-home-link{align-self:flex-start;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.mb-home-link:hover{color:var(--ink)}.mb-header{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.mb-header h1{font-size:1.6rem;font-weight:950;margin:0;letter-spacing:-.02em}.mb-start{text-align:center;padding:20px 0}.mb-start-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow)}.mb-start-card h2{margin:0 0 8px;font-size:1.4rem}.mb-start-card p{color:var(--muted);font-size:.9rem;line-height:1.5}.mb-difficulty{margin:16px 0}.mb-difficulty>span{display:block;font-weight:700;font-size:.85rem;margin-bottom:8px}.mb-diff-buttons{display:flex;gap:8px;justify-content:center}.mb-diff-btn{padding:8px 14px;border-radius:8px;background:var(--paper);border:2px solid var(--line);font-weight:700;font-size:.82rem;cursor:pointer;transition:border-color .15s}.mb-diff-btn.active{border-color:var(--blue);background:var(--blue-soft)}.mb-start-btn{margin-top:8px;padding:12px 32px;border-radius:10px;background:var(--blue);color:#fff;font-weight:800;font-size:1rem;cursor:pointer;transition:transform .1s}.mb-start-btn:hover{transform:scale(1.03)}.mb-caller{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0}.mb-called-number{font-size:3rem;font-weight:950;color:var(--blue);line-height:1;min-width:80px;text-align:center}.mb-call-info{font-size:.8rem;color:var(--muted);font-weight:600}.mb-call-controls{display:flex;gap:8px}.mb-ctrl-btn{padding:6px 16px;border-radius:8px;background:var(--surface-strong);border:1px solid var(--line);font-weight:700;font-size:.82rem;cursor:pointer}.mb-ctrl-btn:hover{background:var(--paper)}.mb-board{display:flex;flex-direction:column;gap:4px;padding:8px 0}.mb-row{display:flex;gap:4px}.mb-cell{width:80px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:8px;background:var(--surface);border:2px solid var(--line);cursor:pointer;transition:background .15s,border-color .15s;font:inherit;padding:4px}.mb-cell:hover:not(:disabled){background:var(--paper)}.mb-cell.callable{border-color:var(--gold);background:#fff8e8;animation:mb-pulse 1.5s ease-in-out infinite}@keyframes mb-pulse{0%,to{box-shadow:0 0 #e9ad3d66}50%{box-shadow:0 0 0 4px #e9ad3d00}}.mb-cell.marked{background:var(--green);border-color:var(--green);color:#fff}.mb-cell.free{background:var(--gold);border-color:var(--gold);color:#fff;font-weight:800;font-size:.75rem}.mb-cell-problem{font-size:.85rem;font-weight:700}.mb-cell-answer{font-size:.75rem;opacity:.9}.mb-paused{font-size:.85rem;color:var(--muted)}.mb-result{text-align:center;padding:8px 0}.mb-result-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow)}.mb-bingo{font-size:2rem;font-weight:950;color:var(--green);margin:0 0 8px}.mb-nav{display:flex;gap:16px;padding:12px 0;font-size:.85rem}.mb-nav a{color:var(--muted);text-decoration:none}.mb-nav a:hover{color:var(--ink)}@media(max-width:430px){.mb-cell{width:62px;height:62px}.mb-cell-problem{font-size:.72rem}.mb-called-number{font-size:2.4rem}}.tt-shell{width:min(480px,100%);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:18px 14px 28px;gap:12px}.tt-home-link{align-self:flex-start;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.tt-home-link:hover{color:var(--ink)}.tt-header{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.tt-header h1{font-size:1.5rem;font-weight:950;margin:0}.tt-start-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.tt-start-card h2{margin:0 0 8px;font-size:1.4rem}.tt-start-card p{color:var(--muted);font-size:.9rem}.tt-select-group{margin:16px 0}.tt-select-group>span{display:block;font-weight:700;font-size:.85rem;margin-bottom:8px}.tt-table-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.tt-table-btn{width:48px;height:48px;border-radius:10px;background:var(--paper);border:2px solid var(--line);font-weight:800;font-size:1.1rem;cursor:pointer;transition:border-color .15s,background .15s}.tt-table-btn.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.tt-count-buttons{display:flex;gap:8px;justify-content:center}.tt-count-btn{padding:8px 20px;border-radius:8px;background:var(--paper);border:2px solid var(--line);font-weight:700;cursor:pointer}.tt-count-btn.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.tt-start-btn{margin-top:12px;padding:12px 32px;border-radius:10px;background:var(--blue);color:#fff;font-weight:800;font-size:1rem;cursor:pointer}.tt-start-btn:hover{transform:scale(1.03)}.tt-hud{display:flex;gap:20px;font-size:.85rem;font-weight:700;color:var(--muted);padding:8px 0}.tt-question{padding:20px 0;transition:opacity .15s}.tt-question.correct{animation:tt-flash-green .3s}.tt-question.wrong{animation:tt-flash-red .3s}@keyframes tt-flash-green{0%{background:#2f7f6f26}to{background:transparent}}@keyframes tt-flash-red{0%{background:#c84f3c26}to{background:transparent}}.tt-question-text{font-size:2.5rem;font-weight:900;text-align:center}.tt-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:8px 0}.tt-option{padding:16px;border-radius:12px;background:var(--surface);border:2px solid var(--line);font-weight:800;font-size:1.3rem;cursor:pointer;transition:border-color .15s,transform .1s;display:flex;align-items:center;gap:10px;justify-content:center}.tt-option:hover{border-color:var(--blue);transform:scale(1.02)}.tt-option-key{font-size:.7rem;color:var(--muted);background:var(--paper);border-radius:4px;padding:2px 6px}.tt-result-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.tt-result-card h2{margin:0 0 8px}.tt-result-score{font-size:2.5rem;font-weight:950;color:var(--blue);margin:8px 0}.tt-result-stats{display:flex;justify-content:center;gap:28px;margin-bottom:16px}.tt-stat{display:flex;flex-direction:column}.tt-stat-label{font-size:.75rem;color:var(--muted)}.tt-stat-value{font-size:1.5rem;font-weight:900}.tt-missed-list{margin:14px 0 6px;padding:12px;border-radius:12px;background:var(--paper);border:1px solid var(--line);text-align:left}.tt-missed-list strong{display:block;margin-bottom:8px;font-size:.86rem}.tt-missed-list ul{display:grid;gap:6px;margin:0;padding:0;list-style:none}.tt-missed-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;padding:6px 8px;border-radius:8px;background:var(--surface);color:var(--ink)}.tt-missed-list b{color:var(--green);font-size:1rem}.tt-missed-list small{display:inline-flex;flex:0 0 auto;align-items:center;gap:4px;color:var(--muted);font-size:.78rem;font-weight:800;white-space:nowrap}.tt-missed-list p{margin:8px 0 0;color:var(--muted);font-size:.8rem;line-height:1.35}.tt-nav{display:flex;gap:16px;padding:12px 0;font-size:.85rem}.tt-nav a{color:var(--muted);text-decoration:none}.tt-nav a:hover{color:var(--ink)}.pf-shell{width:min(480px,100%);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:18px 14px 28px;gap:12px}.pf-home-link{align-self:flex-start;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.pf-home-link:hover{color:var(--ink)}.pf-header{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.pf-header h1{font-size:1.4rem;font-weight:950;margin:0}.pf-start-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.pf-start-card h2{margin:0 0 8px;font-size:1.4rem}.pf-start-card p{color:var(--muted);font-size:.9rem;line-height:1.5}.pf-difficulty{margin:16px 0}.pf-difficulty>span{display:block;font-weight:700;font-size:.85rem;margin-bottom:8px}.pf-diff-buttons{display:flex;gap:8px;justify-content:center}.pf-diff-btn{padding:8px 20px;border-radius:8px;background:var(--paper);border:2px solid var(--line);font-weight:700;cursor:pointer}.pf-diff-btn.active{border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}.pf-start-btn{margin-top:12px;padding:12px 32px;border-radius:10px;background:var(--blue);color:#fff;font-weight:800;font-size:1rem;cursor:pointer}.pf-start-btn:hover{transform:scale(1.03)}.pf-board{display:flex;flex-direction:column;align-items:center;gap:4px;padding:16px 0}.pf-board-label{font-size:.8rem;color:var(--muted);font-weight:600}.pf-number{font-size:4rem;font-weight:950;color:var(--ink);line-height:1}.pf-factorization{font-size:.9rem;color:var(--muted);font-weight:600}.pf-turn-indicator{font-size:1rem;font-weight:700;color:var(--blue);padding:4px 0}.pf-moves{display:flex;flex-direction:column;align-items:center;gap:10px;padding:8px 0}.pf-moves-label{font-size:.85rem;color:var(--muted);margin:0}.pf-factor-buttons{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.pf-factor-btn{width:64px;height:64px;border-radius:50%;background:var(--surface-strong);border:3px solid var(--blue);font-weight:900;font-size:1.5rem;color:var(--blue);cursor:pointer;transition:transform .1s,background .15s}.pf-factor-btn:hover{background:var(--blue-soft);transform:scale(1.08)}.pf-history{font-size:.82rem;color:var(--muted);display:flex;gap:6px;padding:4px 0}.pf-history-list{font-weight:700;color:var(--ink)}.pf-result-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.pf-win{color:var(--green);font-size:1.8rem}.pf-lose{color:var(--red);font-size:1.8rem}.pf-nav{display:flex;gap:16px;padding:12px 0;font-size:.85rem}.pf-nav a{color:var(--muted);text-decoration:none}.pf-nav a:hover{color:var(--ink)}.cb-shell{width:min(560px,100%);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:18px 14px 28px;gap:10px}.cb-home-link{align-self:flex-start;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.cb-home-link:hover{color:var(--ink)}.cb-header{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.cb-header h1{font-size:1.3rem;font-weight:950;margin:0}.cb-start-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.cb-start-card h2{margin:0 0 8px}.cb-start-card p{color:var(--muted);font-size:.9rem}.cb-start-btn{margin-top:12px;padding:12px 32px;border-radius:10px;background:var(--blue);color:#fff;font-weight:800;cursor:pointer}.cb-start-btn:hover{transform:scale(1.03)}.cb-last-result{padding:6px 16px;border-radius:8px;font-weight:700;font-size:.9rem;text-align:center}.cb-last-result.hit,.cb-last-result.sink{background:#2f7f6f26;color:var(--green)}.cb-last-result.miss{background:#61708626;color:var(--muted)}.cb-turn-indicator{font-size:.9rem;font-weight:700;color:var(--blue)}.cb-grids{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.cb-grid-section h3{font-size:.8rem;font-weight:700;color:var(--muted);margin:0 0 4px;text-align:center}.cb-grid{display:flex;flex-direction:column;gap:1px}.cb-grid-row{display:flex;gap:1px}.cb-corner{width:20px;height:20px}.cb-cell{width:24px;height:24px;display:grid;place-items:center;font-size:.7rem;font-weight:700;border-radius:2px;background:var(--surface);border:1px solid var(--line)}.cb-label{background:var(--paper);color:var(--muted);font-size:.65rem}.cb-cell-grid{cursor:default;font:inherit;padding:0}.cb-cell-grid.clickable{cursor:pointer;background:var(--surface-strong)}.cb-cell-grid.clickable:hover{background:var(--blue-soft);border-color:var(--blue)}.cb-cell-grid.miss{background:#61708626;color:var(--muted)}.cb-cell-grid.hit{background:#c84f3c40;color:var(--red);font-weight:900}.cb-cell-grid.sunk{background:var(--red);color:#fff;font-weight:900}.cb-cell-grid.ship{background:#245da826;color:var(--blue)}.cb-result-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.cb-win{color:var(--green);font-size:1.6rem}.cb-lose{color:var(--red);font-size:1.6rem}.cb-nav{display:flex;gap:16px;padding:12px 0;font-size:.85rem}.cb-nav a{color:var(--muted);text-decoration:none}.cb-nav a:hover{color:var(--ink)}@media(max-width:430px){.cb-cell{width:20px;height:20px;font-size:.6rem}.cb-corner{width:16px;height:16px}.cb-label{font-size:.55rem}}.nl-shell{width:min(480px,100%);min-height:100dvh;margin:0 auto;display:flex;flex-direction:column;align-items:center;padding:18px 14px 28px;gap:12px}.nl-home-link{align-self:flex-start;color:var(--muted);text-decoration:none;font-size:.85rem;font-weight:600}.nl-home-link:hover{color:var(--ink)}.nl-header{display:flex;align-items:center;gap:12px;width:100%;justify-content:center}.nl-header h1{font-size:1.4rem;font-weight:950;margin:0}.nl-start-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.nl-start-card h2{margin:0 0 8px}.nl-start-card p{color:var(--muted);font-size:.9rem}.nl-start-btn{margin-top:12px;padding:12px 32px;border-radius:10px;background:var(--blue);color:#fff;font-weight:800;font-size:1rem;cursor:pointer}.nl-start-btn:hover{transform:scale(1.03)}.nl-hud{display:flex;flex-wrap:wrap;gap:12px;font-size:.8rem;font-weight:700;color:var(--muted);justify-content:center;padding:8px 0}.nl-line-container{padding:12px 0;overflow-x:auto;max-width:100%}.nl-svg{display:block}.nl-frog-shadow{fill:#1720332e;transform-box:fill-box;transform-origin:center;animation:nl-frog-shadow-hop .52s cubic-bezier(.2,.72,.23,1)}.nl-frog{transform-box:fill-box;transform-origin:50% 70%}.nl-frog.jump-right{animation:nl-frog-hop-right .52s cubic-bezier(.2,.72,.23,1)}.nl-frog.jump-left{animation:nl-frog-hop-left .52s cubic-bezier(.2,.72,.23,1)}.nl-frog.celebrate{animation:nl-frog-celebrate .9s ease-in-out infinite}.nl-frog.tired{animation:nl-frog-tired .7s ease-out}.nl-frog-shadow.celebrate{animation:nl-frog-shadow-celebrate .9s ease-in-out infinite}.nl-frog-body{fill:#49a66d;stroke:#24734b;stroke-width:1.3}.nl-frog-eye{fill:#e9fff0;stroke:#24734b;stroke-width:1}.nl-frog-pupil{fill:#172033}.nl-frog-mouth{fill:none;stroke:#172033;stroke-linecap:round;stroke-width:1.2}.nl-frog-leg{fill:none;stroke:#24734b;stroke-linecap:round;stroke-width:3}.nl-frog.jump-right .nl-frog-leg.front,.nl-frog.jump-left .nl-frog-leg.back{animation:nl-frog-kick .52s ease-out}@keyframes nl-frog-hop-right{0%{transform:translate(var(--nl-jump-from-x, 0)) rotate(0) scale(1.12,.82)}28%{transform:translate(var(--nl-jump-mid-x, 0),-24px) rotate(13deg) scale(.92,1.1)}62%{transform:translate(var(--nl-jump-near-x, 0),-13px) rotate(7deg) scale(1)}82%{transform:translateY(2px) rotate(-3deg) scale(1.08,.88)}to{transform:translateY(0) rotate(0) scale(1)}}@keyframes nl-frog-hop-left{0%{transform:translate(var(--nl-jump-from-x, 0)) rotate(0) scale(1.12,.82)}28%{transform:translate(var(--nl-jump-mid-x, 0),-24px) rotate(-13deg) scale(.92,1.1)}62%{transform:translate(var(--nl-jump-near-x, 0),-13px) rotate(-7deg) scale(1)}82%{transform:translateY(2px) rotate(3deg) scale(1.08,.88)}to{transform:translateY(0) rotate(0) scale(1)}}@keyframes nl-frog-shadow-hop{0%,to{transform:scaleX(1);opacity:.18}28%{transform:scaleX(.45);opacity:.08}82%{transform:scaleX(1.16);opacity:.22}}@keyframes nl-frog-kick{0%{stroke-width:4}35%{stroke-width:2}to{stroke-width:3}}@keyframes nl-frog-celebrate{0%,to{transform:translateY(0) rotate(-4deg) scale(1)}50%{transform:translateY(-7px) rotate(5deg) scale(1.06)}}@keyframes nl-frog-shadow-celebrate{0%,to{transform:scaleX(.86);opacity:.16}50%{transform:scaleX(.62);opacity:.08}}@keyframes nl-frog-tired{0%{transform:rotate(0)}35%{transform:rotate(-9deg) translateY(2px)}70%{transform:rotate(7deg) translateY(2px)}to{transform:rotate(0)}}.nl-feedback{padding:8px 16px;border-radius:8px;font-weight:700;font-size:.9rem;text-align:center}.nl-feedback.target{background:#2f7f6f26;color:var(--green)}.nl-feedback.overshoot{background:#c84f3c26;color:var(--red)}.nl-feedback.undershoot{background:#e9ad3d26;color:var(--gold-ink)}.nl-feedback.fail{background:#c84f3c33;color:var(--red)}.nl-input-area{display:flex;gap:8px;align-items:center;padding:8px 0}.nl-input{width:100px;padding:10px 14px;border-radius:8px;border:2px solid var(--line);font-size:1.1rem;font-weight:700;text-align:center;background:var(--surface-strong)}.nl-input:focus{outline:none;border-color:var(--blue)}.nl-jump-btn{padding:10px 24px;border-radius:8px;background:var(--green);color:#fff;font-weight:800;cursor:pointer}.nl-jump-btn:disabled{opacity:.5;cursor:default}.nl-result-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 24px;box-shadow:var(--shadow);text-align:center}.nl-result-card h2{color:var(--green);font-size:1.5rem}.nl-nav{display:flex;gap:16px;padding:12px 0;font-size:.85rem}.nl-nav a{color:var(--muted);text-decoration:none}.nl-nav a:hover{color:var(--ink)}@media(prefers-reduced-motion:reduce){.nl-frog,.nl-frog-shadow,.nl-frog-leg{animation:none!important}}.pattern-card{gap:18px}.pattern-track{position:relative;display:grid;grid-template-columns:repeat(6,minmax(46px,1fr));gap:clamp(8px,1.7vw,14px);align-items:center;padding:24px 16px 30px;border:1px solid rgba(47,127,111,.16);border-radius:18px;background:linear-gradient(180deg,#ffffffdb,#f4f9f6eb),radial-gradient(circle at 18% 12%,rgba(233,173,61,.14),transparent 32%);overflow:hidden}.pattern-track:after{content:"";position:absolute;left:18px;right:18px;bottom:17px;height:6px;border-radius:999px;background:repeating-linear-gradient(90deg,#245da84d 0 28px,#245da81f 28px 38px)}.pattern-car{position:relative;z-index:1;display:grid;place-items:center;min-height:62px;border:2px solid rgba(36,93,168,.15);border-radius:14px;background:var(--surface-strong);box-shadow:0 10px 20px #1c2d4314}.pattern-car:before,.pattern-car:after{content:"";position:absolute;bottom:-13px;width:14px;height:14px;border-radius:999px;background:#45566d;box-shadow:inset 0 -2px #ffffff47}.pattern-car:before{left:18%}.pattern-car:after{right:18%}.pattern-blank{border-style:dashed;color:var(--muted);font-size:1.8rem;font-weight:900;background:#ffffff8c}.pattern-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.pattern-option{min-height:76px;border:2px solid rgba(36,93,168,.14);border-radius:14px;background:var(--surface-strong);cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.pattern-option:hover{transform:translateY(-2px);border-color:#245da861;box-shadow:0 12px 22px #1c2d431a}.pattern-option:focus-visible{outline:3px solid rgba(36,93,168,.28);outline-offset:3px}.pattern-option.selected{border-color:var(--green);box-shadow:0 0 0 4px #2f7f6f24}.pattern-glyph{display:inline-grid;place-items:center;width:42px;height:42px;color:transparent;font-size:0;box-shadow:inset 0 -5px #1018281f}.pattern-glyph.circle{border-radius:999px}.pattern-glyph.square{border-radius:10px}.pattern-glyph.triangle{width:0;height:0;border-left:24px solid transparent;border-right:24px solid transparent;border-bottom:42px solid var(--green);box-shadow:none}.pattern-glyph.diamond{border-radius:9px;transform:rotate(45deg)}.pattern-glyph.red{background:var(--red)}.pattern-glyph.blue{background:var(--blue)}.pattern-glyph.green{background:var(--green)}.pattern-glyph.gold{background:var(--gold)}.pattern-number{color:var(--ink);font-size:clamp(1.3rem,4vw,2rem);font-weight:900}.pattern-train-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.pattern-train-preview i{display:block;height:28px;border-radius:8px;background:var(--blue)}.pattern-train-preview i:nth-child(odd){border-radius:999px;background:var(--gold)}.pattern-train-preview i:last-child{border:2px dashed rgba(36,93,168,.42);background:#ffffffb3}@media(max-width:620px){.pattern-track{grid-template-columns:repeat(3,minmax(0,1fr));padding:18px 12px 28px}.pattern-options{grid-template-columns:1fr}}.part-whole-card{gap:18px}.part-whole-model{display:grid;gap:18px}.whole-tray,.part-tray{border:1px solid rgba(36,93,168,.14);border-radius:18px;background:radial-gradient(circle at 12% 14%,rgba(255,255,255,.92),transparent 28%),linear-gradient(135deg,#eef7ff,#f3fbf7);box-shadow:0 12px 24px #1c2d4314}.whole-tray{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 18px;padding:20px}.whole-tray span,.part-tray span{color:var(--muted);font-size:.82rem;font-weight:850;text-transform:uppercase}.whole-tray strong{color:var(--green);font-size:clamp(2.2rem,8vw,4rem);line-height:1}.whole-tray .dot-set{grid-column:1 / -1}.part-trays{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto 72px;gap:10px;align-items:center}.part-tray{min-height:132px;display:grid;align-content:start;gap:8px;padding:16px}.part-tray.known{background:linear-gradient(135deg,#e9ad3d29,#ffffffeb)}.part-tray.missing{background:linear-gradient(135deg,#2f7f6f24,#ffffffeb)}.part-tray strong{color:var(--ink);font-size:clamp(1.7rem,5vw,2.6rem);line-height:1}.part-plus,.part-total{display:grid;place-items:center;color:var(--muted);font-size:clamp(1.4rem,4vw,2rem);font-weight:950}.part-total{min-height:72px;border-radius:14px;background:var(--green);color:#fff}.dot-set{display:grid;grid-template-columns:repeat(10,minmax(10px,18px));gap:6px;align-items:center}.dot-set i{width:14px;height:14px;border-radius:999px;background:var(--blue);box-shadow:inset 0 -2px #10182826}.part-tray.known .dot-set i{background:var(--gold)}.part-tray.missing .dot-set i{background:var(--green)}.dot-set.empty{min-height:34px;border:2px dashed rgba(36,93,168,.22);border-radius:12px}.part-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.part-option{min-height:70px;border:2px solid rgba(36,93,168,.14);border-radius:14px;background:var(--surface-strong);color:var(--ink);font-size:1.6rem;font-weight:950;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.part-option:hover{transform:translateY(-2px);border-color:#2f7f6f6b;box-shadow:0 12px 22px #1c2d431a}.part-option:focus-visible{outline:3px solid rgba(47,127,111,.28);outline-offset:3px}.part-option.selected{border-color:var(--green);box-shadow:0 0 0 4px #2f7f6f24}.part-whole-preview{display:grid;grid-template-columns:1fr 1fr;gap:8px}.part-whole-preview span{display:grid;place-items:center;min-height:34px;border-radius:10px;background:#e9ad3d38;color:var(--gold-ink);font-weight:950}.part-whole-preview span:last-child{background:#2f7f6f29;color:var(--green)}@media(max-width:620px){.whole-tray,.part-trays{grid-template-columns:1fr}.part-plus,.part-total{min-height:44px}.part-options{grid-template-columns:1fr}}
