body{background:#0b0c10;color:#f4f6f0;margin:0}
/* BLOCK_LAB PoW lab page (test only) */
.pow-wrap{max-width:1040px;margin:0 auto;padding:18px 16px 60px}
.pow-tag{display:inline-block;font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#ff6a1a;border:1px solid #ff6a1a;border-radius:999px;padding:6px 12px;margin:14px 0 6px}
.pow-h1{font-family:'Press Start 2P',monospace;font-size:22px;line-height:1.5;color:#f4f6f0;margin:6px 0 10px}
.pow-h1 b{color:#CBF806;font-weight:400}
.pow-lead{font-family:'Space Mono',monospace;font-size:13px;line-height:1.7;color:#9aa3b5;max-width:760px}
.pow-lead b{color:#f4f6f0}
.pow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}
.pow-st{background:#12141a;border:2px solid #242838;border-radius:10px;padding:12px 14px}
.pow-st .k{font-family:'Space Mono',monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#6b7386}
.pow-st .v{font-family:'Press Start 2P',monospace;font-size:13px;line-height:1.6;color:#CBF806;margin-top:6px;word-break:break-all}
.pow-st .v.o{color:#ff6a1a}.pow-st .v.w{color:#f4f6f0}.pow-st .s{font-family:'Space Mono',monospace;font-size:11px;color:#9aa3b5;margin-top:4px}
.pow-card{background:#12141a;border:2px solid #242838;border-radius:12px;padding:16px;margin:14px 0}
.pow-card.g{border-color:#CBF806;box-shadow:0 0 22px rgba(203,248,6,.18)}
.pow-card .h{font-family:'Space Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#CBF806;margin-bottom:10px}
.pow-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pow-btn{font-family:'Press Start 2P',monospace;font-size:10px;padding:14px 18px;border-radius:10px;border:2px solid #CBF806;background:#CBF806;color:#0b0c10;cursor:pointer}
.pow-btn.o{background:#ff6a1a;border-color:#ff6a1a;color:#0b0c10}.pow-btn.ghost{background:transparent;color:#f4f6f0;border-color:#3a3f48}
.pow-btn:disabled{opacity:.4;cursor:not-allowed}.pow-btn.sm{font-size:9px;padding:9px 12px}
.pow-in{font-family:'Space Mono',monospace;font-size:13px;padding:11px 12px;border-radius:8px;border:2px solid #242838;background:#0b0c10;color:#f4f6f0;min-width:90px}
.pow-msg{font-family:'Space Mono',monospace;font-size:12px;line-height:1.6;margin-top:10px;color:#9aa3b5}
.pow-msg.ok{color:#2fe38a}.pow-msg.bad{color:#ff5470}.pow-msg.info{color:#4fc3ff}.pow-msg a{color:#CBF806}
.pow-log{font-family:'Space Mono',monospace;font-size:11px;line-height:1.7;color:#9aa3b5;max-height:200px;overflow:auto;margin-top:10px;border-top:1px dashed #242838;padding-top:8px}
.pow-log b{color:#f4f6f0}.pow-log .ok{color:#2fe38a}.pow-log .bad{color:#ff5470}
.pow-hash{font-family:'Space Mono',monospace;font-size:11px;color:#6b7386;word-break:break-all}
.pow-hash .z{color:#CBF806;font-weight:700}
.pow-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-top:10px}
.pow-blk{display:grid;grid-template-columns:64px 1fr;gap:12px;align-items:center;background:#0f1116;border:2px solid #242838;border-radius:10px;padding:10px}
.pow-blk img{width:64px;height:64px;border-radius:8px;image-rendering:auto}
.pow-blk b{font-family:'Press Start 2P',monospace;font-size:10px;color:#f4f6f0;font-weight:400}
.pow-blk .kc{font-family:'Space Mono',monospace;font-size:11px;color:#CBF806}
.pow-blk .m{font-family:'Space Mono',monospace;font-size:11px;color:#9aa3b5;line-height:1.5}
.pow-blk .acts{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.pow-bar{height:8px;border-radius:4px;background:#1a1d25;overflow:hidden;margin-top:6px}.pow-bar i{display:block;height:100%;background:#CBF806;width:0}
.pow-rules{font-family:'Space Mono',monospace;font-size:12px;line-height:1.7;color:#9aa3b5}
.pow-rules b{color:#f4f6f0}.pow-rules td{padding:4px 8px 4px 0;vertical-align:top;border-bottom:1px solid #1a1d25}
.pow-warn{font-family:'Space Mono',monospace;font-size:11px;color:#ffb454;border:1px dashed #ffb454;border-radius:8px;padding:8px 12px;margin:10px 0}
@media(max-width:520px){.pow-h1{font-size:16px}.pow-blk{grid-template-columns:52px 1fr}}
.pow-toggle{display:inline-flex;border:2px solid #242838;border-radius:999px;overflow:hidden;vertical-align:middle}
.pow-toggle button{font-family:'Press Start 2P',monospace;font-size:9px;padding:9px 14px;border:0;background:#12141a;color:#6b7386;cursor:pointer}
.pow-toggle button.on{background:#CBF806;color:#0b0c10}
.pow-toggle button:disabled{opacity:.35;cursor:not-allowed}

.pow-txlink{color:#CBF806;text-decoration:underline;word-break:break-all}
.pow-txlink:hover{color:#fff}

/* cores slider */
.pow-range{-webkit-appearance:none;appearance:none;height:6px;border-radius:4px;background:#242838;outline:none;width:130px;vertical-align:middle;margin-left:8px}
.pow-range::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:4px;background:#CBF806;cursor:pointer;border:none}
.pow-range::-moz-range-thumb{width:16px;height:16px;border-radius:4px;background:#CBF806;cursor:pointer;border:none}
.pow-dim{color:#6b7386}

/* keep the cores control a constant width so dragging the slider never shifts the row */
#m-workers-l{flex:0 0 auto}
#m-workers-n{display:inline-block;width:2ch;text-align:right}
#m-cores-max{display:inline-block;width:3.2em}

/* --- 08 Crumble: the sealed block cracks and flakes on the LEFT while the miner hunts the hash --- */
.pow-mine2{display:grid;grid-template-columns:1fr;gap:14px;align-items:start;margin-top:10px}
.pow-mine2.on{grid-template-columns:1fr}
.pow-mine2-main{min-width:0}
.pow-crumble{display:none;--cycle:7s;position:relative;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;background:radial-gradient(ellipse at 50% 55%,#171a21 0%,#0b0c10 72%);border:2px solid #242838;border-radius:12px}
.pow-mine2.on .pow-crumble{display:flex}
.pow-crumble .block{position:relative;width:148px;height:148px}
.pow-crumble .block img{position:absolute;inset:0;width:148px;height:148px;image-rendering:pixelated}
.pow-crumble .seal{animation:pcSealOut var(--cycle) steps(1,end) infinite}
.pow-crumble .real{opacity:0;animation:pcRealIn var(--cycle) steps(1,end) infinite}
.pow-crumble.mining .seal{animation:none;opacity:1}
.pow-crumble.mining .real{animation:none;opacity:0}
.pow-crumble .cracks{position:absolute;inset:0;width:148px;height:148px;overflow:hidden}
.pow-crumble .cracks path{fill:none;stroke:#e8ecf2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;filter:drop-shadow(0 0 1.5px rgba(244,246,240,.55));animation:pcDraw var(--cycle) ease-out infinite}
.pow-crumble .cracks .p1{animation-delay:0s}.pow-crumble .cracks .p2{animation-delay:.5s}.pow-crumble .cracks .p3{animation-delay:1s}.pow-crumble .cracks .p4{animation-delay:1.5s}.pow-crumble .cracks .p5{animation-delay:2s}.pow-crumble .cracks .p6{animation-delay:2.5s}
@keyframes pcDraw{0%{stroke-dashoffset:100;opacity:.9}40%{opacity:1}55%,74%{stroke-dashoffset:0;opacity:1}74.01%,100%{stroke-dashoffset:0;opacity:0}}
.pow-crumble .flakes{position:absolute;top:50%;left:50%;width:0;height:0}
.pow-crumble .flakes i{position:absolute;opacity:0;width:9px;height:9px;background:#2b313c;border:1px solid #454d59;animation:pcFall var(--cycle) ease-in infinite}
.pow-crumble .flakes i:nth-child(1){--dx:-34px;--dy:70px;animation-delay:1.6s}.pow-crumble .flakes i:nth-child(2){--dx:28px;--dy:76px;animation-delay:2.4s}.pow-crumble .flakes i:nth-child(3){--dx:-10px;--dy:82px;animation-delay:3.1s}.pow-crumble .flakes i:nth-child(4){--dx:48px;--dy:66px;animation-delay:3.9s}.pow-crumble .flakes i:nth-child(5){--dx:-52px;--dy:64px;animation-delay:4.6s}
@keyframes pcFall{0%{opacity:0;transform:translate(0,0) rotate(0)}6%{opacity:1}40%,100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(160deg)}}
@keyframes pcSealOut{0%,74%{opacity:1}74.01%,93%{opacity:0}93.01%,100%{opacity:1}}
@keyframes pcRealIn{0%,74%{opacity:0}74.01%,93%{opacity:1}93.01%,100%{opacity:0}}
.pow-crumble.found .seal{animation:none;opacity:0}
.pow-crumble.found .real{animation:none;opacity:1}
.pow-crumble.found .cracks path{animation:none;stroke-dashoffset:0;opacity:0}
.pow-crumble.found .flakes i{animation:none;opacity:0}
.pow-crumble-cap{font-family:'Space Mono',monospace;font-size:11px;color:#9aa3b5;text-align:center;line-height:1.4;min-height:14px}
@media(max-width:640px){.pow-mine2.on{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.pow-crumble *{animation:none!important}.pow-crumble .cracks path{stroke-dashoffset:0;opacity:.9}}

/* mine-page stat cards: title + value only; the description is a tooltip on hover / tap (ⓘ) */
.pow-grid.tips .pow-st{position:relative;cursor:default}
.pow-grid.tips .pow-st .k::after{content:"  ⓘ";color:#6b7386;font-size:10px;letter-spacing:0;text-transform:none}
.pow-grid.tips .pow-st .s{display:none;position:absolute;left:6px;right:6px;top:calc(100% - 4px);z-index:30;background:#0e1015;border:1px solid #CBF806;border-radius:8px;padding:8px 10px;color:#e9ecf2;font-size:11px;line-height:1.5;box-shadow:0 12px 28px rgba(0,0,0,.65);margin-top:0}
.pow-grid.tips .pow-st:hover .s,.pow-grid.tips .pow-st.open .s{display:block}
.pow-grid.tips .pow-st .s:empty{display:none!important}

/* wide single card row (cost to inscribe) */
.pow-grid-wide{grid-template-columns:1fr;margin-top:-6px}
.pow-st.wide{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap}
.pow-st.wide .k{min-width:150px}.pow-st.wide .v{margin-top:0}
.pow-st .v br{line-height:1.7}

/* --- 10 Shatter Release: cracks draw in and STAY while mining (limbs keep grafting on, widths grow); on a find the seal bursts into shards --- */
.pow-crumble.mining .cracks path{animation:pcDrawIn 2.6s ease-out forwards}
@keyframes pcDrawIn{0%{stroke-dashoffset:100;opacity:.85}100%{stroke-dashoffset:0;opacity:1}}
.pow-crumble .shards{position:absolute;top:50%;left:50%;width:0;height:0;pointer-events:none;z-index:3}
.pow-crumble .shards i{position:absolute;opacity:0;width:19px;height:19px;background:#3b4250;border:2px solid #5b636f;border-radius:2px;margin:-10px 0 0 -10px}
.pow-crumble .shards i:nth-child(1){--dx:-92px;--dy:-64px}.pow-crumble .shards i:nth-child(2){--dx:86px;--dy:-72px}.pow-crumble .shards i:nth-child(3){--dx:-72px;--dy:58px}.pow-crumble .shards i:nth-child(4){--dx:80px;--dy:50px}
.pow-crumble .shards i:nth-child(5){--dx:-104px;--dy:8px}.pow-crumble .shards i:nth-child(6){--dx:100px;--dy:-12px}.pow-crumble .shards i:nth-child(7){--dx:-26px;--dy:-96px}.pow-crumble .shards i:nth-child(8){--dx:34px;--dy:88px}
.pow-crumble.found .shards i{animation:pcBurst .9s ease-out forwards}
@keyframes pcBurst{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--dx),var(--dy)) rotate(240deg)}}
.pow-crumble.found .seal{animation:pcSealBurst .3s steps(1,end) forwards}
@keyframes pcSealBurst{0%{opacity:1}100%{opacity:0}}
.pow-crumble.found .real{animation:pcRealPop .6s cubic-bezier(.2,1.4,.4,1) forwards;opacity:0}
@keyframes pcRealPop{0%{opacity:0;transform:scale(.6)}60%{opacity:1;transform:scale(1.08)}100%{opacity:1;transform:scale(1)}}
.pow-crumble.found .cracks path{animation:pcCrackOut .3s ease-in forwards;stroke-dashoffset:0}
@keyframes pcCrackOut{to{opacity:0}}
@media(prefers-reduced-motion:reduce){.pow-crumble .shards i{display:none}.pow-crumble.found .real{animation:none;opacity:1}}

/* the hunt never looks frozen: block tremor + crack glow pulse run for as long as .mining is on; shed cracks fade out */
@keyframes pcTremor{0%{transform:translate(0,0)}25%{transform:translate(.6px,-.4px)}50%{transform:translate(-.5px,.5px)}75%{transform:translate(.4px,.6px)}100%{transform:translate(0,0)}}
@keyframes pcGlow{0%,100%{opacity:.82;filter:drop-shadow(0 0 0 rgba(232,236,242,0))}50%{opacity:1;filter:drop-shadow(0 0 3px rgba(232,236,242,.55))}}
@media(prefers-reduced-motion:reduce){.pow-crumble.mining .block,.pow-crumble.mining .cracks{animation:none}}

/* while hunting, the square shows the nonce being tried right now (full number, fitted); cracks keep growing over it */
.pow-crumble .nonce{position:absolute;inset:0;display:none;padding:10px 8px;box-sizing:border-box;font-family:'Press Start 2P',monospace;font-size:10px;line-height:1.7;letter-spacing:0;color:#ff6a1a;text-shadow:0 0 8px #ff6a1a66;word-break:break-all;overflow:hidden;background:#0b0d11;border:1px solid rgba(203,248,6,.4);border-radius:4px;text-align:left;z-index:1}
.pow-crumble.mining .nonce{display:block}
.pow-crumble.mining .seal{opacity:0}
.pow-crumble .cracks{z-index:2}
.pow-crumble.found .nonce{display:none}

/* the nonce being tried, under the progress bar (same style as the BEST SO FAR value) */
.pow-nonce{margin-top:10px;font-family:'Press Start 2P',monospace;font-size:10px;line-height:1.8;color:#ff6a1a;text-shadow:0 0 8px rgba(255,106,26,.4);word-break:break-all;min-height:18px}
