html,body{margin:0;padding:0;height:100%;background:#02060f;color:#eaf9ff;overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}#app{position:fixed;inset:0}canvas.pp-canvas{position:fixed;inset:0;display:block;touch-action:none;cursor:crosshair}.pp-column{position:absolute;pointer-events:none}.pp-ui-root{position:absolute;inset:0;pointer-events:none}.pp-safe-probe{position:fixed;visibility:hidden;pointer-events:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}.pp-ui{--u: var(--unit, 1px);--ui-bg: #084b66;--ui-fg: #eaf9ff;--ui-accent: #16a3c7;--ui-key: #ffd166;--ui-peg: #7fe3ff;--ui-panel: rgba(4, 30, 45, .82);--ui-pearl: #ffffff;--ui-pearl-glow: #bff6ff;--ui-on-accent: #03111a;--ui-on-key: #1a1200;--ui-glow: color-mix(in srgb, var(--ui-accent) 45%, transparent);--ui-line: color-mix(in srgb, var(--ui-accent) 60%, transparent);position:absolute;inset:0;overflow:hidden;pointer-events:none;color:var(--ui-fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:calc(var(--u) * 20);line-height:1.25;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.pp-ui[data-zone=sunlit]{--ui-bg: #084b66;--ui-fg: #eaf9ff;--ui-accent: #16a3c7;--ui-key: #ffd166;--ui-peg: #7fe3ff;--ui-panel: rgba(4, 30, 45, .82)}.pp-ui[data-zone=twilight]{--ui-bg: #051a33;--ui-fg: #eaf2ff;--ui-accent: #3b7dd8;--ui-key: #ffcf5a;--ui-peg: #8fb8ff;--ui-panel: rgba(3, 14, 32, .85)}.pp-ui[data-zone=midnight]{--ui-bg: #02060f;--ui-fg: #e6fbff;--ui-accent: #1fd3e0;--ui-key: #ffd84a;--ui-peg: #49e6ff;--ui-panel: rgba(1, 6, 16, .88)}.pp-ui[data-zone=abyss]{--ui-bg: #000000;--ui-fg: #fff1ec;--ui-accent: #ff4f6d;--ui-key: #ffe066;--ui-peg: #ff7a5c;--ui-panel: rgba(8, 0, 4, .9)}.pp-ui *,.pp-ui *:before,.pp-ui *:after{box-sizing:border-box}.pp-ui [hidden]{display:none!important}.pp-heading{margin:0;font-size:calc(var(--u) * 30);font-weight:800;letter-spacing:-.01em;text-shadow:0 0 calc(var(--u) * 18) var(--ui-glow)}.pp-section-title{margin:calc(var(--u) * 8) 0 0;font-size:calc(var(--u) * 14);font-weight:700;text-transform:uppercase;letter-spacing:.14em;opacity:.75}.pp-btn{pointer-events:auto;appearance:none;display:inline-flex;align-items:center;justify-content:center;min-height:calc(var(--u) * 52);padding:calc(var(--u) * 12) calc(var(--u) * 28);border:calc(var(--u) * 1.5) solid var(--ui-line);border-radius:999px;background:#ffffff0f;color:var(--ui-fg);font:inherit;font-size:calc(var(--u) * 20);font-weight:700;letter-spacing:.01em;cursor:pointer;box-shadow:0 0 calc(var(--u) * 12) #0000004d;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.pp-btn:hover{background:#ffffff1f}.pp-btn:active{transform:scale(.97)}.pp-btn:disabled{opacity:.45;cursor:default;transform:none}.pp-btn:focus-visible,.pp-offer:focus-visible,.pp-hud-pause:focus-visible{outline:calc(var(--u) * 3) solid var(--ui-key);outline-offset:calc(var(--u) * 3)}.pp-btn-primary{border-color:transparent;background:var(--ui-accent);color:var(--ui-on-accent);box-shadow:0 0 calc(var(--u) * 24) var(--ui-glow),0 calc(var(--u) * 4) calc(var(--u) * 16) #00000059}.pp-btn-primary:hover{background:color-mix(in srgb,var(--ui-accent) 85%,white)}.pp-btn-big{min-height:calc(var(--u) * 72);padding:calc(var(--u) * 16) calc(var(--u) * 64);font-size:calc(var(--u) * 30);letter-spacing:.04em}.pp-panel{pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:calc(var(--u) * 14);width:calc(var(--u) * 460);max-width:94%;max-height:100%;padding:calc(var(--u) * 28);border:calc(var(--u) * 1.5) solid var(--ui-line);border-radius:calc(var(--u) * 28);background:var(--ui-panel);box-shadow:0 0 calc(var(--u) * 30) var(--ui-glow),0 calc(var(--u) * 12) calc(var(--u) * 40) #00000080;backdrop-filter:blur(calc(var(--u) * 6));-webkit-backdrop-filter:blur(calc(var(--u) * 6));text-align:center;animation:pp-panel-in .22s cubic-bezier(.2,.9,.3,1.1) both}.pp-panel-small{width:calc(var(--u) * 360)}.pp-panel-scroll{align-items:stretch;text-align:left;overflow-y:auto;overscroll-behavior:contain}.pp-panel-head{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u) * 12)}.pp-pearl{display:inline-block;flex:none;width:calc(var(--u) * 14);height:calc(var(--u) * 14);border-radius:50%;background:radial-gradient(circle at 35% 35%,var(--ui-pearl),var(--ui-pearl-glow) 55%,var(--ui-accent) 100%);box-shadow:0 0 calc(var(--u) * 8) var(--ui-pearl-glow);vertical-align:middle}.pp-balance{display:inline-flex;align-items:center;gap:calc(var(--u) * 6);font-size:calc(var(--u) * 20);font-weight:800;font-variant-numeric:tabular-nums;color:var(--ui-key)}.pp-dot{display:inline-block;width:calc(var(--u) * 9);height:calc(var(--u) * 9);border:calc(var(--u) * 1.5) solid var(--ui-accent);border-radius:50%;opacity:.6;transition:background .15s ease,box-shadow .15s ease,opacity .15s ease}.pp-dot.is-filled{background:var(--ui-accent);box-shadow:0 0 calc(var(--u) * 8) var(--ui-accent);opacity:1}.pp-key-dot{width:calc(var(--u) * 11);height:calc(var(--u) * 11);border-color:var(--ui-key)}.pp-key-dot.is-filled{background:var(--ui-key);box-shadow:0 0 calc(var(--u) * 10) var(--ui-key)}.pp-back{align-self:center;margin-top:calc(var(--u) * 8)}.pp-screen{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(var(--safe-top, 0px) + var(--u) * 20) calc(var(--u) * 20) calc(var(--safe-bottom, 0px) + var(--u) * 20);pointer-events:auto;background:#020a1473;animation:pp-fade-in .18s ease-out both}.pp-hud{position:absolute;inset:0 0 auto;padding-top:calc(var(--safe-top, 0px) + var(--u) * 10);pointer-events:none}.pp-hud-strip{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:calc(var(--u) * 10);padding:0 calc(var(--u) * 18)}.pp-hud-left{text-align:left}.pp-hud-depth{font-size:calc(var(--u) * 22);font-weight:800;font-variant-numeric:tabular-nums}.pp-hud-zone{font-size:calc(var(--u) * 13);font-weight:700;text-transform:uppercase;letter-spacing:.14em;opacity:.8}.pp-hud-center{display:flex;align-items:baseline;justify-content:center;gap:calc(var(--u) * 8)}.pp-hud-score{font-size:calc(var(--u) * 44);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 calc(var(--u) * 16) var(--ui-glow)}.pp-hud-combo{font-size:calc(var(--u) * 20);font-weight:900;color:var(--ui-key);text-shadow:0 0 calc(var(--u) * 12) var(--ui-key);animation:pp-pop .22s ease-out both}.pp-hud-right{display:flex;flex-direction:column;align-items:flex-end;gap:calc(var(--u) * 6);padding-right:calc(var(--u) * 48)}.pp-hud-stock{display:flex;align-items:center;gap:calc(var(--u) * 6);font-size:calc(var(--u) * 22);font-weight:800;font-variant-numeric:tabular-nums}.pp-hud-pulses{display:flex;align-items:center;justify-content:flex-end;gap:calc(var(--u) * 5);min-height:calc(var(--u) * 14)}.pp-hud-pulses:before{content:"PULSE";font-size:calc(var(--u) * 9);font-weight:800;letter-spacing:.12em;opacity:.7;margin-right:calc(var(--u) * 3)}.pp-pulse-dot{width:calc(var(--u) * 13);height:calc(var(--u) * 13);border-color:var(--ui-pearl-glow)}.pp-pulse-dot.is-filled{background:var(--ui-pearl);box-shadow:0 0 calc(var(--u) * 10) var(--ui-pearl-glow)}.pp-hud-keys{display:flex;justify-content:center;gap:calc(var(--u) * 7);padding-top:calc(var(--u) * 8)}.pp-hud-pause{position:absolute;top:calc(var(--safe-top, 0px) + var(--u) * 10);right:calc(var(--u) * 12);display:flex;align-items:center;justify-content:center;gap:calc(var(--u) * 4);width:calc(var(--u) * 40);height:calc(var(--u) * 40);padding:0;border:calc(var(--u) * 1.5) solid var(--ui-line);border-radius:50%;background:var(--ui-panel);cursor:pointer;pointer-events:auto;box-shadow:0 0 calc(var(--u) * 10) var(--ui-glow)}.pp-hud-pause-bar{width:calc(var(--u) * 4);height:calc(var(--u) * 14);border-radius:calc(var(--u) * 1);background:var(--ui-fg)}.pp-menu{background:linear-gradient(180deg,#0000001f,#0000008c)}.pp-menu-body{display:flex;flex-direction:column;align-items:center;gap:calc(var(--u) * 16);width:100%;text-align:center}.pp-title{margin:0;font-size:calc(var(--u) * 68);font-weight:900;line-height:1;letter-spacing:-.02em;text-shadow:0 0 calc(var(--u) * 24) var(--ui-accent),0 0 calc(var(--u) * 60) var(--ui-glow)}.pp-tagline{margin:0 0 calc(var(--u) * 8);font-size:calc(var(--u) * 20);opacity:.85}.pp-menu-secondary{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--u) * 10)}.pp-menu-stats{display:grid;grid-template-columns:auto auto;gap:calc(var(--u) * 6) calc(var(--u) * 28);margin-top:calc(var(--u) * 10);font-size:calc(var(--u) * 15)}.pp-stat{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u) * 8)}.pp-stat-label{opacity:.7}.pp-stat-value{font-weight:700;font-variant-numeric:tabular-nums}.pp-hint{max-width:90%;margin:0;font-size:calc(var(--u) * 14);opacity:.7}.pp-perks{gap:calc(var(--u) * 18)}.pp-offers{display:flex;flex-direction:column;gap:calc(var(--u) * 14);width:calc(var(--u) * 440);max-width:94%}.pp-offer{--offer: var(--ui-peg);appearance:none;display:grid;grid-template-columns:1fr auto;gap:calc(var(--u) * 4) calc(var(--u) * 14);width:100%;padding:calc(var(--u) * 16) calc(var(--u) * 20);border:calc(var(--u) * 1.5) solid var(--offer);border-radius:calc(var(--u) * 20);background:var(--ui-panel);color:var(--ui-fg);font:inherit;text-align:left;cursor:pointer;box-shadow:0 0 calc(var(--u) * 16) color-mix(in srgb,var(--offer) 40%,transparent);transition:transform .12s ease,box-shadow .12s ease;animation:pp-card-in .32s cubic-bezier(.2,.9,.3,1.2) both}.pp-offer:hover{transform:translateY(calc(var(--u) * -2));box-shadow:0 0 calc(var(--u) * 26) color-mix(in srgb,var(--offer) 60%,transparent)}.pp-offer:active{transform:scale(.98)}.pp-offer[data-rarity=uncommon]{--offer: var(--ui-accent)}.pp-offer[data-rarity=rare]{--offer: var(--ui-key)}.pp-offer[data-rarity=pearl]{--offer: var(--ui-pearl-glow)}.pp-offer-head{grid-column:1;display:flex;align-items:center;min-height:calc(var(--u) * 14)}.pp-offer-tag{font-size:calc(var(--u) * 12);font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--offer)}.pp-offer-title{grid-column:1;font-size:calc(var(--u) * 24);font-weight:800}.pp-offer-desc{grid-column:1;font-size:calc(var(--u) * 16);opacity:.85}.pp-offer-stack{grid-column:2;grid-row:1 / span 3;align-self:center;font-size:calc(var(--u) * 18);font-weight:800;white-space:nowrap;color:var(--offer);font-variant-numeric:tabular-nums}.pp-over-score{font-size:calc(var(--u) * 64);font-weight:900;line-height:1;font-variant-numeric:tabular-nums;text-shadow:0 0 calc(var(--u) * 24) var(--ui-glow)}.pp-over-depth{font-size:calc(var(--u) * 20);opacity:.9}.pp-over-best{font-size:calc(var(--u) * 14);opacity:.65}.pp-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--u) * 8)}.pp-badge{padding:calc(var(--u) * 4) calc(var(--u) * 12);border-radius:999px;background:var(--ui-key);color:var(--ui-on-key);font-size:calc(var(--u) * 14);font-weight:800;box-shadow:0 0 calc(var(--u) * 14) var(--ui-key);animation:pp-pop .3s ease-out both}.pp-over-pearls{display:flex;align-items:center;gap:calc(var(--u) * 8);font-size:calc(var(--u) * 22);font-weight:800;color:var(--ui-key)}.pp-over-missions{display:flex;flex-direction:column;gap:calc(var(--u) * 4);margin:0;padding:0;list-style:none;font-size:calc(var(--u) * 15)}.pp-over-mission:before{content:"✓ ";color:var(--ui-key)}.pp-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(var(--u) * 12);margin-top:calc(var(--u) * 6)}.pp-items{display:flex;flex-direction:column;gap:calc(var(--u) * 10);margin:0;padding:0;list-style:none}.pp-item{display:flex;align-items:center;gap:calc(var(--u) * 12);padding:calc(var(--u) * 12) calc(var(--u) * 14);border:calc(var(--u) * 1) solid rgba(255,255,255,.08);border-radius:calc(var(--u) * 16);background:#ffffff0d}.pp-item.is-selected{border-color:var(--ui-line);box-shadow:0 0 calc(var(--u) * 12) var(--ui-glow)}.pp-item-main{flex:1;min-width:0}.pp-item-name{font-size:calc(var(--u) * 19);font-weight:700}.pp-item-desc{font-size:calc(var(--u) * 15);opacity:.8}.pp-item-cost{font-size:calc(var(--u) * 14);font-weight:700;color:var(--ui-key);font-variant-numeric:tabular-nums}.pp-item-action{flex:none;min-height:calc(var(--u) * 40);padding:calc(var(--u) * 8) calc(var(--u) * 16);font-size:calc(var(--u) * 16);white-space:nowrap}.pp-swatch{flex:none;width:calc(var(--u) * 22);height:calc(var(--u) * 22);border-radius:50%;box-shadow:0 0 calc(var(--u) * 10) #ffffff59}.pp-mission-list{display:flex;flex-direction:column;gap:calc(var(--u) * 10);margin:0;padding:0;list-style:none}.pp-mission{display:grid;grid-template-columns:1fr auto;gap:calc(var(--u) * 6) calc(var(--u) * 12);padding:calc(var(--u) * 12) calc(var(--u) * 14);border-radius:calc(var(--u) * 16);background:#ffffff0d}.pp-mission-text{grid-column:1;font-size:calc(var(--u) * 18);font-weight:700}.pp-mission-row{grid-column:1;display:flex;align-items:center;gap:calc(var(--u) * 10)}.pp-mission-reward{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:calc(var(--u) * 18);font-weight:800;color:var(--ui-key);font-variant-numeric:tabular-nums}.pp-progress{flex:1;height:calc(var(--u) * 8);border-radius:999px;background:#ffffff1f;overflow:hidden}.pp-progress-fill{height:100%;border-radius:999px;background:var(--ui-accent);box-shadow:0 0 calc(var(--u) * 8) var(--ui-accent);transition:width .3s ease}.pp-mission.is-complete .pp-progress-fill{background:var(--ui-key);box-shadow:0 0 calc(var(--u) * 8) var(--ui-key)}.pp-mission-count{font-size:calc(var(--u) * 14);opacity:.8;font-variant-numeric:tabular-nums}.pp-toggles{display:flex;flex-direction:column;gap:calc(var(--u) * 14);width:100%}.pp-toggle{position:relative;display:flex;align-items:center;gap:calc(var(--u) * 14);font-size:calc(var(--u) * 20);font-weight:600;cursor:pointer}.pp-toggle input{position:absolute;width:1px;height:1px;margin:0;opacity:0;pointer-events:none}.pp-toggle-track{position:relative;flex:none;width:calc(var(--u) * 52);height:calc(var(--u) * 30);border:calc(var(--u) * 1.5) solid rgba(255,255,255,.25);border-radius:999px;background:#ffffff26;transition:background .15s ease,box-shadow .15s ease}.pp-toggle-track:after{content:"";position:absolute;top:calc(var(--u) * 3);left:calc(var(--u) * 3);width:calc(var(--u) * 21);height:calc(var(--u) * 21);border-radius:50%;background:var(--ui-fg);transition:transform .15s ease}.pp-toggle input:checked+.pp-toggle-track{border-color:var(--ui-accent);background:var(--ui-accent);box-shadow:0 0 calc(var(--u) * 10) var(--ui-glow)}.pp-toggle input:checked+.pp-toggle-track:after{transform:translate(calc(var(--u) * 22))}.pp-toggle input:focus-visible+.pp-toggle-track{outline:calc(var(--u) * 3) solid var(--ui-key);outline-offset:calc(var(--u) * 3)}.pp-toasts{position:absolute;left:0;right:0;bottom:calc(var(--safe-bottom, 0px) + var(--u) * 90);display:flex;flex-direction:column;align-items:center;gap:calc(var(--u) * 8);pointer-events:none}.pp-toast{padding:calc(var(--u) * 8) calc(var(--u) * 18);border:calc(var(--u) * 1) solid var(--ui-line);border-radius:999px;background:var(--ui-panel);font-size:calc(var(--u) * 16);font-weight:600;box-shadow:0 0 calc(var(--u) * 14) var(--ui-glow);animation:pp-toast 2.2s ease both}.pp-banners{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:0 calc(var(--u) * 20);pointer-events:none}.pp-banner{font-size:calc(var(--u) * 44);font-weight:900;letter-spacing:.08em;text-align:center;text-shadow:0 0 calc(var(--u) * 20) var(--ui-accent),0 0 calc(var(--u) * 48) var(--ui-glow);animation:pp-banner 1.1s ease both}.pp-banner-big{font-size:calc(var(--u) * 64);color:var(--ui-key);text-shadow:0 0 calc(var(--u) * 24) var(--ui-key),0 0 calc(var(--u) * 60) color-mix(in srgb,var(--ui-key) 50%,transparent)}@keyframes pp-fade-in{0%{opacity:0}to{opacity:1}}@keyframes pp-panel-in{0%{opacity:0;transform:translateY(calc(var(--u) * 12)) scale(.96)}to{opacity:1;transform:none}}@keyframes pp-card-in{0%{opacity:0;transform:translateY(calc(var(--u) * 18)) scale(.94)}to{opacity:1;transform:none}}@keyframes pp-pop{0%{transform:scale(.6)}60%{transform:scale(1.15)}to{transform:none}}@keyframes pp-toast{0%{opacity:0;transform:translateY(calc(var(--u) * 8))}10%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}@keyframes pp-banner{0%{opacity:0;transform:scale(.6)}20%{opacity:1;transform:scale(1.06)}35%{transform:none}75%{opacity:1}to{opacity:0;transform:scale(1.1)}}@media(prefers-reduced-motion:reduce){.pp-ui *,.pp-ui *:before,.pp-ui *:after{animation:none!important;transition:none!important}}.pp-ui[data-reduced-motion=true] *,.pp-ui[data-reduced-motion=true] *:before,.pp-ui[data-reduced-motion=true] *:after{animation:none!important;transition:none!important}
