/* Purpose-built arcade presentation: high contrast, no stock dashboard gradients. */
:root { color-scheme:dark; color:#f6f1df; background:#0b1118; }
body { background:#0b1118; }
.shell { max-width:1280px; }
.mast { border-bottom:2px solid #f8b82e; }
h1 { font-size:clamp(34px,5vw,55px); letter-spacing:-.07em; color:#fff7df; }
.brand-dot { color:#ff512e; }
.brand p { color:#a8b7bf; }
.engine-label b { color:#ecf4ed; }
.engine-label small { color:#a8b7bf; }
.help-open { background:#ffcf3f; border:2px solid #ffcf3f; color:#101721; font-weight:900; transform:skew(-5deg); box-shadow:4px 4px 0 #f55730; }
.help-open:hover { transform:skew(-5deg) translateY(-2px); }
.sidebar { border-left-color:#44515b; }
.sidebar section { border-bottom-color:#33414d; }
.section-heading h2 { color:#fff; font-size:19px; }
.section-heading p,.setup-note,.helper-text,.power-help { color:#adbec5; }
.field { color:#e4edee; }
.field output { color:#ffcb35; }
select { background:#172533; color:#fff; border-color:#55707a; }
input[type=range] { accent-color:#ffad1f; }
.powers button,.quick-powers button { background:#152632; border:2px solid #4c7380; color:#fff; box-shadow:3px 3px 0 #081014; }
.powers button b { font-size:15px; }
.power-desc { color:#b5d1d9; }
.charge { color:#ffb72b; }
.powers button.chosen,.quick-powers .chosen { background:#733424; border:2px solid #ffbd43; color:#fff; box-shadow:0 0 20px #ff6b1d77, 3px 3px 0 #000; }
.board-header #turnLabel { color:#fff4ce; font-size:19px; }
.board-header small { color:#93aebc; }
.board-tools strong { color:#ffc443; }
#hintQuick { background:#11232c; color:#a9f4f1; border:2px solid #37c1cd; }
#hintQuick[aria-pressed=true]{ background:#36d7e1; color:#06151f; border-color:#36d7e1; box-shadow:0 0 15px #2fdbea66; }
.board-container { position:relative; overflow:hidden; border:7px solid #5d402b; box-shadow:0 0 0 2px #c98e42, 0 14px 45px #000a; background:#dfbc85; isolation:isolate; }
.board-container svg {position:relative;z-index:0;}
.board-line {stroke:#63462a;}
.stone-black {fill:#0e1217;stroke:#48505b;stroke-width:1.5;filter:drop-shadow(1px 4px 2px #0009);}
.stone-white {fill:#fff7e7;stroke:#ada18c;stroke-width:1.6;filter:drop-shadow(2px 4px 2px #0007);}
.stone-black,.stone-white { transform-box:fill-box; transform-origin:center; }
.last-ring{stroke:#f9632d;stroke-width:5;}
.preview-ring {stroke:#fcbd30;stroke-width:5;}
.tutorial-target {fill:#ffbe1460;stroke:#ff4a11;stroke-width:8;pointer-events:none;transform-box:fill-box;transform-origin:center;animation:tutorial-pulse .78s ease-in-out infinite alternate;filter:drop-shadow(0 0 8px #fff09f);}
.tutorial-pin {font-size:25px;text-anchor:middle;fill:#ffffff;stroke:#9c1e00;stroke-width:5;paint-order:stroke fill;font-weight:950;pointer-events:none;animation:pin-bounce .55s ease-in-out infinite alternate;}
@keyframes tutorial-pulse {from {opacity:.65;transform:scale(.8);}to{opacity:1;transform:scale(1.22);}}
@keyframes pin-bounce {from{transform:translateY(0);}to{transform:translateY(-8px);}}
#message {color:#ffe4a8;}
.status-line,.situation-details {color:#aac0cc;}
.game-status {min-height:60px;}
.situation {border-color:#3e5660;}
.situation-top h2 {color:#fff; font-size:16px;}
.situation-top h2 small {color:#9ab4b9;}
.situation-tools button {color:#8ef3f2;border:1px solid #4fa2ad;background:#10262e;}
.situation-tools button[aria-pressed=true] {background:#37b7c4;color:#091820;}
.odds-labels{color:#fff4db;font-weight:850;}
.odds-track{background:#fff1db;border:1px solid #dfb95b;height:13px;box-shadow:0 0 0 1px #0d1620; }
.odds-black{background:#1e2629;transition:width .55s cubic-bezier(.2,1,.3,1);}
.situation-caveat{color:#9eb3bc;}
.situation.advantage-swing .odds-track{animation:odds-boom .85s ease-out;}
@keyframes odds-boom {0%,40%{box-shadow:0 0 0 7px #fc992b,0 0 24px #fe5b1d;}100%{box-shadow:0 0 0 0 #fc992b00;}}
.actions button,.result-actions button{min-height:50px;color:#f4f7ed;border:2px solid #54707a;background:#162834;}
.actions .primary,.result-actions .primary {background:#ffb735;border:2px solid #ffb735;color:#16202b;font-size:16px;font-weight:950;box-shadow:0 4px 0 #8d4e08;}
.actions .primary:not(:disabled):active,.result-actions .primary:active {transform:translateY(3px);box-shadow:none;}
.actions .quiet {color:#b5cfda;}
.quick-powers button{background:#142a35!important;color:#fff!important;border:2px solid #63818d!important;box-shadow:0 4px 0 #050f15!important;}
.quick-powers button.chosen{background:#8f361a!important;border-color:#ffbd2b!important;box-shadow:0 0 16px #ff8b1a66!important;}
.quick-powers small{color:#ffcf4a!important;}
.result-panel {background:#111e2b;border:3px solid #ffbd2c;}
.result-panel.won {background:#241a11;border:3px solid #ffb31c;}
.result-panel h2 {font-size:clamp(32px,6vw,53px);color:#fff7df;}
#resultDetail{color:#e9c895;}
.rules-dialog {color:#18242d;background:#fff2d7;}
.rules-heading h2{color:#1c272e;}
.rules-body h3 {color:#973b0d;}
.guide {background:#ffba21;border:3px solid #101a24;color:#111b25;box-shadow:8px 8px 0 #ff5b1c;margin-bottom:22px;}
.guide h2 {font-size:clamp(20px,3vw,26px);font-weight:950;letter-spacing:-.05em;margin:10px 0 8px;color:#151b24;}
.guide p {font-size:14px;font-weight:650;line-height:1.65;color:#202730;}
.guide-heading{color:#242931;font-weight:950;letter-spacing:.04em;}
.guide-heading button{color:#26313d;}
.guide-feedback {color:#0c2535;font-size:14px;font-weight:950;border-top:2px solid #b9750f;padding-top:9px;}
.guide #guideNext {display:block;background:#101923;color:#fff;padding:13px 16px;margin-top:12px;border:0;font-size:15px;font-weight:950;text-decoration:none;}
.guide-target {outline:4px solid #ffb31b!important;outline-offset:5px;animation:control-focus 1.4s ease-in-out infinite alternate;}
@keyframes control-focus{from{filter:drop-shadow(0 0 0 #ffcc63);}to{filter:drop-shadow(0 0 15px #ffbc3d);}}
#quickPowers[hidden],#powersSection[hidden],#secondarySection[hidden],#situation[hidden]{display:none!important;}
.fx-layer {position:absolute;inset:0;z-index:10;pointer-events:none;overflow:hidden;}
.fx-layer>div {position:absolute;pointer-events:none;transform:translate(-50%,-50%);will-change:transform,opacity;}
.fx-impact {width:27%;aspect-ratio:1;border:9px solid #fff2bc;border-radius:50%;box-shadow:0 0 24px #ff7b29;background:#ffeb982b;animation:impact-ring .55s cubic-bezier(.1,.75,.2,1) both;}
.fx-impact.fx-white {border-color:#fff;box-shadow:0 0 27px #47d0ff;}
@keyframes impact-ring{0%{opacity:1;transform:translate(-50%,-50%) scale(.10);}65%{opacity:1;}100%{opacity:0;transform:translate(-50%,-50%) scale(1.7);}}
.fx-grit {width:9px;height:9px;border-radius:2px;background:#fbeac8;box-shadow:0 0 8px #9a5319;animation:grit .75s cubic-bezier(.15,.6,.25,1) both;}
@keyframes grit{to{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(220deg) scale(.15);}}
.fx-capture-ring {width:38%;aspect-ratio:1;border:13px solid #f95827;border-radius:50%;filter:drop-shadow(0 0 15px #ff6e20);animation:impact-ring .85s both;}
.fx-shatter {width:7%;aspect-ratio:1;border-radius:100%;background:radial-gradient(circle at 30% 20%,white,#c8cbd0 70%,#86909b);box-shadow:0 0 6px #fff;animation:shatter .95s cubic-bezier(.1,.5,.25,1) both;}
@keyframes shatter{0%{opacity:1;transform:translate(-50%,-50%) scale(1);}30%{opacity:1;}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(360deg) scale(.14);}}
.fx-announcement,.fx-combo,.fx-win,.fx-convert {z-index:4;white-space:nowrap;font-weight:1000;letter-spacing:-.065em;font-style:italic;text-shadow:4px 5px #111,0 0 30px #f4510c;-webkit-text-stroke:1px #2c1707;font-size:clamp(28px,9vw,72px);color:#fff7cc;animation:pop-hit 1.25s cubic-bezier(.15,.8,.3,1) both;}
.fx-announcement-bomb,.fx-win {font-size:clamp(44px,13vw,100px);color:#ffeb45;text-shadow:6px 8px #a3180d,0 0 45px #f73616;}
.fx-announcement-guide{font-size:clamp(30px,8vw,67px);color:#b7ffff;text-shadow:4px 5px #002f4e,0 0 20px #22dbe2;}
.fx-announcement-swing{font-size:clamp(23px,6vw,48px);color:#8dffff;text-shadow:3px 4px #033b4f;}
.fx-combo{font-size:clamp(47px,13vw,105px);color:#ffea30;text-shadow:6px 8px #c0200b,0 0 40px #ff4621;}
.fx-convert{font-size:clamp(23px,6vw,54px);color:#53f6ff;text-shadow:3px 5px #124982;}
@keyframes pop-hit{0%{opacity:0;transform:translate(-50%,-50%) scale(3.2) rotate(-10deg);}18%{opacity:1;transform:translate(-50%,-50%) scale(.95) rotate(4deg);}30%{transform:translate(-50%,-50%) scale(1.14) rotate(-2deg);}75%{opacity:1;}100%{opacity:0;transform:translate(-50%,-75%) scale(1.2);}}
.fx-bomb-core {width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff8b9 0 10%,#ff9d10 28%,#f12c16 50%,#f12c1600 71%);mix-blend-mode:screen;animation:bomb-core .85s ease-out both;}
@keyframes bomb-core{0%{opacity:1;transform:translate(-50%,-50%) scale(.07);}40%{opacity:1;transform:translate(-50%,-50%) scale(1.4);}100%{opacity:0;transform:translate(-50%,-50%) scale(2);}}
.fx-bomb-ring{width:35%;aspect-ratio:1;border:24px solid #fff8ce;border-radius:50%;box-shadow:0 0 35px #f63718;animation:impact-ring .95s both;}
.fx-bomb-spark {width:16px;height:8px;border-radius:2px;background:#fdf5a6;box-shadow:0 0 13px #f44311;animation:grit .95s both;}
.fx-freeze{width:100%;padding:26% 2%;text-align:center;font-size:clamp(34px,9vw,70px);font-weight:1000;color:#b1ffff;text-shadow:4px 6px #104d77,0 0 40px #00caff;letter-spacing:-.08em;animation:freeze-burst 1s ease-out both;}
@keyframes freeze-burst{0%{opacity:0;transform:translate(-50%,-50%) scale(2.5);}30%{opacity:1;transform:translate(-50%,-50%) scale(1);}75%{opacity:1;}100%{opacity:0;transform:translate(-50%,-50%) scale(.9);}}
.freeze-active .fx-layer{background:#6dd4ff69;animation:freeze-field .8s ease-out both;}
@keyframes freeze-field{0%{opacity:0;filter:brightness(2);}20%{opacity:1;}100%{opacity:0;}}
.board-shake{animation:board-shake .42s steps(1) both;}
@keyframes board-shake {0%,100%{transform:translate(0,0);}10%{transform:translate(-7px,4px);}23%{transform:translate(6px,-5px);}38%{transform:translate(-5px,-3px);}55%{transform:translate(4px,3px);}70%{transform:translate(-2px,2px);}}
.fx-confetti{width:12px;height:21px;background:#ffc928;box-shadow:0 0 12px #ff2e18;animation:confetti 1.3s cubic-bezier(.16,.35,.4,1) both;}
.fx-confetti:nth-child(3n){background:#42faff;}
.fx-confetti:nth-child(5n){background:#f05b42;}
@keyframes confetti{0%{opacity:1;transform:translate(-50%,-50%) scale(.6);}55%{opacity:1;}100%{opacity:0;transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(var(--rot));}}
footer{border-top-color:#405663;color:#91a4b2;}
footer a {color:#70d6e4;}
@media(max-width:600px){
 .shell{padding:13px 12px 27px;}
 h1{font-size:32px;}
 .brand p{font-size:10px;}
 .board-container{border-width:4px;}
 .guide {padding:12px;box-shadow:4px 5px 0 #f35717;margin-bottom:18px;}
 .guide h2{font-size:20px;}
 .guide p{font-size:13px;line-height:1.5;margin:0 0 8px;}
 .guide-feedback{font-size:12px;}
 .board-header #turnLabel{font-size:16px;}
 .quick-powers button{font-size:11px;min-height:53px;}
 .sidebar{border-top:2px solid #f0b33a;padding-top:23px;}
}
@media(prefers-reduced-motion:reduce){
 .fx-layer>*{animation-duration:.01ms!important;}
 .tutorial-target,.tutorial-pin,.guide-target,.odds-black{animation:none!important;transition:none!important;}
 .board-shake{animation:none!important;}
}

.fx-shatter-black{background:radial-gradient(circle at 25% 20%,#596675,#11171f 67%,#090b0e);box-shadow:0 0 10px #24b2e4;}

@media(min-width:851px){
 .shell.training-mode > .guide{max-width:860px;margin:0 auto 22px;}
 .shell.training-mode .layout{grid-template-columns:minmax(0,860px);justify-content:center;}
 .shell.training-mode .board-container{max-width:760px;margin:0 auto;}
 .shell.training-mode .board-header,.shell.training-mode .game-status,.shell.training-mode .situation{max-width:760px;margin-inline:auto;}
}
