:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0b0c;--panel:#151517;--line:#2a2a2e;--fg:#ececee;--dim:#8d8d96;--accent:#a78bfa;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace}*,:before,:after{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);min-height:100dvh;color:var(--fg);flex-direction:column;margin:0;font:16px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex}.topbar{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;width:100%;max-width:40rem;margin:0 auto;padding:.5rem .75rem 0;display:grid}.topbar button{background:0 0;border-color:#0000;min-height:2.75rem}.topbar button:hover{border-color:var(--dim)}.logo{padding:.25rem .5rem}.logo img{width:auto;height:2rem;display:block}.topbar-left{justify-self:start;min-width:0}.tools{justify-self:end;display:flex}.icon{place-items:center;width:2.75rem;padding:0;display:grid}.topbar .tools .icon,.topbar-left .icon{border-color:var(--line);background:var(--panel);width:2.5rem;min-height:2rem}.tools{gap:.25rem}.topbar .tools .icon[aria-expanded=true],.topbar .tools .icon[aria-pressed=true],.icon[aria-expanded=true],.icon[aria-pressed=true]{border-color:var(--fg);background:var(--fg);color:var(--bg)}.prefs{gap:.25rem;display:flex}@media (width<=36rem){.topbar-left{display:contents}.topbar-left .prefs{grid-area:2/1/auto/-1;margin-top:.25rem}.topbar-left>.icon{grid-area:1/1}.topbar .logo{grid-area:1/2}.topbar .tools{grid-area:1/3}}.topbar .prefs .toggle{border-color:var(--line);background:var(--panel);white-space:nowrap;min-height:2rem;padding:.125rem .5rem;font-size:.75rem}.topbar .prefs kbd{display:none}.topbar .prefs .toggle[aria-pressed=true]{border-color:var(--fg);background:var(--fg);color:var(--bg)}.set-toggles,.modes,.options,.set-row{flex-wrap:wrap;gap:.25rem;display:flex}.toggle{min-height:2.25rem;padding:.25rem .75rem;font-size:.875rem}.toggle[aria-pressed=true]{border-color:var(--fg);background:var(--fg);color:var(--bg)}.notice{border-bottom:1px solid var(--dim);background:var(--panel);margin:0;padding:.5rem .75rem;font-size:.875rem}.card,.summary,.home{flex-direction:column;flex:1;gap:.75rem;width:100%;max-width:40rem;margin:0 auto;padding:.75rem;display:flex}.modes .toggle{flex:1;min-height:2.75rem}.set-toggles .toggle{flex:auto}.set-row{align-self:center}.set-row .toggle{flex:1}.set-row.f2l{width:88%}.set-row.last-layer{width:68%}.options{justify-content:center;align-self:center;width:40%;min-width:9rem}.options .icon-toggle{flex:1;width:auto}.stats{gap:1rem;padding:.5rem 0;display:grid}.stat-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem .75rem;margin-bottom:.4rem;display:flex}.stat-name{color:var(--set);font-weight:600}.stat-numbers{color:var(--dim);font-variant-numeric:tabular-nums;font-size:.8125rem}.ticks{gap:2px;display:flex}.tick{background:#34343a;border-radius:1px;flex:1;min-width:0;height:1.1rem}.tick.learned{background:var(--set)}.tick.missed{background:var(--set);opacity:.35}.icon-toggle{place-items:center;width:2.75rem;padding:0;display:grid}.start{padding:.5rem 0 calc(.5rem + env(safe-area-inset-bottom));background:var(--bg);margin-top:auto;position:sticky;bottom:0}.start button{width:100%}.meta{color:var(--dim);flex-wrap:wrap;justify-content:space-between;align-items:center;margin:0;font-size:.875rem;display:flex}.case{flex-direction:column;flex:auto;min-height:0;margin:0;display:flex}.picture svg{width:100%;height:auto;max-height:52vh;display:block}.view{flex-direction:column;flex:1;width:100%;min-height:0;display:flex}.picture{flex:1;justify-content:center;align-items:center;display:flex}.player{flex-direction:column;flex:1;gap:.5rem;display:flex}.frame{flex:1;min-height:min(100vw,24rem);position:relative}.center-camera{z-index:1;opacity:.4;background:0 0;border-color:#0000;width:2.5rem;min-height:2.5rem;position:absolute;bottom:.25rem;right:.25rem}.center-camera:hover,.center-camera:focus-visible{opacity:1;border-color:#0000}.legend{z-index:1;color:var(--dim);pointer-events:none;position:absolute;top:.25rem;left:.25rem}.stage{touch-action:none;position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block}.transport{align-items:flex-start;gap:.5rem;display:flex}.alg-strip{min-width:0;font:1.15rem/1.6 var(--mono);flex:1;position:relative}.alg-marker{background:var(--fg);border-radius:2px;width:3px;position:absolute}.alg-marker:before{content:"";background:var(--fg);border-radius:50%;width:8px;height:8px;position:absolute;top:-3px;left:-2.5px}.step-buttons{flex:none;gap:.25rem;display:flex;position:relative}.step{width:2rem;min-height:2rem;font:.875rem var(--mono);place-items:center;padding:0;display:grid}.step[aria-expanded=true],.step[aria-pressed=true]{border-color:var(--fg)}.speed-value{font-size:.75rem}.speed-pop{border:1px solid var(--line);background:var(--panel);color:var(--dim);border-radius:2px;flex-direction:column;gap:.375rem;padding:.375rem;font-size:.875rem;display:flex;position:absolute;bottom:calc(100% + .25rem);right:0}.speed-title{white-space:nowrap}.speed-grid{grid-template-columns:repeat(3,2rem);gap:.25rem;display:grid}.speed-grid .step{font-size:.75rem}.headline{align-items:flex-start;gap:.75rem;display:flex}.name{flex:60%;min-width:0;margin:0;font-size:1.15rem;font-weight:600}.notes-side{flex:0 auto;max-width:40%;margin-left:auto}.notes-side.editing{flex-basis:40%}.note-text{-webkit-line-clamp:4;color:var(--dim);white-space:pre-line;overflow-wrap:anywhere;cursor:pointer;-webkit-box-orient:vertical;margin:0;font-size:.95rem;display:-webkit-box;overflow:hidden}.note-text.open{display:block;overflow:visible}.quiet{color:var(--dim)}.summary .quiet{background:0 0;border-color:#0000}.solution{border:1px solid var(--line);background:var(--panel);border-radius:2px;padding:.5rem .75rem}.alg{font:1.15rem/1.4 var(--mono);overflow-wrap:anywhere;margin:.25rem 0}.alg.alt{color:var(--dim);font-size:.95rem}.alg-flag{border:1px solid var(--line);color:var(--dim);vertical-align:middle;white-space:nowrap;border-radius:2px;margin-left:.25rem;padding:0 .3rem;font-size:.7rem}.video{color:var(--fg);margin-top:.25rem;display:inline-block}.note{border:1px solid var(--line);background:var(--panel);width:100%;min-height:2.5rem;color:var(--fg);font:inherit;resize:none;border-radius:2px;padding:.5rem}.actions{padding:.5rem 0 calc(.5rem + env(safe-area-inset-bottom));background:var(--bg);grid-template-columns:1fr 1fr;gap:.5rem;display:grid;position:sticky;bottom:0}.actions .primary,.verify .actions .primary{grid-column:1/-1}button{border:1px solid var(--line);background:var(--panel);min-height:3.25rem;color:var(--fg);font:inherit;cursor:pointer;border-radius:2px;padding:.5rem 1rem}button:hover{border-color:var(--dim)}button:disabled{opacity:.4;cursor:not-allowed}button:disabled:hover{border-color:var(--line)}:focus-visible{outline:2px solid var(--fg);outline-offset:2px}.hint{color:var(--dim);margin:0;font-size:.875rem}button.primary{border-color:var(--accent);background:var(--accent);color:var(--bg);font-weight:600}kbd{font:.75rem var(--mono);opacity:.6;border:1px solid;border-radius:2px;margin-left:.5rem;padding:0 .3rem}@media (hover:none){kbd{display:none}}.data{z-index:1;border:1px solid var(--line);background:var(--panel);width:min(22rem,100% - 1.5rem);color:var(--dim);border-radius:2px;padding:.75rem;font-size:.875rem;position:fixed;top:3.5rem;left:.75rem}.data-actions{gap:.5rem;display:grid}.data-row{grid-template-columns:8.5rem 1fr;align-items:center;gap:.75rem;display:grid}.data-row p,.import-strip p{margin:0}.import-strip{border-top:1px solid var(--line);flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;display:flex}.import-strip p{color:var(--fg);flex-basis:100%}.data button{min-height:2.5rem}.data.help{left:auto;right:.75rem}.help-list{gap:.25rem .75rem;margin:0;display:grid}.help-list dt{color:var(--fg);font-weight:600}.help-list dd{margin:0 0 .5rem}.credit{color:var(--dim);text-align:right;margin:0;font-size:.75rem}.credit a{color:inherit}.summary{text-align:center;justify-content:center}.summary h1{margin:0;font-size:1.5rem}.result{color:var(--dim);margin:0}[data-mode=drill] .actions>button:not(.primary){grid-column:1/-1}@media (width>=48rem){.card,.summary,.home{gap:1rem;padding:1.5rem}.picture svg{max-height:60vh}.actions{grid-template-columns:1fr 1fr 1fr;position:static}.actions .primary{grid-column:auto}[data-mode=drill] .actions{grid-template-columns:1fr 1fr}[data-mode=drill] .actions>button:not(.primary){grid-column:auto}}
