:root{font-family:Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.6;font-weight:400;color-scheme:light;color:#222;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--primary-color: #1976d2;--primary-light: #64b5f6;--primary-dark: #1565c0;--secondary-color: #e3eaf2;--text-color: #222;--text-light: #666;--background-gradient: linear-gradient(135deg, #f6f8fa 0%, #e3eaf2 100%);--border-radius: 12px;--shadow-light: 0 2px 8px rgba(227, 234, 242, .5);--shadow-medium: 0 4px 24px rgba(227, 234, 242, .8)}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;padding:0;font-family:var(--font-family);background:var(--background-gradient);color:var(--text-color);min-height:100vh;position:relative;overflow-x:hidden}body:before{content:"";position:fixed;z-index:0;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 20%,rgba(255,214,224,.3) 0 60px,transparent 70px),radial-gradient(circle at 85% 15%,rgba(179,229,252,.3) 0 50px,transparent 60px),radial-gradient(circle at 70% 85%,rgba(255,224,130,.3) 0 70px,transparent 80px),radial-gradient(circle at 25% 75%,rgba(200,230,201,.3) 0 60px,transparent 70px),radial-gradient(circle at 55% 45%,rgba(248,187,208,.3) 0 40px,transparent 50px);opacity:.6;animation:backgroundFloat 20s ease-in-out infinite}@keyframes backgroundFloat{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-10px) rotate(1deg)}66%{transform:translateY(5px) rotate(-1deg)}}.App{position:relative;z-index:1}main{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:0 16px;max-width:1200px;margin:0 auto}h1{font-size:clamp(2rem,5vw,3.2rem);font-weight:800;margin:16px 0 8px;letter-spacing:.5px;color:var(--primary-color);text-align:center;line-height:1.2}h2{font-size:clamp(1rem,3vw,1.4rem);font-weight:500;margin:0 0 24px;color:var(--text-light);text-align:center;line-height:1.4}h3{font-size:clamp(1.1rem,2.5vw,1.3rem);font-weight:700;color:var(--primary-color);margin:0 0 12px;line-height:1.3}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-40px;left:6px;background:var(--primary-color);color:#fff;padding:8px;text-decoration:none;border-radius:4px;z-index:1000}.skip-link:focus{top:6px}.info-section{display:grid;grid-template-columns:1fr 1fr}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}@media (max-width: 768px){main{padding:0 12px}.App{max-width:100vw;padding:8px 4px;margin:0}#puzzle-board{width:min(95vw,360px);height:min(95vw,360px);margin:16px auto;border-radius:16px}.info-section{grid-template-columns:1fr;gap:24px;padding:24px 16px;margin:20px auto}button{font-size:clamp(14px,4vw,18px);padding:12px 24px;min-width:auto;white-space:nowrap}}@media (max-width: 480px){main{padding:0 8px}.App{padding:4px 2px}#puzzle-board{width:min(92vw,340px);height:min(92vw,340px);margin:12px auto}.info-section{padding:20px 12px;margin:16px auto;gap:20px}}@media print{body:before{display:none}#puzzle-board{box-shadow:none;border:2px solid #ddd}button{display:none}}@media (prefers-contrast: high){:root{--primary-color: #0d47a1;--text-color: #000;--secondary-color: #f5f5f5}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body:before{animation:none}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
