.solve-root{background:var(--surface-page);min-height:100dvh;color:var(--ink);font-family:var(--font-sans)}.solve-shell{grid-template:"header""board"minmax(0,1fr)"cluebar""keyboard"/minmax(0,1fr);height:100dvh;display:grid;position:relative;overflow:hidden}.solve-header{grid-area:header;min-width:0}.solve-board-area{grid-area:board}.solve-cluebar{grid-area:cluebar;min-width:0}.solve-keyboard{grid-area:keyboard}.solve-rail{display:none}.solve-under{padding:20px 16px calc(24px + env(safe-area-inset-bottom));max-width:900px;margin:0 auto;display:none}@media (width<=767.98px){.solve-root[data-solved=true] .solve-under{display:block}}.solve-under-panels{display:none}@media (width>=768px){.solve-keyboard{display:none}.solve-shell{grid-template-rows:auto auto minmax(0,1fr);grid-template-areas:"header""cluebar""board"}}@media (width>=768px) and (width<=1023.98px){.solve-under{display:block}.solve-under-panels{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-bottom:24px;display:grid}}@media (width>=1024px){.solve-shell{grid-template:"header header""cluebar cluebar""board rail"minmax(0,1fr)/minmax(0,1fr) minmax(300px,400px)}.solve-rail{flex-direction:column;grid-area:rail;gap:14px;min-width:0;min-height:0;padding:4px 18px 18px 4px;display:flex}.solve-under{display:none}}.solve-board-area{place-items:center;min-width:0;min-height:0;padding:10px 12px;display:grid;position:relative;container-type:size}@media (width>=1024px){.solve-board-area{padding:14px 24px}}.solve-board{aspect-ratio:calc(var(--grid-cols,15) / var(--grid-rows,15));width:min(100cqw, calc(100cqh * var(--grid-cols,15) / var(--grid-rows,15)), var(--board-max,640px));grid-template-rows:repeat(var(--grid-rows,15), minmax(0, 1fr));background:var(--line-strong);border:2px solid var(--ink);box-shadow:var(--shadow-card-value);border-radius:2px;gap:1px;display:grid;container-type:inline-size}.solve-board[data-size=mini]{--board-max:min(520px, 88cqh)}.solve-board[data-size=midi]{--board-max:min(580px, 88cqh)}.solve-board-row{grid-template-columns:repeat(var(--grid-cols,15), minmax(0, 1fr));gap:1px;min-width:0;min-height:0;display:grid}.solve-cell{appearance:none;background:var(--cell-bg);width:100%;min-width:0;height:100%;min-height:0;color:var(--ink);font-family:var(--font-sans);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:0;margin:0;padding:0;display:block;position:relative}.solve-cell[data-block=true]{background:var(--cell-block);cursor:default}.solve-cell[data-word=true]{background:linear-gradient(var(--cell-word), var(--cell-word)), var(--cell-bg)}.solve-cell[data-cursor=true]{background:linear-gradient(var(--cell-cursor), var(--cell-cursor)), var(--cell-bg);box-shadow:inset 0 0 0 2px var(--accent-strong)}.solve-cell:focus-visible{outline:2px solid var(--accent-strong);outline-offset:-2px}.cell-letter{font-weight:600;line-height:1;font-size:min(calc(62cqw / var(--grid-cols,15)), calc(118cqw / (var(--grid-cols,15) * var(--cell-len,1))));pointer-events:none;justify-content:center;align-items:center;padding-top:14%;display:flex;position:absolute;inset:0;overflow:hidden}.solve-cell[data-pencil=true] .cell-letter{color:var(--cell-pencil);font-style:italic}.cell-number{font-weight:600;line-height:1;font-size:calc(20cqw / var(--grid-cols,15));color:var(--ink-muted);pointer-events:none;position:absolute;top:3%;left:5%}.solve-cell[data-flag=wrong]:after{content:"";pointer-events:none;background:linear-gradient(to top right, transparent calc(50% - 1px), var(--danger) calc(50% - 1px), var(--danger) calc(50% + 1px), transparent calc(50% + 1px));position:absolute;inset:0}.solve-cell[data-flag=verified]:after{content:"";pointer-events:none;border-top:calc(24cqw / var(--grid-cols,15)) solid var(--accent);border-left:calc(24cqw / var(--grid-cols,15)) solid transparent;position:absolute;top:0;right:0}.solve-cell[data-flag=revealed]:after{content:"";width:calc(13cqw / var(--grid-cols,15));height:calc(13cqw / var(--grid-cols,15));background:var(--revealed);pointer-events:none;border-radius:50%;position:absolute;bottom:7%;right:7%}.solve-root[data-veiled=true] .cell-letter,.solve-root[data-veiled=true] .cell-number,.solve-root[data-paused=true] .cell-letter{visibility:hidden}.solve-begin-overlay{z-index:40;background:var(--surface-veil);-webkit-backdrop-filter:blur(12px);grid-area:2/1/-1/-1;place-items:center;min-width:0;min-height:0;padding:24px;display:grid}.solve-pause-overlay{z-index:20;background:var(--surface-veil);-webkit-backdrop-filter:blur(6px);place-items:center;display:grid;position:absolute;inset:0}.solve-celebration{z-index:10;pointer-events:none;position:absolute;inset:0;overflow:hidden}.solve-celebration:after{content:"";background:linear-gradient(105deg, transparent 34%, var(--accent-soft) 45%, color-mix(in oklab, var(--accent) 60%, transparent) 50%, var(--accent-soft) 55%, transparent 66%);animation:1.6s ease-out forwards solve-celebrate-fade;position:absolute;inset:-60% -110%}@media (prefers-reduced-motion:no-preference){.solve-celebration:after{animation:1.5s cubic-bezier(.3,.7,.4,1) forwards solve-celebrate-sweep}.solve-board[data-shake=true]{animation:.45s ease-in-out solve-shake}}@keyframes solve-celebrate-sweep{0%{opacity:1;transform:translate(-55%)}80%{opacity:1}to{opacity:0;transform:translate(55%)}}@keyframes solve-celebrate-fade{0%{opacity:.9}to{opacity:0}}@keyframes solve-shake{0%,to{transform:translate(0)}20%{transform:translate(-7px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.solve-cluebar{border-top:1px solid var(--line);background:var(--surface-raised);align-items:stretch;gap:4px;min-height:52px;padding:4px 6px;display:flex}@media (width>=768px){.solve-cluebar{border-top:0;border-bottom:1px solid var(--line);padding:6px 14px}}.cluebar-arrow{appearance:none;color:var(--ink);border-radius:var(--radius-control);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:0;padding:0 8px;display:flex}.cluebar-arrow:active{background:var(--accent-soft)}.cluebar-arrow svg{width:20px;height:20px}.cluebar-text{appearance:none;min-width:0;color:var(--ink);border-radius:var(--radius-control);text-align:left;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:auto;align-items:center;gap:10px;margin:0;padding:4px 8px;display:flex}.cluebar-text:active{background:var(--accent-soft)}.cluebar-label{font:700 12px/1.2 var(--font-sans);letter-spacing:.08em;color:var(--accent-strong);flex:none}.cluebar-clue{min-width:0;font:500 15px/1.25 var(--font-serif);color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:auto;display:-webkit-box;overflow:hidden}.clue-panel-heading{font:700 11px/1.4 var(--font-sans);letter-spacing:var(--tracking-eyebrow,.18em);text-transform:uppercase;color:var(--ink-faint);margin:0 0 6px}.clue-panel-list{margin:0;padding:0;list-style:none}.clue-item{appearance:none;width:100%;color:var(--ink);text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:6px;grid-template-columns:26px minmax(0,1fr) auto;align-items:baseline;gap:6px;margin:0;padding:6px 8px;display:grid}.clue-item:hover{background:var(--accent-soft)}.clue-item[data-active=true]{background:var(--cell-word);box-shadow:inset 2px 0 0 var(--accent-strong)}.clue-item .clue-num{font:700 12px/1.4 var(--font-sans);color:var(--ink-muted);text-align:right}.clue-item .clue-text{font:500 14px/1.35 var(--font-serif);min-width:0}.clue-item[data-complete=true] .clue-text{color:var(--ink-faint)}.clue-item .clue-progress{font:600 10.5px/1.4 var(--font-sans);font-variant-numeric:tabular-nums;color:var(--ink-faint)}.clue-item-veiled{cursor:default}.clue-item-veiled:hover{background:0 0}.clue-veil-bar{background:var(--line);border-radius:4px;height:8px;margin-block:5.5px;display:block}.solve-rail-panels{flex-direction:column;flex:0 auto;gap:12px;min-height:0;display:flex}.solve-rail-panels .clue-panel{flex-direction:column;flex:0 auto;min-height:0;display:flex}.solve-rail-panels .clue-panel-list{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-raised);flex:auto;min-height:0;padding:4px;overflow-y:auto}.solve-under-panels .clue-panel-list{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-raised);max-height:60dvh;padding:4px;overflow-y:auto}.solve-sheet-panels{flex-direction:column;gap:18px;display:flex}.solve-keyboard{background:var(--surface-inset);padding:6px 3px calc(6px + env(safe-area-inset-bottom));-webkit-user-select:none;user-select:none;touch-action:manipulation}.solve-root[data-solved=true] .solve-keyboard{display:none}.kb-row{--kb-face-inset-top:3px;--kb-face-inset-bottom:3px;--kb-hit-extra-height:6px;justify-content:center;gap:0;max-width:560px;margin:0 auto;display:flex}.kb-row:first-child{--kb-face-inset-top:0px;--kb-hit-extra-height:3px}.kb-row:last-child{--kb-face-inset-bottom:0px;--kb-hit-extra-height:3px}.kb-row-home{padding-inline:4.5%}.kb-key{--kb-face-inset-left:2.5px;--kb-face-inset-right:2.5px;appearance:none;flex:var(--kb-hit-grow) 1 var(--kb-hit-basis);min-width:0;height:calc(clamp(44px, 7.2dvh, 58px) + var(--kb-hit-extra-height));color:var(--ink);font:600 clamp(15px, 2.4dvh, 19px) var(--font-sans);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0;position:relative}.kb-key:first-child{--kb-face-inset-left:0px}.kb-key:last-child{--kb-face-inset-right:0px}.kb-key-face{inset:var(--kb-face-inset-top) var(--kb-face-inset-right) var(--kb-face-inset-bottom) var(--kb-face-inset-left);background:var(--surface-raised);pointer-events:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;box-shadow:0 1px 1.5px #00000038}.kb-key:active .kb-key-face{background:var(--accent-soft)}.kb-key svg{width:22px;height:22px}.kb-key-utility{flex-basis:var(--kb-hit-basis)}.kb-key-utility .kb-key-face{background:color-mix(in oklab, var(--surface-raised) 62%, var(--surface-inset))}.toolbar-panel{z-index:50;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface-raised);min-width:230px;max-height:min(70dvh,480px);box-shadow:var(--shadow-card-value);padding:4px;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto}.toolbar-item{appearance:none;width:100%;color:var(--ink);font:500 14px/1.3 var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;margin:0;padding:8px 12px;display:block}.toolbar-item:hover,.toolbar-item:focus-visible{background:var(--accent-soft);outline:none}.toolbar-item[data-danger=true]{color:var(--danger)}.toolbar-separator{background:var(--line);height:1px;margin:4px 8px}.toolbar-switch-row{font:500 14px/1.3 var(--font-sans);color:var(--ink);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}
