@font-face{font-family:Archivo;src:url(/fonts/archivo.woff2) format("woff2");font-weight:100 800;font-stretch:62% 100%;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/dmmono-regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/dmmono-medium.woff2) format("woff2");font-weight:500;font-display:swap}:root{--bg: #100e0c;--bg-2: #171411;--ink: #f1ebe1;--ink-2: #cbc2b5;--ink-3: #9d9487;--line: rgb(241 235 225 / .14);--line-2: rgb(241 235 225 / .3);--accent: #f08a4b;--ink-footer: #e2dace;--pad: clamp(1rem, 4.2vw, 4.5rem);--sans: "Archivo", "Helvetica Neue", Arial, sans-serif;--mono: "DM Mono", ui-monospace, "SF Mono", Menlo, monospace}:root{--panel: var(--bg-2);--soft: rgb(241 235 225 / .08);--accent-ink: var(--bg);--danger: #f2877b;--sticker-line: #0b0a09;color-scheme:dark;font-family:var(--sans);font-synthesis:none}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.55;font-kerning:normal;overflow-wrap:anywhere}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}a:hover{color:var(--accent)}p{font-size:.9375rem;line-height:1.65;color:var(--ink-2);margin:0 0 1rem}h1,h2,h3{color:var(--ink);overflow-wrap:break-word;text-wrap:balance}h1{font-stretch:72%;font-weight:700;font-size:clamp(2.1rem,4vw,3.35rem);line-height:.98;letter-spacing:-.005em;margin:.4rem 0 .9rem}h2{font-stretch:75%;font-weight:700;font-size:1.5rem;line-height:1.05;margin:0 0 .75rem}h3{font-stretch:85%;font-weight:650;font-size:1.0625rem;line-height:1.2;margin:0 0 .6rem}code{font-family:var(--mono);font-size:.875rem;color:var(--ink)}button,input,select{font:inherit;color:inherit}button{font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;line-height:1.3;color:var(--ink);background:transparent;border:1px solid var(--line-2);border-radius:2px;padding:.62rem .9rem;min-height:44px;min-width:44px;cursor:pointer;transition:background .15s,border-color .15s}button:hover{background:var(--soft);border-color:var(--ink-3)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:500}button.primary:hover{background:#f39a62;border-color:#f39a62}button.danger{color:var(--danger);border-color:var(--danger)}button[aria-pressed=true]{background:var(--ink);color:var(--bg);border-color:var(--ink)}button.link{border:0;background:none;color:var(--accent);font-family:var(--sans);font-size:inherit;letter-spacing:0;text-decoration:underline;text-underline-offset:.2em;padding:0 4px;min-height:24px;min-width:0}input[type=search],select{width:100%;background:var(--bg);border:1px solid var(--line-2);border-radius:2px;padding:.7rem .8rem;font-size:.9375rem;min-height:44px}input[type=search]::placeholder{color:var(--ink-3)}input[type=range],input[type=checkbox]{accent-color:var(--accent)}input[type=checkbox]{width:24px;height:24px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,canvas:focus-visible,[tabindex="0"]:focus-visible,main:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;z-index:20;top:.75rem;left:.75rem;padding:.6rem 1rem;background:var(--ink);color:var(--bg);font-family:var(--mono);font-size:.85rem;transform:translateY(-200%)}.skip:focus{transform:none}.app-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 2rem;padding:.5rem var(--pad);background:var(--bg)}.brand{display:inline-flex;align-items:center;min-height:44px;font-stretch:75%;font-weight:700;font-size:1.2rem;letter-spacing:.01em;color:var(--ink);text-decoration:none}.lang{display:inline-flex;align-items:center;min-height:44px;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;color:var(--ink)}.navigation{padding:0 var(--pad);border-bottom:1px solid var(--line)}.navigation ul{display:flex;flex-wrap:wrap;gap:0 1.3rem;margin:0;padding:0;list-style:none}.navigation a{display:inline-flex;align-items:center;min-height:44px;padding:.35rem 0;border-bottom:2px solid transparent;font-family:var(--mono);font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);text-decoration:none}.navigation a:hover{color:var(--ink)}.navigation .count{margin-left:.4em;color:var(--accent)}.navigation a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}main{max-width:1528px;margin:0 auto;padding:2.4rem var(--pad) 3.5rem}.page-heading{margin-bottom:2rem}.page-heading .lede{max-width:72ch;font-size:1.0625rem;font-stretch:92%;line-height:1.5;color:var(--ink-2)}.eyebrow ol{display:flex;flex-wrap:wrap;gap:.3rem .5rem;margin:0;padding:0;list-style:none;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.eyebrow li+li:before{content:"/";margin-right:.5rem;color:var(--accent)}.eyebrow a{color:var(--ink-3)}.eyebrow a:hover{color:var(--accent)}.eyebrow [aria-current]{color:var(--ink-2)}.puzzle-block{margin:0 0 2.6rem}.puzzle-block h2{padding-top:.9rem;border-top:1px solid var(--line-2)}.puzzle-block h2 a{color:var(--ink);text-decoration:none}.puzzle-block h2 a:hover{color:var(--accent)}.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:.75rem;margin:0;padding:0;list-style:none}.set-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:1rem;transition:border-color .15s}.set-card:hover,.set-card:focus-within{border-color:var(--accent)}.set-card h3{margin-bottom:.4rem}.set-card h3 a{color:var(--ink);text-decoration:none}.set-card h3 a:after{content:"";position:absolute;inset:0}.set-card p{margin:0 0 .4rem;font-size:.875rem;line-height:1.55}.set-card .set-card-facts{margin:0;font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;color:var(--accent)}.home-count{font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--ink-2)}.set-intro{max-width:80ch}.set-facts{font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--ink)}.how{margin:0 0 1.25rem;border:1px solid var(--line);border-radius:2px;background:var(--panel);padding:0 1rem}.how summary{cursor:pointer;min-height:44px;padding:.7rem 0;font-weight:600;color:var(--ink)}.how summary::marker{color:var(--accent)}.how ul{margin:0 0 .9rem;padding-left:1.2rem;font-size:.875rem;line-height:1.7;color:var(--ink-2)}.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:.75rem;margin:0 0 .75rem}.field{display:grid;gap:.45rem}.field>span{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.toolbar{font-family:var(--mono);font-size:.8125rem;letter-spacing:.04em;color:var(--ink);margin:.4rem 0 .9rem}.case-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,230px),1fr));gap:.75rem}.case-card{display:flex;flex-direction:column;gap:.5rem;background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:1rem;min-width:0}.case-card p{margin:0;line-height:1.5}.case-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.6rem}.case-head button{white-space:nowrap}.case-title{margin:0;padding-top:.6rem}.case-aka{font-size:.8125rem;color:var(--ink-3)}.case-figure{display:flex;justify-content:center;padding:.25rem 0}.case-figure svg{width:100%;max-width:150px;height:auto;max-height:150px}.case-length{font-family:var(--mono);font-size:.8125rem;color:var(--ink)}.case-count{font-size:.8125rem;color:var(--ink-3)}.case-first code{font-size:.8125rem;line-height:1.6}.groups{display:grid;gap:1.1rem}.group{border:1px solid var(--line);border-radius:2px;background:color-mix(in srgb,var(--panel) 60%,transparent);padding:1rem}.group h2{margin-bottom:.25rem}.group-count{margin:0 0 .6rem;font-family:var(--mono);font-size:.8125rem;color:var(--ink-3)}.group .case-grid:not(:empty){margin-top:.75rem}.error,.warning{color:var(--danger)}.diagram{display:block}.diagram path{stroke:var(--sticker-line);stroke-linejoin:round}.diagram .s-x{fill:#4a4a4a}.pal-top .s-U{fill:#ffd500}.pal-top .s-R{fill:#e0201b}.pal-top .s-F{fill:#1e5bd8}.pal-top .s-D{fill:#fff}.pal-top .s-L{fill:#f80}.pal-top .s-B{fill:#009b48}.diagram .dim{opacity:.22}.diagram .buffer{stroke:var(--accent);stroke-width:.16}.diagram text{font-family:var(--mono);font-size:.62px;font-weight:500;text-anchor:middle;dominant-baseline:central;fill:#111;stroke:#fff;stroke-width:.12px;paint-order:stroke}.diagram--net{max-width:190px}.case-figure .diagram--net{max-width:100%;max-height:150px}.alg-notation code{font-size:.8125rem;color:var(--ink-2)}.case-dialog{width:min(1100px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:1.5rem;border:1px solid var(--line-2);border-radius:2px;background:var(--bg);color:var(--ink)}.case-dialog::backdrop,.confirm-dialog::backdrop{background:#080706b8}.dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.dialog-head h2{margin:.5rem 0 0}.dialog-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1.5rem;align-items:start}.player{position:sticky;top:0}.stage-wrap{display:grid;gap:.6rem;grid-template-columns:minmax(0,1fr)}.stage-wrap--top{grid-template-columns:minmax(0,1fr) minmax(0,.55fr);align-items:center}.stage{width:100%;aspect-ratio:1;max-height:380px;display:block;background:var(--bg-2);border:1px solid var(--line);border-radius:2px;cursor:grab;touch-action:none}.no-gl .stage-wrap{grid-template-columns:minmax(0,1fr)}.live-view{display:flex;justify-content:center}.live-view svg{width:100%;max-width:220px;height:auto}.no-gl .live-view svg{max-width:280px}.hint{font-size:.8125rem;color:var(--ink-3);margin:.5rem 0}.moves{display:flex;flex-wrap:wrap;gap:.25rem;margin:.6rem 0;padding:0;list-style:none}.moves button{font-size:.95rem;font-weight:500;letter-spacing:0;min-width:44px;padding:.5rem .55rem}.moves .is-done button{color:var(--ink-3)}.moves .is-current button,.moves button[aria-current=step]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:.5rem 0}.controls .primary{min-width:88px}.position{font-family:var(--mono);font-weight:500;color:var(--ink-2);margin-left:.4rem}.range{margin:.5rem 0}.range input{width:100%;min-height:24px}.toggle{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;font-size:.875rem}.move-description{font-size:.8125rem;margin:.4rem 0 0;padding:.5rem .65rem;border-left:2px solid var(--accent);background:var(--soft);color:var(--ink);min-height:2.6em}.dialog-info p{margin-bottom:.5rem}.dialog-goal,.dialog-optimal{color:var(--ink)}.dialog-list-title{margin:1rem 0 .25rem}.moves-filter{border:1px solid var(--line);border-radius:2px;margin:.5rem 0 .75rem;padding:.5rem .75rem .75rem}.moves-filter legend{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding:0 .3rem}.move-choices{display:flex;flex-wrap:wrap;gap:.1rem .9rem;margin-bottom:.5rem}.move-choices .toggle code{font-size:.875rem}.alg-list{display:grid;gap:.6rem;margin:0;padding:0;list-style:none}.alg{border:1px solid var(--line);border-radius:2px;padding:.75rem;display:grid;gap:.4rem;background:var(--panel)}.alg.is-playing{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.alg p{margin:0;line-height:1.5}.alg-head{color:var(--ink)}.alg-meta{font-size:.75rem;color:var(--ink-3)}.alg-moves code{font-size:.95rem;line-height:1.8}.alg-setup{font-size:.8125rem}.row{display:flex;flex-wrap:wrap;gap:.5rem}.pager{display:flex;gap:.5rem;margin-top:.75rem}.selection-tools{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.1rem}.selection-tools .toolbar{margin:0 auto 0 0}.selection-set{margin-bottom:1.6rem}.selection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:.75rem;margin:0;padding:0;list-style:none}.selection-card{display:grid;grid-template-columns:120px minmax(0,1fr);gap:.75rem;align-items:start;background:var(--panel);border:1px solid var(--line);border-radius:2px;padding:.75rem;break-inside:avoid}.selection-card h3{margin:0 0 .25rem}.selection-card p{margin:0 0 .4rem}.confirm-dialog{border:1px solid var(--line-2);border-radius:2px;background:var(--bg);color:var(--ink);padding:1.25rem;max-width:min(440px,calc(100vw - 24px))}.confirm-dialog p{color:var(--ink)}.method-principles{max-width:none}.principle{border-top:1px solid var(--line);padding-top:.75rem;margin-bottom:.9rem}.examples{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.examples li{display:grid;gap:.25rem;justify-items:start}.examples p{margin:0}.table-scroll{overflow-x:auto;max-width:100%;border:1px solid var(--line);border-radius:2px;background:var(--panel)}.method-table{border-collapse:collapse;width:100%;min-width:560px;font-size:.8125rem}.method-table th,.method-table td{border-bottom:1px solid var(--line);padding:.4rem .5rem;text-align:left;vertical-align:middle}.method-table thead th{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:400;color:var(--ink-3)}.method-table th[scope=row]{font-weight:600;max-width:260px}.method-table .start{display:block;font-weight:400;color:var(--ink-3)}.method-table .cell{width:100%;text-align:left;font-size:.8125rem}.method-table abbr{text-decoration:none}.lede-small{max-width:80ch}.lookup{display:flex;flex-wrap:wrap;align-items:end;gap:.75rem;max-width:560px}.lookup .field{flex:1 1 240px}.lookup-card{max-width:520px;margin-top:.75rem}.method-choose,.method-lookup,.method-table-block{margin-bottom:1.9rem}.prose{max-width:78ch;margin-bottom:1.6rem}.prose p{font-size:.9375rem}.app-footer{border-top:1px solid var(--line);padding:2rem var(--pad) 2.5rem;color:var(--ink-footer)}.app-footer p{font-size:.8125rem;line-height:1.6;color:var(--ink-footer);margin:0 0 .4rem}.footer-title{font-family:var(--mono);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}@media(max-width:1000px){.dialog-body{grid-template-columns:minmax(0,1fr)}.player{position:static}}@media(max-width:720px){main{padding:1.6rem 14px 2.2rem}.app-header{padding:.25rem 14px}.navigation{padding:0 14px}.navigation ul{gap:0 1rem}.case-dialog{padding:.9rem;width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.stage-wrap--top{grid-template-columns:minmax(0,1fr) minmax(0,.6fr)}.app-footer{padding:1.5rem 14px 1.8rem}.selection-card{grid-template-columns:90px minmax(0,1fr)}}@media(max-width:480px){.case-card{padding:.75rem}.case-head{flex-direction:column;align-items:stretch}.case-head button{width:100%}.case-title{padding-top:0}.case-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}@media print{:root{color-scheme:light;--bg: #fff;--bg-2: #fff;--panel: #fff;--ink: #111;--ink-2: #333;--ink-3: #555;--ink-footer: #333;--line: #bbb;--line-2: #999;--accent: #8a4513;--accent-ink: #fff;--soft: #f2f2f2}html,body{background:#fff;color:#111}.app-header,.navigation,.app-footer,.skip,.filters,.toolbar,.how,.row,.selection-tools,.load,[data-open],.page-heading .lede,.page-heading p a{display:none!important}main{padding:0;max-width:none}.page-heading{margin-bottom:10px}h1{font-size:20pt;letter-spacing:0}.no-print{display:none!important}.selection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:4mm}.selection-card{grid-template-columns:22mm minmax(0,1fr);padding:3mm;gap:3mm}.selection-card h3{font-size:10pt}.case-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:4mm}.case-card,.selection-card{break-inside:avoid;border-color:#bbb}.selection-card code,.case-first code{font-size:9.5pt}a{color:inherit;text-decoration:none}}
.pal-cube-3 .s-U{fill:#f3f2e9}.pal-cube-3 .s-R{fill:#d34f49}.pal-cube-3 .s-F{fill:#59a575}.pal-cube-3 .s-D{fill:#e4c751}.pal-cube-3 .s-L{fill:#dc8650}.pal-cube-3 .s-B{fill:#6688bb}.pal-cube-2 .s-U{fill:#f3f2e9}.pal-cube-2 .s-R{fill:#d34f49}.pal-cube-2 .s-F{fill:#59a575}.pal-cube-2 .s-D{fill:#e4c751}.pal-cube-2 .s-L{fill:#dc8650}.pal-cube-2 .s-B{fill:#6688bb}.pal-cube-4 .s-U{fill:#f3f2e9}.pal-cube-4 .s-R{fill:#d34f49}.pal-cube-4 .s-F{fill:#59a575}.pal-cube-4 .s-D{fill:#e4c751}.pal-cube-4 .s-L{fill:#dc8650}.pal-cube-4 .s-B{fill:#6688bb}.pal-cube-5 .s-U{fill:#f3f2e9}.pal-cube-5 .s-R{fill:#d34f49}.pal-cube-5 .s-F{fill:#59a575}.pal-cube-5 .s-D{fill:#e4c751}.pal-cube-5 .s-L{fill:#dc8650}.pal-cube-5 .s-B{fill:#6688bb}.pal-megaminx .s-A{fill:#f3f2e9}.pal-megaminx .s-B{fill:#e4c751}.pal-megaminx .s-C{fill:#526da4}.pal-megaminx .s-D{fill:#cf4549}.pal-megaminx .s-E{fill:#54864a}.pal-megaminx .s-F{fill:#9772b6}.pal-megaminx .s-G{fill:#85888c}.pal-megaminx .s-H{fill:#e6d991}.pal-megaminx .s-I{fill:#d590ab}.pal-megaminx .s-J{fill:#a4c969}.pal-megaminx .s-K{fill:#dd9b5c}.pal-megaminx .s-L{fill:#8ac6d7}
