
:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#eaeaf2;background:#0c0d13;--purple:#ba9aff;--muted:#8c8d9f;--green:#60edb4;--red:#f47b95;--panel:#181a25}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit}button:disabled{opacity:.5;cursor:wait}input{min-width:0;max-width:100%;background:#10111a;border:1px solid #333443;color:#fff;border-radius:7px;padding:13px;font-variant-numeric:tabular-nums;width:100%;outline:none}input:focus-visible,button:focus-visible{outline:2px solid var(--purple);outline-offset:3px}header{height:85px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;border-bottom:1px solid #252631;background:#101119}.brand{display:flex;align-items:center;gap:4px;text-decoration:none;color:#fff;font-size:15px;font-weight:850;letter-spacing:1px}.brand>span:last-child{color:var(--purple)}.brand-mark{border:1px solid #8660bb;background:#322744;border-radius:9px;padding:11px 8px;margin-right:12px;letter-spacing:-1px}.preview-tag{color:#b6a7cd;font-size:10px;letter-spacing:1.6px;background:#221d2e;border:1px solid #3a2d50;border-radius:20px;padding:9px 13px}main{max-width:1270px;margin:auto;padding:44px 40px 0}.heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font-size:10px;color:#a995cc;letter-spacing:2.2px;font-weight:650;margin:0 0 12px}h1{font-size:47px;letter-spacing:-2px;margin:0;line-height:1.05}.accent{color:var(--purple)}.subtitle{color:var(--muted);font-size:13px;margin:12px 0 0}.quiet{border:1px solid #393546;border-radius:7px;background:#201d2b;color:#cdb8eb;padding:11px 16px;font-size:12px}.game{display:grid;grid-template-columns:290px minmax(0,1fr);border:1px solid #2b2c3a;border-radius:14px;overflow:hidden;box-shadow:0 24px 70px #0003}.controls{background:var(--panel);padding:24px 22px;display:flex;flex-direction:column;gap:12px}.mode-switch{display:flex;border-radius:30px;background:#0f1018;padding:5px;margin-bottom:12px}.mode-switch button{flex:1;border-radius:25px;background:none;color:#9293a7;padding:11px;font-size:12px;font-weight:700}.mode-switch .selected{background:#373243;color:#f2e5ff}label{font-size:11px;font-weight:650;color:#b3b2c5;display:flex;justify-content:space-between;align-items:center;gap:4px}label>span{color:#89819b;font-size:10px}.input-group{display:flex;gap:3px;background:#10111a;border:1px solid #333443;border-radius:7px;padding-right:4px;align-items:center}.input-group input{border:0;padding:13px 10px}.input-group button{background:#2b2b3b;border-radius:4px;min-width:32px;height:30px;font-size:12px}.profit-label{display:flex;justify-content:space-between;font-size:11px;color:#9695ab;padding:1px 1px 12px}.profit-label strong{font-size:12px;color:#d5c5ed;font-weight:500}.primary{background:var(--purple);color:#211334;border-radius:8px;padding:16px;font-size:14px;font-weight:800;box-shadow:0 3px 0 #785aa8}.primary:hover:not(:disabled){background:#c9b0ff}.status{font-size:11px;color:#aba0bc;line-height:1.6;margin:2px 0;min-height:36px}.unit-note{font-size:10px;color:#b0b1c3;margin-top:auto;padding-top:22px;border-top:1px solid #292a37}.unit-note p{font-size:10px;color:#717488;line-height:1.6}.status-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--green);margin-right:6px}.table{background:radial-gradient(ellipse at 60% 30%,#25203588,transparent 65%),#12131e;padding:25px 35px 22px;min-height:495px}.table-top{display:flex;justify-content:space-between}.mini-label{color:#696b82;font-size:10px;letter-spacing:2px}.verifiable{font-size:10px;color:#9990aa}.result-stage{text-align:center;padding:33px 0 22px}.result-caption{font-size:9px;letter-spacing:2px;color:#868298}#result{display:block;font-size:76px;font-weight:750;letter-spacing:-3px;line-height:1.25;margin:8px 0 0;font-variant-numeric:tabular-nums;text-shadow:0 4px 35px #b59bff16}#result.win{color:var(--green)}#result.loss{color:#f3cad6}#result-detail{color:#8b869f;font-size:11px;min-height:16px;margin:4px 0}.scale{display:flex;justify-content:space-between;color:#8f90a3;font-size:10px;margin:0 0 13px}input[type=range]{appearance:none;background:linear-gradient(to right,var(--red) 0%,var(--red) 50.5%,var(--green) 50.5%,var(--green) 100%);height:8px;border:0;padding:0;border-radius:9px;margin:0;cursor:ew-resize}input[type=range]::-webkit-slider-thumb{appearance:none;width:24px;height:30px;border:5px solid #cdb7ff;border-radius:6px;background:#7c5bc0;box-shadow:0 2px 12px #0006}input[type=range]::-moz-range-thumb{width:16px;height:22px;border:4px solid #cdb7ff;border-radius:6px;background:#7c5bc0}.range-caption{display:flex;justify-content:space-between;color:#746e88;font-size:8px;letter-spacing:1.6px;margin:17px 0 28px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.metrics label{margin-bottom:8px;font-size:10px}.metrics input{font-size:16px;font-weight:650;background:#1d1e2b;border-color:#303040;height:48px}.metric-input{display:flex;align-items:center;background:#1d1e2b;border:1px solid #303040;border-radius:7px}.metric-input input{border:0}.metric-input>span{color:#7d778e;padding-right:13px}.text-button{font-size:10px;background:none;color:#c1a5ef;padding:0}.recent-head{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#777589;margin:27px 0 12px}#run-total{letter-spacing:0;color:#a49ab6}.recent{display:flex;gap:6px;min-height:25px;overflow:hidden}.recent button{font-size:10px;border-radius:20px;padding:6px 10px;white-space:nowrap;background:#29232f;color:#d9acba}.recent button.win{background:#183b31;color:var(--green)}.empty{font-size:10px;color:#5d5d74}.history{margin-top:37px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.section-title h2{font-size:15px;margin:0;font-weight:650}.section-title>span{font-size:10px;color:#78788e}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:11px;white-space:nowrap}th{text-align:left;background:#161722;color:#89889e;padding:13px 17px;font-weight:500}td{border-bottom:1px solid #22232f;padding:13px 17px;color:#b5b3c5}td.win{color:var(--green)}td button{background:transparent;color:#b599da;font-size:10px}footer{margin-top:35px;padding:25px 0;border-top:1px solid #242430;font-size:9px;letter-spacing:1px;color:#666678;display:flex;justify-content:space-between}footer span{letter-spacing:0;color:#555669}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.two-fields label{margin-bottom:7px}#auto-controls>label{margin-bottom:8px}.hint{font-size:10px;color:#7c788e;line-height:1.5}.danger{background:#442331;color:#ffc5d0;border-radius:6px;padding:12px}dialog{width:min(600px,90vw);max-height:85vh;overflow:auto;background:#181824;color:#c4bdd5;border:1px solid #49415c;border-radius:15px;padding:28px;box-shadow:0 24px 150px #0008}dialog::backdrop{background:#06060dcc;backdrop-filter:blur(4px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:18px}.dialog-heading h2{font-size:22px;margin:0;color:#fff}dialog p{font-size:12px;line-height:1.75}dialog label{margin:20px 0 10px}dialog code{display:block;overflow-wrap:anywhere;background:#0f1019;padding:12px;border-radius:6px;color:#bca4de;font-size:11px}dialog>.primary,dialog>.quiet{margin-top:10px;width:100%}[hidden]{display:none!important}@media(max-width:850px){main{padding:32px 22px 0}.game{grid-template-columns:245px minmax(0,1fr)}.controls{padding:20px 16px}.table{padding:23px 20px}.metrics{gap:7px}.metrics input{padding:10px;font-size:14px}}@media(max-width:640px){header{height:70px;padding:0 20px}.brand{font-size:12px}.brand-mark{padding:8px 5px;margin-right:6px}.preview-tag{font-size:8px;letter-spacing:.6px;padding:7px}.heading{align-items:end;gap:10px}.heading>.quiet{font-size:10px;padding:9px}.eyebrow{font-size:8px;letter-spacing:1.2px}h1{font-size:39px}.subtitle{font-size:11px}.game{display:flex;flex-direction:column}.table{order:0;padding:22px 20px;min-height:450px}.controls{order:1;border-top:1px solid #2d2b3b;padding:22px}.unit-note{padding-top:15px;margin-top:5px}.result-stage{padding-top:24px}#result{font-size:65px}.history{margin-top:27px}.section-title{align-items:start;gap:10px}.section-title>span{max-width:145px;text-align:right;line-height:1.5}th,td{padding:12px}.metrics label{font-size:9px}footer{gap:16px;line-height:1.6}footer span{text-align:right;max-width:190px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,opacity .15s}#result{transition:color .15s}}

.dice-rail{position:relative;margin-top:42px;height:12px}.landing-marker{position:absolute;left:50%;bottom:16px;width:0;height:0;color:#cbb0ff;z-index:2;pointer-events:none;filter:drop-shadow(0 3px 8px #0007)}.landing-label{position:absolute;left:0;bottom:12px;transform:translateX(-50%);padding:8px 10px;background:currentColor;border-radius:6px;white-space:nowrap;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}.landing-label::first-line{color:#17111f}.landing-arrow{position:absolute;left:-7px;bottom:0;width:0;height:0;border-left:7px solid transparent;border-right:7px solid transparent;border-top:10px solid currentColor}.landing-marker.win{color:#60edb4}.landing-marker.loss{color:#f47b95}.landing-marker.travelling{color:#cbb0ff}.scale{margin-bottom:0}.rolling{color:#cbb0ff!important}.landed .landing-label{animation:land-pop .25s ease-out}.landed .landing-arrow{animation:arrow-land .25s ease-out}@keyframes land-pop{0%{scale:1.18}100%{scale:1}}@keyframes arrow-land{0%{translate:0 -6px}100%{translate:0 0}}@media(prefers-reduced-motion:reduce){.landed .landing-label,.landed .landing-arrow{animation:none}}
.landing-label{background:#cbb0ff;color:#17111f}.landing-marker.win .landing-label{background:#60edb4}.landing-marker.loss .landing-label{background:#f47b95}
.house-nav{display:flex;gap:16px;overflow-x:auto;padding:8px 0 20px}.house-nav a{color:#b9abd9;white-space:nowrap;font-size:13px;text-decoration:none}
/* A labelled, fixed-size control makes the animation toggle discoverable. */
.table-top{align-items:center}
#speed.speed-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 132px;width:132px;height:42px;min-height:42px;padding:3px 10px;border:1px solid #ba9aff;border-radius:8px;background:#352849;color:#f2e9ff;box-shadow:0 2px 0 #171020;font-size:12px;font-weight:750;line-height:17px;white-space:nowrap;touch-action:manipulation}
#speed.speed-toggle::after{content:attr(data-hint);font-size:10px;font-weight:500;line-height:14px;color:#d6c4f2}
#speed.speed-toggle:hover:not(:disabled){background:#514064;border-color:#dfccff}
#speed.speed-toggle:active:not(:disabled){background:#65507e;box-shadow:inset 0 2px 4px #0004}
#speed.speed-toggle[aria-pressed=true]{background:#4b3972;border-color:#d8bbff;color:#fff}
#speed.speed-toggle:disabled{opacity:1;cursor:default;background:#222631;border-color:#4a4e60;color:#b7bfd0;box-shadow:none}
#speed.speed-toggle:disabled::after{color:#929caf}

/* Shared by Dice and the collection: navigation always remains a panel. */
#games{display:flex;gap:8px;overflow-x:auto;padding:12px 0 24px}#games a{color:#9aa8be;text-decoration:none;padding:10px 15px;background:#192438;border-radius:10px;white-space:nowrap}#games a.selected{background:#6352b8;color:white}
#games{background:#111c2c;border:1px solid #29354b;border-radius:12px;padding:10px;margin:0 0 18px;align-items:center}#games a{font-size:13px;line-height:18px;flex:none}#games a:focus-visible{outline:2px solid #c4b5fd;outline-offset:2px}
/* A fixed footprint: emphasis changes colour and shadow, never card dimensions. */
.table[data-manual-win=true],.collection-table[data-manual-win=true]{box-shadow:inset 0 0 0 2px #60edb4,inset 0 0 60px #60edb412;animation:manual-win-glow .45s ease-out}
[data-manual-win=true] .result-caption,[data-manual-win=true] #detail,[data-manual-win=true] #result-detail{color:#8bffcd;font-weight:650}
@keyframes manual-win-glow{from{box-shadow:inset 0 0 0 2px #aaffdd,inset 0 0 80px #60edb440}to{box-shadow:inset 0 0 0 2px #60edb4,inset 0 0 60px #60edb412}}
@media(prefers-reduced-motion:reduce){.table[data-manual-win=true],.collection-table[data-manual-win=true]{animation:none}}

.big-win-dialog{max-width:min(92vw,460px);text-align:center;border:1px solid #60edb4;border-radius:20px;padding:28px;background:#101d2b;color:#fff}.big-win-dialog::backdrop{background:rgba(0,0,0,.75)}.big-win-amount{font-size:clamp(24px,6vw,40px);font-weight:800;color:#60edb4;overflow-wrap:anywhere}.big-win-dialog p{margin:18px 0}
