*{box-sizing:border-box}body{margin:0;background:#101017;color:#ececf5;font:14px Arial,Helvetica,sans-serif}button,input,select{font:inherit}button,select,input[type=number]{background:#20202d;border:1px solid #3a3a4e;color:#f5f5fc;padding:10px}button{cursor:pointer;font-size:11px;letter-spacing:1px;font-weight:bold}button:hover,button:focus{border-color:#ae9bff;color:#fff}button.primary{background:#b8a4ff;border-color:#b8a4ff;color:#181323;box-shadow:4px 4px 0 #44365f}header{padding:22px 4%;border-bottom:1px solid #303040;display:flex;justify-content:space-between;align-items:center}.logo{font-size:22px;letter-spacing:3px;font-style:italic}.logo span{color:#b8a4ff}.subtitle{font-size:10px;letter-spacing:2px;color:#a0a0b7}.badge{font-size:10px;letter-spacing:1px;border:1px solid #383848;padding:7px;color:#a9a9c2}main{max-width:1100px;margin:auto;padding:28px 26px}.top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:16px}.eyebrow{font-size:10px;letter-spacing:2px;color:#b8a4ff}h1{font-size:30px;letter-spacing:-1px;margin:8px 0}h1 span{color:#9494ad}.toolbar{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.toolbar label{font-size:9px;color:#aaa;letter-spacing:1px}.toolbar select{display:block;margin-top:4px;font-size:11px}.playfield{display:flex;justify-content:center;gap:26px;align-items:flex-start}.left{width:160px;text-align:right}.right{width:130px}aside h2{font-size:14px;letter-spacing:3px;margin:8px 0 12px}h2 span{font-size:9px;letter-spacing:1px;color:#9292ac;margin-left:8px}.left canvas{background:#161620;border-top:2px solid #606077}canvas{display:block}.left canvas{margin-left:auto}.stat{margin-top:27px}.stat label{display:block;font-size:10px;letter-spacing:2px;color:#9898b3}.stat strong{display:block;font-size:29px;letter-spacing:-1px;margin-top:5px;font-variant-numeric:tabular-nums}.stat strong span{font-size:15px;color:#77778f}.board-wrap{position:relative;border:1px solid #5f5f78;border-top:3px solid #c2b1ff;box-shadow:7px 7px 0 #08080d}#board{background:#09090f;outline:none;max-width:100%}.board-foot{height:28px;display:flex;align-items:center;justify-content:space-between;background:#242431;padding:0 10px;font-size:9px;letter-spacing:1px;color:#bfb8d3}#overlay{position:absolute;top:0;left:0;right:0;bottom:28px;background:rgba(10,10,19,.91);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:18px}#overlay h2{font-size:39px;font-style:italic;margin:14px 0 0}#overlay p{color:#bcbcd0;line-height:1.5;margin-bottom:28px}.smallnote{color:#62627c;font-size:9px;letter-spacing:2px;line-height:2}.bottom{max-width:650px;margin:30px auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.bottom b{font-size:10px;letter-spacing:2px;color:#b8a4ff}.bottom p{color:#9696ac;line-height:1.8;font-size:11px;max-width:450px}.bottom button{white-space:nowrap}.panel{border:1px solid #3b3b50;background:#171721;padding:22px;margin:24px 0}.panel h2{font-size:17px;letter-spacing:2px}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.settings-grid label{font-size:12px;color:#b4b4cc}.settings-grid input,.settings-grid select{display:block;margin-top:8px;max-width:100%;width:100%}.settings-grid input[type=checkbox]{width:auto}.bindings{display:flex;flex-wrap:wrap;gap:8px}.bindings button{min-width:135px;text-align:left}.bindings button.listening{border-color:#c5b5ff;background:#40315d}.hint,footer{color:#9292aa;font-size:11px;line-height:1.7}footer{border-top:1px solid #303040;padding-top:20px;text-align:center}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;color:#bdb6d9}#copyStatus{margin-left:12px;font-size:11px}[hidden]{display:none!important}@media(max-width:740px){header{padding:14px}.badge,.subtitle{display:none}main{padding:18px 10px}.top{display:block}.toolbar{margin-top:14px}.playfield{gap:8px}.left{width:90px}.right{width:80px}.left canvas,.right canvas{max-width:100%;height:auto}.stat strong{font-size:19px}.stat label{font-size:8px;letter-spacing:0}.stat{margin-top:20px}aside h2{font-size:10px;letter-spacing:1px}aside h2 span{display:none}.settings-grid{grid-template-columns:repeat(2,1fr)}.bottom{display:block}.board-wrap{max-width:60%}#board{height:auto}.smallnote{font-size:8px;letter-spacing:0}}

.chain-stats{margin:4px 0 20px}.chain-stats label{display:block;color:#9898b3;font-size:9px;letter-spacing:1px}.chain-stats strong{display:block;color:#c2b1ff;font-size:23px;margin:5px 0 14px}.chain-stats p{font-size:11px;color:#f2d75a;min-height:28px;line-height:1.5}

.zen-tools{display:flex;align-items:center;justify-content:center;gap:10px;margin:18px auto;font-size:11px;color:#999}.board-wrap.danger{border-color:#ff4057;box-shadow:0 0 22px rgba(255,30,60,.55),inset 0 0 16px rgba(255,30,60,.35)}#dangerWarning{position:absolute;z-index:2;top:0;left:0;right:0;text-align:center;padding:8px 2px;background:rgba(130,0,20,.8);color:#fff;font-weight:bold;font-size:11px;letter-spacing:1px;pointer-events:none}.board-wrap.danger #board{box-shadow:inset 0 0 25px #e22}@media(prefers-reduced-motion:reduce){.board-wrap{transform:none!important}}

.panel a{color:#c2b1ff;text-underline-offset:3px}.panel a:hover{color:#fff}

/* Board-first layout; warning rails are strictly outside the playable canvas. */
body{background:radial-gradient(ellipse at 50% 30%,#24212e 0,#121117 60%,#09090d 100%)}header{padding:12px 4%;background:#111116}.top{margin-bottom:16px}h1{font-size:23px}main{padding-top:14px}.board-wrap{border:2px solid #a3a1ae;border-top-color:#dedce5;box-shadow:0 5px 22px #0009}.board-foot{background:#17161e}.left canvas{background:transparent;border-top:2px solid #85828d}aside h2{font-style:italic;font-size:19px}.stat strong{font-size:32px;font-style:italic}.playfield{gap:30px}.board-wrap.danger{box-shadow:-10px 0 16px -9px #ff294f,10px 0 16px -9px #ff294f;border-color:#ff4057}.board-wrap.danger #board{box-shadow:none}#dangerWarning{inset:0 auto 28px -22px;width:14px;padding:5px 0;background:#571326;color:#ff9aa9;writing-mode:vertical-rl;text-orientation:mixed;font-size:9px;border-left:2px solid #ff4057;letter-spacing:2px}#dangerWarning:after{content:'';position:absolute;top:0;bottom:0;left:calc(100% + 16px + var(--board-width,300px));width:5px;background:#ff4057;box-shadow:0 0 8px #ff4057}.chain-stats p{font-style:italic;font-weight:bold;font-size:17px;color:#f6f4fa}.smallnote{opacity:.5}@media(max-width:740px){.playfield{gap:25px}.left{width:65px}.right{width:65px}.stat strong{font-size:19px}.board-wrap{max-width:55%}}
@font-face{font-family:Hun;src:url('hun2.ttf') format('truetype');font-display:swap}@font-face{font-family:PFW;src:url('pfwex.woff') format('woff');font-display:swap}
:root{--cell:25px}body{background:linear-gradient(#0008,#0008),url('background.jpg') center/cover fixed;font-family:Hun,Arial,sans-serif}header{background:#0009;border-bottom:1px solid #ffffff30;padding:10px 3%}.logo{font-family:PFW,Arial,sans-serif;font-style:normal;font-size:21px}.subtitle{font-size:13px}.badge{display:none}main{max-width:none;padding:12px 24px}.top{max-width:1050px;margin:0 auto 36px}.top h1{font-family:Hun,Arial,sans-serif;font-size:25px;font-weight:normal;letter-spacing:1px}.eyebrow{font-size:12px;color:#c8a6d0}button{font-family:Hun,Arial,sans-serif;font-weight:normal;font-size:15px}button.primary{background:#714e7e;color:#e8b7ef;border-color:#ac7ab8;box-shadow:none}.playfield{gap:0;align-items:flex-start}.left,.right{width:calc(var(--cell)*5.2);position:relative}.left h2,.right h2{background:white;color:#000;font-family:Arial,sans-serif;font-weight:500;font-style:normal;letter-spacing:0;font-size:calc(var(--cell)*.72);height:calc(var(--cell)*.85);line-height:calc(var(--cell)*.85);margin:0;padding:0 3px;text-align:left}.left h2 span,.right h2 span{display:none}.left canvas{border:2px solid white;border-top:0;background:#000d;margin:0;width:100%;height:auto;clip-path:none}.right canvas{width:100%;height:auto;border:2px solid white;border-top:0;background:#000d;clip-path:polygon(0 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%)}.board-wrap{border:2px solid white;border-top:0;background:transparent;box-shadow:none;max-width:none;margin:0}.board-wrap #board{background:transparent;max-width:none}.board-foot{background:#000b;color:#fff;border-top:1px solid #ffffff50;font-family:Hun,Arial,sans-serif}.board-wrap.danger{border-color:#ff4057;box-shadow:0 0 15px #ff405766}.left .stat{margin:20px 15px 0 0}.stat label{font-size:15px;color:#ccc}.stat strong{font-family:Hun,Arial,sans-serif;font-style:normal;font-size:31px;font-weight:normal}.right .chain-stats{padding:16px 0 0 16px}.chain-stats p{font-family:Hun,Arial,sans-serif;font-style:normal;font-size:25px}.smallnote{display:none}.bottom{margin:14px auto}.bottom p{color:#ddd;font-family:Arial,sans-serif}.zen-tools{margin:14px auto;color:#ddd}.zen-tools span{font-family:Arial,sans-serif;font-size:10px}footer{border:0;color:#bbb;font-family:Arial,sans-serif;font-size:10px;background:#0008;padding:8px;margin:16px auto 0;max-width:1000px}#dangerWarning{left:-14px;width:10px;font-family:Arial,sans-serif;font-size:8px;background:#640c23;z-index:3}#dangerWarning:after{left:calc(100% + 6px + var(--board-width,250px));width:5px}
#settings{position:fixed;inset:0;width:min(860px,94vw);max-height:88vh;overflow:auto;margin:auto;background:#19151ff7;color:#eee;border:2px solid #9871a8;padding:22px;box-shadow:0 20px 100px #000b;font-family:Arial,sans-serif}#settings:not([open]){display:none}#settings::backdrop{background:#000b;backdrop-filter:blur(4px)}.settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.settings-heading h2{margin:0}.settings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}#settings output{font-size:11px;display:block;margin-top:6px;color:#ccc}#settings h3{font-size:14px;margin-top:24px}#settings button{margin:5px 4px 5px 0}#settings #diagnostics{margin:16px 0 0;padding:12px}.panel input[type=checkbox]{accent-color:#c5a0d5}#closeSettings{white-space:nowrap}.panel a{color:#dbc0ed}
@media(max-width:740px){main{padding:10px}.top{margin-bottom:25px}.subtitle{display:block;font-size:10px}.playfield{gap:0;width:max-content;min-width:100%;justify-content:center}.left,.right{width:calc(var(--cell)*4.5)}.left .stat{margin-right:8px}.stat strong{font-size:23px}.stat label{font-size:10px}.board-wrap{max-width:none}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.zen-tools span{display:none}header{min-width:100%}}

#b2b,#combo,#clearEvent{font-family:Arial,sans-serif}.board-foot{font-family:Arial,sans-serif}.panel button{font-family:Arial,sans-serif;font-size:12px}html{background:#101014}.left canvas,.right canvas{image-rendering:auto}

/* Non-flashing action text, outside the playable board. */
.clear-motion{animation:clear-motion 6s cubic-bezier(.1,.38,0,.88) both}@keyframes clear-motion{0%{transform:translateY(0);opacity:1}10%{transform:translateY(-5px);opacity:1}20%{transform:translateY(0);opacity:1}60%{opacity:.95}100%{opacity:0}}@media(prefers-reduced-motion:reduce){.clear-motion{animation:none}}

#modeProgress{width:100%;max-width:110px;height:6px;accent-color:#c8a6d0}.left,.right{flex-shrink:0}.board-wrap{flex-shrink:0}@media(max-width:740px){.playfield{width:100%;min-width:0}.top{margin-bottom:16px}.chain-stats p{font-size:14px;overflow-wrap:anywhere}.stat strong{font-size:18px}.left .stat{margin-top:12px}.right .chain-stats{padding:8px 0 0 8px}}

html[data-graphics="low"] body{background:#14121a}html[data-graphics="low"] #settings::backdrop,html[data-graphics="low"] #results::backdrop{backdrop-filter:none}html[data-graphics="low"] .board-wrap.danger{box-shadow:none}html[data-graphics="low"] #dangerWarning:after{box-shadow:none}html[data-graphics="medium"] .board-wrap,html[data-graphics="low"] .board-wrap{transform:none!important}html[data-graphics="medium"] .clear-motion,html[data-graphics="low"] .clear-motion{animation:none}
#results{position:fixed;inset:0;margin:auto;width:min(620px,94vw);max-height:88vh;overflow:auto;background:#19151f;color:#eee;border:2px solid #9871a8;padding:24px;font-family:Arial,sans-serif}#results:not([open]){display:none}#results::backdrop{background:#000b}#results h2{font-size:26px;margin:8px 0}.results-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.results-grid span{display:block;font-size:11px;color:#bbb}.results-grid strong{display:block;margin-top:7px;font-size:24px;font-variant-numeric:tabular-nums}#results button{font-family:Arial,sans-serif;font-size:12px}#resultsOutcome{color:#bbb;line-height:1.5}@media(max-width:520px){.results-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#results{padding:16px}.results-grid strong{font-size:20px}}

html[data-background="midnight"] body{background:radial-gradient(ellipse at 50% 20%,#302940,#101019 70%)}html[data-background="slate"] body{background:#20242a}html[data-background="black"] body{background:#080808}html[data-graphics="low"] body{background:#14121a}.history-scroll{overflow:auto;max-height:280px}#runHistory{margin:20px 0;font-size:12px}#runHistory summary{cursor:pointer}#runHistory table{border-collapse:collapse;width:100%;min-width:480px}#runHistory td,#runHistory th{text-align:left;padding:8px;border-bottom:1px solid #ffffff25}#results{width:min(760px,94vw)}

#finesseFeedback{display:block;font:11px Arial,sans-serif;color:#bfb9c9;margin-top:8px}.board-wrap{transform-origin:50% 70%}.left canvas,.right canvas{border-color:#d5d0dc}.board-wrap{border-color:#d5d0dc}.left h2,.right h2{background:#e8e4ec}@media(prefers-reduced-motion:reduce){#results{scroll-behavior:auto}}

html[data-graphics="low"][data-background="black"] body{background:#080808}html[data-graphics="low"][data-background="slate"] body{background:#20242a}html[data-graphics="low"][data-background="midnight"] body{background:#171421}

/* Board-side action callouts, not playfield lighting. */
.chain-overlay{position:absolute;z-index:3;pointer-events:none;right:calc(100% + 8px);bottom:16%;width:125px;text-align:right;font-family:hun2,sans-serif;}
.chain-callout{opacity:0;margin-top:12px;font-size:19px;line-height:1.1;font-weight:bold;color:#d8d3ed;transform-origin:right center;overflow-wrap:normal;}
.chain-callout.tier-1{color:#cfb2ff}.chain-callout.tier-2{color:#f8c86c}.chain-callout.tier-3{color:#ff8fb6}.chain-callout.broken{color:#b2acba;font-size:16px}
.chain-pop{animation:chain-callout 1.5s both}.chain-static{opacity:1}
@keyframes chain-callout{0%{opacity:0;transform:translateX(-12px) scale(1.25)}12%{opacity:1;transform:translateX(2px) scale(.98)}25%,70%{opacity:1;transform:translateX(0) scale(1)}100%{opacity:0;transform:translateY(-12px) scale(.96)}}
@media(max-width:740px){.chain-overlay{width:72px;right:calc(100% + 3px);bottom:9%}.chain-callout{font-size:13px}.chain-callout.broken{font-size:11px}}
@media(prefers-reduced-motion:reduce){.chain-pop{animation:none;opacity:1}}

.chain-overlay{bottom:auto;top:37%;display:flex;flex-direction:column-reverse}
.chain-callout{color:#fff;font-size:24px}.chain-pop{animation:chain-bounce 6s both}
#b2bFX{color:#ffd964;font-size:19px;letter-spacing:1px}#b2bFX.broken{color:#e42222}
#b2bFX.chain-persistent{opacity:1;animation:chain-charge .15s ease-out both,chain-spacing 6s cubic-bezier(.1,.38,0,.88) both}
@keyframes chain-bounce{0%{opacity:1;transform:translateY(0)}10%{opacity:1;transform:translateY(-10px)}20%{opacity:1;transform:translateY(0)}60%{opacity:.95}100%{opacity:0;transform:translateY(0)}}
@keyframes chain-charge{0%,100%{transform:scale(1)}50%{transform:scale(1.2)}}
@keyframes chain-spacing{from{letter-spacing:0}to{letter-spacing:1px}}
#b2bFX.chain-static{animation:none}
@media(max-width:740px){.chain-callout{font-size:15px}#b2bFX{font-size:12px}}
@media(prefers-reduced-motion:reduce){#b2bFX.chain-persistent{animation:none}}

.chain-overlay{position:relative;top:auto;right:auto;bottom:auto;width:100%;height:100px;justify-content:center;box-sizing:border-box;padding-right:6px}.chain-callout{margin-top:8px}.chain-callout:not(#b2bFX){color:white}.chain-stats #clearEvent{font-size:17px;line-height:1.25}@media(max-width:740px){.chain-overlay{height:76px;width:100%;padding-right:2px}.chain-stats #clearEvent{font-size:12px}}

.result-primary{padding:22px 0;border-block:1px solid #ffffff30;text-align:center}.result-primary span{display:block;letter-spacing:.18em;font-size:13px;color:#cbb4d8}.result-primary strong{display:block;font:700 clamp(34px,8vw,68px)/1.2 Arial,sans-serif;font-variant-numeric:tabular-nums;color:#fff;margin-top:8px;overflow-wrap:anywhere}#mode:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(1)}
