:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light;color:#2b1717;background-color:#fffaf4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:transparent;cursor:pointer;transition:border-color .25s}button:hover{border-color:#dc2626}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.grid-container{display:flex;justify-content:center;align-items:center;padding:1rem}.game-canvas{border:2px solid #c9ad91;border-radius:1rem;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;background-color:#f6ead8;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.game-canvas.disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.game-canvas:hover:not(.disabled){box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}@media (max-width: 768px){.grid-container{padding:.5rem}}@media (max-width: 480px){.grid-container{padding:.25rem}.game-canvas{border-width:1px}}@media (prefers-contrast: high){.game-canvas{border:3px solid #000}.game-canvas.disabled{border-color:#666}}@media (prefers-reduced-motion: reduce){.game-canvas{transition:none}.game-canvas:hover:not(.disabled){box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}}.game-canvas:focus{outline:3px solid #dc2626;outline-offset:2px}.grid-container{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.timer-container{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background-color:#fff8ee;border-radius:.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid #ead7c0}.timer-label{font-weight:500;color:#374151;font-size:.875rem}.timer-display{font-family:Courier New,Monaco,monospace;font-size:1.25rem;font-weight:700;color:#1f2937;min-width:80px;text-align:right;transition:color .2s ease}.timer-display.running{color:#dc2626}@media (max-width: 480px){.timer-container{padding:.5rem .75rem;gap:.5rem}.timer-display{font-size:1.125rem;min-width:70px}.timer-label{font-size:.8125rem}}@media (prefers-contrast: high){.timer-container{border:2px solid #374151}.timer-display{color:#000}.timer-display.running{color:#1d4ed8}}@media (prefers-reduced-motion: reduce){.timer-display{transition:none}}.game-container{min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(circle at 80% 30%,rgba(220,38,38,.06),transparent 30rem),#fffaf4;color:var(--text-primary)}.game-header{display:flex;justify-content:space-between;align-items:center;gap:2rem;padding:1rem clamp(1rem,4vw,4rem);background:#fff;border-bottom:3px solid #dc2626;box-shadow:0 4px 18px #7f1d1d14;z-index:2}.brand-block,.game-controls,.grid-size-selector,.completion-content,.wallet-control{display:flex;align-items:center}.brand-block{gap:.8rem}.brand-logo{width:3rem;height:3rem;border-radius:.75rem;object-fit:contain;box-shadow:0 6px 15px #0f766e33}.game-title{margin:0;color:#991b1b;font-size:1.65rem;line-height:1;letter-spacing:-.04em}.game-tagline{margin:.3rem 0 0;color:#8c6b6b;font-size:.72rem}.game-tagline a{color:#b91c1c;font-weight:700;text-decoration:none}.game-tagline a:hover{text-decoration:underline}.game-controls{gap:.75rem}.wallet-control{min-height:2.55rem;gap:.45rem;border-radius:.65rem}.wallet-control.connected{padding:.45rem .65rem;border:1px solid #b8ded8;background:#f0fdfa}.wallet-dot{width:.5rem;height:.5rem;border-radius:50%;background:#0f9f8c;box-shadow:0 0 0 3px #ccfbf1}.wallet-address{color:#115e59;font-family:monospace;font-size:.75rem;font-weight:700}.wallet-link-btn{padding:.1rem;color:#7f1d1d;font-size:.68rem;text-decoration:underline}.connect-wallet-btn{padding:.7rem 1rem;border:1px solid #0f766e;border-radius:.6rem;color:#fff;background:#0f766e;font-weight:750}.grid-size-selector{gap:.5rem}.grid-size-selector label{color:#5c3b3b;font-size:.82rem;font-weight:700}.grid-size-selector select{min-width:9.5rem;padding:.65rem .75rem;border:1px solid #e5c7c7;border-radius:.55rem;color:#5c1717;background:#fff8f8;cursor:pointer}.new-puzzle-btn,.start-btn,.reset-btn{padding:.7rem 1.2rem;border:1px solid transparent;border-radius:.6rem;background:#dc2626;color:#fff;font-weight:750;box-shadow:0 5px 12px #b91c1c2e;transition:transform .2s ease,background .2s ease}.new-puzzle-btn:hover:not(:disabled),.start-btn:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.reset-btn{border-color:#efbcbc;background:#fff;color:#b91c1c;box-shadow:none}.reset-btn:hover:not(:disabled){background:#fff1f1}button:disabled{opacity:.55;cursor:not-allowed}.game-content{flex:1;width:min(100%,1280px);margin:0 auto;display:grid;grid-template-columns:minmax(240px,290px) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;padding:clamp(1.5rem,4vw,3.5rem)}.game-info{display:flex;flex-direction:column;gap:1rem;align-self:stretch;justify-content:center;padding:1.4rem;border:1px solid #efdddd;border-left:5px solid #dc2626;border-radius:1rem;background:#ffffffe0;box-shadow:0 18px 45px #5d232317}.info-heading{margin-bottom:.25rem}.info-heading h2{margin-top:.2rem;font-size:1.35rem;color:#451a1a}.eyebrow{color:#dc2626;font-size:.67rem;font-weight:850;letter-spacing:.15em}.rank-card{display:flex;align-items:center;gap:.9rem;padding:1rem;border:1px solid #ecd5d5;border-radius:.8rem;background:snow}.best-rank-card{background:linear-gradient(135deg,#fff1f1,#fff)}.rank-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;background:#fee2e2;color:#b91c1c;font-size:1.15rem}.rank-card>div{display:flex;flex:1;align-items:center;justify-content:space-between;gap:1rem}.rank-label{color:#765858;font-size:.8rem}.rank-card strong{color:#991b1b;font-size:1.35rem}.rank-note{margin:.2rem 0 0;color:#8c7272;font-size:.72rem;line-height:1.5}.entry-card{padding:1rem;border:1px solid #b8ded8;border-radius:.8rem;background:linear-gradient(135deg,#f0fdfa,#fff)}.entry-card>div{display:flex;align-items:center;justify-content:space-between;gap:1rem}.entry-label{color:#0f766e;font-size:.65rem;font-weight:850;letter-spacing:.12em}.entry-card strong{color:#115e59;font-size:1rem}.entry-card p{margin:.55rem 0 0;color:#55736f;font-size:.68rem;line-height:1.45}.network-badge{display:inline-block;margin-top:.65rem;padding:.2rem .45rem;border-radius:999px;color:#fff;background:#0f766e;font-size:.62rem;font-weight:800}.payment-state,.transaction-link{display:block;margin-top:.6rem;font-size:.7rem;font-weight:750}.payment-state{color:#9a3412}.payment-state.confirmed{color:#047857}.transaction-link{color:#0f766e}.payment-error{margin:.8rem 0 0!important;color:#b91c1c!important;font-size:.78rem;font-weight:650}.game-board{position:relative;min-width:0;min-height:450px;display:flex;justify-content:flex-end;align-items:center}.loading-overlay{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#7f1d1d;background:#fffaf4f0}.loading-spinner{width:34px;height:34px;margin-bottom:1rem;border:3px solid #fecaca;border-top-color:#dc2626;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.welcome-message{max-width:570px;margin-left:auto;padding:3rem;text-align:center;border:1px solid #ead7c0;border-radius:1.2rem;background:#f6ead8}.welcome-message h2{margin:.45rem 0 .8rem;color:#7f1d1d;font-size:clamp(1.7rem,4vw,2.7rem)}.welcome-message p{margin:0 auto 1.7rem;max-width:31rem;color:#715656;line-height:1.7}.completion-message{position:fixed;left:0;right:0;top:50%;z-index:50;transform:translateY(-50%);width:100%;padding:1.3rem;color:#fff;background:linear-gradient(90deg,#7f1d1d,#dc2626 50%,#7f1d1d);border-block:4px solid #fff;box-shadow:0 15px 55px #450a0a66;animation:completion-enter .35s ease-out}.completion-content{justify-content:center;gap:1rem}.completion-icon{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;color:#b91c1c;background:#fff;font-weight:900}.completion-message h2,.completion-message p{margin:0}.completion-message h2{font-size:clamp(1.2rem,3vw,1.8rem)}.completion-message p{font-size:1.15rem;font-weight:750}.completion-divider{width:1px;height:2.2rem;background:#ffffff80}@keyframes completion-enter{0%{opacity:0;transform:translateY(-50%) scaleY(.7)}}.game-footer{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:.55rem;padding:1rem 1.5rem;color:#806565;background:#fff;border-top:1px solid #efdddd;font-size:.78rem}.game-footer a{color:#b91c1c;font-weight:700;text-decoration:none}.game-footer a:hover{text-decoration:underline}@media (max-width: 900px){.game-header{align-items:flex-start}.game-controls{flex-wrap:wrap;justify-content:flex-end}.game-content{grid-template-columns:1fr;align-items:start}.game-info{display:grid;grid-template-columns:repeat(2,1fr);align-self:auto;order:2}.info-heading,.rank-note{grid-column:1 / -1}.game-board{order:1;justify-content:center;min-height:380px}.welcome-message{margin:auto}}@media (max-width: 620px){.game-header{flex-direction:column;gap:1rem}.game-controls{width:100%;justify-content:stretch}.grid-size-selector{flex:1}.grid-size-selector select{flex:1;min-width:0}.game-content{padding:1rem;gap:1rem}.game-info{display:flex}.game-board{min-height:340px}.completion-content{gap:.55rem}.completion-icon,.completion-divider{display:none}.completion-message{padding:1rem .5rem;text-align:center}}@media (prefers-reduced-motion: reduce){.loading-spinner,.completion-message{animation:none}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background-color:#fffaf4;color:#2b1717;overflow-x:hidden}#root{height:100%;width:100%}.App{min-height:100vh;display:flex;flex-direction:column}:root{--primary-color: #dc2626;--primary-hover: #b91c1c;--secondary-color: #64748b;--success-color: #10b981;--bg-color: #fffaf4;--surface-color: #ffffff;--border-color: #ead7c0;--text-primary: #2b1717;--text-secondary: #785f5f;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--border-radius: .5rem;--border-radius-sm: .25rem;--border-radius-lg: .75rem}button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;border:none;background:none;cursor:pointer;outline:none}button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}input,select{font-family:inherit;font-size:inherit;line-height:inherit;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);padding:.5rem;background-color:var(--surface-color)}input:focus,select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #dc26261f}.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}.text-center{text-align:center}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-4{gap:1rem}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (prefers-contrast: high){:root{--border-color: #000000;--text-primary: #000000;--primary-color: #0000ff}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{.App{background:#fff;color:#000}button{display:none}}
