*{margin:0;padding:0;box-sizing:border-box}html,body,#root{line-height:1.5;font-weight:400;height:100%;width:100%;font-family:"Press Start 2P",system-ui,sans-serif;background:linear-gradient(180deg,#e0e0e0,#ccc);color:#000}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;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:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}#root{margin:0 auto;text-align:center;color:#000}.app-container{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;width:100%;overflow:hidden;padding-top:72px}.pixel-button{font-family:"Press Start 2P",monospace;font-size:16px;color:#fff;background:#000;border:4px solid #ffffff;padding:12px 24px;text-transform:uppercase;letter-spacing:2px;cursor:pointer;box-shadow:4px 4px #666;outline:4px solid #000000;outline-offset:-8px;position:relative;transition:all .1s linear;font-weight:700}.pixel-button:before{content:"";position:absolute;inset:-8px;border:4px solid #cccccc;pointer-events:none}.pixel-button:hover{background:#1a1a1a;transform:translate(-2px,-2px);box-shadow:6px 6px #666}.pixel-button:active{transform:translate(2px,2px);box-shadow:2px 2px #666}@media(max-width:768px){.app-container{padding-top:64px}.pixel-button{font-size:14px;padding:10px 20px;letter-spacing:1px}}@media(max-width:480px){.app-container{padding-top:60px}.pixel-button{font-size:12px;padding:8px 16px;border:3px solid #ffffff;outline:3px solid #000000;outline-offset:-6px}.pixel-button:before{inset:-6px;border:3px solid #cccccc}}.app-footer{text-align:center;padding:1.5rem;border-top:4px solid #000000;margin-top:2rem;font-size:.7rem;color:#333;background:#fff;box-shadow:0 -4px #ccc;position:relative}.app-footer:before{content:"";position:absolute;top:-8px;left:0;right:0;border-top:4px solid #666666}.section-intro{margin-bottom:.5rem}.section-intro p{color:#666;font-size:.65rem}.footer-text{color:#000;font-weight:700}@media(max-width:768px){.app-footer{padding:1.2rem;font-size:.6rem;border-top:3px solid #000000}.app-footer:before{top:-6px;border-top:3px solid #666666}.section-intro p{font-size:.55rem}}@media(max-width:480px){.app-footer{padding:1rem;font-size:.55rem;margin-top:1.5rem}.section-intro p{font-size:.5rem}}.app-main{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 100px);padding:2rem}.hero-box{background:#fff;border:4px solid #000000;box-shadow:8px 8px #000;padding:3rem 2.5rem;max-width:600px;width:100%;text-align:center}.main-title{font-family:"Press Start 2P",monospace;font-size:clamp(2rem,5vw,3rem);color:#000;margin:0 0 .5rem;letter-spacing:3px;text-shadow:4px 4px 0 #cccccc}.main-tagline{font-family:"Press Start 2P",monospace;font-size:clamp(.65rem,2vw,.85rem);color:#666;margin:0 0 2rem;text-transform:uppercase;letter-spacing:2px}.pixel-divider{display:flex;justify-content:center;gap:3px;margin:2rem 0;padding:1rem 0;border-top:2px solid #000000;border-bottom:2px solid #000000}.pixel-dot{width:14px;height:14px;border:1px solid #000000;transition:transform .2s ease}.pixel-dot:hover{transform:scale(1.3)}.rules-simple{display:flex;flex-direction:column;gap:1.5rem;margin:2.5rem 0;text-align:left}.rule-line{display:flex;align-items:center;gap:1rem;font-family:"Press Start 2P",monospace;font-size:.7rem;color:#333;line-height:1.5;padding:.75rem;background:#f5f5f5;border:2px solid #000000}.rule-icon{font-size:1.5rem;flex-shrink:0;width:30px;text-align:center;color:#000}.buttons-container{display:flex;flex-direction:row;gap:1.5rem;align-items:stretch;justify-content:center;margin-top:2rem;flex-wrap:wrap}.start-button{font-family:"Press Start 2P",monospace;font-size:1.2rem;color:#fff;background:#000;border:5px solid #ffffff;outline:5px solid #000000;outline-offset:-10px;padding:1.2rem 3rem;text-transform:uppercase;letter-spacing:4px;cursor:pointer;box-shadow:8px 8px #000;transition:all .1s ease;flex:1;min-width:200px;max-width:320px;position:relative;border-radius:0}.start-button:before{content:"";position:absolute;inset:-10px;border:5px solid #666666;pointer-events:none}.start-button:hover{background:#1a1a1a;transform:translate(-4px,-4px);box-shadow:12px 12px #000}.start-button:active{transform:translate(4px,4px);box-shadow:4px 4px #000}.support-button{font-family:"Press Start 2P",monospace;font-size:.75rem;color:#000;background:#fff;border:4px solid #000000;outline:4px solid #cccccc;outline-offset:-8px;padding:.9rem 1.5rem;text-transform:uppercase;letter-spacing:2px;cursor:pointer;box-shadow:5px 5px #000;transition:all .1s ease;flex:1;min-width:200px;max-width:320px;display:flex;align-items:center;justify-content:center;gap:1rem;position:relative;border-radius:0}.support-button:before{content:"";position:absolute;inset:-8px;border:4px solid #999999;pointer-events:none}.support-button:hover{background:#f5f5f5;transform:translate(-3px,-3px);box-shadow:8px 8px #000}.support-button:active{transform:translate(3px,3px);box-shadow:3px 3px #000}@media(max-width:768px){.buttons-container{flex-direction:column;gap:1rem}.start-button,.support-button{width:100%;max-width:100%}.hero-box{padding:2rem 1.5rem}.main-title{font-size:1.8rem;letter-spacing:2px}.main-tagline{font-size:.6rem}.rule-line{font-size:.6rem;gap:.75rem;padding:.6rem}.rule-icon{font-size:1.2rem;width:25px}.start-button{font-size:1rem;padding:1rem 2rem}.support-button{font-size:.65rem;padding:.65rem 1.2rem}}@media(max-width:480px){.hero-box{padding:1.5rem 1rem}.pixel-divider{gap:2px}.pixel-dot{width:10px;height:10px}.rule-line{font-size:.55rem;flex-direction:column;text-align:center;gap:.5rem}.start-button{font-size:.9rem;padding:.9rem 1.5rem;letter-spacing:2px}.support-button{font-size:.6rem;padding:.6rem 1rem}}.palette-container{display:flex;gap:6px;position:fixed;flex-wrap:wrap;max-width:600px;justify-content:center;background:#fff;padding:.5rem .75rem .75rem;border:4px solid #000000;box-shadow:4px 4px #666;z-index:99;cursor:move;-webkit-user-select:none;user-select:none}.palette-container-column{flex-direction:column;flex-wrap:nowrap;max-width:80px;max-height:600px}.palette-container-column .drag-handle{border-bottom:none;border-right:2px solid #e0e0e0;margin-bottom:0;margin-right:.5rem;padding:0 .25rem;writing-mode:vertical-rl;text-orientation:mixed}.palette-container-row{flex-direction:row}.palette-container.dragging{opacity:.9;cursor:grabbing}.palette-container:before{content:"";position:absolute;inset:-8px;border:4px solid #cccccc;pointer-events:none}.palette-button{width:28px;height:28px;cursor:pointer;transition:all .1s ease;flex-shrink:0;border-radius:0;border:2px solid #000000;box-shadow:2px 2px #666;position:relative;box-sizing:border-box}.palette-button.selected{outline:2px solid #000000;outline-offset:-4px;border-width:3px}.palette-button:before{content:"";position:absolute;inset:-4px;border:2px solid #cccccc;pointer-events:none}.palette-button:hover{transform:translate(-1px,-1px);box-shadow:3px 3px #666}.palette-button:active{transform:translate(1px,1px);box-shadow:1px 1px #666}@media(max-width:768px){.palette-container{top:75px;gap:5px;padding:.6rem}.palette-button{width:26px;height:26px}}@media(max-width:480px){.palette-container{top:70px;gap:4px;padding:.5rem;max-width:95vw;border:3px solid #000000}.palette-container:before{inset:-6px;border:3px solid #cccccc}.palette-button{width:24px;height:24px;border:2px solid #000000}.palette-button:before{inset:-3px;border:2px solid #cccccc}}@media(max-width:380px){.palette-container{top:68px;gap:3px;padding:.4rem}.palette-button{width:20px;height:20px}}.canvas-container{display:flex;flex-direction:column;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;flex-grow:1;position:relative}.canvas{border:4px solid #000000;display:block;background-color:#fff;transition:opacity .2s ease;box-shadow:4px 4px #666}.canvas-disabled{opacity:.6;cursor:not-allowed!important}.zoom-controls{position:fixed;display:flex;gap:8px;background:#fff;border:4px solid #000000;padding:.5rem .75rem .75rem;box-shadow:4px 4px #666;z-index:100;cursor:move;-webkit-user-select:none;user-select:none}.zoom-controls-column{flex-direction:column}.zoom-controls-row{flex-direction:row;align-items:center}.zoom-controls-row .drag-handle{border-bottom:none;border-right:2px solid #e0e0e0;margin-bottom:0;margin-right:.5rem;padding:0 .25rem}.zoom-controls-row .zoom-level{margin:0 4px}.zoom-controls-row .reset-btn,.zoom-controls-row .fullscreen-btn{margin-top:0;margin-left:4px}.zoom-controls.dragging{opacity:.9;cursor:grabbing}.drag-handle{font-size:.8rem;text-align:center;color:#666;cursor:grab;padding:.25rem 0;border-bottom:2px solid #e0e0e0;margin-bottom:.5rem;-webkit-user-select:none;user-select:none}.zoom-controls.dragging .drag-handle,.palette-container.dragging .drag-handle{cursor:grabbing}.zoom-controls:before{content:"";position:absolute;inset:-8px;border:4px solid #cccccc;pointer-events:none}.zoom-btn{font-family:"Press Start 2P",monospace;font-size:1.2rem;width:40px;height:40px;background:#000;color:#fff;border:3px solid #ffffff;cursor:pointer;transition:all .1s ease;display:flex;align-items:center;justify-content:center;outline:3px solid #000000;outline-offset:-6px;position:relative}.zoom-btn:before{content:"";position:absolute;inset:-6px;border:3px solid #666666;pointer-events:none}.zoom-btn:hover{background:#1a1a1a;transform:translate(-2px,-2px);box-shadow:2px 2px #666}.zoom-btn:active{transform:translate(1px,1px);box-shadow:1px 1px #666}.zoom-level{font-family:"Press Start 2P",monospace;font-size:.6rem;color:#000;text-align:center;padding:.5rem 0;letter-spacing:1px;background:#f5f5f5;border:2px solid #000000;margin:4px 0}.reset-btn,.fullscreen-btn{font-size:1.2rem;margin-top:4px}.canvas-container:fullscreen{background:#f0f0f0;display:flex;align-items:center;justify-content:center;padding:20px;width:100vw;height:100vh;overflow:hidden}.canvas-container:fullscreen .canvas{max-width:calc(100vw - 150px);max-height:calc(100vh - 200px);width:auto;height:auto;object-fit:contain}.pixel-tooltip{position:absolute;background:#fff;border:4px solid #000000;box-shadow:4px 4px #666;padding:0;z-index:1000;pointer-events:none;min-width:180px}.pixel-tooltip:before{content:"";position:absolute;inset:-8px;border:4px solid #cccccc;pointer-events:none}.tooltip-header{background:#000;color:#fff;padding:.5rem;text-align:center;border-bottom:3px solid #666666}.tooltip-label{font-family:"Press Start 2P",monospace;font-size:.6rem;letter-spacing:2px;font-weight:700}.tooltip-content{padding:.75rem;display:flex;flex-direction:column;gap:.5rem}.tooltip-row{display:flex;justify-content:space-between;align-items:center;font-family:"Press Start 2P",monospace;font-size:.55rem;gap:1rem}.tooltip-key{color:#666;letter-spacing:1px}.tooltip-value{color:#000;font-weight:700;letter-spacing:1px}.tooltip-color-preview{width:100%;height:30px;border:3px solid #000000;margin-top:.25rem;box-shadow:inset 2px 2px #0003}.cooldown-indicator{position:fixed;bottom:180px;left:50%;transform:translate(-50%);background:#fff;border:4px solid #000000;padding:1rem 1.5rem;box-shadow:4px 4px #666;z-index:100;min-width:280px}.cooldown-indicator:before{content:"";position:absolute;inset:-8px;border:4px solid #cccccc;pointer-events:none}.cooldown-text{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;font-family:"Press Start 2P",monospace}.cooldown-label{font-size:.7rem;color:#333;text-transform:uppercase;letter-spacing:1px}.cooldown-timer{font-size:1rem;color:#000;font-weight:700;animation:blinkTimer 1s ease-in-out infinite}@keyframes blinkTimer{0%,49%{opacity:1}50%,to{opacity:.3}}.cooldown-bar{width:100%;height:16px;background:#e0e0e0;border:3px solid #000000;position:relative;overflow:hidden}.cooldown-progress{height:100%;background:repeating-linear-gradient(45deg,#000,#000 4px,#333 4px 8px);transition:width 1s linear;border-right:2px solid #666666}.loading-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#fffc;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:10}.spinner{border:6px solid #f3f3f3;border-top:6px solid #333;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin-bottom:10px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:1280px){.canvas-container{overflow-x:auto;overflow-y:auto}.canvas{max-width:100%;height:auto}}@media(max-width:768px){.zoom-controls{top:80px;right:10px;padding:.5rem;gap:6px}.zoom-btn{width:36px;height:36px;font-size:1rem}.zoom-level{font-size:.5rem;padding:.4rem 0}.cooldown-indicator{bottom:140px;min-width:240px;padding:.8rem 1.2rem}.cooldown-label{font-size:.6rem}.cooldown-timer{font-size:.85rem}.cooldown-bar{height:12px}}@media(max-width:480px){.canvas-container{padding:.5rem}.zoom-controls{top:75px;right:5px;padding:.4rem;gap:5px;border:3px solid #000000}.zoom-controls:before{inset:-6px;border:3px solid #cccccc}.zoom-btn{width:32px;height:32px;font-size:.9rem;border:2px solid #ffffff;outline:2px solid #000000;outline-offset:-4px}.zoom-btn:before{inset:-4px;border:2px solid #666666}.zoom-level{font-size:.45rem;padding:.3rem 0}.reset-btn{font-size:1.2rem}.fullscreen-btn{font-size:1.1rem}.pixel-tooltip{min-width:150px;border:3px solid #000000}.pixel-tooltip:before{inset:-6px;border:3px solid #cccccc}.tooltip-header{padding:.4rem}.tooltip-label{font-size:.5rem}.tooltip-content{padding:.6rem;gap:.4rem}.tooltip-row{font-size:.5rem}.tooltip-color-preview{height:24px;border:2px solid #000000}.cooldown-indicator{bottom:120px;min-width:200px;padding:.6rem 1rem;border:3px solid #000000}.cooldown-indicator:before{inset:-6px;border:3px solid #cccccc}.cooldown-label{font-size:.5rem}.cooldown-timer{font-size:.75rem}.cooldown-bar{height:10px;border:2px solid #000000}}.navbar{position:fixed;top:0;left:0;right:0;width:100%;z-index:1000;background:#fff;border-bottom:4px solid #000000;transition:all .2s ease;box-shadow:0 4px #ccc,0 8px 16px #0003}.navbar.scrolled{background:#f5f5f5;box-shadow:0 4px #000,0 8px 20px #0000004d}.navbar-container{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:.75rem 2rem;gap:2rem}.navbar-left{flex:0 0 auto}.logo-link{display:flex;align-items:center;text-decoration:none;transition:transform .1s ease}.logo-link:hover{transform:translate(-2px,-2px)}.logo-container-nav{display:flex;align-items:center;gap:.75rem}.logo-icon{height:48px;width:48px;filter:drop-shadow(3px 3px 0 rgba(0,0,0,.3)) grayscale(1) contrast(1.2);transition:all .2s ease}.logo-link:hover .logo-icon{filter:drop-shadow(4px 4px 0 rgba(0,0,0,.4)) grayscale(1) contrast(1.3)}.logo-text{display:flex;flex-direction:column;gap:.15rem}.logo-name{height:28px;filter:drop-shadow(2px 2px 0 rgba(0,0,0,.2)) grayscale(1) contrast(1.1)}.logo-tagline{font-family:"Press Start 2P",monospace;font-size:.5rem;color:#666;text-transform:uppercase;letter-spacing:1px;margin-top:-2px}.navbar-center{flex:1 1 auto;display:flex;justify-content:center}.nav-info{display:flex;align-items:center;gap:.5rem;padding:.5rem .8rem;background:#fff;border:3px solid #000000;box-shadow:3px 3px #666}.nav-info-label{font-family:"Press Start 2P",monospace;font-size:.65rem;color:#000;text-transform:uppercase;letter-spacing:1px;line-height:1}.navbar-right{flex:0 0 auto;display:flex;align-items:center;gap:1.5rem}.online-indicator{display:flex;align-items:center;gap:.6rem;padding:.5rem .8rem;background:#fff;border:3px solid #000000;box-shadow:3px 3px #666;opacity:0;transform:translateY(-10px)}.online-indicator.show{opacity:1;transform:translateY(0);transition:opacity .3s ease,transform .3s ease}.status-dot{width:12px;height:12px;border:2px solid #000000;background:#000;flex-shrink:0}.status-dot.online{background:#fff;animation:blinkDot 1.2s ease-in-out infinite}.status-dot.offline{background:#666}@keyframes blinkDot{0%,49%{background:#fff}50%,to{background:#000}}.status-count{font-family:"Press Start 2P",monospace;font-size:.75rem;font-weight:700;color:#000;line-height:1}.nav-cta-button{display:flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-family:"Press Start 2P",monospace;font-size:.7rem;color:#fff;background:#000;border:4px solid #ffffff;text-decoration:none;text-transform:uppercase;letter-spacing:1px;box-shadow:4px 4px #666;outline:4px solid #000000;outline-offset:-8px;transition:all .1s ease;position:relative}.nav-cta-button:before{content:"";position:absolute;inset:-8px;border:4px solid #cccccc;pointer-events:none}.nav-cta-button:hover{background:#1a1a1a;transform:translate(-2px,-2px);box-shadow:6px 6px #666}.nav-cta-button:active{transform:translate(2px,2px);box-shadow:2px 2px #666}.cta-icon{font-size:1rem;position:relative;z-index:1;transition:transform .2s ease;filter:grayscale(1)}.nav-cta-button:hover .cta-icon{transform:scale(1.1)}.nav-home-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#fff;border:3px solid #000000;box-shadow:3px 3px #666;transition:all .1s ease;text-decoration:none}.nav-home-button:hover{background:#f0f0f0;transform:translate(-2px,-2px);box-shadow:5px 5px #666}.nav-home-button:active{transform:translate(2px,2px);box-shadow:2px 2px #666}.home-icon{font-size:1.2rem;filter:grayscale(1);transition:transform .2s ease}.nav-home-button:hover .home-icon{transform:scale(1.1)}@media(max-width:768px){.navbar-container{padding:.6rem 1rem;gap:1rem}.logo-icon{height:40px;width:40px}.logo-name{height:24px}.logo-tagline{font-size:.4rem}.navbar-center{display:none}.online-indicator{padding:.5rem .75rem;gap:.5rem}.status-label{font-size:.45rem}.status-count{font-size:.75rem}.nav-cta-button{padding:.5rem .9rem;font-size:.6rem;gap:.4rem}.nav-home-button{width:36px;height:36px}.home-icon{font-size:1rem}}@media(max-width:480px){.navbar-container{gap:.5rem}.logo-text,.status-info{display:none}.online-indicator{padding:.5rem;min-width:48px;justify-content:center}.nav-cta-button{padding:.5rem;gap:0}.nav-cta-button span:not(.cta-icon){display:none}.cta-icon{font-size:1.2rem}}
