:root{--dark-black: #1c1c25;--black: #101016;--medium-black: #25252f;--soft-black: #3b3b44;--smoke: #c4c4c4;--white-smoke: #f7efdd;--blue: #2a4bb3;--dark-blue: #213e9a;--black-blue: #1f367e;--light-blue: #536cbb;--dark-purple: #4548a9;--purple: #7174db;--yellow: #ecb236;--dark-yellow: #b58622;--green: #44ac9e;--dark-green: #267267;--red: #e72a6e;--dark-red: #95234c;--font-main: "Barlow Condensed", sans-serif;--font-body: "DM Sans", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--dark-black);font-family:var(--font-main);font-weight:700;color:var(--smoke);font-size:13px;min-height:100vh;overflow-x:hidden}.dot-bg{background-image:radial-gradient(circle,rgba(229,229,229,.04) 20%,transparent 10%),radial-gradient(circle,rgba(229,229,229,.04) 20%,transparent 10%);background-size:13px 13px}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--dark-black);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .6s}.intro-chain{width:5px;height:60px;background:repeating-linear-gradient(to bottom,var(--yellow) 0px,var(--yellow) 5px,var(--dark-black) 5px,var(--dark-black) 9px);border-radius:2px;margin-bottom:-2px;animation:sway 2.5s ease-in-out infinite;transform-origin:top center}@keyframes sway{0%,to{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}.intro-badge{background:var(--blue);border-radius:1.3em;padding:1.2em;width:260px;box-shadow:0 0 2.5em #000c;animation:float 2.5s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-10px) rotate(1deg)}}.intro-screws{display:flex;justify-content:space-between;align-items:center;margin-bottom:.7em;color:var(--dark-blue)}.intro-screen-box{background:var(--black);border-radius:.7em;padding:1.4em 1.2em;margin-bottom:1.1em}.intro-screen-box h2{font-size:1.7em;color:#fff;margin-bottom:.3em;line-height:1.1}.intro-screen-box p{font-size:.95em;font-weight:400;font-family:var(--font-body);color:var(--smoke);line-height:1.5}.power-btn{background:var(--yellow);border:none;border-radius:50%;width:3.6em;height:3.6em;display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0 auto;box-shadow:0 5px 0 var(--dark-yellow),0 0 20px #ecb2364d;transition:transform .1s,box-shadow .1s;color:var(--dark-yellow);position:relative}.power-btn:hover{transform:translateY(-2px)}.power-btn:active{transform:translateY(5px);box-shadow:none}.click-bubble{background:#fff;color:var(--black);font-size:.85em;font-weight:900;letter-spacing:.05em;padding:.4em .7em;border-radius:100em;position:absolute;left:calc(100% + .5em);top:50%;transform:translateY(-50%);white-space:nowrap;animation:bubble-pulse 1.2s ease-in-out infinite}.click-bubble:before{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#fff}@keyframes bubble-pulse{0%,to{transform:translateY(-50%) scale(1)}50%{transform:translateY(-50%) scale(1.05)}}.intro-hint{margin-top:1.8em;color:var(--soft-black);font-size:.75em;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:.5em}.week-nav-btn{background:var(--dark-black);border:1px solid var(--soft-black);color:var(--smoke);border-radius:.35em;width:2.2em;height:2.2em;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:.85em;font-family:var(--font-main);font-weight:900;flex-shrink:0;transition:background .12s,border-color .12s,color .12s}.week-nav-btn:hover{background:var(--medium-black);border-color:var(--yellow);color:var(--yellow)}.week-nav-btn:active{transform:scale(.92)}.dashboard{padding:1.11em 1.11em 0;min-height:100vh;display:flex;flex-direction:column}.main-grid{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:1.11em;max-width:1400px;margin:0 auto}.card{background:var(--medium-black);border-radius:.83em;border:1px solid rgba(255,255,255,.04);box-shadow:0 0 1em var(--black);overflow:hidden}.card__container{display:flex;flex-direction:column;width:100%;height:100%;padding:1.11em}.card-titlebar{background:var(--dark-black);border-radius:.56em;display:flex;align-items:center;justify-content:space-between;padding:.8em 1em;margin-bottom:.9em}.card-titlebar__text{font-size:1.1em;letter-spacing:.07em;text-transform:uppercase;color:var(--smoke);flex:1}.card-titlebar__link{color:var(--soft-black);font-size:.9em;cursor:pointer;transition:color .1s}.card-titlebar__link:hover{color:var(--smoke)}.screws-row{display:flex;justify-content:space-between;align-items:center;color:var(--soft-black)}.screw{width:1.6em;height:1.6em;opacity:.5}.dot-grid{background-image:radial-gradient(circle,var(--soft-black) 1px,transparent 1px);background-size:5px 5px;width:36px;height:24px;opacity:.6}.profile-card{background:var(--blue);border-radius:1.1em;padding:.9em;box-shadow:0 0 1.5em var(--black);display:flex;flex-direction:column}.team-roster-card{border-radius:.83em;border:1px solid rgba(255,255,255,.05);box-shadow:0 0 1em var(--black);overflow:hidden}.team-roster-card.side-a{background:var(--medium-black);border-color:#e72a6e40}.team-roster-card.side-b{background:var(--medium-black);border-color:#536cbb40}.team-roster-header{display:flex;align-items:center;justify-content:space-between;padding:.7em .9em;border-bottom:1px solid rgba(255,255,255,.05)}.team-roster-header .team-name{font-size:1em;letter-spacing:.08em;font-weight:900}.side-a .team-roster-header .team-name{color:var(--red)}.side-b .team-roster-header .team-name{color:var(--light-blue)}.roster-list{padding:.5em;display:flex;flex-direction:column;gap:.3em;max-height:200px;overflow-y:auto}.roster-list::-webkit-scrollbar{width:4px}.roster-list::-webkit-scrollbar-track{background:transparent}.roster-list::-webkit-scrollbar-thumb{background:var(--soft-black);border-radius:2px}.roster-empty{text-align:center;padding:1.2em 0;font-size:.8em;color:var(--soft-black);font-family:var(--font-body);font-weight:400;letter-spacing:.05em}.roster-player{display:flex;align-items:center;justify-content:space-between;padding:.45em .6em;border-radius:.35em;background:var(--dark-black);cursor:pointer;border:1px solid transparent;transition:all .12s}.roster-player:hover{background:var(--soft-black)}.roster-player.selected-a{background:#e72a6e26;border-color:var(--red)}.roster-player.selected-b{background:#536cbb2e;border-color:var(--light-blue)}.roster-player .rp-name{font-size:.85em;font-weight:700;color:var(--white-smoke);letter-spacing:.03em}.roster-player .rp-stats{display:flex;gap:.6em;align-items:center}.rp-avg{font-size:.75em;color:var(--smoke)}.rp-hcp{font-size:.75em;color:var(--yellow);font-weight:900}.contact-btn{background:var(--green);color:var(--dark-green);border:none;border-radius:.35em;width:100%;padding:.85em;font-family:var(--font-main);font-size:1em;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 0 var(--dark-green);transition:transform .1s,box-shadow .1s;margin-bottom:1em}.contact-btn:hover{transform:translateY(-1px);box-shadow:0 5px 0 var(--dark-green)}.contact-btn:active{transform:translateY(4px);box-shadow:none}.cta-yellow-btn{background:var(--yellow);color:var(--dark-yellow);border:none;border-radius:.35em;padding:.85em;font-family:var(--font-main);font-size:1em;font-weight:900;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 0 var(--dark-yellow);transition:transform .1s,box-shadow .1s}.cta-yellow-btn:hover{transform:translateY(-1px);box-shadow:0 5px 0 var(--dark-yellow)}.cta-yellow-btn:active{transform:translateY(4px);box-shadow:none}.cta-red-btn{background:var(--red);color:#fff;border:none;border-radius:.35em;padding:.6em .8em;font-family:var(--font-main);font-size:.9em;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 3px 0 var(--dark-red);transition:transform .1s,box-shadow .1s}.cta-red-btn:hover{transform:translateY(-1px)}.cta-red-btn:active{transform:translateY(3px);box-shadow:none}.mode-btn{flex:1;background:var(--dark-blue);color:var(--light-blue);border:none;padding:.6em .4em;border-radius:.35em;cursor:pointer;font-family:var(--font-main);font-size:.88em;font-weight:900;letter-spacing:.06em;text-transform:uppercase;box-shadow:0 3px 0 var(--black-blue);transition:transform .1s,box-shadow .1s}.mode-btn.active{background:var(--yellow);color:var(--dark-yellow);box-shadow:0 3px 0 var(--dark-yellow)}.mode-btn.active-hcpcalc{background:var(--purple);color:#fff;box-shadow:0 3px 0 var(--dark-purple)}.mode-btn:hover{transform:translateY(-1px)}.mode-btn:active{transform:translateY(3px);box-shadow:none}.bottom-bar{display:flex;align-items:center;gap:.7em;padding:.75em 1.2em;background:var(--black);border-top:1px solid rgba(255,255,255,.07);flex-wrap:wrap}.bar-divider{width:1px;height:2em;background:#ffffff1a}.handicap-page{display:flex;flex-direction:column;min-height:100vh;padding:1.2em;max-width:480px;margin:0 auto}.handicap-page .back-btn{background:none;border:1px solid var(--soft-black);color:var(--smoke);border-radius:.35em;padding:.45em .9em;font-family:var(--font-main);font-size:.82em;font-weight:700;letter-spacing:.1em;cursor:pointer;align-self:flex-start;margin-bottom:.8em;transition:border-color .15s,color .15s}.handicap-page .back-btn:hover{border-color:var(--smoke);color:var(--white-smoke)}.handicap-page .title{text-align:center;margin-bottom:1em}.handicap-page .title h1{font-family:var(--font-main);font-size:1.4em;font-weight:900;color:var(--yellow);letter-spacing:.1em;text-transform:uppercase}.handicap-page .title p{font-family:var(--font-body);font-size:.78em;color:var(--soft-black);margin-top:.2em}.handicap-page select{width:100%;padding:.6em .8em;margin-bottom:1em;background:var(--dark-black);color:var(--white-smoke);border:1px solid var(--soft-black);border-radius:.35em;font-family:var(--font-main);font-size:.95em;font-weight:700;letter-spacing:.05em;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.score-table{width:100%;border-collapse:collapse;font-family:var(--font-main);font-size:.78em}.score-table th{padding:.3em .2em;color:var(--soft-black);font-weight:700;text-align:center;letter-spacing:.05em}.score-table td{padding:.2em .15em;text-align:center;border:1px solid rgba(255,255,255,.03);vertical-align:top}.frame-cell{min-width:2.2em}.frame-cell.current-frame{background:#ecb23614}.total-cell{color:var(--white-smoke);font-weight:900;font-size:1.1em}.hcp-total-cell{color:var(--green);font-weight:900;font-size:1.1em}.cell-rolls{display:flex;gap:.15em;justify-content:center;margin-bottom:.15em}.roll-badge{width:1.3em;height:1.3em;border-radius:.2em;display:flex;align-items:center;justify-content:center;font-size:.85em;font-weight:900;cursor:pointer}.roll-X{background:var(--yellow);color:var(--dark-yellow)}.roll-spare{background:var(--green);color:#fff}.roll-num{background:var(--dark-black);color:var(--smoke)}.roll-gutter{background:var(--dark-black);color:var(--soft-black)}.frame-score{font-size:.9em;color:var(--smoke)}.game-select-btn{display:flex;justify-content:space-between;align-items:center;background:var(--dark-black);border:1px solid var(--soft-black);color:var(--white-smoke);border-radius:.4em;padding:.5em .75em;font-family:var(--font-main);font-weight:700;font-size:.88em;letter-spacing:.05em;cursor:pointer;width:100%;transition:border-color .15s,background .15s}.game-select-btn:hover{border-color:var(--yellow)}.game-select-btn.active{border-color:var(--yellow);background:#ecb2361f}@media(max-width:1024px){.main-grid{grid-template-columns:1fr 1fr}}@media(max-width:768px){.main-grid{grid-template-columns:1fr}}@media(max-width:480px){.bottom-bar{padding:.5em .8em;gap:.4em}}.dashboard-stack{display:flex;flex-direction:column;gap:1em;max-width:480px;margin:0 auto;padding-bottom:1.5em;width:100%}@media(min-width:600px){.dashboard-stack{max-width:520px}}@media(min-width:1024px){.dashboard-stack{max-width:560px}}.hcp-edge-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.4em 1em;gap:.5em}.hcp-edge-team-name{font-size:1.3em;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--yellow);text-shadow:0 0 18px rgba(236,178,54,.7),0 0 40px rgba(236,178,54,.3);text-align:center;line-height:1.1}.hcp-edge-label-sm{font-size:.72em;letter-spacing:.14em;color:var(--soft-black);text-transform:uppercase;text-align:center}#hcp-diff-number{font-size:5em;font-weight:900;color:var(--yellow);line-height:1;text-align:center;text-shadow:0 0 10px rgba(236,178,54,.9),0 0 25px rgba(236,178,54,.6),0 0 60px rgba(236,178,54,.3);animation:hcp-pulse 2.4s ease-in-out infinite}@keyframes hcp-pulse{0%,to{text-shadow:0 0 10px rgba(236,178,54,.9),0 0 25px rgba(236,178,54,.6),0 0 60px rgba(236,178,54,.3)}50%{text-shadow:0 0 16px rgba(236,178,54,1),0 0 40px rgba(236,178,54,.8),0 0 90px rgba(236,178,54,.5)}}.hcp-edge-pins-label{font-size:.78em;color:var(--smoke);letter-spacing:.08em}.hcp-edge-divider{width:60%;height:1px;background:linear-gradient(to right,transparent,var(--soft-black),transparent);margin:.4em 0}body{font-size:16px}@media(max-width:480px){body{font-size:17px}}.week-nav-btn{width:2.8em;height:2.8em;font-size:1em;border-radius:.5em}.game-select-btn{padding:.7em .9em;font-size:1em;border-radius:.5em}.card__container{padding:1.2em}@media(max-width:480px){.card__container{padding:1em}}.hcp-edge-label-sm{font-size:.82em;color:var(--smoke);letter-spacing:.12em}.hcp-edge-pins-label{font-size:.9em;letter-spacing:.1em}.hcp-edge-team-name{font-size:1.5em}.card select,.card__container select{font-size:1em!important;padding:.6em .8em!important;min-height:2.8em}.roster-player{padding:.55em .7em;min-height:2.8em}.roster-player .rp-name{font-size:.95em}.rp-avg,.rp-hcp{font-size:.85em}.roster-list{max-height:260px}.card-titlebar__text{font-size:1.2em;letter-spacing:.08em}.card-titlebar{padding:.85em 1em}.profile-card{padding:1em}@media(max-width:480px){.dashboard-stack{padding-left:.5em;padding-right:.5em}}@media(max-width:480px){.intro-badge{width:85vw;max-width:320px}}.contact-btn{padding:.9em;font-size:1.05em}.cta-yellow-btn,.cta-red-btn{padding:.8em 1em;min-height:2.8em}.mode-btn{padding:.7em .5em;font-size:.95em}@media(max-width:480px){.score-table{font-size:.85em}}
