.pg{--pg-bg:#0d0d0d;--pg-panel:#161616;--pg-panel-2:#1d1d1d;--pg-line:#ffffff1f;--pg-line-soft:#ffffff12;--pg-text:#fff;--pg-muted:#ffffff94;--pg-dim:#ffffff5c;--pg-accent:#ffc000;--pg-good:#3ddc84;--pg-bad:#ff5a5a;background:var(--pg-bg);min-height:100dvh;color:var(--pg-text);font-variant-numeric:tabular-nums;flex-direction:column;display:flex}.pg :focus-visible{outline:2px solid var(--pg-accent);outline-offset:2px;border-radius:4px}.pg-hud{z-index:30;align-items:center;gap:var(--s-6);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--pg-line);background:#0d0d0deb;flex-wrap:wrap;padding:10px clamp(12px,2.4vw,28px);display:flex;position:sticky;top:0}.pg-hud__left{align-items:baseline;gap:var(--s-3);min-width:0;display:flex}.pg-hud__brand{font-size:var(--fs-meta);letter-spacing:.1em;text-transform:uppercase;color:var(--pg-text);white-space:nowrap;align-items:center;gap:8px;font-weight:800;display:inline-flex}.pg-hud__dot{background:var(--pg-accent);border-radius:50%;width:8px;height:8px}.pg-hud__lv{font-size:var(--fs-meta);color:var(--pg-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.pg-hud__lv b{color:var(--pg-text);font-weight:700}.pg-hud__dots{gap:5px;margin:0 auto;padding:0;list-style:none;display:flex}.pg-hud__dots li{width:18px;height:4px;transition:background .25s var(--ease-out), width .25s var(--ease-out);background:#ffffff29;border-radius:2px}.pg-hud__dots li.is-done{background:#ffc0008c}.pg-hud__dots li.is-now{background:var(--pg-accent);width:30px}.pg-hud__right{align-items:center;gap:var(--s-4);flex-wrap:wrap;margin-left:auto;display:flex}.pg-clock{border:1px solid var(--pg-line);font-size:var(--fs-meta);color:var(--pg-muted);transition:border-color .3s var(--ease-out);border-radius:8px;align-items:baseline;gap:6px;padding:5px 10px;display:flex}.pg-clock--on{border-color:#ffc00073}.pg-clock__lbl{display:none}.pg-clock__val{color:var(--pg-text);font-size:1rem;font-weight:700}.pg-clock__val i,.pg-clock__par{color:var(--pg-dim);margin-left:1px;font-size:.72rem;font-style:normal}.pg-clock__par{margin-left:4px}.pg-nodes{font-size:var(--fs-meta);color:var(--pg-muted);align-items:baseline;gap:5px;display:flex}.pg-nodes b{color:var(--pg-text);font-size:1rem}.pg-nodes b.is-over{color:var(--pg-accent)}.pg-nodes i{color:var(--pg-dim);font-style:normal}.pg-hud__btns{gap:6px;display:flex}.pg-btn{appearance:none;font:inherit;font-size:var(--fs-meta);letter-spacing:.02em;background:var(--pg-accent);color:#171717;cursor:pointer;transition:transform .18s var(--ease-out), background .18s var(--ease-out), border-color .18s var(--ease-out), opacity .18s var(--ease-out);border:1px solid #0000;border-radius:8px;padding:8px 16px;font-weight:700}.pg-btn:hover:not(:disabled){transform:translateY(-1px)}.pg-btn:disabled{opacity:.32;cursor:not-allowed}.pg-btn--ghost{border-color:var(--pg-line);color:var(--pg-muted);background:0 0}.pg-btn--ghost:hover:not(:disabled){color:var(--pg-text);border-color:#fff6}.pg-btn--big{font-size:var(--fs-small);letter-spacing:.04em;text-transform:uppercase;padding:14px 30px}.pg-btn--alt{border-color:var(--pg-line);min-width:42px;color:var(--pg-muted);background:0 0;padding:8px 10px;font-size:1rem;line-height:1}.pg-btn--alt:hover:not(:disabled){color:var(--pg-text);border-color:#fff6}.pg-btn--alt.is-on,.pg-btn--alt.is-on:hover{background:var(--pg-accent);border-color:var(--pg-accent);color:#171717}.pg-lang{border:1px solid var(--pg-line);border-radius:8px;display:inline-flex;overflow:hidden}.pg-lang button{appearance:none;color:var(--pg-dim);font:inherit;letter-spacing:.08em;cursor:pointer;transition:background .18s var(--ease-out), color .18s var(--ease-out);background:0 0;border:0;padding:7px 10px;font-size:.6875rem;font-weight:800}.pg-lang button.is-on{background:var(--pg-accent);color:#171717}.pg-lang--floating{z-index:60;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d0d0dcc;position:fixed;top:18px;right:18px}.pg-body{flex:1;grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:clamp(12px,2vw,26px);width:100%;max-width:1560px;margin:0 auto;padding:clamp(12px,2vw,24px) clamp(12px,2.4vw,28px) clamp(20px,3vw,36px);display:grid}.pg-stage{aspect-ratio:8/5;border:1px solid var(--pg-line);background:#0a0a0a;border-radius:12px;width:min(100%,160dvh - 320px);margin-inline:auto;position:relative;overflow:hidden;box-shadow:0 20px 60px #00000073}.pg-svg{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.pg-svg--draw{cursor:crosshair}.pg-svg--review{cursor:default}.pg-stage__tag{border:1px solid var(--pg-line);letter-spacing:.08em;text-transform:uppercase;color:var(--pg-muted);pointer-events:none;background:#000000ad;border-radius:999px;padding:5px 11px;font-size:.6875rem;font-weight:700;position:absolute;bottom:12px;left:12px}.pg-stage__tag b{color:var(--pg-accent)}.pg-target{fill:none;stroke:#ffffff57;stroke-width:2px;stroke-dasharray:7 7;stroke-linecap:round}.pg-user{fill:none;stroke:#fff;stroke-width:2.6px;stroke-linejoin:round;stroke-linecap:round}.pg-preview{fill:none;stroke:#ffc0008c;stroke-width:1.8px;stroke-dasharray:5 6}.pg-handles line{stroke:#ffc0006b;stroke-width:1.2px}.pg-handles circle{fill:#ffc000b3}.pg-handles--on line{stroke:var(--pg-accent);stroke-width:1.8px}.pg-handles--on circle{fill:var(--pg-accent)}.pg-anchor circle,.pg-anchor rect{fill:#141414;stroke:#fff;stroke-width:2px}.pg-anchor--hot circle,.pg-anchor--hot rect{stroke:var(--pg-accent);fill:#1f1a08}.pg-anchor__ring{stroke-dasharray:3 4;fill:none!important;stroke:#ffc00059!important;stroke-width:1px!important}.pg-anchor--review circle{fill:#fff;stroke:#141414}.pg-ideal__path{fill:none;stroke:var(--pg-accent);stroke-width:2px;stroke-dasharray:5 6;opacity:.85}.pg-ideal line{stroke:#ffc000b3;stroke-width:1.2px}.pg-ideal circle{fill:var(--pg-accent)}.pg-ideal__anchor{fill:var(--pg-accent)!important;stroke:#141414!important;stroke-width:2px!important}.pg-side{min-width:0}.pg-card{background:var(--pg-panel);border:1px solid var(--pg-line);border-radius:12px;padding:clamp(18px,2vw,26px)}.pg-card__kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--pg-accent);font-size:.6875rem;font-weight:800}.pg-card__title{color:var(--pg-text);margin-top:8px;font-size:1.5rem;font-weight:700;line-height:1.2}.pg-card__lead{font-size:var(--fs-small);color:var(--pg-muted);margin-top:10px;line-height:1.6}.pg-facts{border-top:1px solid var(--pg-line-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:20px 0 0;padding-top:16px;display:grid}.pg-facts dt{letter-spacing:.1em;text-transform:uppercase;color:var(--pg-dim);font-size:.625rem;font-weight:700}.pg-facts dd{color:var(--pg-text);margin:4px 0 0;font-size:1.0625rem;font-weight:700}.pg-shortcuts{margin-top:22px}.pg-shortcuts__title,.pg-hows__title{letter-spacing:.14em;text-transform:uppercase;color:var(--pg-dim);margin-bottom:10px;font-size:.625rem;font-weight:800}.pg-shortcuts ul,.pg-hows ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.pg-shortcuts li,.pg-hows li{font-size:var(--fs-meta);color:var(--pg-muted);padding-left:16px;line-height:1.5;position:relative}.pg-shortcuts li:before,.pg-hows li:before{content:"";background:var(--pg-accent);width:6px;height:1px;position:absolute;top:.5em;left:0}.pg-shortcuts kbd{border:1px solid var(--pg-line);color:var(--pg-text);background:var(--pg-panel-2);border-bottom-width:2px;border-radius:4px;padding:1px 5px;font-family:inherit;font-size:.6875rem;font-weight:700;display:inline-block}.pg-score{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:14px;display:flex}.pg-score__num{color:var(--pg-text);font-size:3.25rem;font-weight:800;line-height:1}.pg-score__den{font-size:var(--fs-meta);color:var(--pg-dim)}.pg-score .pg-stars{margin-left:auto}.pg-stars{gap:2px;display:inline-flex}.pg-star{color:#ffffff29;line-height:1}.pg-star--on{color:var(--pg-accent)}.pg-stars--sm .pg-star{font-size:.8125rem}.pg-stars--md .pg-star{font-size:1.125rem}.pg-stars--lg .pg-star{font-size:1.5rem}.pg-bars{gap:12px;margin-top:20px;display:grid}.pg-bar__top{font-size:var(--fs-meta);justify-content:space-between;align-items:baseline;display:flex}.pg-bar__label{color:var(--pg-muted)}.pg-bar__val{color:var(--pg-text);font-weight:700}.pg-bar__val i{color:var(--pg-dim);font-size:.6875rem;font-style:normal}.pg-bar__track{background:#ffffff17;border-radius:3px;height:5px;margin-top:5px;overflow:hidden}.pg-bar__fill{height:100%;transition:width .6s var(--ease-out);border-radius:3px}.pg-bar__fill--high{background:var(--pg-good)}.pg-bar__fill--mid{background:var(--pg-accent)}.pg-bar__fill--low{background:var(--pg-bad)}.pg-bar__note{color:var(--pg-dim);margin-top:4px;font-size:.6875rem}.pg-result__meta{border-top:1px solid var(--pg-line-soft);font-size:var(--fs-meta);color:var(--pg-muted);flex-wrap:wrap;gap:6px 16px;margin-top:18px;padding-top:14px;display:flex}.pg-result__meta b{color:var(--pg-text)}.pg-card__actions{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.pg-card__actions .pg-btn{flex:1}.pg-linkbtn{width:100%;font:inherit;font-size:var(--fs-meta);color:var(--pg-muted);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:12px;padding:6px;text-decoration:underline;display:block}.pg-linkbtn:hover{color:var(--pg-accent)}.pg-overlay{z-index:50;background:radial-gradient(120% 100% at 50% 0,#1a1a1a 0%,#0b0b0b 60%);place-items:center;padding:clamp(20px,4vw,56px) clamp(16px,3vw,40px);display:grid;position:fixed;inset:0;overflow-y:auto}.pg-overlay__inner{text-align:center;width:100%;max-width:760px}.pg-overlay__inner--final{max-width:1000px}.pg-overlay__kicker{letter-spacing:.2em;text-transform:uppercase;color:var(--pg-accent);font-size:.6875rem;font-weight:800}.pg-overlay__title{letter-spacing:-.02em;text-transform:uppercase;color:var(--pg-text);margin-top:14px;font-size:clamp(2rem,6vw,3.75rem);font-weight:800;line-height:1.02}.pg-overlay__lead{max-width:62ch;font-size:var(--fs-body);color:var(--pg-muted);margin:20px auto 0;line-height:1.65}.pg-hows{text-align:left;max-width:640px;margin:30px auto 26px}.pg-hows__note{border-left:2px solid var(--pg-accent);font-size:var(--fs-meta);color:var(--pg-muted);background:#ffc0000f;border-radius:0 6px 6px 0;margin:14px 0 0;padding:10px 14px;line-height:1.55}.pg-overlay__meta{font-size:var(--fs-meta);color:var(--pg-dim);margin-top:18px}.pg-overlay__actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:32px;display:flex}.pg-mastery{text-align:left;flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(20px,4vw,48px);margin:26px 0 8px;display:flex}.pg-mastery__dial{flex:none;width:172px;height:172px;position:relative}.pg-mastery__dial svg{width:100%;height:100%;transform:rotate(-90deg)}.pg-dial__track{fill:none;stroke:#ffffff17;stroke-width:9px}.pg-dial__arc{fill:none;stroke:var(--pg-accent);stroke-width:9px;stroke-linecap:round;transition:stroke-dasharray 1s var(--ease-out)}.pg-mastery__num{color:var(--pg-text);place-items:center;font-size:3rem;font-weight:800;display:grid;position:absolute;inset:0}.pg-mastery__num i{color:var(--pg-dim);margin-left:2px;font-size:1.125rem;font-style:normal}.pg-mastery__txt{max-width:380px}.pg-mastery__label{font-size:var(--fs-meta);letter-spacing:.14em;text-transform:uppercase;color:var(--pg-dim);font-weight:700}.pg-mastery__tier{color:var(--pg-accent);margin-top:6px;font-size:clamp(1.75rem,4vw,2.5rem);font-weight:800;line-height:1.1}.pg-mastery__note{font-size:var(--fs-small);color:var(--pg-muted);margin-top:10px;line-height:1.6}.pg-mastery__sub{font-size:var(--fs-meta);color:var(--pg-dim);margin-top:10px}.pg-final__grid{border-top:1px solid var(--pg-line);text-align:left;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);margin-top:34px;padding-top:26px;display:grid}.pg-final__stats{border-top:1px solid var(--pg-line-soft);flex-wrap:wrap;gap:8px 22px;margin-top:20px;padding-top:16px;display:flex}.pg-final__stats dt{letter-spacing:.1em;text-transform:uppercase;color:var(--pg-dim);font-size:.625rem;font-weight:700}.pg-final__stats dd{color:var(--pg-text);margin:4px 0 0;font-size:1.0625rem;font-weight:700}.pg-record{letter-spacing:.06em;text-transform:uppercase;color:var(--pg-accent);margin-top:3px;font-size:.6875rem;font-weight:800;display:block}.pg-levels{gap:2px;margin:0;padding:0;list-style:none;display:grid}.pg-levels li{font-size:var(--fs-meta);transition:background .18s var(--ease-out);border-radius:6px;grid-template-columns:26px minmax(0,1fr) auto 42px;align-items:center;gap:10px;padding:8px 10px;display:grid}.pg-levels li:nth-child(odd){background:#ffffff09}.pg-levels__no{color:var(--pg-dim);font-weight:800}.pg-levels__name{color:var(--pg-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pg-levels__score{text-align:right;color:var(--pg-text);font-weight:800}@media (max-width:1080px){.pg-body{grid-template-columns:minmax(0,1fr)}.pg-stage{width:100%}.pg-side{width:100%;max-width:640px;margin-inline:auto}.pg-hud__dots{order:3;justify-content:center;width:100%;margin:0}}@media (max-width:720px){.pg-hud{gap:10px;padding:10px 14px}.pg-hud__brand{font-size:.625rem}.pg-hud__lv{display:none}.pg-hud__btns .pg-btn{padding:7px 11px}.pg-nodes,.pg-clock__par{display:none}.pg-final__grid{grid-template-columns:minmax(0,1fr)}.pg-mastery,.pg-mastery__txt{text-align:center}.pg-score__num{font-size:2.5rem}}@media (prefers-reduced-motion:reduce){.pg *,.pg :before,.pg :after{transition-duration:.01ms!important}}
