@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Oswald:wght@400;500;600&display=swap";:root{font-family:DM Mono,monospace;color:#f3ead8;background:#050907;font-synthesis:none;--cream:#f3ead8;--muted:#aaa58f;--gold:#d6aa55;--green:#55cf8a;--red:#ee654f;--blue:#559bd6;--ink:#070b09;--panel:rgba(8,13,10,.88);--line:rgba(243,234,216,.2)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}body{background:radial-gradient(circle at 50% 25%,#15261d,#050907 68%)}button,input{font:inherit}button{color:inherit}[hidden]{display:none!important}#app{position:relative;isolation:isolate}#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.game-ui.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.brand{position:absolute;top:max(24px,env(safe-area-inset-top));left:max(28px,env(safe-area-inset-left));pointer-events:none;text-shadow:0 2px 18px #000;transition:opacity .3s}.brand__eyebrow,.modal__kicker{display:block;margin-bottom:4px;color:var(--gold);font-size:9px;font-weight:500;letter-spacing:.32em}h1{margin:0;font-family:Oswald,sans-serif;font-size:clamp(27px,3vw,46px);font-weight:500;line-height:.94;letter-spacing:-.04em}h1 i,.intro h2 i{color:var(--gold);font-style:normal}.match-hud{position:absolute;top:max(20px,env(safe-area-inset-top));right:max(26px,env(safe-area-inset-right));display:grid;grid-template-columns:minmax(125px,auto) 52px minmax(125px,auto);border:1px solid var(--line);border-radius:3px;background:#050a07c7;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:opacity .3s}.player-card{position:relative;min-width:132px;padding:10px 14px;opacity:.52;transition:opacity .25s,background .25s}.player-card.is-active{opacity:1;background:#d6aa5517}.player-card.is-active:after{content:"";position:absolute;left:12px;right:12px;bottom:-1px;height:2px;background:var(--gold);box-shadow:0 0 12px var(--gold)}.player-card span,.match-shot span{display:block;color:var(--muted);font-size:7px;letter-spacing:.16em}.player-card strong{display:block;margin-top:4px;font-family:Oswald,sans-serif;font-size:16px;font-weight:500}.player-card i{display:block;margin-top:2px;color:var(--gold);font-size:7px;font-style:normal;letter-spacing:.12em}.match-shot{display:grid;place-content:center;border-inline:1px solid var(--line);text-align:center}.match-shot strong{margin-top:2px;font-family:Oswald,sans-serif;font-size:20px;font-weight:500}.turn-chip{position:absolute;top:92px;left:50%;display:flex;align-items:center;gap:9px;transform:translate(-50%);max-width:min(460px,calc(100vw - 30px));padding:8px 13px;border:1px solid rgba(255,255,255,.12);border-radius:99px;background:#050b08bd;color:#dbd6c6;font-size:9px;letter-spacing:.08em;text-align:center;text-transform:uppercase;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .25s,transform .25s}.turn-chip__dot{flex:0 0 auto;width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 9px var(--green)}.turn-chip.is-busy .turn-chip__dot{background:var(--gold);box-shadow:0 0 9px var(--gold);animation:pulse 1s infinite alternate}.turn-chip.is-foul .turn-chip__dot{background:var(--red);box-shadow:0 0 9px var(--red)}.power{position:absolute;top:20px;left:50%;width:min(310px,29vw);transform:translate(-50%);padding:9px 12px 8px;border:1px solid rgba(214,170,85,.32);background:#050a07bd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .3s}.power__readout{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}.power__readout span{color:var(--muted);font-size:7px;letter-spacing:.18em}.power__readout strong{color:var(--cream);font-family:Oswald,sans-serif;font-size:17px;font-weight:500;line-height:1}.power__track{position:relative;height:7px;overflow:hidden;background:#ffffff1f}.power__track div{width:0;height:100%;background:linear-gradient(90deg,#6ecf91,#e3b24e 65%,#eb5b45);box-shadow:0 0 14px #e3a24ecc;transition:width 30ms linear}.power__track i{position:absolute;top:0;bottom:0;width:1px;background:#00000059}.power__track i:nth-of-type(1){left:25%}.power__track i:nth-of-type(2){left:50%}.power__track i:nth-of-type(3){left:75%}.power small{display:block;margin-top:5px;color:#f3ead859;font-size:6px;letter-spacing:.14em;text-align:center}.actions{position:absolute;right:max(28px,env(safe-area-inset-right));bottom:max(25px,env(safe-area-inset-bottom));display:flex;gap:7px;transition:opacity .3s}.actions button,.modal button{border:1px solid var(--line);border-radius:2px;padding:10px 12px;background:#060c09c2;color:var(--muted);font-size:8px;letter-spacing:.1em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:color .18s,border-color .18s,background .18s,transform .18s}.actions button:hover{color:var(--cream);border-color:#ffffff6b;transform:translateY(-1px)}.actions button span{color:var(--gold);margin-right:4px}.actions .actions__primary{color:var(--cream);background:#9065285c;border-color:#d6aa558c}.hint{position:absolute;left:max(28px,env(safe-area-inset-left));bottom:max(31px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:9px;max-width:310px;color:#f3ead894;font-size:7px;line-height:1.5;letter-spacing:.07em;text-transform:uppercase;pointer-events:none;transition:opacity .4s}.hint__mouse{position:relative;flex:0 0 auto;width:13px;height:19px;border:1px solid rgba(255,255,255,.45);border-radius:8px}.hint__mouse i{position:absolute;top:3px;left:5px;width:1px;height:4px;background:var(--gold);animation:wheel 1.4s ease infinite}.pocket-calls{position:absolute;inset:0;pointer-events:none;transition:opacity .25s}.pocket-calls p{position:absolute;top:132px;left:50%;transform:translate(-50%);margin:0;padding:7px 11px;border:1px solid rgba(214,170,85,.42);background:#050a07db;color:var(--gold);font-size:8px;letter-spacing:.15em}.pocket-calls button{position:absolute;display:grid;place-items:center;width:30px;height:30px;transform:translate(-50%,-50%);border:1px solid var(--gold);border-radius:50%;background:#070c09db;color:var(--gold);font-size:9px;cursor:pointer;pointer-events:auto;box-shadow:0 0 0 5px #d6aa5514,0 0 18px #d6aa5540;animation:pocketPulse 1.1s ease-in-out infinite alternate}.pocket-calls button:hover,.pocket-calls button.is-selected{background:var(--gold);color:#151006;transform:translate(-50%,-50%) scale(1.18)}.event-banner{position:absolute;top:50%;left:50%;z-index:8;width:min(510px,calc(100vw - 36px));transform:translate(-50%,-50%);padding:22px 34px;border-block:1px solid rgba(238,101,79,.58);background:linear-gradient(90deg,transparent,rgba(9,13,10,.94) 13%,rgba(9,13,10,.94) 87%,transparent);text-align:center;pointer-events:none}.event-banner.is-showing{animation:eventIn 1.65s cubic-bezier(.22,.8,.25,1) both}.event-banner.is-good{border-color:#55cf8a9e}.event-banner.is-turn{border-color:#d6aa559e}.event-banner span{display:block;color:var(--red);font-size:8px;letter-spacing:.3em}.event-banner.is-good span{color:var(--green)}.event-banner.is-turn span{color:var(--gold)}.event-banner strong{display:block;margin:4px 0;font-family:Oswald,sans-serif;font-size:clamp(32px,5vw,58px);font-weight:500;letter-spacing:.02em}.event-banner p{margin:0;color:var(--muted);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.intro{position:absolute;inset:0;z-index:15;display:grid;place-items:center;padding:24px;overflow:auto;background:radial-gradient(circle at 50% 46%,#183a2ad6,#030705f5 68%),linear-gradient(125deg,#050906,#111b13);transition:opacity .5s,visibility .5s}.intro.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.intro__noise{position:fixed;inset:0;opacity:.15;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.28'/%3E%3C/svg%3E")}.intro__panel{position:relative;width:min(650px,100%);padding:34px 42px 27px;border:1px solid rgba(214,170,85,.35);background:#050a07e0;box-shadow:0 30px 120px #0000008c}.intro__panel:before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.05);pointer-events:none}.intro__kicker{color:var(--gold);font-size:8px;letter-spacing:.32em}.intro h2{margin:7px 0 0;font-family:Oswald,sans-serif;font-size:clamp(45px,8vw,76px);font-weight:500;line-height:.9;letter-spacing:-.045em}.intro__lede{margin:10px 0 23px;color:var(--muted);font-size:10px}.mode-select{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{position:relative;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;padding:15px 16px;border:1px solid var(--line);background:#ffffff06;text-align:left;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.mode-card:hover{transform:translateY(-2px);border-color:#d6aa5599}.mode-card.is-selected{border-color:var(--gold);background:#d6aa551f}.mode-card>span{grid-row:1/3;align-self:center;color:var(--gold);font-family:Oswald,sans-serif;font-size:25px}.mode-card strong{font-family:Oswald,sans-serif;font-size:17px;font-weight:500}.mode-card small{color:var(--muted);font-size:7px;letter-spacing:.05em}.settings-toggle{display:flex;width:100%;align-items:center;margin-top:10px;padding:11px 13px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:8px;letter-spacing:.13em;cursor:pointer}.settings-toggle span{margin-right:8px;color:var(--gold)}.settings-toggle i{margin-left:auto;color:var(--cream);font-style:normal;font-size:14px}.rule-settings{max-height:min(320px,39vh);overflow-y:auto;border:1px solid var(--line);border-top:0;background:#ffffff05}.rule-settings__head{display:flex;justify-content:space-between;padding:11px 13px;border-bottom:1px solid var(--line);color:var(--muted);font-size:7px;letter-spacing:.14em}.rule-settings__head a{color:var(--gold);text-decoration:none}.rule-settings label{display:grid;grid-template-columns:20px 1fr;gap:8px;padding:9px 13px;border-bottom:1px solid rgba(255,255,255,.07);cursor:pointer}.rule-settings label:last-child{border:0}.rule-settings label.is-locked{opacity:.6}.rule-settings input{width:14px;height:14px;margin:2px 0 0;accent-color:var(--gold)}.rule-settings strong{display:block;color:var(--cream);font-size:8px;font-weight:500;letter-spacing:.04em}.rule-settings small{display:block;margin-top:3px;color:var(--muted);font-size:7px;line-height:1.35}.start-btn{display:flex;width:100%;justify-content:space-between;margin-top:14px;padding:14px 17px;border:1px solid var(--gold);background:var(--gold);color:#161006;font-size:10px;font-weight:500;letter-spacing:.15em;cursor:pointer;transition:filter .2s,transform .2s}.start-btn:hover{filter:brightness(1.12);transform:translateY(-1px)}.intro__note{margin:11px 0 0;color:#f3ead866;font-size:7px;text-align:center;letter-spacing:.08em;text-transform:uppercase}.modal{position:absolute;inset:0;z-index:14;display:grid;place-items:center}.modal__scrim{position:absolute;inset:0;background:#030805c7;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.modal__card{position:relative;width:min(440px,calc(100vw - 36px));padding:39px;border:1px solid rgba(214,170,85,.4);background:linear-gradient(145deg,#101b14,#070b09);box-shadow:0 30px 100px #000000a6;text-align:center;animation:modalIn .4s ease both}.modal__card:before{content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.06);pointer-events:none}.modal h2{margin:8px 0;font-family:Oswald,sans-serif;font-size:42px;font-weight:500;text-transform:uppercase}.modal p{margin:0 0 25px;color:var(--muted);font-size:10px;line-height:1.65}.modal__stats{display:grid;grid-template-columns:1.5fr 1fr;margin-bottom:20px;border-block:1px solid var(--line)}.modal__stats div{padding:14px}.modal__stats div:first-child{border-right:1px solid var(--line)}.modal__stats span{display:block;color:var(--muted);font-size:7px;letter-spacing:.14em}.modal__stats strong{display:block;margin-top:4px;color:var(--gold);font-family:Oswald,sans-serif;font-size:23px;font-weight:500}.modal button{width:100%;padding:13px;border-color:var(--gold);background:var(--gold);color:#17120a;font-weight:500}.modal button.modal__secondary{margin-top:7px;border-color:var(--line);background:transparent;color:var(--muted)}.modal.is-loss .modal__kicker{color:var(--red)}.modal.is-loss .modal__card{border-color:#ee654f73}.loading{position:absolute;inset:0;z-index:20;display:grid;place-content:center;gap:15px;background:#060b08;text-align:center;transition:opacity .65s,visibility .65s}.loading.is-hidden{opacity:0;visibility:hidden}.loading__mark{display:grid;place-items:center;width:58px;height:58px;margin:auto;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font-family:Oswald,sans-serif;font-size:22px;animation:breathe 1.4s ease-in-out infinite alternate}.loading p{margin:0;color:var(--muted);font-size:8px;letter-spacing:.3em}@keyframes pulse{to{opacity:.45}}@keyframes breathe{to{transform:scale(.94);opacity:.55}}@keyframes wheel{50%{transform:translateY(5px);opacity:.2}}@keyframes pocketPulse{to{box-shadow:0 0 0 8px #d6aa5505,0 0 28px #d6aa5573}}@keyframes eventIn{0%{opacity:0;transform:translate(-50%,-43%) scale(.94)}18%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-56%) scale(1.02)}}@keyframes modalIn{0%{opacity:0;transform:translateY(14px) scale(.97)}}@media(max-width:820px){.brand{top:14px;left:16px}.brand__eyebrow{display:none}h1{font-size:28px}.match-hud{top:12px;right:12px;grid-template-columns:95px 38px 95px}.player-card{min-width:0;padding:8px}.player-card span{font-size:6px}.player-card strong{font-size:12px}.player-card i{font-size:6px}.turn-chip{top:66px;font-size:7px}.power{top:auto;bottom:64px;left:16px;width:min(210px,52vw);transform:none}.actions{right:14px;bottom:14px}.actions button:not(.actions__primary){width:37px;overflow:hidden;white-space:nowrap;color:transparent;padding-inline:10px}.actions button span{color:var(--gold);font-size:12px}.hint{display:none}.pocket-calls p{top:100px}}@media(max-width:560px){.brand h1{font-size:23px}.match-hud{grid-template-columns:76px 32px 76px}.player-card{padding:7px 6px}.player-card strong{font-size:10px}.player-card i{letter-spacing:0}.intro{align-items:start;padding:12px}.intro__panel{padding:25px 20px 20px;margin-top:8px}.intro h2{font-size:48px}.intro__lede{margin-bottom:17px}.mode-select{grid-template-columns:1fr}.rule-settings{max-height:31vh}.power{bottom:58px}.actions .actions__primary{padding-inline:9px;font-size:7px}}.discipline-select{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.discipline-card{position:relative;display:grid;grid-template-columns:36px 1fr;grid-template-rows:auto auto;padding:13px 16px;border:1px solid var(--line);background:#ffffff06;text-align:left;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.discipline-card:hover{transform:translateY(-2px);border-color:#d6aa5599}.discipline-card.is-selected{border-color:var(--gold);background:#d6aa551f}.discipline-card>span{grid-row:1/3;align-self:center;color:var(--gold);font-family:Oswald,sans-serif;font-size:25px}.discipline-card strong{font-family:Oswald,sans-serif;font-size:15px;font-weight:500}.discipline-card small{color:var(--muted);font-size:7px;letter-spacing:.05em}.opponent-select{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.opponent-select button{padding:9px;border:1px solid var(--line);background:transparent;color:var(--muted);font-size:7px;letter-spacing:.08em;cursor:pointer}.opponent-select button.is-selected{border-color:var(--gold);background:#d6aa551a;color:var(--cream)}.snooker-only{display:none!important}body.is-snooker .snooker-only{display:grid!important}body.is-snooker .pool-only{display:none!important}@media(max-width:560px){.discipline-select,.opponent-select{grid-template-columns:1fr}}.power{top:50%;left:max(22px,env(safe-area-inset-left));display:flex;width:62px;height:258px;transform:translateY(-50%);flex-direction:column;align-items:center;padding:12px 9px}.power__readout{display:flex;flex-direction:column;align-items:center;gap:7px;margin:0 0 9px}.power__readout span{writing-mode:vertical-rl;transform:rotate(180deg);font-size:6px}.power__readout strong{font-size:22px}.power__track{display:flex;width:12px;height:165px;flex-direction:column;justify-content:flex-end;overflow:hidden}.power__track div{width:100%;height:0;background:linear-gradient(0deg,#6ecf91,#e3b24e 65%,#eb5b45);transition:height 30ms linear}.power__track i{left:0;right:0;width:auto;height:1px}.power__track i:nth-of-type(1){top:75%}.power__track i:nth-of-type(2){top:50%}.power__track i:nth-of-type(3){top:25%}.power small{margin-top:9px;font-size:6px;white-space:nowrap}.hint{left:max(100px,calc(env(safe-area-inset-left) + 100px))}.pocket-history{position:absolute;top:18px;left:50%;z-index:3;width:min(370px,35vw);transform:translate(-50%);padding:7px 10px;border:1px solid rgba(214,170,85,.25);background:#050a07b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .3s}.pocket-history>span{display:block;margin-bottom:5px;color:var(--muted);font-size:6px;letter-spacing:.18em;text-align:center}.pocket-history>div{display:flex;min-height:24px;align-items:center;gap:5px;overflow-x:auto;scrollbar-width:none}.pocket-history>div::-webkit-scrollbar{display:none}.pocket-history i{width:100%;color:#f3ead859;font-size:7px;font-style:normal;text-align:center}.ball-chip,.mini-ball{display:grid;flex:0 0 auto;place-items:center;width:22px;height:22px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:var(--ball-color,#eee);color:#111;font:600 8px Arial;box-shadow:inset -3px -3px 5px #00000047}.ball-chip.stripe,.mini-ball.stripe{background:linear-gradient(#eee 0 27%,var(--ball-color,#c93c32) 27% 73%,#eee 73%)}.ball-chip.cue{background:#f4f0e4;color:#c8372e}.ball-chip.snooker-red{background:#c92d35}.turn-chip{top:72px}.group-choice{position:absolute;inset:0;z-index:13;display:grid;place-items:center;background:#030805b3;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.group-choice__card{width:min(430px,calc(100vw - 34px));padding:30px;border:1px solid rgba(214,170,85,.48);background:#0a120d;text-align:center;box-shadow:0 28px 90px #000}.group-choice__card>span{color:var(--gold);font-size:7px;letter-spacing:.26em}.group-choice h3{margin:6px 0 3px;font-family:Oswald,sans-serif;font-size:38px;font-weight:500;text-transform:uppercase}.group-choice p{margin:0 0 20px;color:var(--muted);font-size:9px}.group-choice__card>div{display:grid;grid-template-columns:1fr 1fr;gap:10px}.group-choice button{display:flex;align-items:center;justify-content:center;gap:9px;padding:13px;border:1px solid var(--line);background:#ffffff08;font-size:9px;cursor:pointer}.group-choice button:hover{border-color:var(--gold);background:#d6aa551f}.mini-ball{display:inline-grid;--ball-color:#e0b435}.mini-ball.stripe{--ball-color:#6d3bb0}@media(max-width:820px){.pocket-history{top:58px;width:min(310px,58vw)}.turn-chip{top:96px}.power{top:50%;bottom:auto;left:12px;width:54px;height:230px;transform:translateY(-50%)}.power__track{height:142px}.hint{display:none}}@media(max-width:560px){.pocket-history{top:92px;width:calc(100vw - 24px)}.turn-chip{top:130px}.power{top:auto;bottom:58px;left:10px;height:190px}.power__track{height:105px}.group-choice__card>div{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
