*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,sans-serif;color:#f5f7fa}body{min-height:100vh;background:radial-gradient(circle at top,rgba(35,93,57,.2),transparent 30%),linear-gradient(135deg,#071019 0%,#0d1117 45%,#111927 100%);overflow-x:hidden}.ambient-glow{position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 22%,rgba(255,219,162,.11),transparent 20%)}.app-shell{position:relative;z-index:1;width:min(1200px,calc(100vw - 40px));margin:0 auto;padding:28px 0 36px}.topbar,.game-panel,.tray-panel{background:rgba(13,17,23,.8);border:1px solid rgba(255,255,255,.08);box-shadow:0 24px 60px rgba(0,0,0,.35);backdrop-filter:blur(10px)}.topbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;padding:24px;border-radius:24px;margin-bottom:20px}.eyebrow{margin:0 0 8px;color:#d2a15f;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.22em}h1{margin:0;font-size:clamp(2rem,4vw,3.5rem);line-height:.95}.subtitle{margin:14px 0 0;max-width:650px;color:#aeb8c5;line-height:1.6}.hud{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px;min-width:min(100%,520px)}.hud__card{min-height:96px;padding:14px 16px;border-radius:18px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04)}.hud__card span{display:block;color:#aeb8c5;font-size:.85rem;margin-bottom:10px}.hud__card strong{font-size:1.7rem;line-height:1.1}.hud__card--status strong{font-size:1rem;line-height:1.45}.game-panel{border-radius:30px;padding:22px}.controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}.reset{border:0;background:linear-gradient(135deg,#e0b87a,#b97938);color:#1b120a;padding:12px 18px;border-radius:14px;font-weight:800;letter-spacing:.04em;cursor:pointer}.legend{display:flex;gap:16px;flex-wrap:wrap;color:#aeb8c5;font-size:.95rem}.legend span{display:inline-flex;align-items:center;gap:8px}.dot{width:14px;height:14px;border-radius:50%;display:inline-block;border:1px solid rgba(255,255,255,.16)}.dot--solid{background:#d96b1f}.dot--stripe{background:linear-gradient(to bottom,#fff 34%,#d96b1f 34%,#d96b1f 66%,#fff 66%)}.dot--eight{background:#111}.table-wrap{overflow:auto;border-radius:24px}.table{position:relative;width:1000px;height:560px;margin:0 auto;padding:24px;border-radius:34px;background:linear-gradient(145deg,#8e4b24,#5c2b11 50%,#7a3f1d 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.12),inset 0 -8px 14px rgba(0,0,0,.35),0 24px 40px rgba(0,0,0,.38)}.table__rail-shadow{position:absolute;inset:12px;border-radius:26px;box-shadow:inset 0 14px 20px rgba(0,0,0,.35);pointer-events:none}.table__inner{position:relative;width:100%;height:100%;overflow:hidden;border-radius:20px;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.06),transparent 45%),radial-gradient(circle at 50% 50%,rgba(0,0,0,.16),transparent 80%),linear-gradient(180deg,rgba(255,255,255,.03),rgba(0,0,0,.08)),#1a783e;box-shadow:inset 0 0 0 2px rgba(255,255,255,.04),inset 0 0 30px rgba(0,0,0,.32)}.table__inner::before{content:'';position:absolute;inset:0;opacity:.1;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.08) 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,rgba(255,255,255,.04) 0 1px,transparent 1px 4px);pointer-events:none}.table__surface-details,.head-string,.spot,.aim-line,.cue-stick{position:absolute;pointer-events:none}.head-string{top:0;bottom:0;left:25%;width:2px;background:rgba(255,255,255,.13)}.spot{width:8px;height:8px;border-radius:50%;margin-left:-4px;margin-top:-4px;background:rgba(255,255,255,.4)}.spot--head{left:25%;top:50%}.spot--foot{left:75%;top:50%}.diamond{position:absolute;width:10px;height:10px;background:rgba(255,248,232,.85);transform:rotate(45deg);top:-5px}.diamond--1{left:16%}.diamond--2{left:33%}.diamond--3{left:50%}.diamond--4{left:67%}.diamond--5{left:84%}.diamond--6{top:auto;bottom:-5px;left:50%}.table__pockets{position:absolute;inset:0;pointer-events:none}.table__pockets span{position:absolute;width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#242424,#020202 72%);border:2px solid rgba(0,0,0,.55)}.table__pockets span:nth-of-type(1){top:8px;left:8px}.table__pockets span:nth-of-type(2){top:8px;left:calc(50% - 17px)}.table__pockets span:nth-of-type(3){top:8px;right:8px}.table__pockets span:nth-of-type(4){bottom:8px;left:8px}.table__pockets span:nth-of-type(5){bottom:8px;left:calc(50% - 17px)}.table__pockets span:nth-of-type(6){bottom:8px;right:8px}.ball{position:absolute;width:22px;height:22px;border-radius:50%;box-shadow:0 3px 7px rgba(0,0,0,.35);transform:translate(-50%,-50%)}.ball::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.95),rgba(255,255,255,.14) 32%,rgba(0,0,0,.22) 100%)}.ball::after{content:attr(data-ball);position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.94);color:#1c1c1c;font-size:6px;line-height:10px;text-align:center;font-weight:800;z-index:1}.ball.cue{background:linear-gradient(145deg,#fdfdfd,#d9dde2)}.ball.cue::after{content:'';background:none}.ball.num-1{background:#f2ba39}.ball.num-2{background:#295db4}.ball.num-3{background:#cc2f32}.ball.num-4{background:#6e40ba}.ball.num-5{background:#d66a1e}.ball.num-6{background:#1a864f}.ball.num-7{background:#7a2a20}.ball.num-8{background:#111}.ball.num-9{background:linear-gradient(to bottom,#fff 0 28%,#f2ba39 28% 72%,#fff 72%)}.ball.num-10{background:linear-gradient(to bottom,#fff 0 28%,#295db4 28% 72%,#fff 72%)}.ball.num-11{background:linear-gradient(to bottom,#fff 0 28%,#cc2f32 28% 72%,#fff 72%)}.ball.num-12{background:linear-gradient(to bottom,#fff 0 28%,#6e40ba 28% 72%,#fff 72%)}.ball.num-13{background:linear-gradient(to bottom,#fff 0 28%,#d66a1e 28% 72%,#fff 72%)}.ball.num-14{background:linear-gradient(to bottom,#fff 0 28%,#1a864f 28% 72%,#fff 72%)}.ball.num-15{background:linear-gradient(to bottom,#fff 0 28%,#7a2a20 28% 72%,#fff 72%)}.aim-line{height:2px;background:linear-gradient(90deg,rgba(255,255,255,.75),rgba(255,255,255,0));transform-origin:left center;opacity:0}.cue-stick{width:180px;height:8px;border-radius:999px;transform-origin:160px 50%;background:linear-gradient(90deg,#32170b 0 12%,#a76c34 12% 82%,#ead2a2 82%);opacity:0}.tray-panel{margin-top:20px;border-radius:22px;padding:18px 20px}.tray-title{margin:0 0 8px;font-size:1.05rem;font-weight:700}.tray-subtitle{margin:0 0 14px;color:#aeb8c5}.table__sunk{min-height:60px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px;border-radius:16px;border:1px dashed rgba(255,255,255,.12);background:rgba(255,255,255,.03)}.table__sunk .ball{position:relative;transform:none;left:auto!important;top:auto!important}.is-hidden{display:none}@media (max-width:980px){.topbar{flex-direction:column}.hud{width:100%;grid-template-columns:1fr;min-width:0}.app-shell{width:min(100vw - 20px,1200px)}.game-panel{padding:14px}}