@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&family=DM+Sans:wght@400;500&display=swap";:root{--bg-primary:#111114;--bg-secondary:#1a1a20;--bg-tertiary:#222228;--text-primary:#fff;--text-secondary:#888;--text-tertiary:#555;--accent:#5dcaa5;--accent-dark:#0f3d2e;--accent-text:#04342c;--danger:#e24b4a;--amber:#ef9f27;--border-default:#2a2a30;--font-display:"JetBrains Mono", monospace;--font-ui:"DM Sans", system-ui, sans-serif}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;margin:0;padding:0}.legal-content{-webkit-user-select:text;user-select:text}html,body{height:100%}body{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-ui);min-height:100vh}#app{flex-direction:column;min-height:100vh;display:flex}canvas{display:block}#game-canvas{z-index:1;width:100vw;height:100vh;position:fixed;top:0;left:0}.nav{border-bottom:.5px solid var(--border-default);background:var(--bg-primary);z-index:10;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.nav-left{align-items:center;gap:10px;display:flex}.back-badge{color:#666;border:1px solid var(--border-default);background:var(--bg-secondary);letter-spacing:.3px;border-radius:20px;align-items:center;gap:4px;margin-bottom:28px;padding:5px 14px;font-size:12px;text-decoration:none;transition:all .15s;display:inline-flex}.back-badge ion-icon{font-size:14px}.back-badge:hover{color:var(--text-primary);background:var(--bg-tertiary);border-color:#555}.logo-text{letter-spacing:-.5px;font-size:18px;font-weight:500}.logo-text span:first-child{color:var(--text-primary)}.logo-text span:last-child{color:var(--accent)}.hero{text-align:center;padding:64px 20px 32px;position:relative}.hero-icon{object-fit:contain;opacity:0;pointer-events:none;width:160px;height:160px;position:absolute;top:50%}.hero-icon-left{right:calc(50% + 280px);transform:translateY(-50%)scaleX(-1)scale(0)}.hero-icon-right{left:calc(50% + 280px);transform:translateY(-50%)scale(0)}.hero-icon.visible{opacity:1;pointer-events:auto;animation:.7s forwards pop-in}.hero-icon-left.visible{animation-name:pop-in-left}.hero-icon.hiding{animation:.5s forwards pop-out}.hero-icon-left.hiding{animation-name:pop-out-left}@keyframes pop-in{0%{opacity:0;transform:translateY(-50%)scale(0)}40%{opacity:1;transform:translateY(-50%)scale(1.35)}60%{transform:translateY(-50%)scale(.85)}80%{transform:translateY(-50%)scale(1.1)}to{opacity:1;transform:translateY(-50%)scale(1)}}@keyframes pop-in-left{0%{opacity:0;transform:translateY(-50%)scaleX(-1)scale(0)}40%{opacity:1;transform:translateY(-50%)scaleX(-1)scale(1.35)}60%{transform:translateY(-50%)scaleX(-1)scale(.85)}80%{transform:translateY(-50%)scaleX(-1)scale(1.1)}to{opacity:1;transform:translateY(-50%)scaleX(-1)scale(1)}}@keyframes pop-out{0%{opacity:1;transform:translateY(-50%)scale(1)}25%{transform:translateY(-50%)scale(1.2)}to{opacity:0;transform:translateY(-50%)scale(0)}}@keyframes pop-out-left{0%{opacity:1;transform:translateY(-50%)scaleX(-1)scale(1)}25%{transform:translateY(-50%)scaleX(-1)scale(1.2)}to{opacity:0;transform:translateY(-50%)scaleX(-1)scale(0)}}.hero-text{text-align:center}.overline{color:var(--accent);letter-spacing:3px;text-transform:uppercase;margin-bottom:20px;font-size:14px}.hero h1{letter-spacing:-1.5px;font-size:42px;font-weight:500;line-height:1.2}.hero h1 .dim{color:var(--text-tertiary)}@property --border-angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes border-rotate{to{--border-angle:360deg}}.search-hint{color:#949495;text-align:center;background-image:linear-gradient(var(--bg-secondary), var(--bg-secondary)), conic-gradient(from var(--border-angle), #5dcaa599 0deg, #5dcaa50d 60deg, #5dcaa50d 330deg, #5dcaa599 360deg);letter-spacing:.5px;background-origin:border-box;background-clip:padding-box,border-box;border:1px solid #0000;border-radius:20px;margin-top:20px;padding:6px 18px;font-size:13px;animation:4s linear infinite border-rotate;display:inline-block}.search-form{gap:10px;max-width:500px;margin-top:32px;margin-left:auto;margin-right:auto;display:flex}.search-wrapper{flex:1;min-width:0;position:relative}.search-input{background:var(--bg-secondary);border:1px solid var(--border-default);width:100%;color:var(--text-primary);font-family:var(--font-display);box-sizing:border-box;border-radius:12px;outline:none;padding:14px 18px;font-size:15px;transition:border-color .15s}.search-dropdown{background:var(--bg-secondary);border:1px solid var(--border-default);z-index:20;border-radius:10px;margin-top:4px;display:none;position:absolute;top:100%;left:0;right:0;overflow:hidden}.search-option{cursor:pointer;align-items:center;gap:10px;padding:10px 14px;transition:background .1s;display:flex}.search-option:hover,.search-option.active{background:var(--bg-tertiary)}.search-option-symbol{font-family:var(--font-display);color:var(--text-primary);min-width:65px;font-size:13px;font-weight:500}.search-option-name{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:#444}.search-btn{background:var(--accent);color:var(--accent-text);font-family:var(--font-ui);cursor:pointer;border:none;border-radius:12px;flex-shrink:0;padding:14px 28px;font-size:15px;font-weight:500;transition:filter .15s}.search-btn:hover{filter:brightness(1.1)}.search-btn:disabled{opacity:.5;cursor:not-allowed}.search-error{color:var(--danger);min-height:16px;margin-top:8px;font-size:12px}.section{margin-bottom:24px;padding:0 20px}.section-label{color:#666;letter-spacing:1.5px;text-transform:uppercase;max-width:1200px;margin-bottom:12px;margin-left:auto;margin-right:auto;padding-top:32px;font-size:11px}.ticker-grid{grid-template-columns:repeat(3,1fr);gap:14px;max-width:1200px;margin:0 auto;display:grid}.ticker-card{background:var(--bg-secondary);cursor:pointer;border:.5px solid var(--border-default);border-radius:12px;padding:18px;transition:border-color .2s,transform .15s}.ticker-card:hover{border-color:var(--accent);transform:translateY(-2px)}.ticker-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.ticker-name{font-family:var(--font-display);font-size:18px;font-weight:500}.ticker-subtitle{color:var(--text-tertiary);margin-top:10px;font-size:12px}.badge{font-size:10px;font-family:var(--font-ui);border-radius:4px;padding:2px 8px}.footer{text-align:center;border-top:.5px solid var(--bg-secondary);margin-top:auto;padding:20px}.footer span{color:#333;font-size:13px}.footer-links{justify-content:center;gap:16px;margin-top:10px;display:flex}.footer-links a{color:#444;font-size:11px;text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--text-secondary)}.footer-socials{justify-content:center;gap:12px;margin-bottom:12px;display:flex}.footer-social{border:1px solid var(--border-default);color:#444;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;text-decoration:none;transition:all .15s;display:flex}.footer-social:hover{color:var(--text-primary);background:var(--bg-secondary);border-color:#555}.legal-content{max-width:700px;color:var(--text-secondary);margin:0 auto;padding:24px 20px;font-size:14px;line-height:1.7}.legal-content h2{color:var(--text-primary);margin-bottom:20px;font-size:24px;font-weight:500}.legal-content h3{color:var(--text-primary);margin:24px 0 8px;font-size:16px;font-weight:500}.legal-content p{margin-bottom:12px}.legal-content ul{margin-bottom:12px;padding-left:20px}.legal-content li{margin-bottom:4px}.legal-content a{color:var(--accent);text-decoration:none}.legal-content a:hover{text-decoration:underline}.pregame-content{max-width:700px;margin:0 auto;padding:24px 20px}.ticker-info{margin-bottom:4px}.ticker-big{font-family:var(--font-display);letter-spacing:-1px;font-size:36px;font-weight:500}.company{color:var(--text-tertiary);margin-left:10px;font-size:14px}.perf-row{align-items:center;gap:10px;margin-bottom:20px;display:flex}.perf{font-size:14px}.period-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.period-row>div{gap:5px;display:flex}.smooth-toggle{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border:1px solid var(--border-default);font-size:11px;font-family:var(--font-ui);border-radius:8px;padding:5px 12px;transition:all .15s}.smooth-toggle:hover{background:var(--border-default);color:#ccc}.smooth-toggle.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.period-pill{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;font-size:12px;font-family:var(--font-ui);border:none;border-radius:8px;padding:6px 14px;transition:all .15s}.period-pill:hover{background:var(--border-default);color:#ccc}.period-pill.active{background:var(--accent);color:var(--accent-text)}.chart-box{border:.5px solid var(--bg-secondary);background:#0a0a0c;border-radius:12px;margin-bottom:20px;padding:20px}.stats-grid{grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:24px;display:grid}.stat-card{background:var(--bg-secondary);text-align:center;border-radius:8px;padding:12px}.stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:10px}.stat-value{font-family:var(--font-display);font-size:14px;font-weight:500}.cta{background:var(--accent);width:100%;color:var(--accent-text);font-size:17px;font-weight:500;font-family:var(--font-ui);cursor:pointer;letter-spacing:.3px;border:none;border-radius:14px;padding:16px;transition:all .15s;display:block}.cta:hover{filter:brightness(1.1)}.cta:active{transform:scale(.98)}#game-hud{font-family:var(--font-display);color:var(--text-secondary);z-index:10;pointer-events:none;font-size:12px;line-height:1.6;position:fixed;top:12px;left:16px}#game-hud .value{color:var(--accent)}#game-timer{font-family:var(--font-display);color:var(--text-primary);z-index:10;pointer-events:none;letter-spacing:1px;font-size:26px;font-weight:500;position:fixed;top:24px;left:50%;transform:translate(-50%)}#pause-btn{color:#fff6;cursor:pointer;z-index:10;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff26;border-radius:50%;outline:none;justify-content:center;align-items:center;width:28px;height:28px;margin-left:-98px;padding:0;font-size:14px;display:none;position:fixed;top:8px;left:50%}#reset-btn{color:#fff6;cursor:pointer;z-index:10;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff26;border-radius:50%;outline:none;justify-content:center;align-items:center;width:28px;height:28px;margin-left:70px;padding:0;font-size:16px;display:none;position:fixed;top:8px;left:50%;overflow:hidden}@media (pointer:coarse){#pause-btn,#reset-btn{display:flex}}#reset-btn span{margin-top:-1px;margin-left:-1px;display:inline-block;transform:rotate(-65deg)}#controls-hint{font-family:var(--font-ui);color:#555;z-index:20;pointer-events:none;background:#0c0c12bf;border:1px solid #3c3c5099;border-radius:8px;grid-template-columns:1fr 1fr;gap:12px 14px;padding:10px 14px;font-size:11px;display:grid;position:fixed;bottom:20px;right:20px}#controls-hint kbd{background:var(--bg-secondary);color:#666;border:1px solid var(--border-default);border-radius:3px;padding:2px 6px}.mobile-only{display:none}@media (pointer:coarse){.desktop-only{display:none!important}.mobile-only{display:flex!important}}#touch-hint{display:none!important}#touch-tutorial{z-index:50;background:#000000e0;flex-wrap:wrap;transition:opacity .4s;position:fixed;inset:0}.tt-zone{width:50%;height:45%;font-family:var(--font-display);color:#ffffff80;letter-spacing:2px;text-transform:uppercase;justify-content:center;align-items:center;font-size:16px;font-weight:500;display:flex}.tt-center{font-family:var(--font-display);color:#ffffff80;letter-spacing:2px;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tt-dismiss{font-family:var(--font-display);color:var(--accent-text);letter-spacing:2px;background:var(--accent);border-radius:20px;padding:8px 20px;font-size:11px;animation:1.5s ease-in-out infinite pulse;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}#mute-btn{color:#ffffff80;cursor:pointer;z-index:20;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffffff26;border-radius:50%;outline:none;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:14px;display:flex;position:fixed;top:80px;right:16px}#mute-btn:hover{color:#fffc;border-color:#ffffff4d}#debug-toggle{font-family:var(--font-display);color:#555;cursor:pointer;z-index:20;letter-spacing:1px;background:#00000080;border:1px solid #333;border-radius:4px;padding:4px 10px;font-size:10px;position:fixed;bottom:20px;left:20px}#debug-toggle.active{color:#0f0;background:#00320080;border-color:#0f0}#game-brand{font-family:var(--font-display);color:var(--accent);z-index:20;pointer-events:none;letter-spacing:.5px;font-size:14px;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.pause-overlay{z-index:120;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pause-card{background:var(--bg-primary);border:.5px solid var(--border-default);text-align:center;border-radius:16px;flex-direction:column;gap:10px;width:240px;padding:32px 24px;display:flex}.pause-title{font-family:var(--font-display);letter-spacing:3px;color:var(--text-primary);margin-bottom:8px;font-size:22px;font-weight:500}.results-overlay{z-index:110;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.results-card{background:var(--bg-primary);border:.5px solid var(--border-default);border-radius:16px;width:90%;max-width:340px;overflow:hidden}.results-header{text-align:center;padding:28px 20px}.results-overline{color:var(--accent);letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;font-size:11px}.results-sub{color:var(--text-tertiary);margin-bottom:16px;font-size:12px}.results-score{font-family:var(--font-display);letter-spacing:-1px;font-size:42px;font-weight:500;line-height:1}.results-pts{color:var(--text-tertiary);margin-top:4px;font-size:12px}.stars{justify-content:center;gap:4px;margin-top:14px;font-size:18px;display:flex}.star-on{color:var(--amber)}.star-off{color:#333}.results-stats{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;padding:0 16px;display:grid}.results-stat{background:var(--bg-secondary);text-align:center;border-radius:8px;padding:10px}.results-buttons{flex-direction:column;gap:8px;padding:0 16px 16px;display:flex}.btn-primary{background:var(--accent);color:var(--accent-text);font-size:14px;font-weight:500;font-family:var(--font-ui);cursor:pointer;border:none;border-radius:12px;width:100%;padding:13px}.btn-primary:hover{filter:brightness(1.1)}.btn-row{gap:8px;display:flex}.btn-secondary{background:var(--bg-secondary);color:var(--text-secondary);border:.5px solid var(--border-default);font-size:13px;font-family:var(--font-ui);cursor:pointer;border-radius:12px;flex:1;padding:11px}.btn-secondary:hover{background:var(--bg-tertiary);color:#ccc}.kofi-link{text-align:center;color:var(--text-tertiary);padding:8px 16px 16px;font-size:12px;text-decoration:none;transition:color .15s;display:block}.kofi-link:hover{color:var(--accent)}.kofi-icon{vertical-align:-3px;margin-right:2px;font-size:18px;display:inline-block}.share-card{background:var(--bg-primary);border:.5px solid var(--border-default);border-radius:16px;width:94%;max-width:520px;max-height:90vh;padding:40px 24px 24px;position:relative;overflow-y:auto}.share-close{color:#666;cursor:pointer;-webkit-tap-highlight-color:transparent;z-index:2;background:0 0;border:none;padding:6px;font-size:16px;line-height:1;position:absolute;top:10px;right:12px}.share-close:hover{color:#fff}.share-link-row{gap:8px;margin-bottom:16px;display:flex}.share-link-input{background:var(--bg-secondary);border:1px solid var(--border-default);color:var(--text-secondary);font-family:var(--font-display);border-radius:8px;outline:none;flex:1;min-width:0;padding:10px 12px;font-size:11px}.share-copy-btn{background:var(--bg-secondary);border:1px solid var(--border-default);cursor:pointer;color:#888;-webkit-tap-highlight-color:transparent;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;padding:0 14px;display:flex}.share-copy-btn:hover{color:#fff;border-color:#555}.share-preview{border:1px solid var(--border-default);border-radius:10px;margin-bottom:16px;overflow:hidden}.share-preview img{width:100%;display:block}.share-spinner{text-align:center;color:#555;font-size:12px;font-family:var(--font-ui);padding:24px 0}.share-socials{justify-content:center;gap:16px;margin-top:16px;display:flex}.share-social{background:var(--bg-secondary);border:1px solid var(--border-default);color:#888;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;text-decoration:none;transition:all .15s;display:flex}.share-social:hover{color:#fff;background:var(--bg-tertiary);border-color:#555}@media (width<=900px){.ticker-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=540px){.ticker-grid{grid-template-columns:1fr}.hero-icon{display:none!important}.hero h1{font-size:32px}}@media (width<=640px){.stats-grid{grid-template-columns:repeat(2,1fr)}.ticker-big{font-size:28px}}@media (pointer:coarse) and (orientation:landscape){#game-hud{font-size:10px;line-height:1.4;top:6px;left:10px}#game-hud>div:nth-child(2){margin:1px 0!important;font-size:16px!important}#game-hud>div:nth-child(2)>span:last-child{font-size:8px!important}#game-timer{font-size:18px;top:8px}#game-brand{font-size:10px;bottom:6px}#debug-toggle{padding:2px 6px;font-size:8px;bottom:6px;left:10px}#touch-hint>div{letter-spacing:1px;font-size:8px}.results-card{max-width:320px;max-height:90vh;overflow-y:auto}.results-header{padding:12px 12px 8px}.results-score{font-size:28px}.results-overline{margin-bottom:2px;font-size:9px}.results-sub{margin-bottom:6px;font-size:9px}.results-pts{margin-top:2px;font-size:10px}.stars{margin-top:8px;font-size:14px}.results-stats{gap:4px;margin-bottom:8px;padding:0 10px}.results-stat{padding:5px}.results-stat .stat-label{font-size:8px}.results-stat .stat-value{font-size:12px}.results-buttons{gap:5px;padding:0 10px 10px}.btn-primary{border-radius:8px;padding:8px;font-size:12px}.btn-secondary{border-radius:8px;padding:6px;font-size:10px}}
