:root{--cf-bg:#071326;--cf-panel:#10233d;--cf-line:#264e78;--cf-text:#e9f4ff;--cf-muted:#9bb6cf;--cf-gold:#ffd166;--cf-red:#ff6b7d;--cf-cyan:#58d8ff}.cf-page{min-height:calc(100vh - 67px);padding:28px 12px 50px;background:radial-gradient(circle at 15% 0,#194a70,transparent 40%),linear-gradient(150deg,#061020,#0c1e36 58%,#07101f);color:var(--cf-text);font-family:system-ui,sans-serif}.cf-page *{box-sizing:border-box}.cf-page section{margin-bottom:10px}.cf-wrap{width:min(1010px,100%);margin:auto}.cf-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.cf-eyebrow{color:var(--cf-cyan);font-size:10px;font-weight:900;letter-spacing:.2em}.cf-header h1{margin:5px 0;color:#fff;font-size:clamp(30px,7vw,50px);letter-spacing:.08em}.cf-header p{margin:0;color:var(--cf-muted);font-size:13px}.cf-back{margin-top:8px;color:#e5f4ff;font-size:12px;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}.cf-layout{display:grid;grid-template-columns:minmax(300px,760px) 220px;gap:18px;align-items:start}.cf-play,.cf-panel{border:1px solid var(--cf-line);border-radius:8px;background:#0e2038e8;box-shadow:0 18px 55px #0008}.cf-play{padding:clamp(12px,3vw,22px)}.cf-score-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:12px}.cf-score-row div{padding:8px;border-radius:8px;background:#09172b;text-align:center}.cf-score-row span{display:block;color:var(--cf-muted);font-size:10px;letter-spacing:.1em}.cf-score-row strong{display:block;margin-top:2px;color:var(--cf-gold);font:800 24px ui-monospace,monospace}.cf-score-row div:nth-child(2) strong{color:var(--cf-red)}.cf-score-row div:nth-child(3) strong{color:var(--cf-cyan)}.cf-intro{margin-bottom:14px;padding:11px 13px;border:1px solid #35658f;border-radius:8px;background:#123252;color:#dcefff;font-size:12px;line-height:1.6}.cf-intro strong{color:var(--cf-gold)}.cf-intro ol{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:7px 0 0;padding:0;list-style-position:inside}.cf-intro p{margin:7px 0 0;color:#a9c4d9;font-size:11px}.cf-board-shell{max-width:700px;margin:auto;padding:14px;border:1px solid #376993;border-radius:8px;background:#0a1a30;box-shadow:inset 0 0 32px #0008}.cf-board{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;padding:12px;border-radius:8px;background:linear-gradient(145deg,#1d6aa3,#0d3966);box-shadow:0 10px 22px #0006}.cf-cell{position:relative;display:grid;place-items:center;aspect-ratio:1;border:0;border-radius:50%;background:#061426;box-shadow:inset 0 4px 9px #0009,0 0 0 1px #64b4df33;cursor:pointer;touch-action:manipulation}.cf-cell:hover,.cf-cell:focus-visible{outline:3px solid var(--cf-cyan);outline-offset:2px}.cf-cell:disabled{cursor:default}.cf-piece{display:block;width:76%;height:76%;border-radius:50%;opacity:0;transform:translateY(calc(var(--drop-distance, 0) * -1));transition:transform .42s cubic-bezier(.18,.75,.25,1),opacity .12s ease;background:#23364b;box-shadow:inset 7px 8px 0 #fff3,0 4px 8px #0008}.cf-piece.player{opacity:1;background:radial-gradient(circle at 32% 27%,#fff2a8,#ffd166 42%,#d28a18);box-shadow:inset 7px 8px 0 #fff7,0 4px 8px #0008}.cf-piece.cpu{opacity:1;background:radial-gradient(circle at 32% 27%,#ffd1d8,#ff6b7d 42%,#b52f52);box-shadow:inset 7px 8px 0 #fff6,0 4px 8px #0008}.cf-piece.is-set{transform:translateY(0)}.cf-piece.is-winning{animation:cf-win .7s ease-in-out infinite alternate}.cf-piece.is-new{animation:cf-drop .42s ease-out}.cf-message{min-height:1.5em;margin:12px 0 0;color:#b6cce0;font-size:12px;text-align:center}.cf-side{display:flex;flex-direction:column;gap:10px}.cf-panel{padding:13px}.cf-panel h2{margin:0 0 9px;color:#a9c8e2;font-size:11px;letter-spacing:.15em}.cf-actions{display:grid;gap:8px}.cf-button,.cf-select{min-height:40px;border:1px solid #3c719c;border-radius:8px;padding:8px 12px;background:#163556;color:var(--cf-text);font:700 12px system-ui,sans-serif;cursor:pointer}.cf-button:hover,.cf-button:focus-visible,.cf-select:focus-visible{border-color:var(--cf-cyan);outline:2px solid #58d8ff55;outline-offset:2px}.cf-primary{border-color:var(--cf-gold);background:var(--cf-gold);color:#172337}.cf-button:disabled{cursor:not-allowed;opacity:.45}.cf-button[aria-pressed=false]{color:var(--cf-muted);opacity:.62}.cf-select{width:100%;appearance:auto}.cf-sound>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.cf-sound .cf-button{padding:6px 3px;font-size:11px}.cf-help p{margin:0;color:#b6cce0;font-size:11px;line-height:1.9}.cf-help b{color:#fff}.cf-note{margin:14px 0 0;color:#86a3bc;font-size:10px;text-align:center}.cf-overlay{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:20px;background:#030a16dd}.cf-overlay[hidden]{display:none}.cf-overlay-box{width:min(380px,100%);padding:28px;border:1px solid #3d79a6;border-radius:8px;background:#102842;text-align:center;box-shadow:0 20px 70px #000b}.cf-overlay-box h2{margin:8px 0;color:#fff;font-size:30px}.cf-overlay-box p{margin:0 0 20px;color:#c3dbeb;font-size:13px;line-height:1.8}@keyframes cf-drop{0%{opacity:.2;transform:translateY(calc(var(--drop-distance, 0) * -1)) scale(.92)}75%{opacity:1;transform:translateY(5px) scale(1.03)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes cf-win{from{filter:brightness(1);box-shadow:inset 7px 8px 0 #fff7,0 0 5px var(--cf-gold)}to{filter:brightness(1.35);box-shadow:inset 7px 8px 0 #fff9,0 0 22px var(--cf-gold)}}@media(min-width:1181px){.cf-page{padding-right:320px!important}}@media(max-width:760px){.cf-page{padding:19px 9px 38px}.cf-layout{display:block}.cf-side{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.cf-help{grid-column:1/-1}.cf-intro ol{grid-template-columns:1fr}.cf-board-shell{padding:8px}.cf-board{gap:5px;padding:8px}.cf-header{margin-bottom:13px}.cf-header>div p{font-size:12px}}@media(max-width:440px){.cf-header{display:block}.cf-back{display:inline-block;margin-top:10px}.cf-side{display:block}.cf-panel{margin-bottom:9px}.cf-score-row strong{font-size:19px}}
.cf-piece{width:82%;height:82%;aspect-ratio:1;border-radius:50%;box-shadow:inset 8px 9px 0 #fff3,0 4px 9px #0009,0 0 0 1px #0005}
.cf-piece.player{box-shadow:inset 8px 9px 0 #fff7,0 4px 9px #0009,0 0 0 1px #8d5c1033}.cf-piece.cpu{box-shadow:inset 8px 9px 0 #fff6,0 4px 9px #0009,0 0 0 1px #7e1d3c55}
