:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:oklch(98.8% .004 250);--surface:oklch(96% .006 250);--surface-hover:oklch(93% .008 250);--border:oklch(88% .008 250);--border-strong:oklch(76% .01 250);--text:oklch(22% .014 250);--text-secondary:oklch(50% .014 250);--text-tertiary:oklch(53% .012 250);--accent:oklch(54% .16 260);--accent-hover:oklch(47% .17 260);--accent-tint:oklch(94% .03 260);--success:oklch(56% .14 150);--danger:oklch(56% .19 25);--danger-tint:oklch(94% .05 25);--radius-sm:6px;--radius:8px;--radius-lg:12px;--text-2xs:.8125rem;--text-xs:.9375rem;--text-sm:1rem;--text-md:1.25rem;--text-lg:1.75rem;--text-2xl:2rem}*{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--text-sm);-webkit-font-smoothing:antialiased;margin:0}.app{flex-direction:column;align-items:center;gap:2.5rem;min-height:100vh;padding:3.5rem 1.25rem 3rem;display:flex}.app header{text-align:center}.app header h1{font-size:var(--text-lg);letter-spacing:-.01em;color:var(--text);margin:0 0 .375rem;font-weight:600}.app header .tagline{color:var(--text-secondary);font-size:var(--text-xs);margin:0}.app header.lockup{text-align:left;justify-content:center;align-items:center;gap:1.125rem;display:flex}.app header.lockup h1{margin:0}.app header.lockup .tagline{margin:.25rem 0 0}.cube-mark{flex:none;grid-template-columns:repeat(3,1fr);gap:2px;width:28px;height:28px;display:grid}.cube-mark span{border:1px solid oklch(0% 0 0/.14);border-radius:1.5px}.cube-mark span:first-child{background:#ff5800}.cube-mark span:nth-child(2){background:#fff}.cube-mark span:nth-child(3){background:#009e60}.cube-mark span:nth-child(4){background:#0051ba}.cube-mark span:nth-child(5){background:#fff}.cube-mark span:nth-child(6){background:#c41e3a}.cube-mark span:nth-child(7){background:#009e60}.cube-mark span:nth-child(8){background:#ffd500}.cube-mark span:nth-child(9){background:#0051ba}.app main{flex-direction:column;align-items:center;gap:1.25rem;width:min(560px,100%);display:flex}.app main>p{margin:0}.app footer{color:var(--text-tertiary);font-size:var(--text-2xs);text-align:center;border-top:1px solid var(--border);max-width:32rem;margin-top:auto;padding-top:2rem}.intro{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;display:flex}.intro p{color:var(--text-secondary);margin:0}button{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:var(--text-xs);cursor:pointer;padding:.625rem 1.25rem;font-weight:500;transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out}button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{color:var(--text-tertiary);cursor:not-allowed}.intro button,.correcting-actions button:first-child,.player .controls button:nth-child(2),.error-panel button{background:var(--accent);border-color:var(--accent);color:#fff}.intro button:hover:not(:disabled),.correcting-actions button:first-child:hover:not(:disabled),.player .controls button:nth-child(2):hover:not(:disabled),.error-panel button:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.correcting-actions button:first-child:disabled{background:var(--surface);border-color:var(--border);color:var(--text-tertiary)}.intro .link-btn,.error-panel .link-btn{color:var(--text-tertiary);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;background:0 0;border-color:#0000;padding:.25rem .5rem;font-weight:500}.intro .link-btn:hover:not(:disabled),.error-panel .link-btn:hover:not(:disabled){color:var(--text-secondary);background:0 0;border-color:#0000;text-decoration-color:currentColor}.intro .link-btn:focus-visible,.error-panel .link-btn:focus-visible{outline-offset:1px}.error-message{color:var(--danger);margin:0;font-weight:600}.loading-cv{flex-direction:column;align-items:center;gap:.75rem;width:100%;max-width:22rem;display:flex}.loading-cv p{color:var(--text-secondary);text-align:center;margin:0}.loading-cv-track{background:var(--surface-hover);border-radius:999px;width:100%;height:4px;position:relative;overflow:hidden}.loading-cv-fill{background:var(--accent);border-radius:inherit;width:0%;height:100%;transition:width .15s ease-out;position:absolute;inset:0 auto 0 0}.loading-cv-fill.indeterminate{width:30%;animation:1.2s ease-in-out infinite loading-cv-slide}@keyframes loading-cv-slide{0%{left:-30%}to{left:100%}}.scanner{flex-direction:column;align-items:center;gap:1.25rem;width:100%;display:flex}.video-wrap{aspect-ratio:4/3;border:1px solid var(--border);border-radius:var(--radius-lg);background:oklch(18% .01 250);width:100%;max-width:480px;position:relative;overflow:hidden;box-shadow:0 1px 3px oklch(22% .014 250/.08)}.video-wrap.mirrored{transform:scaleX(-1)}.video-wrap video,.video-wrap canvas.overlay{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scanner .status{text-align:center;min-height:1.4em;color:var(--text);margin:0;font-weight:600}.capture-strip{grid-template-columns:repeat(6,1fr);gap:.5rem;width:100%;max-width:480px;display:grid}.capture-strip .slot{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.capture-strip .slot img{object-fit:cover;width:100%;height:100%}.capture-strip .slot button{color:#fff;background:oklch(22% .014 250/.65);border:none;border-radius:999px;padding:.1rem .45rem;font-size:.625rem;font-weight:500;position:absolute;bottom:3px}.capture-strip .slot button:hover:not(:disabled){background:oklch(22% .014 250/.8)}@media (pointer:coarse){.capture-strip .slot button:before{content:"";position:absolute;inset:-40px -20px -3px}}.capture-strip .slot-empty{color:var(--text-tertiary);font-size:var(--text-xs);font-weight:500}.scanner .link-btn{color:var(--text-tertiary);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px;background:0 0;border-color:#0000;padding:.25rem .5rem;font-weight:500}.scanner .link-btn:hover:not(:disabled){color:var(--text-secondary);background:0 0;border-color:#0000;text-decoration-color:currentColor}.scanner .link-btn:focus-visible{outline-offset:1px}.correcting,.choosing{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;width:100%;display:flex}.correcting h2,.choosing h2{max-width:30rem;font-size:var(--text-md);letter-spacing:-.005em;color:var(--text);margin:0;font-weight:600}.correcting-actions{gap:.625rem;display:flex}.swatches{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.swatches .swatch{border-radius:var(--radius-sm);border:1px solid oklch(22% .014 250/.25);width:44px;height:44px;padding:0;box-shadow:inset 0 0 0 1px oklch(100% 0 0/.6)}.swatches .swatch:hover{box-shadow:inset 0 0 0 2px oklch(100% 0 0/.85)}.swatches .swatch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.correcting .hint{max-width:30rem;color:var(--text-secondary);font-size:var(--text-2xs);margin:0}.status-ok{color:var(--success);margin:0;font-weight:600}.status-bad{color:var(--danger);margin:0;font-weight:600}.choosing-options{flex-wrap:wrap;justify-content:center;gap:.75rem;display:flex}.candidate{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;padding:.625rem;transition:border-color .18s ease-out}.candidate:hover{border-color:var(--accent)}.cube-net{background:var(--border);border-radius:var(--radius-sm);gap:2px;padding:2px;display:grid}.cube-net-lg{grid-template-rows:repeat(9,26px);grid-template-columns:repeat(12,26px)}@media (width<=480px){.cube-net-lg{grid-template-rows:repeat(9,30px);grid-template-columns:repeat(12,30px);max-width:100%;overflow-x:auto}}.cube-net-sm{grid-template-rows:repeat(9,12px);grid-template-columns:repeat(12,12px)}.cube-net .sticker{border:1px solid oklch(22% .014 250/.25);border-radius:2px;justify-content:center;align-items:center;width:100%;height:100%;padding:0;display:flex;box-shadow:inset 0 0 0 1px oklch(100% 0 0/.6)}.cube-net .sticker:disabled{cursor:default}.cube-net .center-dot{background:oklch(22% .014 250/.35);border-radius:50%;width:30%;height:30%}.cube-net .sticker.suspect{outline:2px solid var(--danger);animation:1.2s ease-in-out infinite suspect-pulse}@keyframes suspect-pulse{0%,to{outline-color:oklch(56% .19 25/.35)}50%{outline-color:oklch(56% .19 25)}}.cube-net .sticker.selected{outline:2px solid var(--accent);animation:none}.error-panel,.player{flex-direction:column;align-items:center;gap:.75rem;display:flex}.player canvas{aspect-ratio:1;cursor:grab;width:min(80vw,60vh);height:min(80vw,60vh)}.player canvas:active{cursor:grabbing}@media (width>=900px) and (height<=850px){.player canvas{width:min(80vw,100vh - 400px);height:min(80vw,100vh - 400px)}}.player h2{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text);margin:0;font-weight:650;line-height:1.15}.player .current-move{color:var(--text-secondary);font-size:var(--text-xs);margin:0}.player .move-list{flex-wrap:wrap;justify-content:flex-start;gap:.375rem;max-width:26rem;display:flex}.player .move-list button{font-family:inherit;font-size:var(--text-2xs);color:var(--text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;padding:.15rem .55rem;font-weight:500;transition:background-color .18s ease-out,color .18s ease-out}.player .move-list button:hover:not(:disabled):not(.current){background:var(--surface-hover);color:var(--text-secondary)}.player .move-list button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.player .move-list .current{background:var(--accent-tint);color:var(--accent-hover);font-weight:600}.player .controls{flex-direction:row;gap:.5rem;display:flex}.player .controls .restart-btn{color:var(--text-tertiary);background:0 0;border-color:#0000;margin-left:1.5rem}.player .controls .restart-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border);color:var(--text-secondary)}
