:root{color-scheme:dark;--bg:#0b0b0b;--panel:#13120f;--text:#e9e5db;--muted:#aaa59a;--gold:#d2a85b;--gold-light:#efd79a;--line:#4f3d22;--serif:Georgia,'Times New Roman',serif;font-family:Arial,Helvetica,sans-serif;font-size:16px;background:var(--bg);color:var(--text)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 68% 34%,#211b1160 0%,transparent 52%),var(--bg);min-height:100dvh}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible{outline:2px solid var(--gold-light);outline-offset:5px}button{color:inherit}a{color:inherit;text-decoration:none}img{display:block;max-width:100%;user-select:none;-webkit-user-drag:none}h1,h2,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400}h1{font-size:clamp(2rem,3.7vw,3.15rem);line-height:1.1}h2{font-size:1.9rem}p{line-height:1.65}[hidden]{display:none!important}.shell{max-width:1240px;margin:auto;padding:0 42px;user-select:none}.site-header{height:96px;border-bottom:1px solid #3a301c;display:flex;justify-content:space-between;align-items:center;gap:20px}.wordmark{font-family:var(--serif);letter-spacing:.23em;font-size:1.15rem;color:var(--gold-light)}.header-end{display:flex;align-items:center;gap:23px}.brand-context{font-size:.75rem;color:var(--muted);letter-spacing:.13em}.uat{font-size:.75rem;color:var(--gold);padding:4px 7px;border:1px solid var(--line);border-radius:4px;letter-spacing:.08em}.text-button{padding:8px 0;background:none;border:0;color:#c1b9a9;font-size:.875rem}.text-button:hover{color:var(--gold-light)}.screen{min-height:calc(100dvh - 180px)}.home-screen{display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:40px 20px 34px;gap:18px}.home-copy{padding-left:4px;position:relative;z-index:1}.eyebrow{font-size:.75rem;color:var(--gold);letter-spacing:.2em;line-height:1.7}.logo{width:360px;margin:18px 0 25px}.intro{font-size:1rem;color:var(--muted);margin-top:24px;max-width:410px}.home-actions{display:flex;flex-direction:column;width:310px;gap:11px;margin:30px 0 23px}.button{min-height:47px;padding:11px 20px;border:1px solid #705329;border-radius:7px;background:#181610;color:var(--text);font-size:.875rem;transition:border-color .16s,background .16s,box-shadow .16s}.button:hover{border-color:var(--gold);background:#241e13}.primary{border-color:#d9b977;color:#251b0b;background:linear-gradient(105deg,#edd9a5,#c89b4e);font-weight:700;box-shadow:0 4px 18px #c1933d12}.primary:hover{background:linear-gradient(105deg,#f6e4b7,#d3a956);box-shadow:0 4px 24px #c1933d25}.tiny{color:var(--muted);font-size:.75rem;line-height:1.7}.home-details{display:flex;gap:18px}.home-character{position:relative;padding:0 20px 0 0;align-self:center}.home-character>img{width:440px;max-height:610px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 35px #000)}blockquote{font-family:var(--serif);font-style:italic;color:var(--gold-light);font-size:1rem;line-height:1.45;margin:0}.home-character blockquote{position:absolute;right:0;bottom:30px;padding:14px 8px 14px 18px;border-left:1px solid var(--line);background:#0b0b0b90}.site-footer{min-height:74px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #3a301c;color:#858071;gap:12px;font-size:.75rem}.footer-brand{font-size:.875rem;letter-spacing:.07em;color:#c2baab}.footer-brand>span{font-size:.65rem;padding-left:9px;color:#928a78}.difficulty-screen{padding:58px 18px 60px}.difficulty-screen>h1{margin-top:14px}.difficulty-screen>.intro{max-width:none;margin-top:17px}.difficulty-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin:37px 0 30px}.difficulty-card{border:1px solid var(--line);border-radius:11px;background:linear-gradient(120deg,#1b1710,#10100d);overflow:hidden;padding:0 21px 21px}.portrait{height:190px;overflow:hidden;margin:0 -21px 18px;background:radial-gradient(ellipse at center,#38281770,transparent 70%);position:relative}.portrait img{position:absolute;width:260px;max-width:none;left:50%;transform:translateX(-50%);top:5px}.difficulty-card h2{font-size:1.7rem;margin-bottom:10px}.difficulty-card p{font-size:.875rem;line-height:1.6;color:var(--muted)}.difficulty-card .depth{color:var(--gold);letter-spacing:.08em;font-size:.8rem;margin:18px 0}.depth span{padding-left:6px;letter-spacing:0;color:#d2c7b4}.difficulty-card .button{width:100%}.game-screen{display:grid;grid-template-columns:220px minmax(0,510px) 190px;justify-content:center;align-items:center;column-gap:28px;padding:24px 0}.game-guide h1{margin:16px 0 22px;font-size:2.1rem}.mode-pill{font-size:.75rem;color:var(--gold-light);border:1px solid var(--line);border-radius:20px;padding:6px 10px;display:inline-block}.steps{padding:0;list-style:none;margin:30px 0 25px;counter-reset:steps}.steps li{counter-increment:steps;position:relative;padding-left:29px;margin-bottom:22px;color:#837e71}.steps li::before{content:counter(steps);position:absolute;left:0;top:1px;border:1px solid #514936;width:19px;height:19px;border-radius:50%;font-size:.7rem;display:grid;place-items:center}.steps li.active{color:var(--gold-light)}.steps li.active::before{border-color:var(--gold);color:var(--gold)}.steps b{font-size:.875rem;line-height:1.45;font-weight:400;display:block}.steps span{font-size:.75rem;display:block;line-height:1.6;margin-top:5px;color:#8e887a}.guide-rule{border-top:1px solid #3a301c;padding-top:18px;font-size:.875rem;line-height:1.7}.guide-rule span{color:var(--muted);font-size:.75rem}.play-column{max-width:510px;min-width:0}.reserve{padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(100deg,#16140f,#10100d);position:relative}.reserve-header{display:flex;align-items:center;justify-content:space-between;color:#ccc3b0;font-size:.75rem;gap:8px;margin-bottom:6px}.reserve-count{color:var(--gold)}.reserve-balls{display:grid;grid-template-columns:repeat(8,1fr);gap:4px;align-items:center}.reserve-ball{padding:0;background:none;border:0;aspect-ratio:1;max-height:45px;display:grid;place-items:center;min-width:0;border-radius:50%;position:relative;touch-action:none}.reserve-ball img{width:100%;height:100%;object-fit:contain;pointer-events:none}.reserve-ball.empty:after{content:'';width:80%;height:80%;border:1px solid #413622;border-radius:50%}.reserve-ball.selected:before{content:'';position:absolute;inset:0;border:2px solid var(--gold-light);border-radius:50%;box-shadow:0 0 12px #e6bf6144}.own-reserve{border-color:#8e6d34}.board{position:relative;width:100%;aspect-ratio:1;margin:4px 0;isolation:isolate;touch-action:none}.board-image{width:100%;height:100%;pointer-events:none}.cell{position:absolute;border:1px solid transparent;background:none;border-radius:12%;padding:0;z-index:2;touch-action:none}.cell[aria-disabled=false]:hover,.cell.target{background:#f4dc9830;border-color:#e3bb69;box-shadow:inset 0 0 18px #ebbe7933}.cell.selected{border:2px solid var(--gold-light);background:#eed38515}.cell:focus-visible{outline-offset:-4px;outline-color:#f9e5b2}.cell.winning{background:#f0d39736;box-shadow:inset 0 0 20px #ffd76970;border-color:#f3d397}.ball{position:absolute;width:11.8%;height:11.8%;z-index:3;pointer-events:none;transition:left .52s cubic-bezier(.45,.05,.25,1),top .52s cubic-bezier(.45,.05,.25,1);filter:drop-shadow(1px 4px 4px #000b)}.ball img{width:100%;height:100%}.orbit{position:absolute;left:43.25%;top:42.6%;width:13.5%;height:13.5%;border-radius:50%;z-index:5;background:transparent;border:0;padding:0;transition:box-shadow .2s,background .2s}.orbit:disabled{background:#0004}.orbit:not(:disabled){box-shadow:0 0 17px 3px #e3b95e70;animation:gold-pulse 1.8s infinite}.orbit:not(:disabled):hover{background:#ffe9a925;box-shadow:0 0 25px 6px #e3b95e90}.orbit:focus-visible{outline-offset:2px}.turn-bar{display:flex;align-items:center;gap:12px;justify-content:space-between;border-top:1px solid var(--line);padding:12px 0;margin:0 0 3px;min-height:77px}.turn-bar b{font-family:var(--serif);font-weight:400;color:var(--gold-light);font-size:1rem}.turn-bar p{font-size:.875rem;color:var(--muted);line-height:1.45;margin-top:3px}.small{min-height:40px;font-size:.875rem;padding:8px 14px;flex-shrink:0}.reserve-hint{text-align:center;margin:8px 0 0;font-size:.75rem}.opponent-character img{width:190px}.opponent-character h2{text-align:center;font-size:1.7rem;margin:9px 0}.opponent-character p{text-align:center}.opponent-character blockquote{text-align:center;border-top:1px solid var(--line);margin-top:18px;padding-top:17px;font-size:.95rem}.mobile-game-heading{display:none}.modal{width:min(530px,calc(100vw - 30px));max-height:calc(100dvh - 38px);overflow:auto;background:linear-gradient(135deg,#1b1812,#0e0e0c);border:1px solid #97723a;border-radius:13px;color:var(--text);padding:30px;box-shadow:0 30px 100px #000b}.modal::backdrop{background:#000b;backdrop-filter:blur(5px)}.modal-top{display:flex;align-items:center;gap:12px;justify-content:space-between;margin-bottom:13px}.icon-close{background:transparent;border:0;font-size:1.8rem;color:var(--muted);padding:0 5px;line-height:1}.modal h2{font-size:2rem;margin:12px 0 18px}.modal p{font-size:1rem;color:var(--muted);margin-bottom:16px}.modal .eyebrow{font-size:.75rem;color:var(--gold);margin:0}.modal>.button{width:100%;margin-top:12px}.rules-modal ol{padding-left:23px;line-height:1.65;font-size:1rem;color:#bdb5a5}.rules-modal li{margin-bottom:14px}.rules-modal strong{color:var(--gold-light)}.rules-modal h3{font-family:var(--serif);font-weight:400;font-size:1.4rem;color:var(--gold-light)}.result-modal,.handoff-modal{text-align:center}.result-logo{width:200px;margin:18px auto}.result-actions{display:flex;flex-direction:column;gap:12px}.drag-ghost{position:fixed;z-index:20;width:62px;height:62px;pointer-events:none;transform:translate(-50%,-50%);filter:drop-shadow(0 5px 7px #000b)}.drag-ghost img{width:100%;height:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes gold-pulse{50%{box-shadow:0 0 23px 4px #e3b95e90}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:1000px) and (max-height:820px){.site-header{height:76px}.screen{min-height:calc(100dvh - 145px)}.home-screen{padding-top:28px}.home-character>img{max-height:510px}.game-screen{grid-template-columns:205px min(440px, max(280px, calc(100dvh - 360px))) 165px;column-gap:24px;padding:14px 0}.opponent-character img{width:165px}.reserve-ball{max-height:36px}.turn-bar{min-height:66px;padding:8px 0}.site-footer{min-height:65px}.game-guide .steps{margin-top:22px}}
@media(max-width:1000px){.shell{padding:0 26px}.brand-context{display:none}.game-screen{grid-template-columns:minmax(0,510px) 170px;gap:22px}.game-guide{display:none}.mobile-game-heading{display:flex;justify-content:space-between;padding:0 0 11px;font-size:.75rem;color:var(--muted);letter-spacing:.06em}.mobile-game-heading>span:last-child{color:var(--gold)}.difficulty-cards{gap:14px}.difficulty-card{padding:0 16px 18px}.difficulty-card .depth span{display:block;padding:4px 0 0}.home-character>img{width:370px}.logo{width:310px}}
@media(max-width:700px){.shell{padding:0 20px}.site-header{height:73px;gap:10px}.wordmark{font-size:.9rem;letter-spacing:.17em}.header-end{gap:13px}.text-button{font-size:.75rem}.uat{font-size:.65rem;padding:3px 5px}.home-screen{display:flex;flex-direction:column;min-height:auto;gap:0;padding:34px 0 16px;text-align:center}.home-copy{padding:0}.home-copy>.eyebrow{display:none}.logo{width:230px;margin:0 auto 20px}.home-copy h1{font-size:2rem}.intro{font-size:.875rem;line-height:1.7;margin:19px auto 0;max-width:330px}.desktop-break{display:none}.home-actions{width:min(330px,calc(100vw - 40px));margin:25px auto 20px;gap:10px}.button{min-height:47px}.home-details{justify-content:center;gap:14px;font-size:.7rem}.home-character{width:250px;align-self:center;padding:0;margin:5px 0 0}.home-character>img{width:240px;max-height:310px}.home-character blockquote{bottom:24px;right:-23px;text-align:left;font-size:.8rem;padding:8px 5px 8px 11px}.site-footer{min-height:66px;font-size:.65rem;gap:8px}.footer-brand{font-size:.75rem}.footer-brand>span{font-size:.6rem;padding-left:4px}.game-screen{display:block;padding:19px 0 15px;min-height:calc(100dvh - 139px)}.opponent-character{display:none}.play-column{margin:0 auto;max-width:480px}.board{margin:5px 0}.reserve{padding:8px 10px}.reserve-balls{gap:2px}.reserve-ball{max-height:38px}.turn-bar{padding:10px 0;min-height:77px}.turn-bar p{font-size:.875rem}.reserve-hint{font-size:.75rem;line-height:1.5}.mobile-game-heading{font-size:.7rem;padding-bottom:10px}.difficulty-screen{padding:34px 0 32px;min-height:auto}.difficulty-screen>.eyebrow{font-size:.68rem;letter-spacing:.14em}.difficulty-screen>h1{font-size:1.8rem;line-height:1.2;margin-top:10px}.difficulty-screen>.intro{margin:14px 0 0}.difficulty-cards{display:flex;flex-direction:column;gap:14px;margin:23px 0}.difficulty-card{display:grid;grid-template-columns:100px 1fr;gap:12px;padding:12px 14px 12px 0;min-height:163px}.portrait{height:100%;margin:-12px 0;min-height:170px}.portrait img{width:175px;top:4px}.difficulty-card h2{font-size:1.5rem;margin-bottom:4px}.difficulty-card p{font-size:.8rem;line-height:1.5}.difficulty-card .depth{font-size:.7rem;margin:9px 0}.difficulty-card .depth span{display:inline-block;padding:0 0 0 5px}.difficulty-card .button{min-height:39px;padding:8px}.modal{padding:25px 22px}.modal h2{font-size:1.8rem}.modal p,.rules-modal ol{font-size:1rem}}
img{height:auto}
.reserve-ball img,.ball img,.board-image,.drag-ghost img{height:100%}
@media(max-width:370px){.shell{padding:0 14px}.header-end{gap:10px}.wordmark{font-size:.8rem}.site-header{gap:6px}.site-footer{font-size:.6rem}.difficulty-card{grid-template-columns:83px 1fr}.portrait img{width:165px}.difficulty-card .depth span{display:block;padding:3px 0 0}}

*,*::before,*::after{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.footer-brand:hover{color:var(--gold-light)}
.own-reserve{border-color:var(--line)}
.reserve.active-reserve{border-color:#b78e46;box-shadow:0 0 12px #b78e4612}
.ball.winner-glow{filter:drop-shadow(0 0 8px #ffe694) drop-shadow(0 0 17px #e8b638);animation:winner-shine 1s ease-in-out}
.ball.winner-glow::after{content:'';position:absolute;inset:-8%;border-radius:50%;box-shadow:0 0 15px 5px #ffe694b0,inset 0 0 10px #ffebad80}
@keyframes winner-shine{0%,100%{filter:drop-shadow(0 0 8px #ffe694) drop-shadow(0 0 17px #e8b638)}50%{filter:drop-shadow(0 0 14px #fff1b5) drop-shadow(0 0 27px #ffd252)}}
.result-panel{border-top:1px solid #b78e46;padding:12px 0 14px;margin-bottom:3px}
.result-panel h2{color:var(--gold-light);font-size:1.65rem;line-height:1.2}
.result-panel p{font-size:.875rem;color:var(--muted);line-height:1.45;margin-top:5px}
.result-panel .result-actions{flex-direction:row;gap:9px;margin-top:11px}
.result-panel .button{min-height:40px;padding:8px 14px}
@media(max-width:700px){.portrait img{width:140px;left:35%;top:6px}}
@media(max-width:370px){.portrait img{width:120px;left:34%}}

