.gp-demos{--accent: #6c8cff;--accent-2: #9d7bff;--bg: #0e1018;--bg-2: #151826;--panel: #1b1f30;--panel-2: #222740;--border: #2c3252;--text: #e7e9f3;--muted: #9aa1bd;--good: #4cd28a;--warn: #ffb454;--danger: #ff6b7d}.gp-demos .demo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}@media (max-width: 860px){.gp-demos .demo-grid{grid-template-columns:1fr}}.gp-demos .module{background:var(--panel);border:1px solid var(--border);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 8px 28px #0006;color:var(--text);overflow:hidden}.gp-demos .module-head{display:flex;align-items:center;gap:8px;padding:11px 13px;border-bottom:1px solid var(--border);user-select:none}.gp-demos .module-head .grip{cursor:grab;color:var(--muted)}.gp-demos .module-headtext{flex:1;min-width:0}.gp-demos .mtype{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.gp-demos .mtitle{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gp-demos .head-actions{margin-left:auto;display:flex;gap:2px}.gp-demos .module-body{padding:13px}.gp-demos .icon-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:15px;padding:4px 7px;border-radius:7px;line-height:1}.gp-demos .icon-btn:hover{color:var(--text);background:var(--panel-2)}.gp-demos .icon-btn.danger{color:var(--danger)}.gp-demos .icon-btn.danger:hover{color:var(--danger);background:#ff6b7d24}.gp-demos .btn{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:7px 12px;font:inherit;font-size:13px;cursor:pointer}.gp-demos .btn:hover{border-color:var(--accent)}.gp-demos .btn.primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));border:none;color:#fff;font-weight:600}.gp-demos .btn.sm{padding:5px 9px;font-size:12px}.gp-demos .btn.ghost{background:transparent}.gp-demos .add-inline{color:var(--accent);cursor:pointer;font-size:12px;margin-top:8px;display:inline-block}.gp-demos .add-inline:hover{text-decoration:underline}.gp-demos .muted{color:var(--muted)}.gp-demos .module-empty{text-align:center;padding:20px 0}.gp-demos input[type=text],.gp-demos input[type=number]{width:100%;background:var(--bg-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:8px 10px;font-size:13px;font-family:inherit}.gp-demos input:focus{outline:none;border-color:var(--accent)}.gp-demos input[type=checkbox]{accent-color:var(--accent)}.gp-demos .progressbar{height:7px;background:var(--bg-2);border-radius:6px;overflow:hidden;margin:6px 0 12px}.gp-demos .progressbar>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--good))}.gp-demos .ck-filter{display:flex;gap:4px;margin-bottom:10px}.gp-demos .ck-filter button{flex:1;font-size:12px;padding:5px 6px;background:var(--bg-2);border:1px solid var(--border);color:var(--muted);border-radius:7px;cursor:pointer}.gp-demos .ck-filter button:hover{border-color:var(--accent)}.gp-demos .ck-filter button.active{background:var(--panel-2);color:var(--text);border-color:var(--accent)}.gp-demos .checklist-row{display:flex;align-items:center;gap:9px;padding:5px 0}.gp-demos .checklist-row.done .ck-label{text-decoration:line-through;color:var(--muted)}.gp-demos .checklist-row .grip{flex:0 0 auto;cursor:grab;color:var(--muted)}.gp-demos .ck-label{flex:1;min-width:0;border:none;background:transparent;padding:2px 4px;color:var(--text);font:inherit;font-size:13px}.gp-demos .ck-label:focus{outline:none}.gp-demos .checklist-row .ck-arch{opacity:0;transition:opacity .12s}.gp-demos .checklist-row:hover .ck-arch{opacity:.7}.gp-demos .checklist-row .ck-arch:hover{opacity:1}.gp-demos .stat-list{display:flex;flex-direction:column;gap:8px}.gp-demos .stat-card{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.gp-demos .stat-top{display:flex;align-items:center;gap:8px}.gp-demos .stat-top .grip{cursor:grab;color:var(--muted);font-size:12px;flex-shrink:0}.gp-demos .stat-namewrap{flex:1;min-width:0;display:flex;align-items:center;gap:5px}.gp-demos .stat-name{min-width:0;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.gp-demos .stat-name:hover{color:var(--accent)}.gp-demos .stat-stepper{display:flex;align-items:center;gap:4px;flex-shrink:0}.gp-demos .stat-step{width:24px;height:26px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:14px;line-height:1;padding:0}.gp-demos .stat-step:hover{border-color:var(--accent)}.gp-demos .stat-val{min-width:22px;text-align:center;font-variant-numeric:tabular-nums;font-weight:700;font-size:14px}.gp-demos .stat-valgroup{display:flex;align-items:baseline;gap:3px}.gp-demos .stat-maxdisp{font-size:12px;color:var(--muted)}.gp-demos .stat-act{opacity:0;transition:opacity .12s}.gp-demos .stat-card:hover .stat-act{opacity:1}.gp-demos .stat-bar{height:6px;background:var(--panel-2);border-radius:5px;overflow:hidden;margin-top:8px}.gp-demos .stat-bar>div{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));border-radius:5px}.gp-demos .timer-list{display:flex;flex-direction:column;gap:8px}.gp-demos .timer-row{position:relative;overflow:hidden;background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:9px 34px 9px 12px;cursor:pointer;transition:.12s}.gp-demos .timer-row:hover{border-color:var(--accent)}.gp-demos .timer-top{display:flex;align-items:baseline;gap:10px}.gp-demos .timer-name{flex:1;font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.gp-demos .timer-count{font-variant-numeric:tabular-nums;font-weight:700;font-size:16px}.gp-demos .timer-count.soon{color:var(--warn)}.gp-demos .timer-sub{font-size:11px;color:var(--muted);margin-top:2px}.gp-demos .timer-bar{position:absolute;left:0;bottom:0;height:3px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .5s linear}.gp-demos .timer-del{position:absolute;top:6px;right:6px;opacity:0;font-size:12px;padding:1px 5px;transition:opacity .12s}.gp-demos .timer-row:hover .timer-del{opacity:1}.gp-demos .dice-root{display:flex;flex-direction:column;gap:10px}.gp-demos .dice-result{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:12px;text-align:center}.gp-demos .dice-result.rolled{animation:gpdicepulse .28s ease}@keyframes gpdicepulse{0%{transform:scale(.96)}60%{transform:scale(1.03)}to{transform:scale(1)}}.gp-demos .dice-total{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}.gp-demos .dice-note{font-size:12px;color:var(--muted);margin-top:4px}.gp-demos .dice-breakdown{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:9px}.gp-demos .dice-die{min-width:24px;padding:2px 6px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);font-size:12px;font-variant-numeric:tabular-nums}.gp-demos .dice-die.crit{background:#10b98133;border-color:#10b9818c;color:#6ee7b7;font-weight:700}.gp-demos .dice-die.fumble{background:#ef44442e;border-color:#ef44448c;color:#fca5a5;font-weight:700}.gp-demos .dice-controls{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}.gp-demos .dice-ctrl{display:flex;flex-direction:column;gap:4px}.gp-demos .dice-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.gp-demos .dice-stepper{display:flex;align-items:center;gap:4px}.gp-demos .dice-step{width:26px;height:28px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;font-size:14px;line-height:1;padding:0}.gp-demos .dice-step:hover{border-color:var(--accent)}.gp-demos .dice-num{width:46px;height:28px;text-align:center;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-variant-numeric:tabular-nums;padding:0;-moz-appearance:textfield}.gp-demos .dice-num:focus{outline:none;border-color:var(--accent)}.gp-demos .dice-num::-webkit-inner-spin-button,.gp-demos .dice-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gp-demos .dice-seg{display:flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.gp-demos .dice-seg button{padding:6px 10px;background:var(--panel-2);border:none;border-left:1px solid var(--border);color:var(--muted);cursor:pointer;font-size:11px}.gp-demos .dice-seg button:first-child{border-left:none}.gp-demos .dice-seg button.active{background:var(--accent);color:#fff}.gp-demos .dice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(52px,1fr));gap:8px}.gp-demos .dice-btn{padding:11px 4px;background:linear-gradient(160deg,var(--panel-2),var(--bg-2));border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;font-weight:700;font-size:15px;transition:.1s}.gp-demos .dice-btn:hover{border-color:var(--accent);transform:translateY(-1px)}.gp-demos .dice-btn:active{transform:translateY(0)}.gp-demos .dice-custom{display:flex;gap:8px;align-items:center}.gp-demos .dice-custombtn{font-size:13px;padding:7px 14px}.gp-demos .dice-loghead{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.gp-demos .dice-logtitle{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}.gp-demos .dice-clear{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 9px;cursor:pointer;font-size:11px}.gp-demos .dice-clear:hover{border-color:var(--danger);color:var(--danger)}.gp-demos .dice-log{display:flex;flex-direction:column;gap:5px;max-height:200px;overflow-y:auto}.gp-demos .dice-logrow{display:flex;align-items:center;gap:8px;font-size:12px;padding:5px 8px;background:var(--bg-2);border:1px solid var(--border);border-radius:7px}.gp-demos .dice-lognote{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gp-demos .dice-logtotal{font-weight:700;margin-left:auto;font-variant-numeric:tabular-nums}.gp-demos .dice-logtime{font-size:10px;color:var(--muted);min-width:40px;text-align:right}.gp-demos .coin-root{display:flex;flex-direction:column;gap:12px;align-items:stretch}.gp-demos .coin-wrap{perspective:820px;display:flex;justify-content:center;margin-top:6px;padding:6px 0}.gp-demos .coin{width:122px;height:122px;position:relative;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.75,.2,1);cursor:pointer}.gp-demos .coin-face{position:absolute;inset:0;border-radius:50%;display:grid;place-items:center;backface-visibility:hidden;text-align:center;padding:18px;box-sizing:border-box;font-weight:800;font-size:15px;line-height:1.12;word-break:break-word;letter-spacing:.3px}.gp-demos .coin-front{background:radial-gradient(circle at 33% 27%,#fff4b8,#ffd451 26%,#eaa72c 60%,#b06f16);color:#6b4a06;box-shadow:inset 0 0 0 4px #ffffff38,inset 0 0 0 6px #78500a73,inset 0 7px 15px #ffffff73,inset 0 -9px 18px #7846006b,0 12px 18px #00000073;text-shadow:0 1px 0 rgba(255,255,255,.55),0 -1px 1px rgba(90,60,0,.55)}.gp-demos .coin-back{transform:rotateY(180deg);background:radial-gradient(circle at 33% 27%,#fff,#e3e9fb 26%,#b3bcda 60%,#79839f);color:#2b3350;box-shadow:inset 0 0 0 4px #ffffff80,inset 0 0 0 6px #46507861,inset 0 7px 15px #fff9,inset 0 -9px 18px #3c466e66,0 12px 18px #00000073;text-shadow:0 1px 0 rgba(255,255,255,.65),0 -1px 1px rgba(50,60,100,.5)}.gp-demos .coin-face:before{content:"";position:absolute;inset:13px;border-radius:50%;border:2px solid rgba(0,0,0,.14);box-shadow:inset 0 0 0 1px #ffffff47;pointer-events:none}.gp-demos .coin-face:after{content:"";position:absolute;inset:0;border-radius:50%;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.6) 45%,transparent 58%);background-size:250% 100%;background-position:150% 0;opacity:.45}.gp-demos .coin.spin .coin-face:after{animation:gpcoinshine .9s ease}@keyframes gpcoinshine{0%{background-position:150% 0;opacity:0}35%{opacity:.85}to{background-position:-60% 0;opacity:.25}}.gp-demos .coin-result{text-align:center;font-size:22px;font-weight:800;min-height:26px;color:var(--muted);opacity:.7;transition:opacity .15s}.gp-demos .coin-result.show{color:var(--text);opacity:1}.gp-demos .coin-flip-btn{padding:11px 4px;background:linear-gradient(160deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#000));border:none;border-radius:10px;color:#fff;cursor:pointer;font-weight:700;font-size:15px;transition:.1s}.gp-demos .coin-flip-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.gp-demos .coin-flip-btn:active{transform:translateY(0)}.gp-demos .coin-flip-btn:disabled{opacity:.6;cursor:default;transform:none}.gp-demos .coin-tally{display:flex;flex-direction:column;gap:8px}.gp-demos .coin-bar-head{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.gp-demos .coin-bar-track{height:8px;border-radius:5px;background:var(--bg-2);margin-top:4px;overflow:hidden}.gp-demos .coin-bar-fill{height:100%;border-radius:5px;transition:width .25s}.gp-demos .coin-bar-fill.a{background:var(--accent)}.gp-demos .coin-bar-fill.b{background:#22a7f0}.gp-demos .coin-histhead{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.gp-demos .coin-histhead>span{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}.gp-demos .coin-clear{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 9px;cursor:pointer;font-size:11px}.gp-demos .coin-clear:hover{border-color:var(--danger);color:var(--danger)}.gp-demos .coin-log{display:flex;flex-direction:column;gap:5px;max-height:150px;overflow-y:auto}.gp-demos .coin-logrow{display:flex;align-items:center;gap:9px;font-size:12.5px;padding:6px 9px;background:var(--bg-2);border:1px solid var(--border);border-radius:7px}.gp-demos .coin-logdot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}.gp-demos .coin-logdot.a{background:var(--accent)}.gp-demos .coin-logdot.b{background:#22a7f0}.gp-demos .coin-logface{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gp-demos .coin-logtime{margin-left:auto;font-size:10px;color:var(--muted);min-width:40px;text-align:right}.gp-demos .wheel-wrap{width:100%;margin:0 auto}.gp-demos .wheel-head{display:flex;gap:6px;align-items:center;margin-bottom:10px}.gp-demos .wheel-name{flex:1;min-width:0;background:var(--bg-2);border:1px solid var(--border);border-radius:8px;color:var(--text);padding:6px 9px;font-size:14px;font-weight:600}.gp-demos .wheel-name:focus{outline:none;border-color:var(--accent)}.gp-demos .wheel-stage{position:relative;width:100%;max-width:260px;margin:12px auto 0;aspect-ratio:1/1}.gp-demos .wheel-pointer{position:absolute;top:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:12px solid transparent;border-right:12px solid transparent;border-top:20px solid var(--text);z-index:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5));cursor:pointer}.gp-demos .wheel-svg{width:100%;height:100%;transform-origin:50% 50%;cursor:pointer}.gp-demos .wheel-svg svg{width:100%;height:100%;display:block}.gp-demos .wheel-result{min-height:26px;text-align:center;font-size:18px;font-weight:800;color:var(--text);margin:8px 0 4px;opacity:0;transform:scale(.9);transition:.2s}.gp-demos .wheel-result.show{opacity:1;transform:none}.gp-demos .wheel-spin{width:100%;font-size:16px;padding:10px;margin-bottom:8px}.gp-demos .wheel-section{border-top:1px solid var(--border);padding-top:6px;margin-top:4px}.gp-demos .wheel-section>summary{cursor:pointer;font-size:12px;color:var(--muted);padding:4px 2px;list-style-position:inside}.gp-demos .wheel-segs{display:flex;flex-direction:column;gap:6px;margin:6px 0}.gp-demos .wheel-add{width:100%;margin-top:2px;background:transparent;border:1px dashed var(--border);color:var(--muted);border-radius:8px;padding:9px;cursor:pointer;font-size:13px;font-weight:600}.gp-demos .wheel-add:hover{border-color:var(--accent);color:var(--text)}.gp-demos .wheel-seg{display:flex;align-items:center;gap:6px}.gp-demos .wheel-seg-color{width:30px;height:28px;flex:0 0 auto;padding:2px;background:var(--panel);border:1px solid var(--border);border-radius:6px;cursor:pointer}.gp-demos .wheel-seg .wheel-seg-label{flex:1 1 0;min-width:0;width:auto;background:var(--bg-2);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:6px 8px;font-size:13px}.gp-demos .wheel-seg .wheel-seg-label:focus{outline:none;border-color:var(--accent)}.gp-demos .wheel-seg .wheel-seg-weight{flex:0 0 54px;width:54px;background:var(--bg-2);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:6px;font-size:13px;text-align:center}.gp-demos .wheel-hist{display:flex;flex-direction:column;gap:3px;max-height:160px;overflow-y:auto}.gp-demos .wheel-hist-row{display:flex;justify-content:space-between;gap:8px;font-size:12px;padding:4px 6px;background:var(--bg-2);border-radius:6px}.gp-demos .wheel-hist-label{color:var(--text);overflow-wrap:anywhere}.gp-demos .wheel-hist-time{color:var(--muted);flex:0 0 auto}.hero-lite[data-astro-cid-fsswmxcn] h1[data-astro-cid-fsswmxcn]{max-width:22ch;margin-inline:auto}.lede[data-astro-cid-fsswmxcn]{font-size:1.1rem;max-width:48ch;margin-inline:auto}.cta-center[data-astro-cid-fsswmxcn]{display:flex;justify-content:center;margin-top:1.4rem}.cta-center[data-astro-cid-fsswmxcn] .cta-row{justify-content:center}.nostore[data-astro-cid-fsswmxcn]{margin-top:1rem}.feat-grid[data-astro-cid-fsswmxcn]{grid-template-columns:repeat(3,1fr)}.narrow-inner[data-astro-cid-fsswmxcn]{max-width:680px;margin:0 auto;text-align:center}.chips[data-astro-cid-fsswmxcn]{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;max-width:900px;margin-inline:auto}.chips[data-astro-cid-fsswmxcn] li[data-astro-cid-fsswmxcn]{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--text);padding:.5rem .95rem;border-radius:999px;border:1px solid var(--border-soft);background:color-mix(in srgb,var(--panel) 70%,transparent)}.chips[data-astro-cid-fsswmxcn] svg[data-astro-cid-fsswmxcn]{color:var(--good)}.cta-band[data-astro-cid-fsswmxcn]{background:radial-gradient(700px 300px at 50% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 70%)}@media (max-width: 900px){.feat-grid[data-astro-cid-fsswmxcn]{grid-template-columns:repeat(2,1fr)}}@media (max-width: 620px){.feat-grid[data-astro-cid-fsswmxcn]{grid-template-columns:1fr}}
