:root,:root[data-skin=voltage]{--bg:#080614;--bg-glow-1:#2A0F55;--bg-glow-2:#06283A;--frame:#171034;--frame-hi:#2E2168;--frame-lo:#0A0620;--socket:#130C2C;--socket-in:#0B0720;--socket-edge:rgba(160,140,255,.1);--ink:#EDE9FF;--ink-2:#8F87C0;--ink-3:#6A628F;--rule:rgba(160,140,255,.2);--accent:#22E7FF;--accent-2:#FF2D95;--accent-ink:#04121A;--panel:#160F32;--panel-2:#100A26;--shadow:rgba(0,0,0,.75);--danger:#FF4D6D;--good:#5BE49B;--plate-1:#1D1445;--plate-2:#130C30;--plate-edge:#22E7FF;--board-radius:14px;--cell-radius:7px;--tray-tex:none}:root[data-skin=voltage] body,:root:not([data-skin]) body{background:radial-gradient(90% 55% at 15% -5%,var(--bg-glow-1) 0%,transparent 60%),radial-gradient(80% 50% at 90% 8%,var(--bg-glow-2) 0%,transparent 55%),var(--bg)}:root[data-skin=voltage] .board{background:linear-gradient(160deg,var(--frame-hi),var(--frame) 48%,var(--frame-lo));box-shadow:inset 0 1px #b4a0ff4d,0 0 0 1px #22e7ff38,0 0 34px -10px #22e7ff80,0 14px 30px var(--shadow)}:root[data-skin=voltage] .cell{background:linear-gradient(180deg,var(--socket-in),var(--socket));box-shadow:inset 0 0 0 1px var(--socket-edge),inset 0 2px 5px #0000008c}:root[data-skin=voltage] .blk{border-radius:var(--cell-radius);background:radial-gradient(120% 130% at 30% 18%,var(--hi),var(--base) 52%,var(--lo));box-shadow:inset 0 0 0 1px #ffffff4d,inset 0 -5px 9px -4px #000000a6,0 0 11px -1px var(--base),0 0 26px -8px var(--base)}:root[data-skin=voltage] .blk:after{content:"";position:absolute;left:16%;right:16%;top:11%;height:22%;border-radius:99px;background:#ffffff6b;filter:blur(1.5px)}:root[data-skin=chapel]{--bg:#0C0E14;--bg-glow-1:#1B2333;--bg-glow-2:#241B10;--frame:#232733;--frame-hi:#39404F;--frame-lo:#12141B;--socket:#171A22;--socket-in:#0F1117;--socket-edge:rgba(224,184,76,.09);--ink:#F3EFE3;--ink-2:#A39C8A;--ink-3:#7A7466;--rule:rgba(224,184,76,.2);--accent:#E0B84C;--accent-2:#C6273E;--accent-ink:#1A1508;--panel:#1A1D26;--panel-2:#13161D;--shadow:rgba(0,0,0,.7);--danger:#E0563F;--good:#66C79A;--plate-1:#242835;--plate-2:#171A23;--plate-edge:#E0B84C;--board-radius:6px;--cell-radius:2px;--tray-tex:none}:root[data-skin=chapel] body{background:radial-gradient(70% 45% at 50% -8%,var(--bg-glow-1) 0%,transparent 62%),radial-gradient(60% 40% at 88% 92%,var(--bg-glow-2) 0%,transparent 60%),var(--bg)}:root[data-skin=chapel] .board{background:linear-gradient(168deg,var(--frame-hi),var(--frame) 40%,var(--frame-lo));box-shadow:inset 0 1px #ffffff1a,0 0 0 1px #e0b84c47,0 0 0 4px #00000059,0 16px 32px var(--shadow)}:root[data-skin=chapel] .cell{background:linear-gradient(180deg,var(--socket-in),var(--socket));box-shadow:inset 0 0 0 1px #000000a6,inset 0 1px 3px #00000080}:root[data-skin=chapel] .blk{border-radius:var(--cell-radius);background:linear-gradient(147deg,var(--hi) 0%,var(--base) 42%,var(--lo) 100%);box-shadow:inset 0 0 0 1.5px #08070ccc,inset 0 2px 7px #ffffff4d,0 0 15px -5px var(--base)}:root[data-skin=chapel] .blk:after{content:"";position:absolute;inset:2px;border-radius:1px;pointer-events:none;background:linear-gradient(118deg,rgba(255,255,255,.44) 0 15%,transparent 38%,transparent 62%,rgba(255,255,255,.13) 78%,transparent 90%)}:root[data-skin=timber]{--bg:#EDE0CB;--bg-glow-1:#F5EBDA;--bg-glow-2:#E2D2B7;--frame:#8A6440;--frame-hi:#A87F55;--frame-lo:#6B4B2E;--socket:#C6AE8B;--socket-in:#B39A76;--socket-edge:rgba(0,0,0,.1);--ink:#2E2016;--ink-2:#6B5745;--ink-3:#8B7761;--rule:rgba(46,32,22,.18);--accent:#9A7413;--accent-2:#A33B22;--accent-ink:#FFF6E2;--panel:#DCCBAF;--panel-2:#D2BE9C;--shadow:rgba(46,32,22,.32);--danger:#A33B22;--good:#5C7A33;--plate-1:#D9BF6E;--plate-2:#B8993F;--plate-edge:#9A7413;--board-radius:10px;--cell-radius:4px;--tray-tex:repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 9px)}:root[data-skin=timber] body{background:radial-gradient(120% 80% at 50% -10%,var(--bg-glow-1) 0%,var(--bg-glow-2) 70%),var(--bg)}:root[data-skin=timber] .board{background:repeating-linear-gradient(91deg,rgba(0,0,0,.05) 0 1px,transparent 1px 7px),linear-gradient(165deg,var(--frame-hi),var(--frame) 45%,var(--frame-lo));box-shadow:inset 0 2px #ffffff29,inset 0 -3px #0000004d,0 6px 0 var(--frame-lo),0 12px 22px var(--shadow)}:root[data-skin=timber] .cell{background:linear-gradient(180deg,var(--socket-in),var(--socket));box-shadow:inset 0 2px 3px #00000052,inset 0 -1px #ffffff1a}:root[data-skin=timber] .blk{border-radius:var(--cell-radius);background:repeating-linear-gradient(88deg,rgba(0,0,0,.055) 0 1px,transparent 1px 6px),linear-gradient(168deg,var(--hi),var(--base) 52%,var(--lo));box-shadow:inset 0 2px #ffffff4d,inset 0 -3px #00000042,0 2px 3px #0000004d}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{margin:0;color:var(--ink);font-family:Archivo,system-ui,-apple-system,Segoe UI,sans-serif;display:flex;justify-content:center;padding:calc(16px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow-x:hidden;overscroll-behavior:none;transition:background .4s ease,color .3s ease}.app{width:min(94vw,470px)}.screen{display:flex;flex-direction:column;gap:14px}.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace}.tnum{font-variant-numeric:tabular-nums}h1{font-family:Alfa Slab One,Georgia,serif;font-weight:400;font-size:clamp(22px,6.4vw,30px);line-height:.95;margin:0;letter-spacing:-.01em}h1 span{display:block;color:var(--accent)}.sub{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);margin-top:7px}.eyebrow{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.plate{border-radius:6px;padding:8px 14px 9px;text-align:right;min-width:122px;background:linear-gradient(160deg,var(--plate-1),var(--plate-2));border:1px solid var(--plate-edge);box-shadow:0 2px 0 var(--shadow),inset 0 1px #ffffff2e}.plate .k{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.plate .v{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-weight:500;font-size:26px;line-height:1.05;color:var(--ink)}.plate .best{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:10px;letter-spacing:.08em;color:var(--ink-2);margin-top:2px}.card{border-radius:10px;padding:14px;background:var(--tray-tex),linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--rule);box-shadow:inset 0 1px #ffffff12,0 3px 0 var(--shadow)}.stack{display:flex;flex-direction:column;gap:9px}.rowbtns{display:flex;gap:8px}.rowbtns>*{flex:1}.aside{font-size:11.5px;line-height:1.55;color:var(--ink-2)}.aside b{color:var(--ink);font-weight:600}.err{font-size:11px;color:var(--danger);min-height:14px}button{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:6px;padding:9px 12px;cursor:pointer;box-shadow:0 2px 0 var(--shadow);transition:transform .08s ease,box-shadow .08s ease,border-color .12s ease}button:hover:not(:disabled){border-color:var(--accent)}button:active:not(:disabled){transform:translateY(2px);box-shadow:none}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:linear-gradient(160deg,var(--plate-1),var(--plate-2));border-color:var(--plate-edge);font-weight:500}button.wide{width:100%}input{width:100%;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:13px;letter-spacing:.06em;color:var(--ink);background:color-mix(in srgb,var(--bg) 72%,#000 10%);border:1px solid var(--rule);border-radius:6px;padding:11px;box-shadow:inset 0 2px 3px #00000040}input:focus{outline:2px solid var(--accent);outline-offset:1px}input::placeholder{color:var(--ink-3)}.hero{text-align:center;padding:28px 16px 24px;border-radius:var(--board-radius);background:linear-gradient(160deg,var(--frame-hi),var(--frame) 48%,var(--frame-lo));box-shadow:inset 0 1px #ffffff2e,0 0 0 1px var(--rule),0 14px 30px var(--shadow)}.hero h1{font-size:clamp(30px,9vw,44px)}.hero h1 span{color:var(--accent)}.hero .sub{margin-top:10px}.swatches{display:flex;gap:6px;justify-content:center;margin-top:18px}.swatches i{width:20px;height:20px;border-radius:var(--cell-radius);display:block;position:relative}.who{display:flex;align-items:center;justify-content:space-between;gap:10px}.who .name{font-weight:600;font-size:15px}.who .tag{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}.modes{display:flex;flex-direction:column;gap:10px}.mode{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;text-align:left;padding:15px;border-radius:10px;cursor:pointer;background:linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--rule);box-shadow:0 3px 0 var(--shadow);font-family:inherit;text-transform:none;letter-spacing:0}.mode .mh{display:block;font-family:Alfa Slab One,Georgia,serif;font-weight:400;font-size:19px;margin-bottom:4px;letter-spacing:.01em;color:var(--ink)}.mode p{margin:0;font-size:11.5px;line-height:1.5;color:var(--ink-2)}.mode .num{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:23px;color:var(--accent);text-align:right;line-height:1.1}.mode .num small{display:block;font-size:8px;letter-spacing:.2em;color:var(--ink-2)}.mode.resume{border-color:var(--accent);box-shadow:0 3px 0 var(--shadow),inset 0 0 0 1px var(--accent)}.skins{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.skin{padding:10px 8px 9px;border-radius:9px;cursor:pointer;text-align:center;border:1px solid var(--rule);background:var(--panel);font-family:inherit;text-transform:none;letter-spacing:0;box-shadow:0 2px 0 var(--shadow)}.skin[aria-pressed=true]{border-color:var(--accent);box-shadow:0 2px 0 var(--shadow),inset 0 0 0 1px var(--accent)}.skin .sw{display:flex;gap:3px;justify-content:center;margin-bottom:7px}.skin .sw i{width:11px;height:11px;border-radius:3px;display:block}.skin .sn{display:block;font-size:12px;font-weight:600;color:var(--ink);line-height:1.2}.skin .st{display:block;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);margin-top:2px}.code{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:15px;letter-spacing:.14em;color:var(--accent);word-break:break-all;padding:10px;border-radius:6px;background:color-mix(in srgb,var(--bg) 72%,#000 10%);border:1px dashed var(--accent);text-align:center;-webkit-user-select:all;user-select:all}.share{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:12px}.share a,.share button{display:inline-flex;align-items:center;gap:6px;text-decoration:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:20px;padding:7px 11px;cursor:pointer;box-shadow:0 2px 0 var(--shadow)}.share a:hover,.share button:hover{border-color:var(--accent)}.share svg{width:12px;height:12px;fill:currentColor}.sharehead{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-top:14px}.copied{color:var(--good)!important;border-color:var(--good)!important}.bar-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.hint{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.09em;color:var(--ink-2)}.btns{display:flex;gap:7px}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.tag{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2)}.mode.daily{border-color:var(--accent);background:radial-gradient(120% 140% at 100% 0%,color-mix(in srgb,var(--accent) 16%,transparent) 0%,transparent 60%),linear-gradient(180deg,var(--panel),var(--panel-2))}.mode.daily .num{color:var(--accent)}.mode.daily.done{border-color:var(--rule)}.mode.daily.done .num{color:var(--ink-2)}.badge{display:inline-block;vertical-align:middle;margin-left:8px;transform:translateY(-2px);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:8px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:3px 7px;border-radius:20px;background:color-mix(in srgb,var(--good) 22%,transparent);color:var(--good);border:1px solid color-mix(in srgb,var(--good) 45%,transparent)}#streakcard .name{font-size:14px}.adslot{min-height:100px;border-radius:10px;overflow:hidden;border:1px dashed var(--rule);display:flex;align-items:center;justify-content:center}.cardwrap{margin-top:12px;display:flex;flex-direction:column;align-items:center;gap:9px}.cardwrap canvas{width:min(150px,38vw);height:auto;border-radius:8px;border:1px solid var(--rule);box-shadow:0 8px 20px #00000073}.mode.chal{border-color:var(--accent-2);background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--accent-2) 18%,transparent) 0%,transparent 62%),linear-gradient(180deg,var(--panel),var(--panel-2))}.mode.chal .num{color:var(--accent-2);font-size:20px}.badge.alt{background:color-mix(in srgb,var(--accent-2) 22%,transparent);color:var(--accent-2);border-color:color-mix(in srgb,var(--accent-2) 45%,transparent)}#chalfill{background:linear-gradient(90deg,var(--accent-2),color-mix(in srgb,var(--accent-2) 45%,#fff))}.chal-done #chalfill{background:linear-gradient(90deg,var(--good),color-mix(in srgb,var(--good) 50%,#fff))}.chal-done #chalval{color:var(--good)}.linkbox{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;line-height:1.5;color:var(--ink-2);word-break:break-all;text-align:left;padding:9px 10px;border-radius:6px;margin-top:8px;max-width:100%;background:color-mix(in srgb,var(--bg) 72%,#000 10%);border:1px dashed var(--rule);-webkit-user-select:all;user-select:all}.sitelinks{text-align:center;padding:6px 0 18px}.sitelinks a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}.boardwrap{position:relative}.board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);gap:var(--step,3px);aspect-ratio:1;padding:12px;border-radius:var(--board-radius)}.cell{position:relative;border-radius:var(--cell-radius)}.blk{position:absolute;inset:0}.cell.filled .blk{animation:seat .17s cubic-bezier(.2,1.7,.5,1)}@keyframes seat{0%{transform:translateY(-10%) scale(1.07)}to{transform:none}}.cell.preview .blk{opacity:.45}.cell.blocked{box-shadow:inset 0 0 0 2px var(--danger)}.cell.willclear:after{content:"";position:absolute;inset:-1px;border-radius:calc(var(--cell-radius) + 1px);box-shadow:0 0 0 2px var(--accent),0 0 14px 2px color-mix(in srgb,var(--accent) 60%,transparent);animation:pulse .7s ease-in-out infinite alternate;pointer-events:none}@keyframes pulse{0%{opacity:.5}to{opacity:1}}.cell.clearing .blk{animation:snap .3s ease-in forwards}@keyframes snap{30%{transform:scale(1.13)}to{transform:scale(.22) rotate(14deg);opacity:0}}#chips{position:absolute;inset:0;pointer-events:none;border-radius:var(--board-radius)}.tray{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 10px 9px;border-radius:10px;background:var(--tray-tex),linear-gradient(180deg,var(--panel),var(--panel-2));border:1px solid var(--rule);box-shadow:inset 0 2px 6px #00000059,0 3px 0 var(--shadow)}.slot{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;min-height:104px;padding-bottom:2px;border-radius:7px;border-bottom:2px solid var(--rule)}.piece{display:grid;gap:var(--step,3px);touch-action:none;cursor:grab}.piece:active{cursor:grabbing}.piece .u{position:relative;width:var(--pc);height:var(--pc)}.slot.dead .piece{opacity:.28;filter:grayscale(.8);cursor:not-allowed}.slot.taken{opacity:0;pointer-events:none}.label{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap}.slot.dead .label{color:var(--danger)}#ghost{position:fixed;left:0;top:0;z-index:60;pointer-events:none;display:grid;gap:var(--step,3px);filter:drop-shadow(0 12px 14px rgba(0,0,0,.5))}#ghost .u{position:relative;width:var(--gc);height:var(--gc)}.pro{display:flex;flex-direction:column;gap:8px}.gauge{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:9px}.gauge .lbl{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);min-width:46px}.gauge .val{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:12px;min-width:80px;text-align:right}.meter{height:9px;border-radius:5px;overflow:hidden;background:color-mix(in srgb,var(--bg) 65%,#000 25%);box-shadow:inset 0 1px 2px #00000080}.meter i{display:block;height:100%;width:0;border-radius:5px;transition:width .25s ease}#tgtfill{background:linear-gradient(90deg,color-mix(in srgb,var(--good) 70%,var(--accent)),var(--good))}#timefill{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 45%,#fff))}.low #timefill{background:linear-gradient(90deg,var(--danger),color-mix(in srgb,var(--danger) 60%,#fff))}.low #timeval,.low .lbl{color:var(--danger)}.pop{position:absolute;z-index:20;pointer-events:none;font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-weight:500;font-size:17px;color:var(--accent);text-shadow:0 2px 8px rgba(0,0,0,.7);animation:rise 1s ease-out forwards}@keyframes rise{0%{transform:translate(-50%) scale(.7);opacity:0}20%{transform:translate(-50%,-6px) scale(1);opacity:1}to{transform:translate(-50%,-48px) scale(1);opacity:0}}.banner{position:absolute;z-index:22;left:50%;top:14px;transform:translate(-50%);padding:7px 14px;border-radius:20px;white-space:nowrap;pointer-events:none;background:linear-gradient(160deg,var(--plate-1),var(--plate-2));border:1px solid var(--plate-edge);box-shadow:0 6px 16px #00000080;font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);animation:banner 3s ease forwards}@keyframes banner{0%{opacity:0;transform:translate(-50%,-10px)}12%,72%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.over{position:absolute;inset:0;z-index:40;border-radius:var(--board-radius);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;text-align:center;padding:18px;overflow-y:auto;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(4px);animation:fade .35s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.over:before,.over:after{content:"";display:block;margin:auto}.over>*{flex-shrink:0}.over h2{font-family:Alfa Slab One,Georgia,serif;font-weight:400;font-size:25px;margin:0}.over .fin{font-family:IBM Plex Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:40px;color:var(--accent);line-height:1.15;margin-top:4px}.over .note{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:12px}.over .acts{display:flex;gap:8px;margin-top:2px}
