:root{--bg-page:#faf8ef;--bg-card:#bbada0;--bg-soft:#eee4da;--bg-cell:#ccc0b3;--border-soft:#bbada0;--text-main:#776e65;--text-muted:#8f7a66;--color-neon-blue:#8f7a66;--color-neon-green:#6f8f6a;--color-neon-pink:#a66858;--color-neon-yellow:#b99264;--color-accent:#d7a84f;--font-primary:'Outfit',-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-mono:'Share Tech Mono',monospace}*{margin:0;padding:0;box-sizing:border-box;user-select:none;-webkit-user-select:none}body{font-family:var(--font-primary);background-color:var(--bg-page);color:var(--text-main);min-height:100vh;min-height:100dvh;display:flex;justify-content:center;align-items:flex-start;overflow-x:hidden}.app-container{width:100%;max-width:480px;min-height:calc(100dvh - 93px);margin-top:0;padding:12px 24px 20px;display:flex;flex-direction:column;justify-content:flex-start!important;gap:16px;overflow-y:auto!important}.game-header{display:flex;justify-content:space-between;align-items:center;width:100%;flex-shrink:0}.logo-text{font-size:1.8rem;font-weight:800;color:var(--text-main);line-height:1.1}.subtitle-text{font-size:.75rem;color:var(--text-muted);margin-top:4px;font-weight:400}.best-score-badge{background:var(--bg-card);border:none;border-radius:8px;padding:6px 14px;text-align:center;min-width:85px;box-shadow:0 2px 5px rgba(0,0,0,.05)}.badge-label{display:block;font-size:.55rem;font-weight:800;color:#eee4da;letter-spacing:1.5px;margin-bottom:2px}.badge-val{display:block;font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:#fff}.game-area{display:flex;flex-direction:column;gap:16px;width:100%;flex-shrink:0}.canvas-container{position:relative;width:100%;aspect-ratio:1/1;border-radius:12px;border:12px solid var(--bg-card);background:#f9f6f2;box-shadow:0 8px 24px rgba(0,0,0,.12);overflow:hidden}#circle-canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}.canvas-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:rgba(119,110,101,.58);font-size:.95rem;font-weight:600;pointer-events:none;letter-spacing:1px;text-align:center;padding:8px 16px;border-radius:999px;background:rgba(238,228,218,.78);border:1px solid rgba(187,173,160,.5);animation:2s ease-in-out infinite hintPulse;transition:opacity .4s}.canvas-hint.fade-out{opacity:0}.control-panel{background:var(--bg-card);border:none;border-radius:8px;padding:16px 20px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 4px 10px rgba(0,0,0,.05)}.score-display{display:flex;flex-direction:column}.score-title{font-size:.7rem;font-weight:800;color:#eee4da;letter-spacing:1px;text-transform:uppercase}.score-val{font-family:var(--font-mono);font-size:2.2rem;font-weight:700;color:#8f7a66;line-height:1.1;margin:2px 0;text-shadow:none}.score-rating{font-size:.8rem;font-weight:600;color:#fff7e8;transition:color .3s}.score-rating.great{color:#d7f0c4;text-shadow:none}.score-rating.good{color:#ffe0a8;text-shadow:none}.score-rating.bad{color:#ffd0c6;text-shadow:none}.primary-btn{background:#8f7a66;color:#fff;font-weight:800;border:none;border-radius:6px;padding:12px 22px;font-size:.95rem;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:.2s cubic-bezier(.4, 0, .2, 1)}.primary-btn:hover{background:#7f6a56;box-shadow:0 4px 10px rgba(0,0,0,.12)}.primary-btn:active{transform:translateY(0) scale(.97)}.reset-btn{background:#eee4da;border:2px solid #bbada0;color:var(--text-main);box-shadow:none}.reset-btn:hover{background:#e5dec9;color:var(--text-main);box-shadow:none}.leaderboard-section{background:var(--bg-card);border:none;border-radius:8px;padding:16px 20px;box-shadow:0 4px 10px rgba(0,0,0,.05);flex-shrink:0}.leaderboard-header h3{font-size:.95rem;font-weight:800;letter-spacing:1px;margin-bottom:12px;text-align:center;color:#eee4da}.leaderboard-table{width:100%;border-collapse:collapse;font-size:.85rem}.leaderboard-table td,.leaderboard-table th{padding:8px 10px;text-align:center}.leaderboard-table th{color:#eee4da;font-weight:700;font-size:.75rem;letter-spacing:.5px;text-transform:uppercase;border-bottom:1.5px solid rgba(238,228,218,.25)}.leaderboard-table td{border-bottom:1px solid rgba(238,228,218,.12);font-weight:600}.leaderboard-table tr:last-child td{border-bottom:none}.leaderboard-rank-1{color:#f2b179;font-weight:800}.leaderboard-rank-2{color:#edcf72;font-weight:800}.leaderboard-rank-3{color:#eee4da;font-weight:800}.leaderboard-rank-1 td{background:rgba(255,211,42,.02)}.game-instruction{font-size:.7rem;color:var(--text-muted);line-height:1.5;text-align:center;border-top:1px solid #e5dec9;padding-top:12px;margin-top:4px;flex-shrink:0}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(238,228,218,.73);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:20000;animation:.25s ease-out fadeIn}.modal-card{background:#faf8ef;border:3px solid #bbada0;padding:24px;border-radius:12px;width:90%;max-width:340px;box-shadow:0 10px 30px rgba(0,0,0,.2);text-align:center;animation:.25s cubic-bezier(.34,1.56,.64,1) pop}.modal-card h2{font-size:1.35rem;font-weight:800;color:var(--text-main);margin-bottom:10px;letter-spacing:.5px}.modal-card p{font-size:.85rem;color:var(--text-muted);line-height:1.4;margin-bottom:18px}.highlight-text{font-family:var(--font-mono);font-size:1.3rem;font-weight:800;color:#f2b179;text-shadow:none}#player-name-input{width:100%;padding:12px;border:2px solid #bbada0;border-radius:6px;font-size:1rem;font-weight:700;color:var(--text-main);background:#fff;text-align:center;outline:0;transition:.2s;margin-bottom:20px}#player-name-input:focus{border-color:#8f7a66;background:#fff;box-shadow:none}.modal-buttons{display:flex;gap:10px;justify-content:center}.modal-buttons button{flex:1;padding:10px 16px;font-size:.85rem}.secondary-btn{background:#eee4da;border:2px solid #bbada0;color:var(--text-main);border-radius:6px;cursor:pointer;font-weight:700;transition:.2s}.secondary-btn:hover{background:#e5dec9;border-color:#8f7a66}@keyframes hintPulse{0%,100%{opacity:.5;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.03)}}@keyframes pop{0%{transform:scale(.9);opacity:0}100%{transform:scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@media (max-width:360px){.app-container{padding:12px 16px}.logo-text{font-size:1.5rem}.score-val{font-size:1.8rem}.primary-btn{padding:10px 16px;font-size:.85rem}}.seo-description{position:absolute;top:220vh;left:50%;transform:translateX(-50%);width:100%;max-width:600px;padding:24px 16px;color:var(--text-muted);font-size:.8rem;line-height:1.6;box-sizing:border-box;pointer-events:none}.seo-description h2{font-size:1rem;margin-bottom:8px;color:var(--text-main)}.seo-description p{margin-bottom:12px}