:root{--bg: #0f1012;--panel: #17191e;--text: #fff;--muted: #9ea3a8;--accent: #b3cc14;--accent2: #cfdf6b;--accent2-subtle: #6b9adf;--danger: #EF5350;--gap: 16px;--lanes: 2;--glow-color: transparent}*{box-sizing:border-box}html,body{height:100%;overflow:hidden;overscroll-behavior:none}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;transition:background-color .4s ease-in-out}@keyframes text-flicker{0%{opacity:.8}5%{opacity:1}10%{opacity:.85}20%{opacity:1}30%{opacity:.9}40%{opacity:1}50%{opacity:.95}60%{opacity:1}70%{opacity:.8}80%{opacity:1}90%{opacity:.9}to{opacity:1}}@keyframes text-crazy-flicker{0%{opacity:.5}2%{opacity:1}8%{opacity:.6}9%{opacity:1}12%{opacity:.5}20%{opacity:1}25%{opacity:.7}30%{opacity:1}70%{opacity:.6}72%{opacity:1}99%{opacity:.7}to{opacity:1}}@keyframes text-breath{0%{opacity:.9}50%{opacity:1}to{opacity:.9}}@keyframes rainbow-pulse{0%{filter:hue-rotate(0deg);text-shadow:0 0 12px #fff,0 0 25px #ff0}25%{filter:hue-rotate(90deg);text-shadow:0 0 14px #fff,0 0 30px #0ff}50%{filter:hue-rotate(180deg);text-shadow:0 0 16px #fff,0 0 35px #f0f}75%{filter:hue-rotate(270deg);text-shadow:0 0 18px #fff,0 0 40px #0f0}to{filter:hue-rotate(360deg);text-shadow:0 0 12px #fff,0 0 25px #ff0}}.pph-glow-1 .stat-val,.pph-glow-1 .input-large{color:#2effd9;text-shadow:0 0 5px #5eead4,0 0 10px #22d3ee}.pph-glow-2 .stat-val,.pph-glow-2 .input-large{color:#00e5ff;text-shadow:0 0 6px #7dd3fc,0 0 14px #38bdf8,0 0 20px #0ea5e9;animation:text-breath 4s ease-in-out infinite}.pph-glow-3 .stat-val,.pph-glow-3 .input-large{color:#5fff00;text-shadow:0 0 8px #bbf7d0,0 0 16px #4ade80,0 0 26px #22c55e,0 0 35px #15803d;animation:text-breath 3s ease-in-out infinite}.pph-glow-4 .stat-val,.pph-glow-4 .input-large{color:#ff33e6;text-shadow:0 0 9px #f472b6,0 0 18px #ec4899,0 0 28px #db2777;animation:text-flicker 2.5s linear infinite}.pph-glow-5 .stat-val,.pph-glow-5 .input-large{color:#ff003c;text-shadow:0 0 10px #f87171,0 0 20px #ef4444,0 0 35px #dc2626,0 0 50px #7f1d1d;animation:text-crazy-flicker 3s linear infinite}.pph-glow-6 .stat-val,.pph-glow-6 .input-large{color:#ff3;text-shadow:0 0 12px #fef08a,0 0 24px #fde047,0 0 40px #facc15,0 0 60px #eab308,0 0 80px #ca8a04;animation:text-crazy-flicker 2.5s linear infinite}.pph-glow-7 .stat-val,.pph-glow-7 .input-large{color:#fff;text-shadow:0 0 15px #fff,0 0 30px #ff0,0 0 50px #0ff,0 0 70px #f0f,0 0 100px #0f0,0 0 130px #ff0;animation:rainbow-pulse 3s linear infinite}.screen{display:none;height:100%}.screen.active{display:block}.centered{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;gap:14px;padding:20px}.logo-img{width:150px;height:auto;margin-bottom:-10px}.title{font-size:52px;font-weight:800;margin:0}.subtitle{font-size:18px;color:var(--muted);margin:0 0 10px}.btn{appearance:none;border:0;cursor:pointer;padding:14px 22px;border-radius:999px;font-size:16px;font-weight:700;color:#fff;background:linear-gradient(90deg,var(--accent),var(--accent2));box-shadow:0 6px 20px #00000040;transition:transform .06s}.btn:active{transform:translateY(1px) scale(.99)}.btn.secondary{background:#333}.btn.secondary.active{background:#3a3a3a;outline:2px solid var(--accent2)}.menu-actions{display:flex;flex-direction:column;gap:8px;width:min(420px,92vw)}.menu-row{display:flex;gap:8px;width:100%}.hint-small{font-size:12px;color:var(--muted);max-width:420px;text-wrap:balance;margin-left:auto;margin-right:auto}.picker{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:2vmin;padding:clamp(12px,3vmin,20px)}.picker .title{font-size:clamp(32px,8vw,42px)}.cards{display:grid;grid-template-columns:1fr;gap:1.5vmin;padding-right:1vmin;width:min(780px,92vw);margin:0 auto;overflow-y:auto;min-height:0}@media (min-width: 820px){.cards{grid-template-columns:repeat(3,1fr)}}.card{background:#101317;border:2px solid transparent;border-radius:16px;padding:clamp(12px,2.5vmin,16px);display:flex;flex-direction:column;gap:1vmin;cursor:pointer;transition:border-color .2s,opacity .2s,filter .2s}.card h3{margin:0;font-size:clamp(16px,4.5vw,20px)}.card p{margin:0;color:var(--muted);font-size:clamp(13px,3vw,14px)}.picker .btn{padding:clamp(10px,2.5vmin,14px) clamp(18px,4vmin,22px);font-size:clamp(14px,3.5vmin,16px)}.card.selected{border-color:var(--accent2);box-shadow:0 8px 28px #00000040}.card.disabled{opacity:.5;pointer-events:none;cursor:not-allowed;filter:grayscale(80%)}.attempts-text{font-size:clamp(10px,2vw,12px);margin-top:1.5vmin!important;font-weight:300}.attempts-text.attempts-available{color:var(--accent2)}.attempts-text.attempts-unavailable{color:var(--muted)}.attempts-available{color:var(--accent2)}.attempts-unavailable{color:var(--muted)}.notification-dot{position:absolute;top:8px;right:8px;width:10px;height:10px;background-color:var(--accent);border-radius:50%;pointer-events:none;z-index:10;display:block}.card[data-mode=daily]{position:relative}.app{height:100dvh;max-width:900px;margin:0 auto;display:flex;flex-direction:column;position:relative;z-index:1;transition:box-shadow .4s ease-in-out}.top{height:50vh;flex:none;padding:12px 16px 0;display:flex;flex-direction:column;gap:8px;position:relative;isolation:isolate}.bottom{height:50vh;flex:none;position:relative;background:var(--panel);border-radius:16px 16px 0 0;padding:12px 12px 80px;padding-bottom:calc(80px + env(safe-area-inset-bottom));transition:background-color .4s ease-in-out}.top.has-neon-glow:before,.bottom.has-neon-glow:before{content:"";position:absolute;inset:0;box-shadow:inset 0 0 var(--glow-size, 0px) var(--glow-size, 0px) hsla(var(--hue),80%,60%,var(--glow-alpha, 0));animation:neon-breath var(--breath-speed, 3s) ease-in-out infinite;pointer-events:none;z-index:-1;opacity:1;transition:opacity .4s;border:2px solid hsla(var(--hue),80%,60%,calc(var(--glow-alpha, 0) * .5))}.bottom.has-neon-glow:before{border-radius:18px 18px 0 0}.top.has-neon-glow:before{border-radius:2px}.stats{display:flex;align-items:center;color:var(--muted);font-size:14px;padding:4px 2px;gap:10px;width:100%;position:relative;z-index:10}.stats>div{flex:1;text-align:center;min-width:0}.stat-val{font-size:22px;color:var(--text);font-weight:700;transition:text-shadow .4s ease-in-out,color .4s ease-in-out}.pph-emoji{font-size:18px;vertical-align:middle}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:999px;background:#222;color:#fff;font-weight:700;font-size:12px}.badge i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#888}.shapes-wrap{position:relative;flex:1;display:flex;justify-content:center;align-items:flex-end;gap:var(--gap);padding:0 var(--gap);overflow:hidden;z-index:10}.lane{position:relative;flex:0 0 calc((100% - (var(--lanes) - 1)*var(--gap)) / var(--lanes));height:100%;display:flex;align-items:flex-end;justify-content:center;overflow:hidden}.lane.hidden{display:none}.shape-block{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:100px;gap:8px;align-content:end;transform-origin:bottom center;transition:opacity .12s}.shape-cell{width:100px;height:100px;display:flex;align-items:center;justify-content:center}.shape-cell svg{width:100%;height:100%;display:block}.input-large{height:56px;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:800;color:var(--text);transition:color .15s ease,text-shadow .4s ease-in-out;min-height:56px;position:relative;z-index:10}.input-large.wrong{color:var(--danger)}.target-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#222;color:#fff;font-weight:700;font-size:14px}.target-pill .mini-shape{display:inline-block;width:28px;height:28px;vertical-align:middle;margin-right:4px}.drill-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#1f2937;color:#fff;font-weight:800;font-size:18px}.hype-effects-container{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 50% calc(100% + var(--glow-height, 0px)),hsla(var(--ember-hue, 0),100%,50%,var(--glow-opacity, 0)) 0%,transparent 50%);pointer-events:none}#hypeEffectsTop{z-index:1;border-radius:16px}#hypeEffectsBottom{z-index:0;border-radius:16px 16px 0 0}@keyframes neon-breath{50%{transform:scale(.99);opacity:.8}}@keyframes ember-rise{10%{opacity:var(--opacity)}80%{opacity:var(--opacity)}to{bottom:110%;opacity:0;transform:scale(.5)}}@keyframes aurora-sway{to{transform:translate(var(--sway)) skew(var(--skew))}}.hype-effects-container .aurora-band{position:absolute;inset:-50% 0;background:linear-gradient(to bottom,hsla(var(--hue),60%,50%,var(--opacity)) 0%,transparent 70%);filter:blur(40px);mix-blend-mode:screen;animation:aurora-sway var(--speed) ease-in-out infinite alternate;transform-origin:center;z-index:1}.hype-effects-container .ember{position:absolute;bottom:-20px;width:var(--size);height:var(--size);background:hsl(var(--ember-hue, 0),100%,70%);border-radius:50%;filter:blur(var(--blur));animation:ember-rise var(--duration) linear infinite;animation-delay:var(--delay);left:var(--x-pos);opacity:0;z-index:2}.hype-effects-container .ember-streak{position:absolute;bottom:-10%;width:3px;height:80px;background:linear-gradient(to top,hsl(var(--ember-hue, 0),100%,80%),transparent);animation:ember-rise var(--duration) linear infinite;animation-delay:var(--delay);left:var(--x-pos);opacity:0;z-index:3;filter:blur(1px)}#keyboard{position:absolute;inset:0;touch-action:none;z-index:1}.keypad-info-container-swipe{position:absolute;left:2vmin;bottom:2vmin;transform:none;display:flex;flex-direction:column;align-items:center;gap:8px;z-index:5;pointer-events:none}.keypad-info-container-swipe .combo,.keypad-info-container-swipe .score-chip{position:static;transform:none;font-size:16px;padding:6px 12px;width:110px;text-align:center}.drag-ghost{position:fixed;width:32px;height:32px;border-radius:50%;background:#0003;pointer-events:none;transform:translate(-16px,-16px);z-index:51}.submit-boundary{position:absolute;top:50vh;right:12px;transform:translateY(-50%);z-index:10;pointer-events:auto}.submit-boundary .btn{padding:14px 24px;font-size:16px;border-radius:999px;box-shadow:0 10px 28px #00000059;touch-action:manipulation}.action-boundary{position:absolute;top:50vh;left:12px;transform:translateY(-50%);z-index:55;display:flex;gap:8px}.action-boundary .btn{padding:10px 16px;font-size:14px;border-radius:999px;box-shadow:0 10px 28px #00000059}.combo{position:absolute;left:50%;bottom:64px;transform:translate(-50%);font-weight:800;font-size:14px;padding:6px 12px;border-radius:999px;background:#1e293b;color:#fff;opacity:.9;transition:background-color .2s,transform .15s}.combo.pop{transform:translate(-50%) scale(1.15)}.combo.streak-tier-silver{background-color:#718093}.combo.streak-tier-gold{background-color:#d69e2e}.combo.streak-tier-plat{background-color:#4fd1c5}.combo.streak-tier-dia{background-color:#805ad5;animation:pulse 1.5s infinite}@keyframes pulse{0%{box-shadow:0 0 #805ad580}70%{box-shadow:0 0 0 10px #805ad500}to{box-shadow:0 0 #805ad500}}.score-chip{position:absolute;right:12px;bottom:64px;font-weight:800;font-size:14px;padding:6px 10px;border-radius:999px;background:#1e293b;color:#fff;opacity:.9}#dbg{position:fixed;left:8px;bottom:8px;font:12px/1.2 system-ui;color:#fff;background:#e91e63;padding:6px 8px;border-radius:6px;display:none;z-index:99}.toast{position:fixed;bottom:16px;right:16px;background:#111827;color:#e5e7eb;padding:10px 14px;border-radius:10px;box-shadow:0 10px 20px #0006;opacity:0;transform:translateY(8px);transition:opacity .2s,transform .2s;z-index:1000;pointer-events:none}.toast.show{opacity:1;transform:translateY(0);pointer-events:auto}.scores-wrap{padding:18px;display:flex;flex-direction:column;gap:14px}#analytics .scores-wrap{flex-grow:1;min-height:0}#analytics .centered{height:100%;display:flex;flex-direction:column}#analytics .analytics-controls{flex-shrink:0}#analytics .analytics-chart{height:100%}.scores-header{display:flex;flex-direction:column;gap:12px}@media (min-width: 820px){.scores-header{flex-direction:row;align-items:center;justify-content:space-between}}.scores-source-tabs{display:flex;gap:8px;background:#0b0e12;padding:6px;border-radius:999px}.scores-source-tabs .btn{padding:8px 16px;font-size:14px;background:transparent;box-shadow:none}.scores-source-tabs .btn.active{background:#333}.scores-mode-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.scores-mode-tabs .btn{padding:8px 14px;font-size:14px}.scores-actions{display:flex;gap:8px;align-items:center}.scores-list{display:flex;flex-direction:column;gap:8px;max-height:60vh;overflow:auto;-webkit-overflow-scrolling:touch}.score-row{display:flex;justify-content:space-between;align-items:center;background:#111;border-radius:12px;padding:10px 12px}.score-row small{color:var(--muted)}.list-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;color:#9ea3a8;font-weight:700;background:#0b0e12;border-radius:10px}.head-cols{display:flex;gap:18px;align-items:center}.head-btn{cursor:pointer;-webkit-user-select:none;user-select:none;padding:6px 8px;border-radius:8px}.head-btn.active{color:#e2e8f0;background:#111827}.overlay-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:none;align-items:center;justify-content:center;z-index:999}.overlay-backdrop.show{display:flex}.overlay-card{width:min(720px,94vw);max-height:90vh;overflow:auto;background:#0d1117;border:1px solid #1f2937;border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:12px}.overlay-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.overlay-title{font-size:20px;font-weight:800;margin:0}.overlay-actions{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:wrap}#overlay .overlay-actions .btn{flex-grow:1;min-width:160px}@media (max-width: 600px){.run-head{font-size:32px;text-align:center;line-height:1.2}.run-head .pph{font-size:48px}.run-head .pph-label{font-size:18px}.run-head .pts,.run-head .acc,.run-head .mode{display:block;font-size:16px;margin-left:0}}.pb-line{font-size:14px;color:#22c55e;font-weight:800}.world-line{font-size:14px;color:#f59e0b;font-weight:800}.overlay-grid{display:grid;grid-template-columns:1fr;gap:8px}.overlay-row{display:flex;justify-content:space-between;align-items:center;background:#111;border-radius:12px;padding:8px 10px}.input{background:#0b0f14;color:#fff;border:1px solid #243041;border-radius:12px;padding:10px 12px;outline:none;width:100%}.analytics-controls{padding:0 18px;display:flex;flex-direction:column;gap:12px}.analytics-pills{display:flex;gap:8px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#222c3a;color:var(--muted);font-weight:700;font-size:12px}.analytics-actions{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center}.analytics-view-tabs{display:flex;gap:8px}.analytics-view-tabs .btn{padding:8px 14px;font-size:14px}.analytics-chart{flex:1;display:flex;align-items:center;justify-content:center;min-height:300px;position:relative;width:100%;max-width:500px;margin:0 auto}.dev-section{padding:12px;border-top:1px solid #1f2937}.dev-section h4{margin:0 0 8px;font-size:16px}.dev-label{display:flex;align-items:center;gap:8px;margin-bottom:8px;cursor:pointer}.dev-buttons{display:flex;gap:8px;flex-wrap:wrap}.dev-buttons .btn{padding:8px 14px;font-size:14px}.dev-buttons .btn.active{background:#42a5f5;color:#fff}.dev-slider{margin-bottom:12px}.dev-slider label{display:block;margin-bottom:6px;font-size:14px;color:var(--muted)}.dev-slider input[type=range]{width:100%}.dev-tools{position:absolute;top:50vh;left:50%;transform:translate(-50%,-50%);z-index:10;display:flex;gap:6px;background:#111827cc;padding:8px;border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dev-tools .btn{padding:6px 10px;font-size:12px;min-width:60px}#submitBoundary{background:linear-gradient(90deg,#e74c3c,#ff6b81)}@media (max-width: 600px){.run-head{font-size:32px;text-align:center;line-height:1.2}.run-head .pph{font-size:48px}.run-head .pph-label{font-size:18px}.run-head .pts,.run-head .acc,.run-head .mode{display:block;font-size:16px;margin-left:0}#overlay .overlay-actions{flex-direction:column;width:100%}#overlay .overlay-actions .btn{width:100%}}#tutorial-content{text-align:center;flex-grow:1;min-height:0;padding:0 10px}#tutorial-content h3{font-size:24px;margin-top:0;margin-bottom:12px}#tutorial-content p{font-size:16px;color:var(--muted);line-height:1.5;margin-bottom:20px;text-wrap:balance}#tutorial-dots .dot{width:10px;height:10px;border-radius:50%;background:#333;transition:background-color .3s}#tutorial-dots .dot.active{background:#42a5f5}#tutorial .overlay-card{display:flex;flex-direction:column;max-height:95vh;width:min(500px,94vw);padding-bottom:calc(16px + env(safe-area-inset-bottom))}#tutorial-content>div,#tutorial-content img{max-height:35vh;object-fit:contain;margin:16px auto;display:block}#tutorial-dots{display:flex;justify-content:center;gap:8px;margin:16px 0;flex-shrink:0}#tutorial .overlay-actions{flex-shrink:0;width:100%}.swipe-demo-svg{width:100%;max-width:250px;margin:0 auto;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}.swipe-demo-svg .text,.swipe-demo-svg .circle-label{font-family:monospace;text-anchor:middle;dominant-baseline:middle}.swipe-demo-svg .circle-label{font-size:24px;fill:#fff;font-weight:800}.swipe-demo-svg .text{font-size:22px;fill:#ccc}.swipe-demo-svg .line{stroke:#555;stroke-width:2}.swipe-demo-svg .circle{r:22;fill:#111;stroke:#555;stroke-width:2}.swipe-demo-svg .finger{fill:#42a5f5cc;stroke:#fff;stroke-width:3px;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}.swipe-demo-svg .path{stroke:#42a5f5;stroke-width:5px;stroke-dasharray:1000;stroke-dashoffset:1000;animation-duration:4s;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes swipe-to-2{0%,to{transform:translate(150px,175px);opacity:0}10%,40%{transform:translate(150px,100px);opacity:1}50%,90%{transform:translate(150px,175px);opacity:0}}@keyframes swipe-to-2-path{0%,10%{stroke-dashoffset:1000}25%{stroke-dashoffset:0}40%,to{stroke-dashoffset:-1000}}@keyframes swipe-to-6{0%,50%,90%,to{transform:translate(150px,175px);opacity:0}60%,85%{transform:translate(210px,175px);opacity:1}}@keyframes swipe-to-6-path{0%,60%{stroke-dashoffset:1000}75%{stroke-dashoffset:0}85%,to{stroke-dashoffset:-1000}}#tutorial-text-box{position:absolute;margin-bottom:3vh;top:5vh;left:50%;transform:translate(-50%);background:#111827e6;padding:12px 18px;border-radius:12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);text-align:center;width:min(400px,80vw);transition:background-color .3s ease}#tutorial-text-box p{color:#fff;font-size:16px;margin:0;line-height:1.5}#tutorial-sum-text{position:absolute;top:55%;left:50%;transform:translate(-50%);font-size:24px;font-weight:800;color:#fff;text-shadow:0 2px 6px black}#tutorial-swipe-guide-container{position:absolute;bottom:0;left:0;width:100%;height:50vh;pointer-events:none}.tutorial-bounding-box{position:absolute;border:3px dashed rgba(255,255,255,.6);border-radius:16px;display:none;pointer-events:none;transition:all .2s ease-in-out}.tutorial-count-pill{position:absolute;top:-15px;right:-15px;background:#fff;color:#000;font-weight:800;font-size:20px;padding:4px 12px;border-radius:999px;box-shadow:0 4px 10px #00000080}@keyframes shake-horizontal{0%,to{transform:translate(-50%)}10%,30%,50%,70%{transform:translate(calc(-50% - 8px))}20%,40%,60%,80%{transform:translate(calc(-50% + 8px))}}.text-box-shake{animation:shake-horizontal .5s ease-in-out}.text-box-warning{background-color:#442b38!important}@keyframes shake-flex-item{0%,to{transform:translate(0)}10%,30%,50%,70%{transform:translate(-8px)}20%,40%,60%,80%{transform:translate(8px)}}.input-shake{animation:shake-flex-item .5s ease-in-out}.settings-section{padding:12px;border-top:1px solid #1f2937}.settings-section h4{margin:0 0 12px;font-size:16px;color:var(--muted)}.settings-option label{display:block;margin-bottom:8px;font-size:14px}.settings-buttons{display:flex;gap:8px;flex-wrap:wrap}.settings-buttons .btn{padding:8px 14px;font-size:14px}.btn.btn-danger{background:linear-gradient(90deg,#c0392b,#e74c3c)}#dataButtonsContainer{display:flex;gap:12px;justify-content:center}#keyboardGuideSVG{position:fixed;z-index:50;width:min(34vw,200px);height:auto;pointer-events:none;filter:drop-shadow(0 4px 12px rgba(0,0,0,.5));transform:translate(-50%,-50%);display:none;opacity:.95}#keyboardGuideSVG.guide-active{opacity:.9}#shareImageContainer{position:absolute;left:-9999px;top:0;width:1080px;height:1920px;background-color:#0f1012;color:#fff;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial;display:flex;flex-direction:column;padding:60px;overflow:hidden}.share-glow{position:absolute;bottom:-20%;left:-20%;width:140%;height:100%;background:radial-gradient(circle,var(--glow-color) 0%,transparent 60%);opacity:.4;filter:blur(100px)}.share-header{display:flex;justify-content:space-between;align-items:center;width:100%;z-index:1}.share-logo{width:300px;height:auto}.share-user-info{text-align:right}.share-username{font-size:48px;font-weight:800;letter-spacing:1px}.share-date{font-size:32px;color:#9ea3a8}.share-main{display:flex;flex-grow:1;width:100%;align-items:center;justify-content:space-between;gap:40px;z-index:1}.share-stats-main{flex:1;display:flex;flex-direction:column;align-items:flex-start}.share-pph-container{display:flex;align-items:baseline;gap:20px}.share-rank{font-size:60px;font-weight:900;color:#f59e0b}.share-pph-value{font-size:220px;font-weight:900;line-height:1;text-shadow:0 0 20px rgba(255,255,255,.2);margin-left:-26px;margin-bottom:15px}.share-pph-label{font-size:80px;font-weight:700;color:#9ea3a8;margin-left:-8px;margin-top:-20px;margin-bottom:40px}.share-secondary-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 40px;width:100%}.stat-item{display:flex;flex-direction:column}.stat-label{font-size:32px;color:#9ea3a8}.stat-value{font-size:52px;font-weight:700}.share-charts{display:flex;flex-direction:column;gap:50px}.share-charts.center-single-chart{justify-content:center}.share-chart-container{width:380px;height:380px;text-align:center}.share-chart-label{margin-top:15px;font-size:28px;color:#9ea3a8;font-weight:600}.share-footer{text-align:center;width:100%;z-index:1}.share-challenge{font-size:42px;font-weight:600;text-wrap:balance}.matchmaking-spinner{width:60px;height:60px;border:5px solid #333;border-top-color:var(--accent2);border-radius:50%;animation:spin 1s linear infinite;margin:20px 0}@keyframes spin{to{transform:rotate(360deg)}}#lobby-player-cards{display:flex;gap:20px;width:min(500px,92vw);justify-content:center}.lobby-player-card{flex:1;background:#101317;border:2px solid #333;border-radius:16px;padding:16px;text-align:center;position:relative;overflow:hidden}.lobby-player-card.is-host:after{content:"HOST";position:absolute;top:8px;right:8px;font-size:10px;font-weight:800;color:var(--accent2);background:#cfdf6b1a;padding:2px 6px;border-radius:4px}.lobby-player-card .player-name{font-size:20px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lobby-player-card .ready-status{font-size:14px;margin-top:8px;color:var(--danger);font-weight:700}.lobby-player-card.is-ready{border-color:#22c55e}.lobby-player-card.is-ready .ready-status{color:#22c55e}#lobby-settings{background:#101317;border-radius:16px;padding:16px;margin-top:20px;display:flex;flex-direction:column;gap:12px}.setting-row{display:flex;justify-content:space-between;align-items:center}.setting-row label{font-size:16px;color:var(--muted)}.setting-row select{background:#333;color:#fff;border:1px solid #555;border-radius:8px;padding:8px 12px;font-size:16px;font-weight:600}.setting-row select:disabled{opacity:.6;cursor:not-allowed}.versus-player-card{flex:1;background:#111827;border-radius:12px;padding:16px;text-align:center;border:2px solid #374151;position:relative}.versus-player-card.winner{border-color:#f59e0b;box-shadow:0 0 20px #f59e0b66}.versus-player-card .status-banner{font-size:14px;font-weight:800;color:#f59e0b;margin-bottom:8px}.versus-player-card .player-name{font-size:20px;font-weight:700;color:var(--muted);margin-bottom:12px}.versus-player-card .final-score{font-size:48px;font-weight:900;color:#fff}.match-score-display{text-align:center;font-size:48px;font-weight:900;margin:0 0 16px;opacity:0;transform:scale(.9);transition:opacity .4s ease-out,transform .4s ease-out}.versus-results{display:flex;gap:16px;margin:16px 0;flex-direction:column}@media (min-width: 600px){.versus-results{flex-direction:row}}.versus-rematch-container{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:16px}.rematch-status{font-size:14px;color:var(--muted);font-weight:600;min-height:20px}.rematch-actions{display:flex;gap:8px}#numeric-keyboard{position:absolute;inset:0;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr);z-index:2;padding:4vmin;gap:2vmin}.keypad-btn{appearance:none;color:#fff;font-size:clamp(16px,8vmin,52px);font-weight:700;border-radius:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation;background:transparent;border:none;box-shadow:none;-webkit-tap-highlight-color:transparent;outline:none;transition:transform .15s ease,color .15s ease}.keypad-btn:hover{color:#fff;transform:scale(1.15)}.keypad-btn:active{transform:scale(.95);color:var(--muted)}#keypad-info-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%}#keypad-info-container .combo,#keypad-info-container .score-chip{position:static;transform:none;white-space:nowrap;font-size:16px;padding:6px 10px;width:90%;text-align:center}.scores-mode-select-container{display:flex;width:100%}.scores-mode-select-container select{flex-grow:1;text-align:center;font-weight:700;-moz-text-align-last:center;text-align-last:center}@media (min-width: 820px){.scores-mode-select-container{width:auto;min-width:180px}}.scores-container{display:flex;flex-direction:column;height:100%;padding:16px;gap:8px}.scores-header-redesigned{display:flex;justify-content:flex-start;align-items:center;flex-shrink:0;flex-wrap:nowrap;gap:8px}.scores-header-redesigned #scoresBack{margin-left:auto}.scores-header-redesigned .title{font-size:clamp(22px,5vmin,28px);margin:0;flex-shrink:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.scores-source-tabs .btn,.scores-header-redesigned>.btn{padding:1.8vmin 3.5vmin;font-size:clamp(12px,2.5vmin,16px);flex-shrink:0}.scores-mode-switcher{display:flex;align-items:center;justify-content:center;gap:1.5vmin;text-align:center;flex-shrink:0;width:100%}.mode-arrow{appearance:none;background:none;border:none;color:var(--muted);font-weight:700;cursor:pointer;padding:0 12px;font-size:clamp(24px,6vmin,32px)}.mode-display{min-width:45vw;max-width:280px;min-height:4.5em;display:flex;flex-direction:column;justify-content:center;font-weight:700;color:var(--accent2)}#scoresModeName{font-size:clamp(16px,4vmin,20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-display .date-nav{justify-content:center;align-items:center;gap:8px;margin-top:4px}#dateDisplay{min-width:12ch;font-size:clamp(12px,2.5vmin,14px);font-weight:600;color:var(--muted)}.mode-display .date-nav span{font-weight:600;color:var(--muted)}.mode-display .date-nav button{padding:2px 8px;font-size:12px;min-width:20px;line-height:1}#scoresList.scores-list-redesigned{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.score-row-redesigned{display:flex;align-items:center;gap:12px;background-color:#1a1c22;border-radius:8px;padding:8px;border:2px solid transparent}.rank-indicator{font-size:16px;font-weight:700;color:var(--muted);width:32px;text-align:center;flex-shrink:0}.player-info{flex:1;min-width:0}.player-name{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-subtext{font-size:12px;color:var(--muted)}.score-value{font-size:18px;font-weight:800;text-align:right;white-space:nowrap}.score-value .pph-emoji{font-size:14px}.score-row-redesigned.rank-1{background:linear-gradient(to right,#3a321e,#1a1c22 40%);border-color:#f7b733}.score-row-redesigned.rank-1 .rank-indicator{color:#f7b733}.score-row-redesigned.rank-2{background:linear-gradient(to right,#35383d,#1a1c22 40%);border-color:silver}.score-row-redesigned.rank-2 .rank-indicator{color:silver}.score-row-redesigned.rank-3{background:linear-gradient(to right,#3a2a22,#1a1c22 40%);border-color:#cd7f32}.score-row-redesigned.rank-3 .rank-indicator{color:#cd7f32}#menu .centered{justify-content:flex-start}.menu-footer{margin-top:auto;padding-bottom:env(safe-area-inset-bottom);width:100%;text-align:center}#lobby .centered,#analytics .centered{justify-content:flex-start;overflow-y:auto}.spectator-container{position:relative;width:100%;height:100%;background:var(--bg)}#swipe-trace-canvas{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.spectator-header{position:relative;z-index:10;display:flex;justify-content:space-between;padding:16px;font-weight:700}.spectator-player-panel{display:flex;flex-direction:column;padding:8px 12px;border-radius:8px}.spectator-player-panel.left{align-items:flex-start;background:linear-gradient(90deg,rgba(255,100,100,.2),transparent)}.spectator-player-panel.left .player-name{color:#ff8a8a}.spectator-player-panel.right{align-items:flex-end;background:linear-gradient(-90deg,rgba(100,150,255,.2),transparent)}.spectator-player-panel.right .player-name{color:#8aafff}.spectator-player-panel .player-name{font-size:18px}.spectator-player-panel .player-pph{font-size:14px;color:var(--muted)}.lobby-join-info{background:var(--panel);padding:12px 20px;border-radius:12px;text-align:center;margin:8px 0}.lobby-join-info p{margin:0 0 8px;color:var(--muted)}.lobby-code{font-size:32px;font-weight:800;letter-spacing:4px;color:var(--accent2)}.player-list-title{color:var(--muted);font-size:16px;margin:12px 0 4px}.lobby-player-list{width:min(420px,92vw);max-height:25vh;overflow-y:auto;background:var(--panel);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:8px}.lobby-player-item{background:#333;padding:10px 14px;border-radius:8px;font-weight:700;display:flex;justify-content:space-between;align-items:center}.player-host-badge{font-size:10px;padding:2px 6px;border-radius:4px;background:var(--accent);color:var(--bg)}#start-tournament-btn:disabled{background:#555;cursor:not-allowed;opacity:.6}#splash .centered{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-bottom:8vh}.splash-logo{width:calc(100vw - 60px);max-width:360px;margin-bottom:20px}.splash-content{display:flex;flex-direction:column;align-items:center;opacity:0;transition:opacity .6s ease-in-out}.splash-content.loaded{opacity:1}.loading-dots{display:flex;justify-content:center;margin-top:30px}.loading-dots div{width:12px;height:12px;background-color:var(--muted);border-radius:50%;margin:0 6px;animation:dot-pulse 1.4s infinite ease-in-out both}.loading-dots div:nth-child(1){animation-delay:-.32s}.loading-dots div:nth-child(2){animation-delay:-.16s}@keyframes dot-pulse{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}#lang-switcher button img{pointer-events:none}.reduced-motion *{transition-duration:1ms!important}.reduced-motion .has-neon-glow:before,.reduced-motion .pph-glow-2 .stat-val,.reduced-motion .pph-glow-2 .input-large,.reduced-motion .pph-glow-3 .stat-val,.reduced-motion .pph-glow-3 .input-large,.reduced-motion .pph-glow-4 .stat-val,.reduced-motion .pph-glow-4 .input-large,.reduced-motion .pph-glow-5 .stat-val,.reduced-motion .pph-glow-5 .input-large,.reduced-motion .pph-glow-6 .stat-val,.reduced-motion .pph-glow-6 .input-large,.reduced-motion .pph-glow-7 .stat-val,.reduced-motion .pph-glow-7 .input-large,.reduced-motion .hype-effects-container .aurora-band,.reduced-motion .hype-effects-container .ember,.reduced-motion .hype-effects-container .ember-streak,.reduced-motion .combo.streak-tier-dia{animation:none!important}.lefty .action-boundary{left:auto;right:12px}.lefty .submit-boundary{right:auto;left:12px}#tutorial-nav{display:flex;justify-content:space-between;align-items:center;margin-top:20px}@media (max-width: 480px){#tutorial-skip{display:none}#tutorial-nav{flex-direction:column;align-items:center;gap:16px;justify-content:center}#tutorial .overlay-card #tutorial-content{padding-top:40px}#tutorial-content h3{margin-bottom:8px;font-size:clamp(20px,6vw,24px)}#tutorial-content p{margin-bottom:12px;font-size:clamp(14px,4vw,15px)}#tutorial-content>div,#tutorial-content svg,#tutorial-content img{margin:8px auto}#auth .centered{padding-bottom:calc(40px + env(safe-area-inset-bottom))}#tutorial-mode-title{display:none!important}}.in-game-settings-btn{background:none;border:none;padding:8px;cursor:pointer;opacity:.6;transition:opacity .2s;flex-shrink:0;line-height:0}.in-game-settings-btn:hover{opacity:1}.in-game-settings-btn img{width:3vh;height:3vh}.passive-keyboard-guide{position:absolute;top:54vh;left:-0vh;width:min(30vw,150px);height:auto;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;pointer-events:none;z-index:5}.passive-keyboard-guide.visible{opacity:.3;visibility:visible}.lefty .passive-keyboard-guide{left:auto;right:16px}
