:root{color:#eee6d3;font-synthesis:none;--gold:#c4a96d;--muted:#a8ac9c;--line:#d5cba82b;--ink:#18271f;background:#18221b;font-family:Barlow,sans-serif}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}canvas#game{touch-action:none;width:100%;height:100%;position:fixed;inset:0}.vignette{pointer-events:none;background:radial-gradient(at 60% 44%,#0000 35%,#06130b61 100%);position:fixed;inset:0}header{z-index:5;pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:fixed;top:30px;left:42px;right:40px}.brand,.top-right{pointer-events:auto}.brand{text-align:left;grid-template-columns:auto auto;align-items:baseline;gap:0 8px;padding:0;display:grid}.brand>span{letter-spacing:4px;font-size:14px;font-weight:500}.brand b{font-family:Cormorant Garamond,serif;font-size:43px;font-weight:500;line-height:.9}.brand i{letter-spacing:3.7px;color:#c4bea7;grid-column:1/3;margin-top:9px;font-size:8px;font-style:normal}.top-right{letter-spacing:2px;align-items:center;gap:14px;font-size:10px;font-weight:500;display:flex}.top-right em{color:#94866b;margin:0 9px;font-style:normal}.live-dot{background:#bba66b;border-radius:50%;width:5px;height:5px;box-shadow:0 0 9px #c6ae6866}.round{border:1px solid var(--line);border-radius:50%;place-items:center;width:34px;height:34px;font-size:18px;transition:background .2s;display:grid}.round:hover{background:#cfbc8e22}.welcome{z-index:3;pointer-events:none;width:520px;position:fixed;top:27%;left:8%}.welcome:before{content:"";z-index:-1;background:radial-gradient(#101d15e0 5%,#101d1590 48%,#0000 73%);position:absolute;inset:-180px -100px -220px -170px}.welcome button{pointer-events:auto}.eyebrow{letter-spacing:3px;color:#d3be8d;align-items:center;gap:14px;font-size:10px;font-weight:500;display:flex}.eyebrow>span{background:var(--gold);width:33px;height:1px}h1{letter-spacing:-3px;margin:29px 0 25px;font-family:Cormorant Garamond,serif;font-size:clamp(64px,5.9vw,110px);font-weight:400;line-height:.94}h1 i{color:#d1b77d;font-weight:400}.intro{color:#c3c7b8;letter-spacing:.1px;font-size:15px;font-weight:400;line-height:1.85}.mode-actions{align-items:center;gap:26px;margin-top:32px;display:flex}.primary{color:#18271f;letter-spacing:2px;background:#c8b17b;justify-content:space-between;align-items:center;gap:24px;min-width:210px;padding:19px 23px;font-size:11px;font-weight:600;transition:background .2s,transform .2s;display:flex}.primary:hover{background:#e1cb98;transform:translateY(-2px)}.primary span{font-size:20px;line-height:10px}.text-button{border-bottom:1px solid #bca77177;padding:12px 0;font-size:13px}.text-button span{padding-left:15px}.welcome-controls{gap:26px;width:620px;margin-top:61px;display:flex}.welcome-controls>div{gap:11px;display:flex}.welcome-controls b{color:var(--gold);font-family:Cormorant Garamond,serif;font-size:24px;font-weight:400;line-height:1}.welcome-controls span{letter-spacing:1.4px;white-space:nowrap;font-size:9px}.welcome-controls small{letter-spacing:0;color:#9da694;margin-top:7px;font-size:10px;display:block}.welcome-foot{color:#7f8c7a;letter-spacing:2.1px;margin-top:38px;font-size:8px}.welcome-foot span{padding:0 12px}#loading{z-index:50;background:#16221b;flex-direction:column;justify-content:center;align-items:center;transition:opacity .5s;display:flex;position:fixed;inset:0}.loading-mark{width:150px;height:150px;color:var(--gold);border:1px solid #c7ae6c66;border-radius:50%;place-items:center;font-family:Cormorant Garamond,serif;font-size:100px;display:grid}#loading p{letter-spacing:4px;margin-top:30px;font-size:10px}#hud{pointer-events:none;position:fixed;inset:0}#hud button,#hud input{pointer-events:auto}#matchbar{justify-content:center;align-items:flex-start;gap:29px;min-width:430px;display:flex;position:absolute;top:30px;left:50%;transform:translate(-50%)}.player{border-top:1px solid #0000;min-width:128px;padding-top:9px}.player.active{border-top-color:var(--gold)}.player.active>.tiny{color:var(--gold)}.player>b{margin:4px 0 8px;font-family:Cormorant Garamond,serif;font-size:22px;font-weight:500;display:block}.tiny{letter-spacing:2px;color:#a7ae9c;font-size:9px;display:block}.ball-row{gap:5px;height:18px;display:flex}.ball-badge{color:#201d17;background:var(--ball);border-radius:50%;place-items:center;width:17px;height:17px;font-size:8px;font-weight:600;display:grid;box-shadow:inset -2px -2px 3px #0008,0 1px 2px #0008}.ball-badge.stripe{background:linear-gradient(#ded5b6 26%,var(--ball) 27%,var(--ball) 73%,#ded5b6 74%)}.ball-badge>i{background:#eee8d1;border-radius:50%;place-items:center;width:9px;height:9px;font-size:7px;font-style:normal;display:grid}.ball-badge.potted{opacity:.17}.match-center{flex-direction:column;align-items:center;padding-top:11px;display:flex}.versus{color:#8b9484;margin:3px 0;font-family:Cormorant Garamond,serif;font-size:24px;font-style:italic}.match-center>span:last-child{letter-spacing:1.3px;color:#8e9b87;font-size:8px}.left-tools{pointer-events:auto;flex-direction:column;gap:5px;display:flex;position:absolute;top:185px;left:38px}.tool{text-align:left;color:#c8cbb9;background:#14251b88;border:1px solid #0000;align-items:center;gap:12px;min-width:153px;padding:11px 12px;font-size:11px;display:flex}.tool:hover,.tool.selected{background:#26392cdd;border-color:#c9b47d66}.tool>span:first-child{color:var(--gold);text-align:center;width:20px;font-size:18px}.tool kbd{color:#8d9e88;border:1px solid #9ba58e55;margin-left:auto;padding:3px;font:8px Barlow}#replay-count{color:#b8a36e;margin-left:auto;font-size:10px}#status{text-align:center;text-shadow:0 2px 6px #08180b;position:absolute;top:145px;left:50%;transform:translate(-50%)}#status-tag{letter-spacing:3px;color:#deca95;font-size:10px}#status-text{letter-spacing:.25px;color:#d2d5c8;margin-top:9px;font-size:13px}#shot-controls{justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:29px;left:41px;right:41px}#shot-controls:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000,#0a190d99);position:absolute;inset:-70px -41px -30px}.view-note>span{letter-spacing:3px;color:#d3c29b;font-size:9px}.view-note>p{color:#8e9f8a;margin:10px 0 0;font-size:11px;line-height:1.8}.view-note b{padding:0 6px}.shoot-control{width:250px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.power-label{letter-spacing:1.8px;color:#cfbf94;justify-content:space-between;margin-bottom:9px;font-size:8px;display:flex}.power-track{background:#9dab8b30;height:4px;margin-bottom:12px;position:relative;overflow:hidden}.power-track i{transform-origin:0;background:#c8b17b;position:absolute;inset:0;transform:scaleX(0)}.power-track b{background:#162b1c;width:1px;position:absolute;top:0;bottom:0;left:25%}.power-track b:nth-child(3){left:50%}.power-track b:nth-child(4){left:75%}.shoot-button{letter-spacing:2.7px;-webkit-user-select:none;user-select:none;touch-action:none;background:#c4af7914;border:1px solid #b7a474a8;justify-content:space-between;width:100%;padding:15px 20px;font-size:10px;display:flex}.shoot-button:hover,.shoot-button.charging{color:#14251b;background:#c6b17a}.shoot-button span{font-size:18px;line-height:11px}.shoot-control small{text-align:center;color:#87967e;margin-top:9px;font-size:9px;display:block}.spin-control{align-items:center;gap:24px;padding-right:14px;display:flex;position:relative}.spin-control>div:first-child{text-align:right}.spin-control b{margin:6px 0;font-family:Cormorant Garamond;font-size:20px;font-weight:400;display:block}.inline{color:#9dad93;border-bottom:1px solid #8b967c55;padding:0 0 2px;font-size:9px}#spin{touch-action:none;background:radial-gradient(circle at 32% 26%,#fffbee,#d8d1bb 54%,#949880 86%,#5e7056);border-radius:50%;width:80px;height:80px;position:relative;box-shadow:0 4px 10px #07130b77}.spin-cross{background:#4d5b4528;position:absolute}.horizontal{height:1px;top:50%;left:9px;right:9px}.vertical{width:1px;top:9px;bottom:9px;left:50%}#spin-dot{background:#916d36;border:2px solid #eef0d9;border-radius:50%;width:10px;height:10px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #654c26}.spin-axes{letter-spacing:1px;color:#8fa084;pointer-events:none;flex-direction:column;justify-content:space-between;font-size:7px;display:flex;position:absolute;top:-16px;bottom:-16px;right:31px}#placement-hint{color:#19291f;white-space:nowrap;background:#c8b17b;padding:11px 22px;font-size:12px;position:absolute;top:220px;left:50%;transform:translate(-50%)}#call-pocket{text-align:right;pointer-events:auto;position:absolute;top:185px;right:40px}#call-pocket>span{letter-spacing:2px;color:var(--gold);font-size:9px}#pocket-buttons{grid-template-columns:1fr 1fr;gap:7px;margin-top:12px;display:grid}#pocket-buttons button{background:#16291dcc;border:1px solid #c4ae7866;padding:9px 12px;font-size:10px}#pocket-buttons button.selected{color:#19271d;background:#c4ae78}#archive{border-left:1px solid var(--line);z-index:10;background:#15231cf5;width:360px;padding:35px 25px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.panel-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.panel-heading h2{margin:8px 0 0;font:400 38px Cormorant Garamond}#shot-list{padding-top:16px}.empty{color:#9da994;font-size:13px;line-height:1.8}.shot-entry{border-bottom:1px solid var(--line);text-align:left;grid-template-columns:36px 1fr 28px;align-items:center;gap:10px;width:100%;padding:17px 0;display:grid}.shot-entry .number{color:var(--gold);font:400 27px Cormorant Garamond}.shot-entry strong{font-size:12px;font-weight:500;display:block}.shot-entry small{color:#92a08a;margin-top:5px;font-size:10px;display:block}.shot-entry:hover{background:#8c9c7320}.shot-entry .play{color:var(--gold)}#replay-controls{border:1px solid var(--line);z-index:12;background:#15231cee;align-items:center;gap:19px;width:min(960px,92vw);padding:19px 22px;display:flex;position:fixed;bottom:35px;left:50%;transform:translate(-50%)}#replay-controls b{white-space:nowrap;margin-top:5px;font:400 23px Cormorant Garamond;display:block}#replay-scrub{min-width:70px;accent-color:var(--gold);flex:1}.small-button{letter-spacing:1.2px;white-space:nowrap;border-bottom:1px solid #a9956844;padding:10px 0;font-size:9px}.dialog{z-index:30;background:#17271ff5;border:1px solid #b09b6144;width:min(620px,90vw);max-height:90vh;padding:42px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #06120988}.dialog .close{position:absolute;top:20px;right:22px}.dialog h2{letter-spacing:-1px;margin:22px 0 28px;font:400 47px/1 Cormorant Garamond}.dialog dl{grid-template-columns:83px 1fr;gap:18px 14px;font-size:12px;line-height:1.7;display:grid}.dialog dt{color:var(--gold)}.dialog dd{color:#b6c0ad;margin:0}.help-bottom{color:#80967b;margin:28px 0 0;font-size:9px}.help-bottom span{padding:0 9px}.result{width:480px}.result p{color:#b9c4b0;font-size:14px;line-height:1.8}.result .primary{width:100%;margin-top:28px}.result .text-button{margin-top:15px}#toast{color:#1d2d21;opacity:0;pointer-events:none;z-index:40;background:#d3bd86;padding:13px 22px;font-size:12px;transition:opacity .2s;position:fixed;bottom:160px;left:50%;transform:translate(-50%)}#toast.visible{opacity:1}@media (max-height:800px){.welcome{top:23%}h1{font-size:78px}.welcome-controls{margin-top:35px}.welcome-foot{margin-top:24px}.left-tools{gap:1px;top:160px}.tool{padding:8px 11px}#status{top:125px}}@media (max-width:1000px){header{top:22px;left:24px;right:24px}.top-right>span{display:none}.welcome{width:440px;left:7%}.welcome-controls{gap:18px;width:auto}.welcome-controls small{display:none}#matchbar{gap:16px;min-width:330px;top:22px}.player{min-width:95px}.left-tools{left:20px}.tool{min-width:130px}#shot-controls{left:24px;right:24px}.view-note p{display:none}.spin-control{gap:12px}.spin-control .tiny{font-size:8px}#spin{width:64px;height:64px}.spin-axes{right:24px}#status{max-width:400px}.shoot-control{width:210px}}body[data-view=overhead] #status{text-align:left;max-width:225px;top:auto;bottom:170px;left:40px;transform:none}body[data-view=overhead] #status-text{font-size:12px;line-height:1.6}
