.pattern-grid{--pattern-radius:10px;grid-template-columns:repeat(var(--pattern-columns), minmax(0, 1fr));aspect-ratio:1;border:1px solid var(--line);border-radius:var(--pattern-radius);background:var(--surface2);gap:0;width:100%;display:grid;overflow:hidden}.pattern-cell{aspect-ratio:1;border:0;border-right:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-bottom:1px solid color-mix(in srgb, var(--line) 80%, transparent);background:0 0;border-radius:0;min-width:0;padding:0;display:block;position:relative}.pattern-cell.is-last-column{border-right:0}.pattern-cell.is-last-row{border-bottom:0}.pattern-cell:first-child{border-top-left-radius:calc(var(--pattern-radius) - 1px)}.pattern-cell.is-top-right{border-top-right-radius:calc(var(--pattern-radius) - 1px)}.pattern-cell.is-bottom-left{border-bottom-left-radius:calc(var(--pattern-radius) - 1px)}.pattern-cell:last-child{border-bottom-right-radius:calc(var(--pattern-radius) - 1px)}.pattern-cell.is-complete{background:var(--difficulty-color)}.pattern-grid--interactive .pattern-cell{min-height:0}.pattern-grid--interactive .pattern-cell:disabled{opacity:1;cursor:default}.pattern-cell-lock{width:min(12px,50%);height:auto;color:var(--muted);stroke-width:1.6px;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pattern-grid--interactive .pattern-cell[aria-pressed=true]:after{content:"";border:2px solid var(--accent);border-radius:inherit;box-shadow:inset 0 0 0 1px var(--surface);pointer-events:none;position:absolute;inset:0}.pattern-grid--interactive .pattern-cell:focus-visible{z-index:1;outline:2px solid var(--ink);outline-offset:-4px}.pattern-grid--complete:not(.pattern-grid--interactive) .pattern-cell{border:0}:is(.resume-thumb,.library-item-art) .pattern-grid{--pattern-radius:6px;width:100%}.pattern-card-cover{background:var(--surface-soft);padding:0}.pattern-grid--preview{opacity:.72;border:0}.pattern-grid--preview .pattern-cell{background:var(--difficulty-color);border:0}[data-theme=dark] .pattern-grid--preview{opacity:.44}.pattern-card-order{color:var(--muted);font-size:var(--text-caption);align-items:center;gap:5px;display:inline-flex}.dialog.pattern-dialog{inset:calc(var(--play-viewport-top,0px) + env(safe-area-inset-top)) env(safe-area-inset-right) calc(100% - var(--play-viewport-top,0px) - var(--play-viewport-height,100dvh) + env(safe-area-inset-bottom)) env(safe-area-inset-left);width:min(var(--pattern-dialog-width,520px), calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)));max-width:none;max-height:calc(var(--play-viewport-height,100dvh) - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overscroll-behavior:contain;overflow-y:auto;container:pattern-dialog/inline-size}.pattern-picker-artwork{justify-items:center;min-width:0;display:grid}.pattern-picker-artwork>.pattern-grid{width:100%;max-width:100%}.dialog.pattern-dialog>.dialog-heading{z-index:3;background:var(--surface);position:sticky;top:0}.dialog.pattern-dialog .pattern-picker-actions{z-index:2;background:var(--surface);position:sticky;bottom:0}.pattern-dialog-intro{margin:0 0 16px}.pattern-picker{min-width:0}.pattern-difficulty-key{color:var(--muted);font-size:var(--text-caption);flex-direction:column;gap:8px;margin-top:16px;display:flex}.pattern-difficulty-colors{flex-wrap:wrap;gap:5px;display:flex}.pattern-difficulty-colors span{background:var(--difficulty-color);color:#172233;font-variant-numeric:tabular-nums;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:650;display:inline-flex}.pattern-difficulty-colors [data-difficulty="9"]{color:#fff}.pattern-picker-note{color:var(--muted);font-size:var(--text-small);margin:14px 0 0;line-height:1.7}.pattern-picker-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:20px;padding-top:16px;display:flex}.pattern-picker-selection-controls{flex:250px;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;min-width:0;display:grid}.pattern-picker-step{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--ink);border-radius:12px;place-items:center;padding:0;display:grid}.pattern-picker-step:disabled{opacity:.35;cursor:default}.pattern-picker-step:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pattern-picker-selection{min-width:0;font-size:var(--text-small);font-variant-numeric:tabular-nums;flex-direction:column;gap:4px;display:flex}.pattern-picker-selection strong{color:var(--ink);font-weight:650}.pattern-picker-selection span{color:var(--muted);font-size:var(--text-caption)}.pattern-picker-actions .button{flex:1 0 112px;min-width:112px}@media (max-width:600px){.dialog.pattern-dialog{padding:16px}}@container pattern-dialog (width<=300px){.dialog .pattern-picker .pattern-view-toolbar{margin-bottom:8px}.dialog .pattern-picker .pattern-picker-note{margin-top:8px;line-height:1.5}.dialog .pattern-picker .pattern-picker-actions{grid-template-columns:minmax(0,1fr);gap:8px;margin-top:8px;padding-top:8px;display:grid}.dialog .pattern-picker .pattern-picker-selection{gap:0}}@media (min-width:640px) and (max-height:600px){.dialog.pattern-dialog{width:min(var(--pattern-dialog-width,820px), calc(100vw - 16px - env(safe-area-inset-left) - env(safe-area-inset-right)));padding:16px}.dialog.pattern-dialog .pattern-picker{--pattern-artwork-layout:side;grid-template-columns:minmax(0, var(--pattern-artwork-size,1fr)) minmax(240px, 1fr);grid-template-rows:auto auto 1fr auto;align-items:start;gap:0 20px;display:grid}.dialog.pattern-dialog .pattern-picker-artwork{grid-area:1/1/5}.dialog.pattern-dialog .pattern-view-toolbar{grid-area:1/2}.dialog.pattern-dialog .pattern-dialog-intro{grid-area:2/2}.dialog.pattern-dialog .pattern-picker-note{grid-area:3/2;margin-top:0}.dialog.pattern-dialog .pattern-picker-actions{grid-area:4/2;grid-template-columns:minmax(0,1fr);display:grid}}@media (hover:hover) and (pointer:fine){.pattern-picker-step:enabled:hover{background:var(--surface2)}.pattern-grid--interactive .pattern-cell:enabled:hover{box-shadow:inset 0 0 0 1px var(--accent)}}@media (prefers-reduced-motion:no-preference){.pattern-cell{transition:background-color .18s,box-shadow .18s}}.connect-image-grid{--connect-image-color-0:#d67761;--connect-image-color-1:#5d88c9;--connect-image-color-2:#649c83;--connect-image-color-3:#b68d41;--connect-image-color-4:#9678ba;--connect-image-color-5:#ba7095;--connect-image-color-6:#4596a4;--connect-image-color-7:#aa825f;grid-template-rows:repeat(var(--pattern-columns), minmax(0, 1fr));background:var(--surface2);position:relative}.connect-image-grid .connect-image-cell{aspect-ratio:auto;background:0 0;border:0;overflow:hidden}.connect-image-cell:before{content:"";z-index:1;border-right:1px solid color-mix(in srgb, var(--surface) 82%, var(--line));border-bottom:1px solid color-mix(in srgb, var(--surface) 82%, var(--line));border-radius:inherit;pointer-events:none;position:absolute;inset:0}.connect-image-cell.is-last-column:before{border-right:0}.connect-image-cell.is-last-row:before{border-bottom:0}.connect-image-cell-picture,.connect-image-miniature{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.connect-image-mini-base{fill:var(--surface2)}.connect-image-mini-square{fill:color-mix(in srgb, var(--surface) 55%, var(--surface2))}.connect-image-mini-dot{fill:var(--connect-dot-color)}.connect-image-cell--locked .connect-image-miniature{opacity:.37;filter:blur(.3px)}.connect-image-grid .connect-image-cell[aria-pressed=true]:after{z-index:2;box-shadow:none;border-width:2px}.connect-image-grid.pattern-grid--preview{opacity:1}.connect-image-cover.artwork-cover--preview>.connect-image-grid{filter:none;transform:none}.connect-image-cover .connect-image-grid{border:0}.connect-image-completed-art{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.connect-image-grid.pattern-grid--complete[data-view=picture] .connect-image-cell:before{display:none}.connect-image-picker .pattern-picker-note{font-size:var(--text-caption);margin-top:10px;line-height:1.65}.connect-image-picker .pattern-picker-actions{gap:12px;margin-top:12px;padding-top:12px}.connect-image-dialog .dialog-heading{margin-bottom:6px}.connect-image-dialog .pattern-dialog-intro{font-size:var(--text-small);margin-bottom:12px;line-height:1.6}[data-theme=dark] .connect-image-grid{--connect-image-color-0:#e19a86;--connect-image-color-1:#8babdf;--connect-image-color-2:#8dbca3;--connect-image-color-3:#d1b270;--connect-image-color-4:#b8a0d6;--connect-image-color-5:#d89fba;--connect-image-color-6:#7cbec8;--connect-image-color-7:#c5a184}[data-theme=dark] :is(.connect-image-cell-picture,.connect-image-completed-art){filter:brightness(.88)}@media (max-width:600px){.connect-image-picker .pattern-picker-actions{grid-template-columns:minmax(0,1fr);display:grid}.connect-image-picker .pattern-picker-selection-controls{gap:10px}.connect-image-picker .pattern-picker-selection{gap:3px}}.pattern-grid.unblock-mosaic-grid{background:var(--surface2);display:block;position:relative}.unblock-mosaic-canvas{pointer-events:none;width:100%;height:100%;display:block}.unblock-mosaic-paper{fill:#f0f0e9}.unblock-mosaic-miniature{opacity:.96}.unblock-mosaic-piece--locked .unblock-mosaic-miniature{opacity:.42;filter:blur(.3px)}.unblock-mosaic-joints{fill:none;stroke:color-mix(in srgb, var(--surface) 82%, var(--line));opacity:1}.unblock-mosaic-joints rect{stroke-width:1px;vector-effect:non-scaling-stroke}.unblock-mosaic-grid .unblock-mosaic-cell,.unblock-mosaic-grid .unblock-mosaic-cell.is-complete,.unblock-mosaic-grid .unblock-mosaic-cell:enabled:hover{aspect-ratio:auto;background:0 0;border:0;position:absolute}.unblock-mosaic-grid .unblock-mosaic-cell[aria-pressed=true]:after{box-shadow:none;border-width:2px}.unblock-mosaic-grid .unblock-mosaic-cell:focus-visible{outline-offset:-4px}.unblock-mosaic-grid.pattern-grid--preview{opacity:.95}.unblock-mosaic-cover.artwork-cover--preview>.unblock-mosaic-grid{filter:blur(.35px)saturate(.88);transform:none}.unblock-mosaic-cover .unblock-mosaic-grid{border:0}.unblock-mosaic-grid.pattern-grid--complete[data-view=picture] .unblock-mosaic-joints{opacity:0}.unblock-mosaic-picker .pattern-picker-note{font-size:var(--text-caption);margin-top:10px;line-height:1.65}.unblock-mosaic-picker .pattern-picker-actions{gap:12px;margin-top:12px;padding-top:12px}.unblock-mosaic-dialog .dialog-heading{margin-bottom:6px}.unblock-mosaic-dialog .pattern-dialog-intro{font-size:var(--text-small);margin-bottom:12px;line-height:1.6}[data-theme=dark] :is(.unblock-mosaic-piece,.unblock-mosaic-completed-art){filter:brightness(.82)saturate(.9)}[data-theme=dark] .unblock-mosaic-grid.pattern-grid--preview{opacity:.9}@media (max-width:600px){.unblock-mosaic-picker .pattern-picker-actions{grid-template-columns:minmax(0,1fr);display:grid}.unblock-mosaic-picker .pattern-picker-selection-controls{gap:10px}.unblock-mosaic-picker .pattern-picker-selection{gap:3px}}.jigsaw-piece-underlay{fill:#efe8da}.jigsaw-piece-depth{pointer-events:none;transform:translate(.65px,4.65px)}.jigsaw-piece-bevel{fill:none;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.jigsaw-piece-bevel-light{stroke:#fffcf0;stroke-opacity:.55}.jigsaw-piece-bevel-shade{stroke:#655442;stroke-opacity:.25}.jigsaw-board-piece .jigsaw-piece-bevel{opacity:.8}.jigsaw-piece-outline{fill:none;stroke:#65584426;stroke-width:.6px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.jigsaw-piece-outline--selected{stroke:#477c72;stroke-width:3.5px}[data-theme=dark] .jigsaw-piece-face,[data-theme=dark] .jigsaw-board-reference,[data-theme=dark] .jigsaw-help-art-image{filter:brightness(.84)saturate(.92)}[data-theme=dark] .jigsaw-piece-underlay{fill:#8f8b82}[data-theme=dark] .jigsaw-edge-gradient stop:first-child{stop-color:#aaa69b}[data-theme=dark] .jigsaw-edge-gradient stop:nth-child(2){stop-color:#908b80}[data-theme=dark] .jigsaw-edge-gradient stop:nth-child(3){stop-color:#726c61}[data-theme=dark] .jigsaw-edge-gradient stop:nth-child(4){stop-color:#625c52}[data-theme=dark] .jigsaw-piece-bevel-light{stroke:#dcd7cd;stroke-opacity:.28}[data-theme=dark] .jigsaw-piece-bevel-shade{stroke:#171d26;stroke-opacity:.38}[data-theme=dark] .jigsaw-piece-outline{stroke:#111a2852}[data-theme=dark] .jigsaw-piece-outline--selected{stroke:var(--accent)}.jigsaw-board-ground{fill:#f7f8f6}.jigsaw-board-reference{opacity:.3;pointer-events:none}.jigsaw-grid-lines{fill:none;stroke:#70847666;stroke-width:1px;stroke-dasharray:3 4}.jigsaw-grid-lines path{vector-effect:non-scaling-stroke;stroke-width:.65px}.jigsaw-board-piece{pointer-events:none}.jigsaw-board-depth{pointer-events:none;transform:translate(.3px,2.05px)}.jigsaw-picture--complete .jigsaw-piece-outline{stroke-opacity:.25;transition:stroke-opacity .7s}[data-theme=dark] .jigsaw-board-ground{fill:var(--surface2)}[data-theme=dark] .jigsaw-grid-lines{stroke:color-mix(in srgb, var(--muted) 34%, transparent)}@media (prefers-reduced-motion:reduce){.jigsaw-picture--complete .jigsaw-piece-outline{transition:none}}.sliding-image-grid{grid-template-rows:repeat(var(--pattern-columns), minmax(0, 1fr));background:var(--surface2);position:relative}.sliding-image-completed-art{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.sliding-image-grid .sliding-image-cell{aspect-ratio:auto;background:0 0;border:0;overflow:hidden}.sliding-image-cell:before{content:"";z-index:1;border-right:1px solid color-mix(in srgb, var(--surface) 84%, var(--line));border-bottom:1px solid color-mix(in srgb, var(--surface) 84%, var(--line));border-radius:inherit;pointer-events:none;position:absolute;inset:0}.sliding-image-cell.is-last-column:before{border-right:0}.sliding-image-cell.is-last-row:before{border-bottom:0}.sliding-image-grid.pattern-grid--preview .sliding-image-cell:before,.sliding-image-grid.pattern-grid--complete[data-view=picture] .sliding-image-cell:before{display:none}.sliding-image-cell-picture{pointer-events:none;display:block;position:absolute;inset:0;overflow:hidden}.sliding-image-miniature{grid-template-columns:repeat(var(--sliding-mini-columns), minmax(0, 1fr));grid-template-rows:repeat(var(--sliding-mini-columns), minmax(0, 1fr));background:color-mix(in srgb, var(--surface) 80%, var(--line));opacity:.92;gap:0;width:100%;height:100%;display:grid}.sliding-image-mini-tile{background-color:var(--surface2);min-width:0;min-height:0;box-shadow:inset 0 0 0 .5px color-mix(in srgb, var(--surface) 62%, transparent)}.sliding-image-mini-tile--empty{background:color-mix(in srgb, var(--surface2) 62%, var(--line));box-shadow:inset 0 1px 2px color-mix(in srgb, var(--ink) 12%, transparent), inset 0 0 0 .5px color-mix(in srgb, var(--ink) 12%, transparent)}.sliding-image-cell--locked .sliding-image-miniature{opacity:.64}.sliding-image-grid[data-view=puzzles] .sliding-image-cell:not(.sliding-image-cell--locked) .sliding-image-miniature{opacity:1}.sliding-image-grid .sliding-image-cell[aria-pressed=true]:after{z-index:2;box-shadow:none;border-width:2px}.sliding-image-grid .sliding-image-cell[aria-pressed=true] .sliding-image-miniature{opacity:1}.sliding-image-grid.pattern-grid--preview{opacity:.9}.sliding-image-cover.artwork-cover--preview>.sliding-image-grid{filter:blur(.35px)saturate(.88);transform:none}.sliding-image-cover .sliding-image-grid,.sliding-image-grid.pattern-grid--complete:not(.pattern-grid--interactive) .sliding-image-cell{border:0}.sliding-image-picker .pattern-picker-note{font-size:var(--text-caption);margin-top:10px;line-height:1.65}.sliding-image-picker .pattern-picker-actions{gap:12px;margin-top:12px;padding-top:12px}.sliding-image-dialog .dialog-heading{margin-bottom:6px}.sliding-image-dialog .pattern-dialog-intro{font-size:var(--text-small);margin-bottom:12px;line-height:1.6}[data-theme=dark] .sliding-image-grid.pattern-grid--preview{opacity:.76}[data-theme=dark] :is(.sliding-image-cell-picture,.sliding-image-completed-art){filter:brightness(.88)}@media (max-width:600px){.sliding-image-picker .pattern-picker-actions{grid-template-columns:minmax(0,1fr);display:grid}.sliding-image-picker .pattern-picker-selection-controls{gap:10px}.sliding-image-picker .pattern-picker-selection{gap:3px}}.puzzle-banner{isolation:isolate;border:1px solid color-mix(in srgb, var(--poster-ink) 12%, var(--surface));background:linear-gradient(110deg, color-mix(in srgb, var(--poster-bg) 72%, var(--surface)), var(--poster-bg));height:280px;color:var(--ink);border-radius:23px;margin-bottom:0;position:relative;overflow:hidden;box-shadow:inset 0 1px #fff5}.puzzle-banner-slide{height:100%}.puzzle-banner-destination{grid-template-columns:minmax(0,1fr) 220px;align-items:center;gap:24px;height:100%;padding:30px 40px 50px;display:grid}.puzzle-banner-destination:before{content:"";z-index:0;position:absolute;inset:0}.puzzle-banner-destination:focus-visible{outline:none}.puzzle-banner:has(.puzzle-banner-destination:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.puzzle-banner-copy{z-index:1;min-width:0;position:relative}.puzzle-banner-meta{min-height:26px;color:var(--poster-ink);font-size:var(--text-caption);align-items:center;gap:8px;margin:0 0 10px;font-weight:600;line-height:1.5;display:flex}.puzzle-banner-category-mark{flex:none;place-items:center;width:26px;height:26px;display:grid}.puzzle-banner-title{font-size:var(--title-hero);letter-spacing:-1px;margin:0 0 10px;font-weight:700;line-height:1.3}.puzzle-banner-summary{color:color-mix(in srgb, var(--ink) 80%, var(--poster-bg));font-size:var(--text-body);word-break:keep-all;overflow-wrap:anywhere;margin:0;line-height:1.7}.puzzle-banner-summary-break{display:none}.puzzle-banner-actions{align-items:center;gap:12px;margin-top:20px;display:flex}.puzzle-banner-link{border:1px solid color-mix(in srgb, var(--poster-ink) 13%, transparent);background:color-mix(in srgb, var(--surface) 76%, transparent);width:124px;min-height:44px;color:var(--poster-ink);font-size:var(--text-label);border-radius:16px;flex:none;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:650;line-height:1.5;display:inline-flex}.puzzle-banner-progress{width:min(300px,100% - 136px);min-height:44px;color:var(--poster-ink);flex-direction:column;flex:none;justify-content:center;align-items:stretch;gap:5px;display:flex}.puzzle-banner-progress-numbers{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 8px;display:flex}.puzzle-banner-progress-track{background:color-mix(in srgb, currentColor 20%, transparent);border-radius:999px;flex:none;width:100%;height:3px;overflow:hidden}.puzzle-banner-progress-fill{border-radius:inherit;background:currentColor;height:100%;display:block}.puzzle-banner-progress-value{font-variant-numeric:tabular-nums;letter-spacing:-.5px;text-align:left;flex:none;font-size:21px;font-weight:680;line-height:1}.puzzle-banner-progress-count{color:color-mix(in srgb, currentColor 85%, var(--poster-bg));font-variant-numeric:tabular-nums;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.3}.puzzle-banner-progress.is-complete{color:#32745b}[data-theme=dark] .puzzle-banner-progress.is-complete{color:#b1e5cc}.puzzle-banner-visual{z-index:0;place-items:center;height:100%;min-height:0;display:grid;position:relative}.puzzle-banner-visual .puzzle-art{width:200px;height:200px;filter:drop-shadow(0 12px 14px color-mix(in srgb, var(--poster-ink) 10%, transparent));position:relative;transform:rotate(-5deg)}.puzzle-banner-orbit{border:1px solid color-mix(in srgb, var(--poster-ink) 9%, transparent);background:color-mix(in srgb, var(--surface) 16%, transparent);border-radius:50%;width:265px;height:265px;position:absolute}.puzzle-banner-orbit:after{content:"";border:1px solid color-mix(in srgb, var(--surface) 60%, transparent);border-radius:50%;position:absolute;inset:19px}.puzzle-banner-controls{z-index:2;color:var(--poster-ink);pointer-events:none;align-items:center;gap:5px;display:flex;position:absolute;bottom:16px;right:16px}.puzzle-banner-controls button{pointer-events:auto}.puzzle-banner-dots{align-items:center;margin-right:10px;display:flex}.puzzle-banner-dot{border-radius:9px;place-items:center;width:28px;height:40px;padding:0;display:grid}.puzzle-banner-dot span{opacity:.3;background:currentColor;border-radius:20px;width:5px;height:5px}.puzzle-banner-dot[aria-current=true] span{opacity:.8;width:18px}.puzzle-banner-control{border:1px solid color-mix(in srgb, var(--poster-ink) 10%, transparent);background:color-mix(in srgb, var(--surface) 54%, transparent);border-radius:50%;place-items:center;width:40px;height:40px;padding:0;display:grid}.puzzle-banner-rotation{margin-left:5px}@media (max-width:650px){.puzzle-banner{--banner-art-size:100px;--banner-orbit-size:124px;--banner-control-inset:12px;border-radius:19px;height:auto}.puzzle-banner-slide{height:auto}.puzzle-banner-destination{height:auto;padding:var(--banner-control-inset) var(--banner-control-inset) 0;display:block}.puzzle-banner-heading{margin-bottom:10px}.puzzle-banner-editorial:before{content:"";float:right;width:116px;height:110px}.puzzle-banner-meta{margin-bottom:8px}.puzzle-banner-title{letter-spacing:-.8px;margin-bottom:0;font-size:clamp(26px,7.7vw,30px);line-height:1.2}.puzzle-banner-summary{max-width:100%;font-size:var(--text-label);line-height:1.6}.puzzle-banner-summary-break{display:initial}.puzzle-banner-actions{grid-template-columns:minmax(0, 1fr) var(--banner-orbit-size);margin-top:8px;display:grid}.puzzle-banner-link{gap:8px;width:100%;padding-inline:8px}.puzzle-banner-progress{width:100%;min-width:0}.puzzle-banner-progress-value{font-size:19px}.puzzle-banner-visual{right:calc(var(--banner-control-inset) + (var(--banner-orbit-size) - var(--banner-art-size)) / 2);top:calc(var(--banner-control-inset) + (var(--banner-orbit-size) - var(--banner-art-size)) / 2);width:var(--banner-art-size);height:var(--banner-art-size);position:absolute}.puzzle-banner-visual .puzzle-art{width:var(--banner-art-size);height:var(--banner-art-size)}.puzzle-banner-orbit{width:var(--banner-orbit-size);height:var(--banner-orbit-size)}.puzzle-banner-orbit:after{inset:9px}.puzzle-banner-controls{margin:12px var(--banner-control-inset) var(--banner-control-inset);justify-content:flex-end;position:relative;bottom:auto;right:auto}}@media (max-width:370px){.puzzle-banner{--banner-art-size:82px;--banner-orbit-size:108px}.puzzle-banner-editorial:before{width:90px;height:94px}}@media (prefers-reduced-motion:no-preference){.puzzle-banner-progress-fill{transition:width .38s var(--motion-ease)}.puzzle-banner-editorial{animation:banner-copy-in .42s var(--motion-ease)}.puzzle-banner-visual{animation:banner-art-in .65s var(--motion-ease)}.puzzle-banner-dot span{transition:width .26s var(--motion-ease), opacity .2s ease}.puzzle-banner-link,.puzzle-banner-control{transition:background-color .18s ease, transform .18s var(--motion-ease)}.puzzle-banner-link svg{transition:transform .24s var(--motion-ease)}.puzzle-banner-destination:active .puzzle-banner-link,.puzzle-banner-control:active:not(:disabled){transform:scale(.96)}@keyframes banner-copy-in{0%{opacity:.25;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes banner-art-in{0%{opacity:0;transform:translate(10px)scale(.96)}to{opacity:1;transform:translate(0)scale(1)}}}@media (hover:hover) and (pointer:fine){.puzzle-banner-link:hover,.puzzle-banner-control:hover:not(:disabled){background:var(--surface)}}@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){.puzzle-banner-link:hover svg{transform:translate(3px)}}.jigsaw-gallery .breadcrumbs{font-size:var(--text-card);gap:10px;font-weight:500;line-height:1.5}.jigsaw-gallery .breadcrumbs [aria-current=page]{color:var(--ink);font-weight:600}.jigsaw-gallery-section{margin-top:0}.jigsaw-gallery-heading{margin-bottom:20px}.gallery-heading--with-action{grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:10px 16px;display:grid}.gallery-heading--with-action>.favorite-toggle{border-radius:10px;width:36px;height:36px;min-height:36px;padding:0;position:relative}.gallery-heading--with-action>.favorite-toggle:after{content:"";width:44px;height:44px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gallery-heading--with-action>.favorite-toggle svg{width:18px;height:18px}.jigsaw-gallery-heading h1{letter-spacing:-.03em;align-items:center;min-width:0;min-height:36px;margin:0;font-size:24px;line-height:1.5;display:flex}.jigsaw-gallery-heading p{color:var(--muted);font-size:var(--text-label);grid-column:1/-1;margin:0}.jigsaw-gallery-controls{display:block}.jigsaw-progress-filters{scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior-inline:contain;box-shadow:inset 0 -1px var(--line);flex-wrap:nowrap;align-items:center;gap:6px;display:flex;overflow-x:auto}.jigsaw-filter-chip{min-height:44px;color:var(--muted);font-size:var(--text-label);white-space:nowrap;border-bottom:2px solid #0000;border-radius:8px 8px 0 0;flex:none;justify-content:center;align-items:center;padding:8px 16px;font-weight:600;line-height:1.4;transition:color .16s,background-color .16s,border-color .16s;display:inline-flex}.jigsaw-filter-chip[aria-pressed=true]{color:var(--accent-ink);border-bottom-color:var(--accent-ink)}.jigsaw-gallery-options{--jigsaw-menu-gap:6px;align-items:center;gap:var(--jigsaw-menu-gap);flex:none;display:flex}.jigsaw-gallery-menu{position:relative}.jigsaw-gallery-menu-trigger{border:1px solid var(--line);background:var(--surface);width:44px;height:44px;color:var(--muted);vertical-align:top;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:color .16s,background-color .16s,border-color .16s;display:inline-flex;position:relative}.jigsaw-gallery-menu-trigger>svg{stroke-width:1.7px;width:20px;height:20px}.jigsaw-gallery-menu-trigger[aria-expanded=true],.jigsaw-gallery-menu-trigger[data-active=true]{color:var(--accent-ink);background:var(--blue-soft);border-color:#0000}.jigsaw-gallery-menu-dot{pointer-events:none;background:currentColor;border-radius:50%;width:5px;height:5px;position:absolute;top:7px;right:7px}.jigsaw-gallery-menu-panel{z-index:20;width:208px;max-width:calc(100vw - 32px);max-height:min(420px, var(--jigsaw-menu-max-height,60dvh));overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;border:1px solid var(--line);background:var(--surface);transform-origin:100% 0;border-radius:14px;padding:6px;animation:.14s ease-out jigsaw-gallery-menu-in;position:absolute;top:calc(100% + 8px);right:0;overflow:auto;box-shadow:0 12px 32px #15213714,0 2px 6px #15213708}.jigsaw-gallery-menu-panel[data-side=top]{transform-origin:100% 100%;top:auto;bottom:calc(100% + 8px)}.jigsaw-gallery-menu-title{color:var(--muted);font-size:var(--text-caption);margin:0;padding:8px 10px;font-weight:600;line-height:1.4;display:block}.jigsaw-gallery-menu-item{width:100%;min-height:44px;color:var(--ink);font-size:var(--text-label);text-align:left;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px;line-height:1.4;transition:color .12s,background-color .12s;display:flex}.jigsaw-gallery-menu-item>span{min-width:0}.jigsaw-gallery-menu-item>svg{width:16px;height:16px}.jigsaw-gallery-menu-item[aria-checked=true]{color:var(--accent-ink);background:var(--blue-soft);font-weight:600}.jigsaw-gallery-menu-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}[data-theme=dark] .jigsaw-gallery-menu-panel{box-shadow:0 12px 32px #0b101a40,0 2px 6px #0b101a26}@keyframes jigsaw-gallery-menu-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}.jigsaw-gallery-results{justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin:12px 0;display:flex}.jigsaw-gallery-results>p{color:var(--ink);font-size:var(--text-card);white-space:nowrap;margin:0;font-weight:500}.jigsaw-gallery-result-actions{flex:none;align-items:center;gap:6px;display:flex}.jigsaw-gallery-reset{min-height:44px;color:var(--ink);font-size:var(--text-small);border-radius:10px;flex:none;justify-content:center;align-items:center;gap:6px;padding:8px 12px;font-weight:600;line-height:1.4;transition:background-color .16s;display:inline-flex}.jigsaw-gallery-empty{border:1px solid var(--line);background:var(--surface);text-align:center;border-radius:18px;padding:40px 24px}.jigsaw-gallery-empty>svg{color:var(--muted);margin:0 auto 16px;display:block}.jigsaw-gallery-empty h3{font-size:var(--text-card);margin:0 0 8px;font-weight:600;line-height:1.5}.jigsaw-gallery-empty p{max-width:360px;color:var(--muted);font-size:var(--text-label);word-break:keep-all;margin:0 auto 16px;line-height:1.7}.jigsaw-gallery-empty .jigsaw-gallery-reset{background:var(--surface2);padding-inline:16px}.artwork-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;display:grid}.artwork-card{isolation:isolate;border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;min-width:0;padding:8px;transition:border-color .16s,background-color .16s,box-shadow .16s;display:flex;position:relative}.artwork-card-link{z-index:1;border-radius:inherit;position:absolute;inset:0}.artwork-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.artwork-card:has(>.artwork-card-link:is(:active,[data-pressed=true])){background:var(--surface2);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);transition-duration:0s}.artwork-cover{aspect-ratio:1;background:var(--surface-soft);border-radius:10px;display:block;position:relative;overflow:hidden}.artwork-picture{width:100%;height:100%;display:block;overflow:visible}.artwork-picture .jigsaw-grid-lines{display:none}.artwork-cover--preview>:is(.artwork-picture,.pattern-grid){transform:scale(1.04)}.artwork-cover--preview>.artwork-picture{filter:blur(3px)saturate(.9)}.artwork-cover--preview>.pattern-grid{filter:blur(10px)saturate(.72)}.artwork-cover--preview:after{content:"";background:linear-gradient(180deg, color-mix(in srgb, var(--surface) 8%, transparent), color-mix(in srgb, var(--surface) 16%, transparent) 55%, color-mix(in srgb, var(--surface) 64%, transparent));pointer-events:none;position:absolute;inset:0}.artwork-lock{z-index:1;pointer-events:none;align-items:flex-end;padding:16px;display:flex;position:absolute;inset:0}.artwork-lock>span{border:1px solid color-mix(in srgb, var(--surface) 75%, var(--line));background:color-mix(in srgb, var(--surface) 92%, transparent);color:var(--ink);font-size:var(--text-caption);border-radius:10px;align-items:center;gap:7px;padding:8px 12px;font-weight:550;line-height:1.4;display:inline-flex;box-shadow:0 2px 8px #18294008}.artwork-progress{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.artwork-complete{color:var(--accent-ink);background:var(--blue-soft);font-size:var(--text-caption);white-space:nowrap;border-radius:20px;align-items:center;gap:4px;padding:3px 8px;line-height:1.4;display:inline-flex}.artwork-copy{flex-direction:column;flex:1;padding:12px 8px 4px;display:flex}.artwork-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.artwork-title{flex-wrap:wrap;align-items:baseline;gap:4px 8px;min-width:0;display:flex}.artwork-heading h3{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:650;line-height:1.5}.artwork-access{font-size:var(--text-caption);color:var(--muted);flex:none;align-items:center;gap:4px;display:inline-flex}.artwork-favorite{z-index:2;width:44px;height:44px;color:var(--muted);border-radius:10px;flex:none;justify-content:center;align-items:center;padding:0;transition:background-color .16s,color .16s,transform .16s;display:inline-flex;position:relative}.artwork-favorite svg{stroke-width:1.7px}.artwork-favorite[aria-pressed=true]{color:var(--accent-ink)}.artwork-favorite[aria-pressed=true] svg{fill:currentColor}.artwork-copy>p{font-size:var(--text-small);color:var(--muted);word-break:keep-all;margin:6px 0 12px;line-height:1.6}.artwork-card-foot{min-height:40px;color:var(--muted);font-size:var(--text-small);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:auto;display:flex}.artwork-card-action{min-height:40px;color:var(--ink);align-items:center;gap:8px;font-weight:600;display:inline-flex}.resume-thumb:has(>.resume-artwork){padding:0;overflow:hidden}.resume-thumb .resume-artwork,.library-item-art .resume-artwork{object-fit:cover;border-radius:inherit;width:100%;height:100%}@media (max-width:900px){.artwork-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}}@media (max-width:700px){.jigsaw-gallery-heading h1{font-size:22px}}@media (max-width:600px){.jigsaw-gallery-menu:first-child .jigsaw-gallery-menu-panel{right:calc(-44px - var(--jigsaw-menu-gap))}.jigsaw-progress-filters{gap:4px;width:100%}.jigsaw-filter-chip{min-width:0;font-size:var(--text-small);flex:1 0 auto;padding-inline:6px}.jigsaw-gallery-results{margin-block:8px 12px}.jigsaw-gallery-empty{padding:32px 20px}.artwork-grid{grid-template-columns:minmax(0,1fr);gap:20px}}@media (hover:hover){.jigsaw-filter-chip:hover:not([aria-pressed=true]),.jigsaw-gallery-reset:hover,.artwork-favorite:hover:not([aria-pressed=true]),.jigsaw-gallery-menu-trigger:hover:not([aria-expanded=true]):not([data-active=true]),.jigsaw-gallery-menu-item:hover:not([aria-checked=true]){background:var(--surface2);color:var(--ink)}.artwork-card:has(>.artwork-card-link:hover){border-color:color-mix(in srgb, var(--accent) 50%, var(--line))}.artwork-card:has(>.artwork-card-link:hover) .artwork-card-action{color:var(--accent)}.artwork-favorite[aria-pressed=true]:hover{background:var(--blue-soft)}}.jigsaw-gallery :is(.jigsaw-filter-chip,.jigsaw-gallery-reset,.jigsaw-gallery-menu-trigger,.jigsaw-gallery-menu-item):is(:active,[data-pressed=true]),.artwork-favorite:is(:active,[data-pressed=true]){background:var(--blue-soft);color:var(--accent-ink);transition-duration:0s;transform:scale(.97)}.artwork-card:has(>.artwork-card-link:is(:active,[data-pressed=true])) .artwork-card-action{color:var(--accent-ink)}.jigsaw-progress-filters .jigsaw-filter-chip:focus-visible{outline-offset:-3px}@media (prefers-reduced-motion:reduce){.jigsaw-gallery button,.artwork-card,.artwork-favorite{transition:none}.jigsaw-gallery button:is(:active,[data-pressed=true]),.artwork-favorite:is(:active,[data-pressed=true]){transform:none}}@media (max-width:370px){.jigsaw-gallery:lang(en) .jigsaw-filter-chip{font-size:var(--text-caption);padding-inline:6px}}.pattern-view-toolbar{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.pattern-view-copy{min-width:0;color:var(--muted);font-size:var(--text-caption);word-break:keep-all;gap:4px;margin:0;line-height:1.5;display:grid}.pattern-view-count{font-size:var(--text-small);font-variant-numeric:tabular-nums}.pattern-view-toggle{border:1px solid var(--line);background:var(--surface2);min-height:36px;color:var(--ink);font-size:var(--text-caption);white-space:nowrap;border-radius:10px;flex-shrink:0;padding:6px 10px;font-weight:600;transition:background-color .16s,color .16s}.pattern-view-toggle:active{background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.pattern-view-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}@media (hover:hover) and (pointer:fine){.pattern-view-toggle:hover{background:color-mix(in srgb, var(--accent) 7%, var(--surface));color:var(--ink)}}@media (prefers-reduced-motion:reduce){.pattern-view-toggle{transition:none}}.puzzle-sets-section,.puzzle-how-section{margin-top:32px}.puzzle-sets-heading h2,.puzzle-how-section>h2{line-height:1.4;font-size:var(--title-section);letter-spacing:-.5px;margin:0 0 12px;font-weight:650}.puzzle-sets-heading>p{max-width:760px;color:var(--muted);font-size:var(--text-label);word-break:keep-all;margin:0;line-height:1.8}.puzzle-sets-heading>p a{text-underline-offset:3px;margin-left:4px;text-decoration:underline;display:inline-block}.puzzle-set-list,.subscription-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px;display:grid}.puzzle-set-card,.subscription-option{background:var(--surface);border:1px solid var(--line);border-radius:17px;flex-direction:column;min-width:0;padding:24px;display:flex}.puzzle-set-heading{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.puzzle-set-heading h3{font-size:var(--text-card);margin:0;font-weight:650;line-height:1.5}.puzzle-set-access{color:var(--muted);font-size:var(--text-small);font-weight:500}.puzzle-set-card>p,.subscription-option>p{color:var(--muted);font-size:var(--text-label);word-break:keep-all;margin:0 0 24px;line-height:1.8}.puzzle-set-card>.puzzle-set-availability{font-size:var(--text-small);margin-top:auto;margin-bottom:20px;padding-top:10px}.puzzle-set-progress{color:var(--muted);font-size:var(--text-small);gap:9px;margin-top:auto;margin-bottom:20px;padding-top:10px;display:grid}.puzzle-set-progress progress{background:var(--line);width:100%;height:4px;color:var(--progress-color);appearance:none;border:0;border-radius:4px;overflow:hidden}.puzzle-set-progress progress::-webkit-progress-bar{background:var(--line)}.puzzle-set-progress progress::-webkit-progress-value{background:var(--progress-color)}.puzzle-set-progress progress::-moz-progress-bar{background:var(--progress-color)}.puzzle-set-card>.secondary-button,.subscription-option>.secondary-button{font-size:var(--text-label);align-self:flex-start}.puzzle-set-card>button:disabled,.subscription-option>button:disabled{color:var(--muted);background:var(--surface2);opacity:.75;border-color:#0000}.subscription-info{max-width:870px;margin:auto}.subscription-heading{margin-bottom:32px}.subscription-heading h1{line-height:1.4;font-size:var(--title-page);letter-spacing:-.8px;margin:0 0 12px;font-weight:650}.subscription-heading>p{color:var(--muted);font-size:var(--text-body);margin:0;line-height:1.75}.subscription-option h2{font-size:var(--title-section);margin:0 0 8px;font-weight:650;line-height:1.4}.subscription-option>.puzzle-set-access{margin-bottom:18px}.subscription-option>.subscription-note{font-size:var(--text-small);margin-top:auto}.subscription-payment-note{color:var(--muted);line-height:1.75;font-size:var(--text-small);margin:20px 0 0}@media (max-width:600px){.puzzle-set-list,.subscription-options{grid-template-columns:minmax(0,1fr);gap:16px}.puzzle-set-card,.subscription-option{padding:20px}}:is(body:has(.play-view) .site-header,body:has(.play-view) .site-footer){display:none}.main-content:has(.play-view)>.page-container{max-width:none;padding:0}.play-view{min-height:100dvh;color:var(--ink)}.game-header{border-bottom:1px solid var(--line);background:#ffffffbd;justify-content:space-between;align-items:center;gap:20px;height:77px;padding:0 max(32px,50vw - 612px);display:flex}.game-back{min-height:44px;color:var(--muted);align-items:center;gap:9px;text-decoration:none;display:inline-flex}.game-back .play-brand-mark{object-fit:contain;width:38px;height:38px}.game-back .brand-word{font-size:28px}.game-header-title{color:#405270;font-size:var(--text-card);font-weight:700}.game-header-actions{align-items:center;gap:10px;display:flex}.game-shell{grid-template-columns:minmax(0,1fr) 255px;align-items:center;gap:75px;max-width:1140px;min-height:calc(100dvh - 77px);margin:0 auto;padding:35px 32px;display:grid}.play-main{flex-direction:column;align-items:center;width:100%;min-width:0;max-width:620px;display:flex}.play-heading{justify-content:space-between;align-items:center;gap:10px;width:100%;max-width:470px;margin-bottom:16px;display:flex}.puzzle-label{font-size:var(--text-caption);letter-spacing:.7px;color:var(--muted);font-weight:750}.play-heading h1{font-size:var(--title-page);letter-spacing:-.7px;margin:4px 0 0;font-weight:650;line-height:1.4}.level-open{font-size:var(--text-small);color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:12px;align-items:center;gap:6px;min-height:40px;padding:7px 10px;display:flex}.game-sidebar{align-self:center}.side-panel{border-left:1px solid var(--line);padding-left:28px}.side-panel .eyebrow{font-size:var(--text-caption);letter-spacing:1.3px}.side-panel h2{font-size:var(--title-section);letter-spacing:-.55px;margin:12px 0 8px;line-height:1.4}.play-view .level-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:21px 0;display:grid}.level-button{aspect-ratio:1.2;border:1px solid var(--line);background:var(--surface);min-height:44px;color:var(--muted);font-size:var(--text-label);border-radius:11px;place-items:center;display:grid}.level-button.current{background:var(--green);color:#fff;border-color:#4063bd;box-shadow:inset 0 1px #ffffff30,0 2px #3658ad}.level-button.done{color:#3b755b;background:var(--mint-soft);box-shadow:none;border-color:#d0e8dc}.side-help{border-top:1px solid var(--line);margin-top:7px;padding-top:16px}.side-help .text-button{font-size:var(--text-small);min-height:40px;color:var(--muted);align-items:center;gap:6px;padding:0;display:inline-flex}.play-view .dialog{border-radius:25px;padding:29px}.play-view .dialog-heading h2{font-size:var(--title-section)}.play-view .modal-eyebrow{color:#6381b0;font-size:var(--text-caption)}.play-view .inline-steps{flex-direction:column;gap:16px;margin:24px 0;display:flex}.play-view .inline-step{align-items:flex-start;gap:12px;display:flex}.play-view .inline-step .step-number{width:29px;height:29px;font-size:var(--text-small);background:var(--blue-soft);color:var(--accent);border-radius:8px;flex:none;place-items:center;display:grid}.play-view .inline-step p{font-size:var(--text-label);color:var(--muted);margin:2px 0;line-height:1.8}.play-view .inline-step strong{color:var(--ink);font-weight:600}.player-setting-row{border-bottom:1px solid var(--line);font-size:var(--text-body);justify-content:space-between;align-items:center;gap:20px;padding:18px 0;line-height:1.6;display:flex}.player-setting-row strong,.player-setting-row label{font-weight:600}.player-setting-row select{border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--ink);font:inherit;border-radius:9px;padding:7px 10px}.player-switch{background:var(--line);border-radius:16px;width:46px;height:28px;padding:3px}.player-switch span{background:#fff;border-radius:50%;width:22px;height:22px;display:block}.player-switch.on{background:#6489eb}.player-switch.on span{transform:translate(18px)}[data-theme=dark] .game-header{background:var(--bg)}[data-theme=dark] .game-header-title,[data-theme=dark] .game-back .brand-word{color:var(--ink)}[data-theme=dark] .level-button.current{color:var(--bg)}@media (min-width:1600px){.game-shell{max-width:1200px}}@media (max-width:1150px){.game-shell{grid-template-columns:minmax(0,1fr) 240px;gap:35px}}@media (max-width:900px){.game-header{height:68px;padding:0 26px}.game-shell{justify-content:center;min-height:calc(100dvh - 68px);padding:28px 24px;display:flex}.play-main{max-width:555px}.game-sidebar{display:none}.play-heading{max-width:445px}}@media (max-width:600px){.game-header{gap:10px;height:61px;padding:0 18px}.game-back{gap:6px}.game-back .play-brand-mark{width:33px;height:33px}.game-back .brand-word{display:none}.game-back>svg{width:17px;height:17px}.game-header-title{font-size:var(--text-label)}.game-header-actions{gap:1px}.game-header .icon-button{width:39px;height:44px}.game-shell{min-height:calc(100dvh - 61px);padding:20px 14px calc(22px + env(safe-area-inset-bottom))}.play-main{max-width:460px}.play-heading{max-width:calc(100% - 14px);margin-bottom:12px}.level-open{gap:5px;min-height:40px}.play-view .dialog{padding:24px}}@font-face{font-family:Pretendard Variable;src:url(/assets/PretendardVariable-CJuje-Rk.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}.button{min-height:44px;font-size:var(--text-label);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:9px;padding:10px 18px;font-weight:600;line-height:1.5;transition:background .17s,box-shadow .17s,transform .17s;display:inline-flex}.button-primary{color:#fff;background:var(--accent);border-color:#476bc1;box-shadow:0 2px #3154a8}.locked-page-actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.button-primary:hover:not(:disabled){background:#365cbc;transform:translateY(-1px)}.button-secondary{background:var(--surface);border-color:var(--border)}.button-secondary:hover:not(:disabled){background:var(--surface-soft)}.button-soft{background:var(--accent-soft);color:var(--accent-ink);border-color:#dce6fb}.button-soft:hover{background:#e0eaff}.button-danger{color:var(--danger);background:#fff2f0;border-color:#f1d7d3}.access-badge{font-size:var(--text-caption);letter-spacing:.1px;white-space:nowrap;border-radius:5px;align-items:center;gap:4px;padding:3px 6px;font-weight:650;line-height:1.4;display:inline-flex}.access-badge.free{color:#3a795e;background:#e9f5ef}.access-badge.premium{color:#826324;background:#fcf1d6}.plus-banner>.button{font-size:var(--text-small);flex-shrink:0;margin-left:auto}.page-heading{margin:0 0 32px}.page-heading h1{font-size:var(--title-page);letter-spacing:-.8px;margin:8px 0 12px;font-weight:700;line-height:1.4}.page-heading>p:not(.eyebrow){font-size:var(--text-body);color:var(--muted);margin:0;line-height:1.75}.back-link{color:var(--muted);font-size:var(--text-label);align-items:center;gap:7px;min-height:40px;margin:-8px 0 20px;display:inline-flex}.back-link:hover{color:var(--accent)}.pack-card>.button,.pack-card>.status-label{flex-shrink:0;margin-left:auto}.how-grid{grid-template-columns:repeat(3,1fr);gap:18px;display:grid}.how-card{border:1px solid var(--border);background:var(--surface);border-radius:16px;padding:24px}.how-card>span{color:var(--accent);background:var(--accent-soft);font-size:var(--text-label);border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.how-card h3{font-size:var(--text-card);margin:20px 0 10px;line-height:1.5}.how-card p{font-size:var(--text-label);color:var(--muted);margin:0;line-height:1.8}.empty-state{text-align:center;border:1px dashed var(--border);background:var(--surface);border-radius:20px;padding:55px 20px}.empty-icon{color:#91a9d8;background:var(--accent-soft);border-radius:23px;place-items:center;width:72px;height:72px;margin:0 auto 22px;display:grid;transform:rotate(-5deg)}.empty-state h2{font-size:var(--title-section);letter-spacing:-.65px;margin:0 0 12px;font-weight:650;line-height:1.45}.empty-state>p{color:var(--muted);font-size:var(--text-body);max-width:480px;margin:0 auto 24px;line-height:1.75}.local-note{color:var(--muted);font-size:var(--text-small);margin:25px 0 0;line-height:1.8}.membership-page{max-width:870px;margin:auto}.membership-heading{text-align:center;padding:8px 0 32px}.membership-symbol{color:#8b91c7;background:#eeebfb;border-radius:22px;place-items:center;width:70px;height:70px;margin:0 auto 22px;display:grid;transform:rotate(-6deg)}.membership-heading .eyebrow{font-size:var(--text-caption)}.membership-heading h1{font-size:var(--title-hero);letter-spacing:-1.5px;margin-bottom:14px;line-height:1.5}.membership-heading h1>span{color:#7488be}.membership-heading>p:not(.eyebrow){font-size:var(--text-body);color:var(--muted);line-height:1.9}.status-label{font-size:var(--text-caption);color:var(--muted);background:var(--surface-soft);border-radius:7px;padding:6px 11px;font-weight:600;display:inline-flex}.plans-grid{grid-template-columns:1fr 1fr;gap:23px;margin-top:5px;display:grid}.plan-card{border:1px solid var(--border);background:var(--surface);border-radius:20px;padding:32px;position:relative}.plan-card .eyebrow{font-size:var(--text-caption)}.plan-card h2{font-size:var(--title-section);letter-spacing:-.7px;align-items:center;gap:9px;margin-bottom:7px;display:flex}.plan-card>p{font-size:var(--text-label);color:var(--muted);line-height:1.75}.plan-price{font-size:var(--title-page);letter-spacing:-.7px;margin-top:25px;font-weight:650}.pending-price{font-size:var(--title-page)}.plan-price>span{font-size:var(--text-small);color:var(--muted);letter-spacing:0;margin-top:9px;font-weight:400;display:block}.plan-card ul{border-top:1px solid var(--border);gap:16px;margin:24px 0 0;padding:22px 0;list-style:none;display:grid}.plan-card li{font-size:var(--text-small);align-items:center;gap:8px;display:flex}.plan-card li>svg{color:#87af9c;flex-shrink:0}.plan-card li>small{color:var(--muted);font-size:var(--text-caption)}.plan-card>.button{width:100%}.plus-plan{background:linear-gradient(150deg, #f5f7ff, var(--surface));border-color:#d7dff5}.plan-top-tag{color:#6d7ab0;font-size:var(--text-caption);letter-spacing:.6px;background:#e8edff;border:1px solid #d6e0f7;border-radius:8px;align-items:center;gap:5px;padding:6px 10px;font-weight:650;display:flex;position:absolute;top:-12px;right:19px}.plan-card>.plan-note{font-size:var(--text-caption);text-align:center;margin:12px 0 -3px}.faq-section{margin-top:40px}.faq-section>h2{font-size:var(--title-section);margin:0 0 16px;line-height:1.4}.faq-section details{border-bottom:1px solid var(--border);padding:19px 3px}.faq-section summary{font-size:var(--text-body);cursor:pointer;padding-right:10px;line-height:1.65}.faq-section details p{color:var(--muted);font-size:var(--text-label);margin:12px 0 0;line-height:1.8}.narrow-page{max-width:750px;margin:auto}.settings-card{border:1px solid var(--border);background:var(--surface);border-radius:18px;margin-bottom:24px;padding:28px}.settings-card h2{font-size:var(--title-section);margin:0 0 12px;line-height:1.4}.settings-card>p{color:var(--muted);font-size:var(--text-body);margin:0 0 20px;line-height:1.8}.theme-options{gap:13px;margin-top:24px;display:flex}.theme-options button{border:1px solid var(--border);min-width:0;min-height:88px;color:var(--muted);font-size:var(--text-label);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:14px 8px;display:flex;position:relative}.theme-options .selected{color:var(--accent);background:var(--accent-soft);border-color:#aac0ed}.theme-check{position:absolute;top:8px;right:8px}.settings-notice:empty{display:none}.settings-card>.settings-notice{margin:16px 0 0}.dialog{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:22px;width:calc(100% - 32px);max-width:460px;padding:26px;box-shadow:0 24px 100px #11274b33}.dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#24354b66}.dialog-heading{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.dialog-heading h2{font-size:var(--title-section);letter-spacing:-.5px;margin:0;line-height:1.45}.dialog-heading .icon-button{flex-shrink:0}.dialog>p{font-size:var(--text-body);color:var(--muted);line-height:1.8}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.prose-page{font-size:var(--text-body)}.prose-page section{margin:36px 0}.prose-page section h2{font-size:var(--title-section);align-items:center;gap:9px;margin:0 0 12px;line-height:1.5;display:flex}.prose-page section p{color:var(--muted);margin:0 0 16px;line-height:1.85}.about-art{background:linear-gradient(120deg,#eff4ff,#f5f0fb);border-radius:20px;justify-content:center;padding:32px;display:flex}.account-avatar{background:var(--accent-soft);color:#7b96c2;border-radius:22px;place-items:center;width:68px;height:68px;margin-bottom:23px;display:grid}.account-actions{flex-wrap:wrap;gap:10px;margin-top:21px;display:flex}.player-title{justify-content:space-between;align-items:center;margin:0 0 24px;display:flex}.player-title .eyebrow{font-size:var(--text-caption);margin-bottom:7px}.player-title h1{font-size:var(--title-page);letter-spacing:-.8px;margin:0}.player-layout{grid-template-columns:1fr 270px;align-items:start;gap:32px;display:grid}.player-board-panel{background:var(--surface);border:1px solid var(--border);border-radius:22px;min-width:0;padding:32px}.player-guide{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin-top:0;padding:28px}.guide-icon{color:#7d9dcc}.player-guide h2{font-size:var(--title-section);letter-spacing:-.6px;margin:15px 0 10px}.player-guide>p{font-size:var(--text-label);color:var(--muted);line-height:1.8}.goal-mini{grid-template-columns:repeat(3,1fr);gap:4px;width:117px;margin:24px auto;display:grid}.goal-mini span{background:var(--accent-soft);color:var(--accent-ink);width:36px;height:36px;font-size:var(--text-body);border-radius:6px;place-items:center;display:grid}.goal-mini .blank{background:var(--surface-soft)}.player-guide ul{font-size:var(--text-small);color:var(--muted);padding-left:13px;line-height:1.9}.guide-note{border-top:1px solid var(--border);font-size:var(--text-small);color:var(--muted);margin-top:20px;padding-top:18px;line-height:1.9}.locked-page>svg{color:#9ba8c4;margin:15px auto 25px;display:block}.loading-state{text-align:center;color:var(--muted);font-size:var(--text-body);padding:50px 0}.storage-warning{color:#765d25;font-size:var(--text-label);background:#fff2d6;border-radius:11px;padding:13px 16px}.fatal-error{text-align:center;max-width:600px;margin:15vh auto;padding:25px}.fatal-error h1{font-size:var(--title-section)}.fatal-error p{color:var(--muted);font-size:var(--text-body)}[data-theme=dark] .button-primary{color:#243d66;background:#adc6ff;border-color:#a2bcf3;box-shadow:0 2px #7391c8}[data-theme=dark] .button-primary:hover:not(:disabled){background:#c2d5ff}[data-theme=dark] .button-soft{border-color:#425575}[data-theme=dark] .button-soft:hover{background:#3a5072}[data-theme=dark] .button-danger{background:#573d43;border-color:#795057}[data-theme=dark] .access-badge.free{color:#b2d8c4;background:#2b493d}[data-theme=dark] .access-badge.premium{color:#ebd898;background:#534b32}[data-theme=dark] .plus-plan{background:linear-gradient(130deg,#2b374e,#323349);border-color:#404860}[data-theme=dark] .membership-symbol{color:#cccefb;background:#40425e}[data-theme=dark] .plan-top-tag{color:#c4cdf2;background:#343f5b;border-color:#4f5a77}[data-theme=dark] .membership-heading h1>span{color:#b2c5f2}[data-theme=dark] .about-art{background:linear-gradient(120deg,#2d3c55,#3b334e)}@media (max-width:800px){.settings-link{display:none}.player-layout{grid-template-columns:1fr 230px;gap:20px}.player-board-panel{padding:24px 18px}.player-guide{padding:21px}.how-card{padding:20px}}@media (max-width:620px){.access-badge{font-size:var(--text-caption);padding:3px 5px}.access-badge svg{width:9px}.plus-banner>.button{min-height:39px;margin-left:0;padding:8px 12px}.empty-state{padding:42px 20px}.pack-card>.button{margin-left:0}.how-grid{grid-template-columns:1fr;gap:13px}.how-card{padding:23px}.how-card h3{margin-top:15px}.plans-grid{grid-template-columns:1fr;gap:25px}.plan-card{padding:29px}.theme-options{gap:10px}.settings-card{padding:24px}.player-layout{grid-template-columns:1fr;gap:20px}.player-board-panel{padding:25px 18px}.player-guide{padding:25px}.player-guide .goal-mini{margin-inline:0}.dialog{padding:22px}.locked-page .empty-state{padding-inline:16px}}:root{--text-caption:12px;--text-small:13px;--text-label:14px;--text-body:15px;--text-card:16px;--title-section:22px;--title-page:28px;--title-hero:36px;--page-gutter:40px;--section-gap:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fbfcfe;--surface:#fff;--surface2:#f0f3f8;--surface-soft:var(--surface2);--ink:#323b4a;--text:var(--ink);--muted:#657084;--line:#e4e8ef;--border:var(--line);--brand-coral:#f87555;--brand-yellow:#ffd44f;--brand-blue:#6795f7;--brand-mint:#78c0aa;--blue-soft:#e4edff;--yellow-soft:#fff2c7;--mint-soft:#e0f3eb;--coral-soft:#ffe5da;--accent:#406acb;--accent-ink:#3e62b2;--accent-soft:var(--blue-soft);--green:#476ed1;--green-hover:#365cc0;--hero:#edf2ff;--danger:#bf4437;--shadow:0 10px 28px #3e57700b;--puzzle-card-width:228px;--resume-card-width:320px;--shelf-gap:20px;--progress-color:#638fe6;--progress-complete:#52957c;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Pretendard Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,sans-serif}*{box-sizing:border-box}html{scroll-padding-top:90px}body{background:var(--bg);min-width:320px;color:var(--ink);font-size:var(--text-body);letter-spacing:-.015em;margin:0;line-height:1.6}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit;background:0 0;border:0}button:disabled{cursor:not-allowed}a{color:inherit;text-decoration:none}svg{flex:none}img{max-width:100%}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}main:focus{outline:none}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}::selection{color:#324b7a;background:#dce7ff}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{background:var(--green);color:#fff;z-index:100;border-radius:10px;padding:12px 18px;position:fixed;top:-70px;left:16px}.skip-link:focus{top:12px}.site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:30;background:#fbfcfef2;height:76px;position:sticky;top:0}.header-inner{max-width:1304px;height:100%;padding:0 var(--page-gutter);justify-content:space-between;align-items:center;gap:20px;margin:auto;display:flex;position:relative}.header-inner:after{content:"";bottom:0;left:var(--page-gutter);right:var(--page-gutter);border-bottom:1px solid var(--line);position:absolute}.brand{flex:none;align-items:center;gap:8px;min-height:44px;display:inline-flex}.brand-mark{width:40px;height:40px;display:block}.brand-word{letter-spacing:-1.6px;color:#334055;font-family:Arial,Helvetica,sans-serif;font-size:31px;font-weight:800;line-height:1}.header-actions{align-items:center;gap:4px;min-width:0;margin-left:auto;display:flex}.icon-button,.language-button{color:#748197;border-radius:12px;flex:none;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex}.icon-button:hover,.language-button:hover,.language-button[aria-expanded=true]{background:var(--blue-soft);color:#4166ad}.header-actions .icon-button svg{stroke-width:1.7px;width:20px;height:20px}.sun-icon{display:none}.profile-button{min-width:44px;max-width:200px;height:44px;font-size:var(--text-label);letter-spacing:-.1px;color:#465b7e;border-radius:11px;justify-content:center;align-items:center;margin-left:8px;padding:0;font-weight:600;line-height:18px;display:inline-flex}.profile-button>span{white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(120deg,#f1f5fc,#e1e9f8);border-radius:10px;padding:7px 13px;display:block;overflow:hidden;box-shadow:inset 0 0 0 1px #819bc42b}.profile-button:hover>span{background:linear-gradient(120deg,#eaf0fc,#d8e4f8)}.language-control{flex:0 0 44px;align-items:center;height:44px;display:flex;position:relative}.language-glyph{width:22px;height:22px;overflow:visible}.language-glyph .language-code{fill:currentColor;stroke:none;letter-spacing:-.15px;font-family:Arial,sans-serif;font-size:9.5px;font-weight:600}.language-menu{border:1px solid var(--line);background:var(--surface);z-index:60;border-radius:18px;width:216px;padding:10px;position:absolute;top:calc(100% + 12px);right:0;box-shadow:0 14px 42px #304d741a,0 2px 5px #304d7408}.language-menu-title{color:var(--muted);font-size:var(--text-caption);padding:7px 10px 9px;font-weight:600}.language-option{text-align:left;width:100%;min-height:49px;font-size:var(--text-label);border-radius:11px;align-items:center;gap:11px;padding:9px 11px;display:flex}.option-code{letter-spacing:.5px;color:var(--muted);width:20px;font:600 10px/1.2 Arial,sans-serif}.language-check{width:16px;height:16px;margin-left:auto}.language-option:hover{background:var(--surface2)}.language-option[aria-checked=true]{background:var(--blue-soft);color:#4166ad;font-weight:650}.language-option[aria-checked=true] .option-code{color:inherit}.page-container{width:100%;max-width:1304px;padding:32px var(--page-gutter) 56px;min-width:0;margin:auto}.page-top{justify-content:space-between;align-items:center;gap:24px;margin:0 0 28px;display:flex}.page-top h1{font-size:var(--title-page);letter-spacing:-.035em;margin:0;font-weight:700;line-height:1.35}.page-top p{font-size:var(--text-body);color:var(--muted);margin:8px 0 0}.shelf{min-width:0}.shelf+.shelf{margin-top:var(--section-gap)}.shelf-heading{justify-content:space-between;align-items:center;gap:10px;min-height:40px;margin-bottom:8px;display:flex}.shelf-heading-left{align-items:baseline;gap:10px;min-width:0;display:flex}.shelf-heading h2{font-size:var(--title-section);letter-spacing:-.03em;margin:0;font-weight:700;line-height:1.4}.shelf-count{font-size:var(--text-small);color:var(--muted);font-variant-numeric:tabular-nums}.shelf-actions{flex:none;align-items:center;gap:10px;display:flex}.shelf-navigation{gap:0;display:flex}.shelf-scroll{width:44px;height:44px;color:var(--muted);border-radius:12px;flex:none;place-items:center;padding:0;display:grid}.shelf-scroll:disabled{opacity:.28;cursor:default}.shelf-scroll:focus-visible{outline:2px solid var(--brand-blue);outline-offset:-3px}.shelf-library-link{min-height:44px;font-size:var(--text-small);color:var(--muted);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.rail-frame{min-width:0;margin:0 -8px}.puzzle-rail{--rail-width:min(var(--puzzle-card-width), calc(100vw - 48px));grid-template-rows:auto;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:var(--rail-width);justify-content:start;align-items:start;gap:var(--shelf-gap);overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;min-width:0;max-width:100%;margin:0;padding:6px 8px 8px;scroll-padding-inline:8px;display:grid;overflow:auto hidden}.puzzle-rail::-webkit-scrollbar{display:none}.puzzle-rail.resume-shelf-grid{--rail-width:min(var(--resume-card-width), calc(100vw - var(--page-gutter) * 2))}.puzzle-rail:focus-visible{outline:2px solid var(--brand-blue);outline-offset:-2px;border-radius:10px}.puzzle-rail>*{scroll-snap-align:start;min-width:0}.puzzle-rail>.platform-card{align-self:stretch}.puzzle-rail a:focus-visible,.puzzle-rail button:focus-visible{outline-offset:2px}.puzzle-rail img{-webkit-user-drag:none}.platform-card{flex-direction:column;width:100%;min-width:0;display:flex;position:relative}[data-tone=coral]{--poster-bg:#ffe2d7;--poster-ink:#a24732;--poster-edge:#edcbbd;--poster-glow:#e99a7b19}[data-tone=blue]{--poster-bg:#e2ebff;--poster-ink:#4566aa;--poster-edge:#cbd8f2;--poster-glow:#6795f71a}[data-tone=mint]{--poster-bg:#def2e9;--poster-ink:#347360;--poster-edge:#c7e2d7;--poster-glow:#78c0aa1a}[data-tone=yellow]{--poster-bg:#fff0bd;--poster-ink:#88661f;--poster-edge:#eedea4;--poster-glow:#e4bc431a}[data-tone=lavender]{--poster-bg:#e4e8fb;--poster-ink:#586298;--poster-edge:#d0d6ed;--poster-glow:#7480bb15}[data-tone=peach]{--poster-bg:#ffe5d9;--poster-ink:#a25b40;--poster-edge:#f0cfbc;--poster-glow:#d18d6515}.poster-wrap{aspect-ratio:1;width:100%;position:relative}.game-poster{aspect-ratio:1;background:var(--poster-bg);width:100%;height:100%;color:var(--poster-ink);text-align:left;isolation:isolate;box-shadow:inset 0 2px 0 #ffffff87, 0 4px 0 var(--poster-edge), 0 10px 18px var(--poster-glow);border:1px solid #ffffffa3;border-radius:20px;grid-template-rows:32px minmax(0,1fr) 32px;gap:4px;padding:14px;transition:transform .22s,box-shadow .22s;display:grid;overflow:hidden}.poster-title{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.65px;align-self:center;width:calc(100% - 40px);max-height:100%;font:700 24px/1.2 Arial,Helvetica,sans-serif;display:block;overflow:hidden}.poster-illustration{justify-content:center;align-items:center;width:100%;height:100%;min-height:0;padding:0;transition:transform .4s cubic-bezier(.2,.7,.2,1);display:flex}.poster-favorite{z-index:1;width:44px;height:44px;color:var(--poster-ink);border-radius:12px;place-items:center;padding:0;display:grid;position:absolute;top:8px;right:8px}.favorite-toggle svg{stroke-width:1.5px}.favorite-toggle[aria-pressed=true] svg{fill:currentColor}.poster-favorite:is(:hover,:active,[data-pressed=true]){background:#ffffff91}[data-theme=dark] .poster-favorite:is(:hover,:active,[data-pressed=true]){background:#ffffff15}.poster-illustration img{object-fit:contain;filter:drop-shadow(0 6px 5px #44607c0a);width:100%;max-width:100%;height:100%;max-height:100%;display:block}.poster-foot{justify-content:space-between;align-self:end;align-items:center;gap:12px;width:100%;min-width:0;min-height:20px;display:flex;position:relative}.poster-caption{opacity:.87;place-items:center;width:44px;height:44px;display:grid;position:absolute;bottom:-7px;left:-7px}.puzzle-card-link{-webkit-tap-highlight-color:transparent;border-radius:20px;flex-direction:column;flex:1;min-width:0;display:flex}.puzzle-card-link:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.puzzle-card-link:is(:active,[data-pressed=true]) .game-poster{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--poster-ink) 28%, transparent), 0 2px 0 var(--poster-edge)}.poster-progress{width:44px;height:44px;color:var(--poster-ink);place-items:center;display:grid;position:absolute;bottom:-7px;right:-7px}.poster-progress-ring{fill:none;stroke:currentColor;stroke-width:2.4px;grid-area:1/1;width:44px;height:44px;display:block}.poster-progress-track{opacity:.2}.poster-progress-fill{stroke-linecap:round}.poster-progress-value{font-variant-numeric:tabular-nums;text-align:center;grid-area:1/1;font-size:11px;font-weight:650;line-height:1}.poster-progress.is-complete{color:#32745b}.catalog-copy{flex:1;padding:14px 14px 4px}.catalog-title{color:var(--ink);font-size:var(--text-card);letter-spacing:-.025em;-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:0;font-weight:650;line-height:1.45;display:-webkit-box;overflow:hidden}.catalog-copy>p{color:var(--muted);font-size:var(--text-small);-webkit-line-clamp:2;word-break:keep-all;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin:4px 0 0;line-height:1.65;display:-webkit-box;overflow:hidden}.resume-card{border:1px solid color-mix(in srgb, var(--poster-ink) 12%, var(--line));background:linear-gradient(120deg, color-mix(in srgb, var(--poster-bg) 18%, var(--surface)), var(--surface));text-align:left;border-radius:19px;width:100%;min-width:0;position:relative}.resume-card-link{border-radius:inherit;grid-template-columns:96px minmax(0,1fr) 44px;align-items:center;gap:12px;min-height:128px;padding:16px;display:grid}.resume-card-link:active,.resume-card-link[data-pressed=true]{background:color-mix(in srgb, var(--poster-bg) 24%, var(--surface))}.resume-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.resume-thumb{border:1px solid color-mix(in srgb, var(--poster-ink) 10%, transparent);background:color-mix(in srgb, var(--poster-bg) 65%, var(--surface));border-radius:13px;place-items:center;width:96px;height:96px;padding:4px;display:grid;overflow:hidden}.resume-thumb :is(.resume-picture,.puzzle-art){width:100%;height:100%;display:block}.resume-picture{clip-path:inset(0 round 8px);border-radius:8px;overflow:hidden}.resume-picture .jigsaw-grid-lines{display:none}.resume-kind{letter-spacing:-.5px;font-size:19px;font-weight:700;line-height:1.2}.resume-title{font-size:var(--text-small);color:var(--ink);-webkit-line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.resume-detail{font-size:var(--text-caption);font-variant-numeric:tabular-nums;color:var(--muted);line-height:1.5;display:block}.resume-progress{color:var(--poster-ink);flex-direction:column;gap:5px;display:flex}.resume-track{background:color-mix(in srgb, currentColor 16%, transparent);border-radius:999px;height:3px;display:block;overflow:hidden}.resume-track>span{border-radius:inherit;background:currentColor;height:100%;display:block}.resume-card-action{color:var(--poster-ink);border:1px solid color-mix(in srgb, var(--poster-ink) 10%, transparent);background:color-mix(in srgb, var(--poster-bg) 70%, var(--surface));border-radius:14px;align-self:end;place-items:center;width:44px;height:44px;display:grid}.resume-card-action svg{fill:currentColor;stroke-width:1.2px}.resume-dismiss{width:44px;height:44px;color:var(--muted);border-radius:14px;place-items:center;display:grid;position:absolute;top:16px;right:16px}.resume-dismiss:active,.resume-dismiss[data-pressed=true]{color:var(--ink);background:var(--surface2)}.resume-confirm-puzzle{border:1px solid var(--line);background:var(--surface2);border-radius:13px;flex-direction:column;gap:3px;margin:0 0 16px;padding:14px 16px;display:flex}.resume-confirm-puzzle strong{color:var(--ink);font-size:18px}.resume-confirm-puzzle span{color:var(--muted);font-size:var(--text-small)}@media (hover:hover) and (pointer:fine){.resume-dismiss:hover{color:var(--ink);background:var(--surface2)}}.site-footer{width:calc(100% - var(--page-gutter) * 2);max-width:calc(1304px - var(--page-gutter) * 2);border-top:1px solid var(--line);font-size:var(--text-caption);color:var(--muted);margin:0 auto;padding:24px 0 28px;display:block}.eyebrow{font-size:var(--text-caption);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-weight:650;line-height:1.6;display:block}.button,.primary-button,.secondary-button,.soft-button{min-height:44px;font-size:var(--text-label);border:1px solid #0000;border-radius:13px;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-weight:650;line-height:1.4;display:inline-flex}.primary-button{background:var(--green);color:#fff;border-color:#4468c6;box-shadow:inset 0 1px #ffffff24,0 3px #3156b1,0 6px 12px #4268c413}.secondary-button{background:var(--surface);border-color:var(--line);color:var(--ink)}.soft-button{background:var(--surface2);color:var(--ink)}.breadcrumbs{color:var(--muted);font-size:var(--text-small);align-items:center;gap:9px;margin-bottom:24px;display:flex}.detail-hero{border:1px solid var(--line);background:var(--surface);border-radius:23px;grid-template-columns:minmax(0,1fr) 285px;min-height:272px;display:grid;overflow:hidden}.detail-copy{min-width:0;padding:32px}.detail-copy h1{font-size:var(--title-hero);letter-spacing:-.035em;margin:12px 0;line-height:1.3}.detail-copy>p{font-size:var(--text-body);color:var(--muted);word-break:keep-all;max-width:620px;margin:12px 0 24px;line-height:1.75}.detail-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.detail-visual{background:var(--poster-bg);place-items:center;min-height:235px;display:grid;overflow:hidden}.detail-visual img{width:210px;height:210px}.detail-progress{max-width:380px;margin-top:23px}.detail-progress-label{color:var(--muted);font-size:var(--text-small);justify-content:space-between;align-items:baseline;margin-bottom:5px;display:flex}.card-progress{height:20px;color:var(--muted);font-size:var(--text-caption);align-items:center;gap:14px;display:flex}.card-progress progress{background:var(--line);width:100%;min-width:0;height:4px;color:var(--progress-color);appearance:none;border:0;border-radius:4px;flex:1;overflow:hidden}.card-progress progress::-webkit-progress-bar{background:var(--line);border-radius:4px}.card-progress progress::-webkit-progress-value{background:var(--progress-color);border-radius:4px}.card-progress progress::-moz-progress-bar{background:var(--progress-color);border-radius:4px}.progress-percent,.progress-value{text-align:right;min-width:41px;font-size:var(--text-caption);font-weight:600}.detail-tabs{border-bottom:1px solid var(--line);gap:28px;margin-top:32px;display:flex}.detail-tab{min-height:48px;font-size:var(--text-label);color:var(--muted);padding:12px 0;position:relative}.detail-tab.active{color:var(--accent);font-weight:650}.detail-tab.active:after{content:"";background:var(--brand-blue);height:2px;position:absolute;bottom:-1px;left:0;right:0}.platform-sets{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:24px;display:grid}.platform-set{border:1px solid var(--line);background:var(--surface);border-radius:18px;flex-direction:column;min-width:0;padding:24px;display:flex}.platform-set h3{margin:0 0 8px;font-size:18px;line-height:1.4}.platform-set>p{font-size:var(--text-label);color:var(--muted);min-height:3.6em;margin:0 0 20px;line-height:1.7}.platform-set .card-progress{margin-bottom:20px}.platform-set .primary-button,.platform-set .button{font-size:var(--text-label);align-self:flex-start}.set-game-name{font-size:var(--text-small);color:var(--muted);margin-bottom:8px}.detail-empty{border:1px dashed var(--line);color:var(--muted);font-size:var(--text-label);border-radius:18px;margin-top:24px;padding:40px 25px}.detail-empty p{margin-bottom:14px}.how-grid{margin:25px 0}.step-number{color:#426bbb;background:var(--blue-soft);border-radius:11px;place-items:center;width:34px;height:34px;font-size:12px;font-weight:700;display:grid}.library-back{white-space:nowrap;color:#627697;width:max-content;max-width:100%;min-height:44px;font-size:var(--text-small);letter-spacing:0;border-radius:9px;align-items:center;gap:7px;margin:-8px 0 8px -8px;padding:0 8px;font-weight:550;line-height:20px;display:flex}.library-stats{grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0 28px;display:grid}.stat-box{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0;padding:20px 24px}.stat-box small{color:var(--muted);font-size:var(--text-small);word-break:keep-all;overflow-wrap:anywhere;line-height:1.5;display:block}.stat-box strong{font-size:var(--title-page);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:8px;line-height:1.4;display:block}.stat-box:first-child strong{color:var(--accent)}.stat-box strong span{font-size:var(--text-small);letter-spacing:0;color:var(--muted);margin-left:4px;font-weight:500}.filters{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:24px;padding-bottom:12px;display:flex}.filter-button{min-height:42px;font-size:var(--text-label);color:var(--muted);border:1px solid #0000;border-radius:10px;padding:8px 14px;font-weight:550}.filter-button.active{background:var(--blue-soft);color:#3e62b2;border-color:#d6e2fb;box-shadow:inset 0 1px #ffffffa6}.library-list{grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;display:grid}.library-item{border:1px solid var(--line);background:var(--surface);border-radius:19px;align-items:center;gap:14px;padding:18px;display:flex}.library-item-art{background:var(--blue-soft);border-radius:13px;flex:none;place-items:center;width:62px;height:62px;display:grid}.library-item-art img{width:49px;height:49px}.library-item-copy{flex:1;min-width:0}.library-item-copy h3{font-size:var(--text-card);margin:0 0 4px}.library-item-copy p{font-size:var(--text-small);color:var(--muted);margin:0}.library-item-copy .card-progress{max-width:240px;margin-top:6px}.library-item .icon-button{background:var(--surface2);width:35px;min-width:35px;height:35px}.platform-library .empty-state{padding:45px 20px}.platform-library .empty-state h3{font-size:var(--title-section);letter-spacing:-.025em;margin:0 0 12px}.platform-library .empty-state p{font-size:var(--text-label);margin:0 0 24px}.empty-illustration{background:var(--blue-soft);color:#6b8ed6;border-radius:22px;place-items:center;width:78px;height:78px;margin:0 auto 17px;display:grid;transform:rotate(-5deg)}.library-utilities{color:var(--muted);font-size:var(--text-small);flex-wrap:wrap;align-items:center;gap:18px;margin-top:28px;display:flex}.library-utilities a{align-items:center;gap:5px;min-height:36px;display:inline-flex}.library-utilities a:hover{color:var(--accent)}html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1c2432;--surface:#242f40;--surface2:#2e3b4e;--ink:#e9effa;--muted:#acb9ce;--line:#3a485d;--green:#aac4ff;--green-hover:#c2d5ff;--accent:#b2ccff;--accent-ink:#d5e3ff;--hero:#2c3c56;--blue-soft:#2f4261;--yellow-soft:#50482f;--mint-soft:#2b473f;--danger:#ffc7b7;--progress-color:#9dbdff;--progress-complete:#94d5b8}[data-theme=dark] .site-header{background:#1c2432ed}[data-theme=dark] .brand-word{color:#e9effa}[data-theme=dark] .sun-icon{display:block}[data-theme=dark] .moon-icon{display:none}[data-theme=dark] .header-actions .icon-button,[data-theme=dark] .language-button{color:#b8c8e4}[data-theme=dark] .profile-button{color:#d2dff4}[data-theme=dark] .profile-button>span{background:linear-gradient(120deg,#303e54,#26354b);box-shadow:inset 0 0 0 1px #bed4f521}[data-theme=dark] .language-option[aria-checked=true]{color:#d2e0ff;background:#304565}[data-theme=dark] [data-tone=coral]{--poster-bg:#563d3a;--poster-ink:#ffcbb7;--poster-edge:#3d2d2e;--poster-glow:#00000015}[data-theme=dark] [data-tone=blue]{--poster-bg:#344a70;--poster-ink:#d2e2ff;--poster-edge:#26364f;--poster-glow:#00000015}[data-theme=dark] [data-tone=mint]{--poster-bg:#304f47;--poster-ink:#bdebd5;--poster-edge:#233b37;--poster-glow:#00000015}[data-theme=dark] [data-tone=yellow]{--poster-bg:#584d32;--poster-ink:#f9e4a8;--poster-edge:#3e3728;--poster-glow:#00000015}[data-theme=dark] [data-tone=lavender]{--poster-bg:#3c4362;--poster-ink:#d5dcff;--poster-edge:#2a3049;--poster-glow:#00000015}[data-theme=dark] [data-tone=peach]{--poster-bg:#583f38;--poster-ink:#f5c5af;--poster-edge:#3e2d28;--poster-glow:#00000015}[data-theme=dark] .game-poster{box-shadow:inset 0 2px 0 #ffffff0d, 0 4px 0 var(--poster-edge), 0 10px 20px #0b15231a;border-color:#ffffff08}[data-theme=dark] .filter-button.active{color:#d5e3ff;background:#344c70;border-color:#415a80}[data-theme=dark] .primary-button{color:#233b67;background:#aec7ff;border-color:#abc5ff;box-shadow:0 3px #7a97cd}[data-theme=dark] .poster-progress.is-complete{color:#b1e5cc}@media (hover:hover){.shelf-scroll:hover:not(:disabled){background:var(--blue-soft);color:var(--accent)}.puzzle-card-link:hover:not(:active,[data-pressed=true]) .game-poster{box-shadow:inset 0 2px 0 #ffffffb0, 0 5px 0 var(--poster-edge), 0 15px 27px var(--poster-glow)}}@media (max-width:1150px){:root{--page-gutter:32px}}@media (max-width:900px){.site-header{height:70px}:root{--page-gutter:24px}.brand-mark{width:36px;height:36px}.brand-word{font-size:29px}.header-inner{gap:16px}.profile-button{max-width:160px}.platform-sets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.detail-hero{grid-template-columns:1fr}}@media (max-width:650px){:root{--title-section:20px;--title-page:26px;--title-hero:30px;--section-gap:12px;--page-gutter:20px}}@media (max-width:600px){.breadcrumbs{margin-bottom:16px}.detail-tabs{margin-top:21px}.site-header{height:64px}.header-inner{gap:12px}.brand{gap:7px}.brand-mark{width:32px;height:32px}.brand-word{letter-spacing:-1.3px;font-size:25px}.profile-button{max-width:104px;font-size:var(--text-small);margin-left:4px}.profile-button>span{border-radius:9px;padding:6px 12px}.language-menu{width:206px;top:calc(100% + 10px);right:-20px}.page-container{padding:24px var(--page-gutter) 40px}.page-top{margin-bottom:24px;display:block}.rail-frame{margin-right:calc(-1 * var(--page-gutter))}.puzzle-rail{padding-right:var(--page-gutter);scroll-padding-right:var(--page-gutter)}.shelf-actions{gap:6px}.site-footer{padding:20px 0 calc(24px + env(safe-area-inset-bottom))}.detail-hero{flex-direction:column-reverse;display:flex}.detail-copy{padding:24px}.detail-visual{height:180px;min-height:180px}.detail-visual img{width:155px;height:155px}.platform-sets{grid-template-columns:1fr;gap:14px}.platform-set{padding:20px}.platform-set>p{min-height:0}.library-stats{gap:8px}.stat-box{flex-direction:column;padding:16px 12px;display:flex}.stat-box small{font-size:var(--text-caption);flex:1}.stat-box strong{font-size:24px}.filters{flex-wrap:nowrap;gap:4px;overflow-x:auto}.filter-button{font-size:var(--text-small);white-space:nowrap;padding:8px 12px}.library-list{grid-template-columns:1fr}}@media (max-width:370px){:root{--page-gutter:16px}.header-inner{gap:8px}.brand{gap:6px}.brand-mark{width:30px;height:30px}.brand-word{font-size:24px}.profile-button{max-width:88px}.profile-button>span{padding-left:10px;padding-right:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.catalog-heading{justify-content:space-between;align-items:center;gap:20px;margin:32px 0 24px;display:flex}.catalog-heading h1{font-size:var(--title-page);letter-spacing:-.035em;margin:0;font-weight:700;line-height:1.35}.catalog-search{border:1px solid var(--line);background:var(--surface);width:min(100%,320px);min-height:46px;color:var(--muted);border-radius:13px;align-items:center;gap:10px;padding-left:14px;display:flex}.catalog-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.catalog-search input{width:100%;min-width:0;min-height:44px;color:var(--ink);font-size:var(--text-label);background:0 0;border:0;outline:none;padding:0 14px 0 0}.catalog-search input::placeholder{color:var(--muted);opacity:1}.catalog-search input::-webkit-search-cancel-button{display:none}.catalog-search-clear{color:var(--muted);border-radius:12px;flex:0 0 44px;align-self:stretch;place-items:center;display:grid}.catalog-search-clear:hover{background:var(--surface-soft);color:var(--ink)}.catalog-search-empty{border:1px dashed var(--line);text-align:center;border-radius:20px;padding:52px 20px}.catalog-search-empty>svg{color:var(--muted);margin-bottom:12px}.catalog-search-empty h2{font-size:var(--title-section);margin:0}.catalog-search-empty p{color:var(--muted);font-size:var(--text-label);margin:8px 0 22px}.catalog-collections{gap:var(--section-gap);flex-direction:column;display:flex;position:relative}.catalog-collections>.shelf{margin:0}.shelf-scroll{border:1px solid var(--line);border-radius:50%;width:40px;height:40px}.shelf-navigation{gap:6px}.uniform-catalog .resume-card:hover{border-color:var(--muted)}.profile-button[aria-current=page]>span{box-shadow:inset 0 0 0 1px var(--accent)}.platform-footer{font-size:var(--text-caption);justify-content:space-between;align-items:center;gap:20px;display:flex}.footer-tagline{margin-left:16px}.footer-links{align-items:center;gap:20px;display:flex}.footer-links a{align-items:center;min-height:32px;display:inline-flex}.footer-links a:hover{color:var(--ink)}@media (max-width:650px){.catalog-heading{gap:24px;margin-top:24px;margin-bottom:24px}.catalog-heading h1{white-space:nowrap;flex:none;font-size:clamp(20px,5.65vw,26px)}.catalog-search{flex:1;gap:6px;min-width:0;max-width:320px;padding-left:10px}.catalog-search input{padding-right:8px;font-size:16px}.catalog-search-clear{margin-left:-6px}.page-container{padding-top:24px}.platform-footer{flex-direction:column;align-items:flex-start;gap:8px}.footer-tagline{margin-left:10px}}@media (max-width:370px){.header-actions{gap:0}.header-actions .icon-button,.language-button{width:40px;min-width:40px}.language-control{flex-basis:40px}.profile-button{max-width:none;font-size:var(--text-small);margin-left:2px}.profile-button>span{padding-left:8px;padding-right:8px}}:root{--motion-ease:cubic-bezier(.22, 1, .36, 1);--motion-fast:.16s;--motion-medium:.28s}@media (prefers-reduced-motion:no-preference){:is(.button,.primary-button,.secondary-button,.soft-button,.icon-button,.language-button,.language-option,.favorite-toggle,.catalog-search-clear,.shelf-scroll,.filter-button,.detail-tab,.sliding-control,.theme-options button){transition:transform var(--motion-fast) var(--motion-ease), color var(--motion-fast) ease, background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease}:is(.button,.primary-button,.secondary-button,.soft-button,.icon-button,.language-button,.favorite-toggle,.catalog-search-clear,.shelf-scroll,.sliding-control):active:not(:disabled){transition-duration:90ms;transform:scale(.96)}.profile-button>span,.resume-card{transition:transform var(--motion-medium) var(--motion-ease)}.poster-progress-fill{transition:stroke-dasharray .38s var(--motion-ease)}.resume-track>span{transition:width .38s var(--motion-ease)}.resume-dismiss,.resume-card-link{transition:background-color var(--motion-fast) ease}.game-poster{transition:box-shadow var(--motion-medium) ease}.catalog-search{transition:border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease}.poster-illustration,.resume-card-action,.brand-mark,.language-glyph{transition:transform .38s var(--motion-ease)}.profile-button:active>span{transform:scale(.97)}.favorite-toggle svg{transition:transform var(--motion-medium) var(--motion-ease), fill var(--motion-fast) ease}.favorite-toggle[aria-pressed=true] svg{transform:scale(1.1)}.theme-button :is(.sun-icon,.moon-icon){animation:motion-icon-in .36s var(--motion-ease)}.language-menu{transform-origin:100% 0;animation:motion-menu-in .22s var(--motion-ease)}.dialog[open]{animation:motion-dialog-in .32s var(--motion-ease)}.dialog[open]::backdrop{animation:.22s ease-out motion-fade-in}.puzzle-sets-section,.puzzle-how-section,.platform-library :is(.empty-state,.library-list,.platform-sets),.faq-section details[open]>p{animation:motion-panel-in .32s var(--motion-ease)}.detail-tab.active:after{transform-origin:50%;animation:motion-underline-in .24s var(--motion-ease)}.player-switch{transition:background-color var(--motion-fast) ease}.player-switch span{transition:transform .24s var(--motion-ease)}@keyframes motion-icon-in{0%{opacity:.35;transform:rotate(-25deg)scale(.8)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes motion-menu-in{0%{opacity:0;transform:translateY(-5px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes motion-dialog-in{0%{opacity:0;transform:translateY(12px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes motion-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes motion-fade-in{0%{opacity:0}to{opacity:1}}@keyframes motion-underline-in{0%{transform:scaleX(.5)}to{transform:scaleX(1)}}}@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){.puzzle-card-link:hover:not(:active,[data-pressed=true]) .game-poster{box-shadow:inset 0 2px 0 #ffffffb0, 0 5px 0 var(--poster-edge), 0 14px 24px var(--poster-glow)}.puzzle-card-link:hover .poster-illustration{transform:translateY(-2px)scale(1.035)}.resume-card:has(.resume-card-link:hover){transform:translateY(-2px)}.resume-card-link:hover .resume-card-action{transform:scale(1.07)}.brand:hover .brand-mark{transform:rotate(-4deg)}.language-button:hover .language-glyph{transform:translateY(-1px)}}@media (hover:none),(pointer:coarse){.puzzle-card-link:hover .poster-illustration,.button-primary:hover:not(:disabled){transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}dialog::backdrop{scroll-behavior:auto!important;transition:none!important;animation:none!important}.puzzle-card-link:hover .poster-illustration,.button-primary:hover:not(:disabled){transform:none!important}}
