*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;touch-action:manipulation}:root{--bg-primary:#fff;--bg-secondary:#f9fafb;--text-primary:#1f2937;--text-secondary:#6b7280;--border-color:#d1d5db;--tower-pole:#a9764a;--tower-base:#a9764a;--tower-hover:#00000008;--tower-selected:#3b82f61a;--tower-selected-border:#3b82f6;--tower-drag-over:#10b9811a;--tower-drag-over-border:#10b981;--shadow-sm:0 2px 4px #0000001a;--shadow-md:0 4px 6px #00000026;--shadow-lg:0 20px 60px #0000004d;--victory-bg:#fff;--victory-perfect:#10b981}@media (prefers-color-scheme:dark){:root{--bg-primary:#111827;--bg-secondary:#1f2937;--text-primary:#f9fafb;--text-secondary:#9ca3af;--border-color:#374151;--tower-pole:#a9764a;--tower-base:#a9764a;--tower-hover:#ffffff0d;--tower-selected:#3b82f633;--tower-selected-border:#60a5fa;--tower-drag-over:#10b98133;--tower-drag-over-border:#34d399;--shadow-sm:0 2px 4px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 20px 60px #0009;--victory-bg:#1f2937;--victory-perfect:#34d399}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);overscroll-behavior:none;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .3s,color .3s}button,select{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.license-container{background:var(--bg-primary);z-index:2000;box-sizing:border-box;padding:2rem;position:fixed;inset:0;overflow-y:auto}.license-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.license-header h1{color:var(--text-primary);margin:0;font-size:2rem}.close-license-button{color:#fff;cursor:pointer;white-space:nowrap;box-shadow:var(--shadow-sm);background-color:#3b82f6;border:none;border-radius:6px;padding:.75rem 1.5rem;font-size:1rem;transition:all .2s}.close-license-button:hover{box-shadow:var(--shadow-md);background-color:#2563eb;transform:translateY(-1px)}.close-license-button:active{transform:translateY(0)}.license-text-wrapper{word-wrap:break-word;overflow-wrap:break-word;background:var(--bg-secondary);color:var(--text-primary);box-sizing:border-box;border:1px solid var(--border-color);border-radius:8px;max-width:100%;margin:1rem 0;padding:1.5rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:.9rem;line-height:1.6}.license-text-wrapper p{margin:0 0 1rem}.license-text-wrapper p:last-child{margin-bottom:0}.license-footer{text-align:center;border-top:1px solid var(--border-color);margin-top:2rem;padding-top:1rem}@media (width<=768px){.license-container{padding:1rem}.license-header h1{font-size:1.5rem}.license-text-wrapper{padding:1rem;font-size:.8rem;line-height:1.5}.close-license-button{padding:.6rem 1.2rem;font-size:.9rem}}.disk{--wall-height:22px;--disk-margin:6px;height:var(--wall-height);margin-top:var(--disk-margin);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;position:relative}.disk-wall{height:var(--wall-height);background:color-mix(in srgb, var(--disk-color) 100%, black 15%);pointer-events:none;position:absolute;top:0;left:0;right:0;box-shadow:0 3px 4px #0003}.disk-cap{aspect-ratio:5;background:linear-gradient(180deg, color-mix(in srgb, var(--disk-color) 100%, white 25%) 0%, var(--disk-color) 70%);pointer-events:none;border-radius:50%;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.disk-bottom{aspect-ratio:9;background:color-mix(in srgb, var(--disk-color) 100%, black 15%);pointer-events:none;border-radius:0 0 50% 50%/0 0 100% 100%;position:absolute;top:100%;left:0;right:0}@media (hover:hover) and (pointer:fine){.disk.draggable{cursor:grab}.disk.draggable:active{cursor:grabbing}}.disk.not-draggable{cursor:default}@media (hover:hover){.disk.draggable:hover{transform:scale(1.05)}}@media (width<=768px){.disk{--wall-height:16px;--disk-margin:2px}}.tower-container{flex-direction:column;align-items:center;gap:10px;display:flex}.tower{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:flex-end;align-items:center;width:clamp(85px,24vw,250px);height:350px;padding:10px;display:flex;position:relative}.tower:before{content:"";pointer-events:none;border:2px solid #0000;border-radius:10px;width:122%;transition:background-color .3s,border-color .3s;position:absolute;top:-24px;bottom:-34px;left:50%;transform:translate(-50%)}@media (hover:hover){.tower:hover:before{background-color:var(--tower-hover)}}.tower:active:before{background-color:var(--tower-hover)}.tower.selected:before{background-color:var(--tower-selected);border-color:var(--tower-selected-border)}.tower.drag-over:before{background-color:var(--tower-drag-over);border-color:var(--tower-drag-over-border);border-style:dashed}.pole-ring{--pole-margin:2px;width:20px;height:calc((var(--total-disks) + 2 - var(--real-disc-count)) * (var(--wall-height) + var(--disk-margin)) - var(--pole-margin));margin-top:var(--pole-margin)}.pole-ring .disk-wall{height:100%}.pole-ring .disk-bottom{aspect-ratio:6}@media (width<=768px){.pole-ring{--pole-margin:1px;width:14px}}.disk-stack{z-index:1;flex-direction:column-reverse;justify-content:flex-start;align-items:center;width:100%;min-height:280px;display:flex;position:relative}.tower-base{background:color-mix(in srgb, var(--tower-base) 100%, black 15%);width:122%;height:34px;box-shadow:var(--shadow-sm);margin-top:8px;position:relative}.tower-base-face{aspect-ratio:5;background:linear-gradient(180deg, color-mix(in srgb, var(--tower-base) 100%, white 25%) 0%, var(--tower-base) 70%);pointer-events:none;border-radius:50%;position:absolute;top:0;left:0;right:0;transform:translateY(-50%)}.tower-base:after{content:"";aspect-ratio:9;background:color-mix(in srgb, var(--tower-base) 100%, black 15%);border-radius:0 0 50% 50%/0 0 100% 100%;position:absolute;top:100%;left:0;right:0}@media (width<=768px){.tower{height:280px;padding:8px}.tower:before{top:-6px;bottom:-9px}.disk-stack{min-height:220px}.tower-base{height:22px;margin-top:5px}}.game{background-color:var(--bg-primary);flex-direction:column;align-items:center;gap:30px;min-height:100vh;padding:20px;display:flex}.game-header{text-align:center;max-width:800px}.game-header h1{color:var(--text-primary);text-shadow:2px 2px 4px #0000001a;margin-bottom:10px;font-size:3rem}.game-description{color:var(--text-secondary);font-size:1.1rem;line-height:1.6}.game-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:20px;display:flex}.control-group{align-items:center;gap:10px;display:flex}.control-group label{color:var(--text-primary);font-weight:600}.control-group select{border:2px solid var(--border-color);background-color:var(--bg-primary);color:var(--text-primary);cursor:pointer;border-radius:6px;padding:8px 12px;font-size:14px;transition:all .2s}.control-group select:hover{border-color:var(--tower-selected-border)}.control-group select:focus{border-color:var(--tower-selected-border);box-shadow:0 0 0 3px var(--tower-selected);outline:none}.reset-button{color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background-color:#3b82f6;border:none;border-radius:6px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}@media (hover:hover){.reset-button:hover{box-shadow:var(--shadow-md);background-color:#2563eb;transform:translateY(-1px)}}.reset-button:active{background-color:#2563eb;transform:translateY(0)}.game-stats{background-color:var(--bg-secondary);box-shadow:var(--shadow-sm);border-radius:10px;gap:40px;padding:20px 40px;display:flex}.stat{flex-direction:column;align-items:center;gap:5px;display:flex}.stat-label{color:var(--text-secondary);font-size:14px;font-weight:500}.stat-value{color:var(--text-primary);font-size:28px;font-weight:700}.towers-container{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:clamp(15px,5vw,40px);padding:20px;display:flex}.victory-message{background-color:var(--victory-bg);box-shadow:var(--shadow-lg);text-align:center;z-index:1000;border:1px solid var(--border-color);border-radius:20px;padding:40px 60px;animation:.3s ease-out slideIn;position:fixed;top:35%;left:50%;transform:translate(-50%,-50%)}@keyframes slideIn{0%{opacity:0;transform:translate(-50%,-60%)}to{opacity:1;transform:translate(-50%,-50%)}}.victory-message h2{color:var(--text-primary);margin-bottom:15px;font-size:2.5rem}.victory-message p{color:var(--text-secondary);margin-bottom:25px;font-size:1.2rem}.victory-message .perfect{color:var(--victory-perfect);margin-top:10px;font-weight:700;display:block}.play-again-button{color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);border:none;border-radius:8px;padding:12px 32px;font-size:16px;font-weight:600;transition:all .2s}@media (hover:hover){.play-again-button:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}}.play-again-button:active{transform:translateY(0)}@media (width<=768px){.game{gap:20px;padding:15px}.game-header h1{font-size:2rem}.game-description{font-size:.95rem}.game-stats{gap:20px;padding:15px 25px}.stat-value{font-size:24px}.towers-container{padding:10px}.victory-message{width:90%;max-width:400px;padding:25px 30px}.victory-message h2{font-size:2rem}.victory-message p{font-size:1rem}.reset-button,.play-again-button{min-width:44px;min-height:44px}}.game-footer{flex-wrap:wrap;justify-content:center;align-items:center;gap:15px;width:100%;max-width:800px;padding:20px;display:flex}.footer-button{color:#fff;cursor:pointer;box-shadow:var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background-color:#3b82f6;border:none;border-radius:6px;justify-content:center;align-items:center;padding:10px 24px;font-size:14px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}@media (hover:hover){.footer-button:hover{box-shadow:var(--shadow-md);background-color:#2563eb;transform:translateY(-1px)}}.footer-button:active{background-color:#2563eb;transform:translateY(0)}@media (width<=768px){.game-footer{gap:8px;padding:12px 15px}.footer-button{white-space:nowrap;flex:0 auto;min-height:44px;padding:10px 12px;font-size:12px}}.App{background-color:var(--bg-primary);width:100%;min-height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;transition:background-color .3s}
