:root{--color-page:#f8fafc;--color-surface:#fff;--color-surface-soft:#f9fafb;--color-border:#e5e7eb;--color-border-strong:#d1d5db;--color-text:#111827;--color-text-muted:#64748b;--color-text-soft:#94a3b8;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-soft:#eff6ff;--color-danger:#dc2626;--color-header-background:#fffffff0;--shadow-card:0 10px 30px #0f172a0f;--shadow-button:0 2px 8px #0f172a0f;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--radius-xl:24px;--cube-white:#fff;--cube-yellow:#ffd529;--cube-red:#dc2626;--cube-orange:#f97316;--cube-blue:#2563eb;--cube-green:#22c55e;--cube-plastic:#111}.app-shell[data-theme=dark]{--color-page:#0f172a;--color-surface:#111827;--color-surface-soft:#1e293b;--color-border:#334155;--color-border-strong:#475569;--color-text:#e5e7eb;--color-text-muted:#94a3b8;--color-text-soft:#64748b;--color-primary:#3b82f6;--color-primary-hover:#60a5fa;--color-primary-soft:#172554;--color-danger:#f87171;--color-header-background:#0f172af0;--shadow-card:0 18px 44px #00000047;--shadow-button:0 8px 24px #0000002e;--cube-plastic:#050505}*{box-sizing:border-box}html{background:var(--color-page);min-width:320px}body{background:var(--color-page);min-width:320px;min-height:100vh;color:var(--color-text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow-x:hidden}button,input,select,textarea{font:inherit}button{border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}.app-shell{background:var(--color-page);flex-direction:column;min-height:100vh;display:flex}.site-header{z-index:20;border-bottom:1px solid var(--color-border);background:var(--color-header-background);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;height:72px;padding:0 40px;display:grid;position:sticky;top:0}.brand{min-width:0;color:var(--color-text);align-items:center;gap:12px;font-size:1rem;font-weight:700;display:inline-flex}.brand-mark{border:1px solid var(--color-border-strong);background:var(--cube-plastic);border-radius:8px;grid-template-columns:repeat(2,1fr);gap:3px;width:28px;height:28px;padding:4px;display:grid}.brand-mark span{border-radius:3px}.brand-mark span:first-child{background:var(--cube-red)}.brand-mark span:nth-child(2){background:var(--cube-green)}.brand-mark span:nth-child(3){background:var(--cube-blue)}.brand-mark span:nth-child(4){background:var(--cube-yellow)}.site-nav{height:100%;color:var(--color-text-muted);align-items:center;gap:28px;font-size:.95rem;font-weight:600;display:inline-flex}.site-nav a{align-items:center;height:100%;display:inline-flex;position:relative}.site-nav a.active{color:var(--color-primary)}.site-nav a.active:after{background:var(--color-primary);content:"";border-radius:999px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.theme-toggle{border:1px solid var(--color-border);background:var(--color-surface);min-height:36px;color:var(--color-text-muted);cursor:pointer;border-radius:999px;justify-self:end;padding:0 14px;font-size:.88rem;font-weight:700}.solver-layout{flex:1;grid-template-columns:330px minmax(480px,1fr) 330px;align-items:start;gap:32px;width:100%;padding:40px;display:grid}.solver-layout>*{min-width:0}.card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-card)}.side-panel{padding:28px}.section-kicker{color:var(--color-primary);letter-spacing:0;text-transform:uppercase;margin-bottom:10px;font-size:.78rem;font-weight:800}.side-panel h2{color:var(--color-text);margin-bottom:22px;font-size:1.35rem;line-height:1.2}.panel-title-row{justify-content:space-between;align-items:start;gap:12px;display:flex}.panel-status{background:var(--color-surface-soft);color:var(--color-text-muted);border-radius:999px;flex:none;margin-top:2px;padding:4px 9px;font-size:.75rem;font-weight:800}.panel-status[data-status=solved]{color:#047857;background:#ecfdf5}.panel-status[data-status=failed]{color:var(--color-danger);background:#fef2f2}.panel-status[data-status=solving]{background:var(--color-primary-soft);color:var(--color-primary)}.app-shell[data-theme=dark] .panel-status[data-status=solved]{color:#86efac;background:#052e16}.app-shell[data-theme=dark] .panel-status[data-status=failed]{color:#fca5a5;background:#450a0a}.panel-note{color:var(--color-danger);margin:12px 0 0;font-size:.88rem;line-height:1.4}.divider{background:var(--color-border);height:1px;margin:28px 0}.button{cursor:pointer;border-radius:10px;min-height:44px;padding:0 16px;font-weight:700;transition:background-color .15s,border-color .15s,color .15s,transform .15s}.button:hover:not(:disabled),.theme-toggle:hover,.color-option:hover,.face-selector-button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.52;transform:none}.button-full{width:100%}.button-primary{background:var(--color-primary);color:#fff;min-height:52px;box-shadow:var(--shadow-button)}.button-primary:hover:not(:disabled){background:var(--color-primary-hover)}.button-secondary{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted)}.button-secondary:hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-text)}.button-ghost{color:var(--color-text-muted);background:0 0}.color-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px;display:grid}.color-option{min-width:0;color:var(--color-text-muted);cursor:pointer;text-align:center;background:0 0;justify-items:center;gap:10px;font-size:.86rem;font-weight:700;transition:color .15s,transform .15s;display:grid}.color-option[data-selected=true]{color:var(--color-primary)}.color-swatch{border:1px solid var(--color-border);background:var(--swatch-color);border-radius:8px;width:48px;height:48px;box-shadow:inset 0 0 0 1px #0f172a14}.color-option[data-selected=true] .color-swatch{border-color:var(--color-primary);outline:3px solid #2563eb40}.panel-action-stack{gap:10px;display:grid}.info-tip{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft);color:var(--color-text-muted);margin:22px 0 0;padding:14px;font-size:.9rem;line-height:1.45}.validation-summary{border-radius:var(--radius-md);background:#fef2f2;border:1px solid #fecaca;margin-top:18px;padding:14px}.validation-summary[data-valid=true]{background:#f0fdf4;border-color:#bbf7d0}.validation-summary span{color:var(--color-danger);margin-bottom:5px;font-weight:800;display:block}.validation-summary[data-valid=true] span{color:#047857}.app-shell[data-theme=dark] .validation-summary{background:#450a0a;border-color:#7f1d1d}.app-shell[data-theme=dark] .validation-summary[data-valid=true]{background:#052e16;border-color:#166534}.app-shell[data-theme=dark] .validation-summary[data-valid=true] span{color:#86efac}.validation-summary p{color:var(--color-text-muted);margin-bottom:0;font-size:.88rem;line-height:1.4}.cube-workspace{min-width:0}.cube-canvas-card{border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-page);height:min(62vh,590px);min-height:520px;box-shadow:var(--shadow-card);overflow:hidden}.cube-canvas-card canvas{cursor:pointer;display:block}.face-selector{flex-wrap:wrap;justify-content:center;gap:10px;padding:22px 8px 0;display:flex}.face-selector-button{border:1px solid var(--color-border);background:var(--color-surface);min-width:46px;min-height:38px;color:var(--color-text-muted);cursor:pointer;border-radius:999px;font-weight:800;transition:background-color .15s,border-color .15s,color .15s,transform .15s}.face-selector-button[data-active=true]{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.solution-panel{align-content:start;display:grid}.step-controls{grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;gap:10px;margin-bottom:16px;display:grid}.step-count{border:1px solid var(--color-border);background:var(--color-surface-soft);min-height:44px;color:var(--color-text-muted);border-radius:10px;place-items:center;font-size:.95rem;font-weight:800;display:grid}.move-display{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-soft);align-content:center;justify-items:start;gap:8px;min-height:172px;margin-bottom:16px;padding:22px;display:grid}.compact-move-list{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:6px;max-height:138px;margin-bottom:16px;display:grid;overflow-y:auto}.compact-move-token{border:1px solid var(--color-border);background:var(--color-surface);min-width:0;min-height:32px;color:var(--color-text-muted);cursor:pointer;border-radius:8px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;font-weight:800}.compact-move-token[data-completed=true]{background:var(--color-primary-soft);border-color:#bfdbfe}.compact-move-token[data-active=true]{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.move-label{color:var(--color-text-soft);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:800}.move-display strong{color:var(--color-text);font-size:3rem;line-height:1}.move-display p{color:var(--color-text-muted);margin-bottom:0;font-size:.95rem;line-height:1.45}.move-display[data-empty=true] strong{color:var(--color-text-soft)}.site-footer{border-top:1px solid var(--color-border);min-height:72px;color:var(--color-text-muted);place-items:center;padding:16px 24px;font-size:.88rem;display:grid}.site-footer p{margin:0}button:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #2563eb59}@media (width<=1100px){.solver-layout{grid-template-columns:1fr}.cube-workspace{order:-1}.cube-canvas-card{height:460px;min-height:460px}}@media (width<=720px){.site-header{grid-template-columns:1fr;gap:16px;padding:0 18px}.site-nav,.theme-toggle{display:none}.solver-layout{gap:18px;padding:16px}.side-panel{padding:20px}.cube-canvas-card{border-radius:var(--radius-lg);height:360px;min-height:360px}.color-grid{grid-template-columns:repeat(3,64px);justify-content:space-between;gap:20px 0;max-width:282px;margin:0 auto}.color-swatch{width:38px;height:38px}.face-selector{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;max-width:260px;margin:0 auto;display:grid}.face-selector-button{min-width:0}}
