.ps-shell{--ps-accent:#45cfe0;--ps-accent-2:#7f8cf5;--ps-grad:linear-gradient(135deg, var(--ps-accent) 0%, var(--ps-accent-2) 100%);--ps-chop:#57b87c;--ps-mine:#8f9ab4;--ps-fish:#43a5ea;--ps-cook:#e8944a;--ps-loop:#a97bf0;--ps-good:#57b87c;--ps-warn:#e8a33f;max-width:1180px;font-family:var(--font-body,system-ui, sans-serif);color:var(--ink,#d8d8d8);margin:0 auto;padding:clamp(20px,5vw,56px) clamp(16px,4vw,32px) 96px;position:relative}.ps-glow{background:radial-gradient(60% 80% at 18% 0%, color-mix(in srgb, var(--ps-accent) 14%, transparent), transparent 70%), radial-gradient(52% 72% at 82% 6%, color-mix(in srgb, var(--ps-accent-2) 15%, transparent), transparent 70%);filter:blur(20px);pointer-events:none;z-index:0;opacity:.85;height:380px;position:absolute;inset:-10% max(-20%,50% - 50vw + 12px) auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000);mask-image:linear-gradient(90deg,#0000,#000 32px calc(100% - 32px),#0000)}.ps-shell>:not(.ps-glow){z-index:1;position:relative}.ps-hero{max-width:78ch;margin-bottom:clamp(28px,5vw,48px)}.ps-kicker{margin:0 0 var(--space-sm,10px);font-size:var(--text-2xs,.6875rem);font-weight:var(--weight-semibold,600);letter-spacing:.14em;text-transform:uppercase;color:var(--ps-accent)}.ps-title{margin:0 0 var(--space-md,16px);letter-spacing:-.02em;font-size:clamp(2rem,6vw,3.4rem);line-height:1.05;font-weight:var(--weight-bold,700);color:var(--ink-bright,#fff)}.ps-title em{background:var(--ps-grad);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.ps-sub{margin:0 0 var(--space-md,16px);font-size:var(--text-base,1rem);color:var(--ink-dim,#9aa1ad);line-height:1.65}.ps-hero-actions{gap:var(--space-sm,10px);margin-top:var(--space-lg,26px);flex-wrap:wrap;display:flex}.ps-btn{border:1px solid var(--stroke-strong,#ffffff24);border-radius:var(--radius-pill,999px);background:var(--surface-1,#ffffff08);color:var(--ink,#d8d8d8);font-size:var(--text-ui,.875rem);font-weight:var(--weight-medium,500);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);align-items:center;gap:8px;padding:10px 18px;text-decoration:none;display:inline-flex}.ps-btn:hover{background:var(--surface-3,#ffffff14);border-color:color-mix(in srgb, var(--ps-accent) 45%, transparent);transform:translateY(-1px)}.ps-btn:active{transform:translateY(0)}.ps-btn:focus-visible{outline:2px solid var(--ps-accent);outline-offset:2px}.ps-btn-primary{background:var(--ps-grad);color:#06131a;font-weight:var(--weight-semibold,600);border-color:#0000}.ps-btn-primary:hover{background:var(--ps-grad);filter:brightness(1.08)}.ps-control{border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-lg,14px);background:var(--surface-1,#ffffff08);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-bottom:clamp(20px,3vw,32px);padding:clamp(16px,3vw,24px)}.ps-control-head{justify-content:space-between;align-items:baseline;gap:var(--space-md,16px);margin-bottom:var(--space-sm,10px);display:flex}.ps-control-label{font-size:var(--text-2xs,.6875rem);font-weight:var(--weight-semibold,600);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint,#6e7583)}.ps-readout{font-size:clamp(1.8rem,5vw,2.6rem);font-weight:var(--weight-bold,700);font-variant-numeric:tabular-nums;background:var(--ps-grad);color:#0000;-webkit-background-clip:text;background-clip:text;line-height:1}.ps-slider{appearance:none;cursor:pointer;touch-action:pan-y;background:0 0;width:100%;height:26px}.ps-slider::-webkit-slider-runnable-track{border-radius:var(--radius-pill,999px);background:linear-gradient(90deg, color-mix(in srgb, var(--ps-accent) 60%, transparent), color-mix(in srgb, var(--ps-accent-2) 60%, transparent));height:6px}.ps-slider::-moz-range-track{border-radius:var(--radius-pill,999px);background:linear-gradient(90deg, color-mix(in srgb, var(--ps-accent) 60%, transparent), color-mix(in srgb, var(--ps-accent-2) 60%, transparent));height:6px}.ps-slider::-webkit-slider-thumb{appearance:none;border:2px solid var(--ps-accent);background:var(--bg,#0a0a0a);width:20px;height:20px;transition:transform var(--duration-fast) var(--ease-standard);border-radius:50%;margin-top:-7px;box-shadow:0 2px 10px #00000059}.ps-slider::-moz-range-thumb{border:2px solid var(--ps-accent);background:var(--bg,#0a0a0a);width:20px;height:20px;transition:transform var(--duration-fast) var(--ease-standard);border-radius:50%;box-shadow:0 2px 10px #00000059}.ps-slider:hover::-webkit-slider-thumb{transform:scale(1.15)}.ps-slider:active::-webkit-slider-thumb{transform:scale(1.15)}.ps-slider:hover::-moz-range-thumb{transform:scale(1.15)}.ps-slider:active::-moz-range-thumb{transform:scale(1.15)}.ps-slider:focus-visible{outline:none}.ps-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--ps-accent) 40%, transparent)}.ps-slider:focus-visible::-moz-range-thumb{box-shadow:0 0 0 4px color-mix(in srgb, var(--ps-accent) 40%, transparent)}.ps-chips{margin-top:var(--space-sm,10px);flex-wrap:wrap;align-items:center;gap:6px;display:flex}.ps-chips-label{font-size:var(--text-2xs,.6875rem);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint,#6e7583);margin-right:4px}.ps-chip{border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-pill,999px);color:var(--ink-dim,#9aa1ad);font-size:var(--text-sm,.764rem);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);background:0 0;padding:4px 12px}.ps-chip:hover{color:var(--ink-bright,#fff);border-color:color-mix(in srgb, var(--ps-accent) 50%, transparent)}.ps-chip:focus-visible{outline:2px solid var(--ps-accent);outline-offset:2px}.ps-chip.is-on{background:color-mix(in srgb, var(--ps-accent) 18%, transparent);border-color:var(--ps-accent);color:var(--ink-bright,#fff)}.ps-control-note{margin:var(--space-sm,10px) 0 0;font-size:var(--text-sm,.764rem);color:var(--ink-faint,#6e7583);line-height:1.55}.ps-stale .ps-stats,.ps-stale .ps-section:not(#curves){opacity:.55;transition:opacity var(--duration-fast) var(--ease-standard)}.ps-notice{align-items:center;gap:var(--space-sm,10px);padding:var(--space-sm,10px) var(--space-md,16px);border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-lg,14px);background:var(--surface-1,#ffffff08);flex-wrap:wrap;margin-bottom:clamp(16px,3vw,24px);display:flex}.ps-notice:focus-visible{outline:2px solid var(--ps-accent);outline-offset:2px}.ps-notice-error{border-color:color-mix(in srgb, var(--ps-warn) 45%, transparent);background:color-mix(in srgb, var(--ps-warn) 8%, transparent)}.ps-notice-text{font-size:var(--text-sm,.764rem);color:var(--ink-dim,#9aa1ad);flex:22ch;margin:0;line-height:1.55}.ps-notice-text strong{color:var(--ink-bright,#fff);font-weight:var(--weight-semibold,600)}.ps-notice-actions{gap:var(--space-xs,6px);flex-wrap:wrap;display:flex}.ps-notice-spinner{border:2px solid color-mix(in srgb, var(--ps-accent) 28%, transparent);border-top-color:var(--ps-accent);border-radius:50%;flex:none;width:15px;height:15px;animation:.72s linear infinite ps-spin}@keyframes ps-spin{to{transform:rotate(360deg)}}.ps-btn-sm{font-size:var(--text-sm,.764rem);padding:6px 14px}.ps-stats{gap:var(--space-sm,10px);grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));margin-bottom:clamp(24px,4vw,40px);display:grid}.ps-stats-tight{margin-bottom:0}.ps-stat{padding:var(--space-md,16px);border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-md,10px);background:var(--surface-1,#ffffff08);transition:border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard)}.ps-stat:hover{border-color:var(--stroke-strong,#ffffff24);transform:translateY(-1px)}.ps-stat-value{font-size:var(--text-xl,1.618rem);font-weight:var(--weight-bold,700);font-variant-numeric:tabular-nums;color:var(--ink-bright,#fff);line-height:1.15}.ps-stat-cash .ps-stat-value{color:var(--ps-accent)}.ps-stat-xp .ps-stat-value{color:var(--ps-accent-2)}.ps-stat-good .ps-stat-value{color:var(--ps-good)}.ps-stat-label{font-size:var(--text-sm,.764rem);font-weight:var(--weight-medium,500);color:var(--ink,#d8d8d8);margin-top:4px}.ps-stat-hint{font-size:var(--text-2xs,.6875rem);color:var(--ink-faint,#6e7583);margin-top:2px;line-height:1.45}.ps-section{margin-bottom:clamp(32px,6vw,64px);scroll-margin-top:80px}.ps-h2{margin:0 0 var(--space-sm,10px);font-size:var(--text-xl,1.618rem);letter-spacing:-.01em;line-height:1.2;font-weight:var(--weight-semibold,600);color:var(--ink-bright,#fff)}.ps-h3{margin:var(--space-lg,26px) 0 var(--space-xs,6px);font-size:var(--text-md,.8125rem);font-weight:var(--weight-semibold,600);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint,#6e7583)}.ps-blurb{max-width:78ch;margin:0 0 var(--space-md,16px);font-size:var(--text-ui,.875rem);color:var(--ink-dim,#9aa1ad);line-height:1.65}.ps-blurb strong{color:var(--ink,#d8d8d8);font-weight:var(--weight-semibold,600)}.ps-list{max-width:78ch;font-size:var(--text-ui,.875rem);color:var(--ink-dim,#9aa1ad);margin:0;padding-left:1.2em;line-height:1.7}.ps-list li+li{margin-top:6px}.ps-list code{font-family:var(--font-mono,ui-monospace, monospace);color:var(--ps-accent);margin-right:4px;font-size:.92em}.ps-findings{gap:var(--space-sm,10px);grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));display:grid}.ps-finding{padding:var(--space-md,16px);padding-left:calc(var(--space-md,16px) + 4px);border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-md,10px);background:var(--surface-1,#ffffff08);transition:border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);position:relative;overflow:hidden}.ps-finding:before{content:"";background:var(--ink-faint,#6e7583);width:3px;position:absolute;inset:0 auto 0 0}.ps-finding-trap:before{background:var(--ps-warn)}.ps-finding-reward:before{background:var(--ps-good)}.ps-finding-context:before{background:var(--ps-accent)}.ps-finding:hover{border-color:var(--stroke-strong,#ffffff24);transform:translateY(-1px)}.ps-finding-kind{font-size:var(--text-2xs,.6875rem);font-weight:var(--weight-semibold,600);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint,#6e7583);margin:0 0 6px}.ps-finding-trap .ps-finding-kind{color:var(--ps-warn)}.ps-finding-reward .ps-finding-kind{color:var(--ps-good)}.ps-finding-context .ps-finding-kind{color:var(--ps-accent)}.ps-finding-title{font-size:var(--text-base,1rem);line-height:1.35;font-weight:var(--weight-semibold,600);color:var(--ink-bright,#fff);margin:0 0 6px}.ps-finding-detail{font-size:var(--text-md,.8125rem);color:var(--ink-dim,#9aa1ad);margin:0;line-height:1.6}.ps-chart-head{justify-content:space-between;align-items:center;gap:var(--space-md,16px);margin-bottom:var(--space-sm,10px);flex-wrap:wrap;display:flex}.ps-toggle{border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-pill,999px);background:var(--surface-1,#ffffff08);padding:3px;display:inline-flex}.ps-toggle-btn{border-radius:var(--radius-pill,999px);color:var(--ink-dim,#9aa1ad);font-size:var(--text-sm,.764rem);font-weight:var(--weight-medium,500);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);background:0 0;border:0;padding:6px 14px}.ps-toggle-btn:hover{color:var(--ink-bright,#fff)}.ps-toggle-btn:focus-visible{outline:2px solid var(--ps-accent);outline-offset:2px}.ps-toggle-btn.is-on{background:color-mix(in srgb, var(--ps-accent) 20%, transparent);color:var(--ink-bright,#fff)}.ps-legend{gap:var(--space-sm,10px);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.ps-legend-item{font-size:var(--text-sm,.764rem);color:var(--ink-dim,#9aa1ad);align-items:center;gap:6px;display:inline-flex}.ps-swatch{background:var(--ink-faint,#6e7583);border-radius:3px;flex:none;width:10px;height:10px}.ps-swatch-chop{background:var(--ps-chop)}.ps-swatch-mine{background:var(--ps-mine)}.ps-swatch-fish{background:var(--ps-fish)}.ps-swatch-cook{background:var(--ps-cook)}.ps-swatch-loop{background:var(--ps-loop)}.ps-chart-wrap{padding:var(--space-sm,10px);border:1px solid var(--stroke,#ffffff14);border-radius:var(--radius-lg,14px);background:var(--surface-1,#ffffff08)}.ps-chart{width:100%;height:auto;display:block;overflow:visible}.ps-chart-interactive{cursor:ew-resize;touch-action:pan-y}.ps-grid{stroke:var(--stroke,#ffffff14);stroke-width:1px}.ps-axis{fill:var(--ink-faint,#6e7583);font-size:11px;font-family:var(--font-mono,ui-monospace, monospace);font-variant-numeric:tabular-nums}.ps-marker{stroke:var(--ps-accent);stroke-width:1.5px;stroke-dasharray:3 3;opacity:.8}.ps-line{stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;opacity:.9}.ps-line-chop{stroke:var(--ps-chop)}.ps-line-mine{stroke:var(--ps-mine)}.ps-line-fish{stroke:var(--ps-fish)}.ps-line-cook{stroke:var(--ps-cook)}.ps-line-loop{stroke:var(--ps-loop);stroke-width:3px}.ps-dot{stroke:var(--bg,#0a0a0a);stroke-width:1.5px}.ps-dot-chop{fill:var(--ps-chop)}.ps-dot-mine{fill:var(--ps-mine)}.ps-dot-fish{fill:var(--ps-fish)}.ps-dot-cook{fill:var(--ps-cook)}.ps-dot-loop{fill:var(--ps-loop)}.ps-split{height:44px;margin-bottom:var(--space-md,16px);border-radius:var(--radius-md,10px);border:1px solid var(--stroke,#ffffff14);display:flex;overflow:hidden}.ps-split-fish,.ps-split-cook{min-width:0;transition:width var(--duration-base) cubic-bezier(.4, 0, .2, 1);justify-content:center;align-items:center;display:flex}.ps-split-fish{background:color-mix(in srgb, var(--ps-fish) 32%, transparent);border-right:1px solid var(--stroke-strong,#ffffff24)}.ps-split-cook{background:color-mix(in srgb, var(--ps-cook) 32%, transparent)}.ps-split-label{font-size:var(--text-sm,.764rem);font-weight:var(--weight-semibold,600);white-space:nowrap;text-overflow:ellipsis;color:var(--ink-bright,#fff);padding:0 8px;overflow:hidden}.ps-tablewrap{border-radius:var(--radius-md,10px);overflow-x:auto}.ps-tablewrap:focus-visible{outline:2px solid var(--ps-accent);outline-offset:2px}.ps-table{border-collapse:collapse;width:100%;font-size:var(--text-md,.8125rem)}.ps-table th{text-align:left;font-size:var(--text-2xs,.6875rem);font-weight:var(--weight-semibold,600);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint,#6e7583);border-bottom:1px solid var(--stroke,#ffffff1a);white-space:nowrap;padding:8px 12px}.ps-table tbody th{font-size:var(--text-md,.8125rem);font-weight:var(--weight-medium,500);letter-spacing:0;text-transform:none;color:var(--ink,#d8d8d8);border-bottom:1px solid color-mix(in srgb, var(--stroke,#ffffff1a) 55%, transparent)}.ps-table td{border-bottom:1px solid color-mix(in srgb, var(--stroke,#ffffff1a) 55%, transparent);color:var(--ink,#d8d8d8);vertical-align:middle;font-variant-numeric:tabular-nums;white-space:nowrap;padding:10px 12px}.ps-table tbody tr:last-child th,.ps-table tbody tr:last-child td{border-bottom:0}.ps-table tbody tr{transition:background var(--duration-fast) var(--ease-standard)}.ps-table tbody tr:hover{background:var(--surface-1,#ffffff08)}.ps-r{text-align:right}.ps-cell-name{white-space:nowrap;align-items:center;gap:8px;display:inline-flex}.ps-row-capped th,.ps-row-capped td{color:var(--ink-faint,#6e7583)}.ps-tag{border:1px solid var(--stroke-strong,#ffffff24);border-radius:var(--radius-pill,999px);font-size:var(--text-2xs,.6875rem);letter-spacing:.04em;color:var(--ps-warn);cursor:help;padding:2px 8px}.ps-skeleton{gap:var(--space-md,16px);display:grid}.ps-skel-control,.ps-skel-stat,.ps-skel-chart,.ps-skel-bar{border-radius:var(--radius-md,10px);background:linear-gradient(90deg, var(--surface-1,#ffffff08) 0%, var(--surface-3,#ffffff14) 50%, var(--surface-1,#ffffff08) 100%);background-size:200% 100%;animation:1.4s ease-in-out infinite ps-shimmer}.ps-skel-control{height:128px}.ps-skel-stat{height:92px}.ps-skel-chart{border-radius:var(--radius-lg,14px);height:300px}.ps-skel-rows{gap:8px;display:grid}.ps-skel-bar{height:34px}@keyframes ps-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.ps-error{border:1px solid color-mix(in srgb, var(--ps-warn) 40%, transparent);border-radius:var(--radius-lg,14px);background:color-mix(in srgb, var(--ps-warn) 6%, transparent);padding:clamp(24px,5vw,40px)}.ps-error-title{margin:0 0 var(--space-xs,6px);font-size:var(--text-lg,1.236rem);font-weight:var(--weight-semibold,600);color:var(--ink-bright,#fff)}.ps-error-body{max-width:68ch;margin:0 0 var(--space-md,16px);font-size:var(--text-ui,.875rem);color:var(--ink-dim,#9aa1ad);line-height:1.6}.ps-error-actions{gap:var(--space-sm,10px);flex-wrap:wrap;display:flex}.ps-fineprint{max-width:82ch;padding-top:var(--space-lg,26px);border-top:1px solid var(--stroke,#ffffff14);font-size:var(--text-sm,.764rem);color:var(--ink-faint,#6e7583);margin:clamp(32px,6vw,64px) 0 0;line-height:1.7}.ps-fineprint code{font-family:var(--font-mono,ui-monospace, monospace);color:var(--ink-dim,#9aa1ad);font-size:.94em}.ps-fineprint a{color:var(--ps-accent);border-bottom:1px solid color-mix(in srgb, var(--ps-accent) 40%, transparent);text-decoration:none}.ps-fineprint a:hover{border-bottom-color:var(--ps-accent)}.ps-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:root[data-theme=light] .ps-shell{--ps-accent:#0e8c9e;--ps-accent-2:#4a58c8;--ps-chop:#2f8a52;--ps-mine:#5c6880;--ps-fish:#1d76bb;--ps-cook:#c26a1c;--ps-loop:#7a4ac8;--ps-good:#2f8a52;--ps-warn:#a8700c}:root[data-theme=light] .ps-btn-primary{color:#fff}:root[data-theme=light] .ps-slider::-webkit-slider-thumb{background:#fff}:root[data-theme=light] .ps-slider::-moz-range-thumb{background:#fff}:root[data-theme=light] .ps-notice{border-color:var(--stroke,#0000001a);background:#00000006}:root[data-theme=light] .ps-notice-error{border-color:color-mix(in srgb, var(--ps-warn) 55%, transparent);background:color-mix(in srgb, var(--ps-warn) 12%, transparent)}:root[data-theme=light] .ps-dot{stroke:#fff}@media (prefers-reduced-motion:reduce){.ps-skel-control,.ps-skel-stat,.ps-skel-chart,.ps-skel-bar{animation:none}.ps-notice-spinner{border-top-color:var(--ps-accent);opacity:.85;animation:none}.ps-btn,.ps-stat,.ps-finding,.ps-split-fish,.ps-split-cook{transition:none}.ps-slider::-webkit-slider-thumb{transition:none}.ps-slider::-moz-range-thumb{transition:none}.ps-btn:hover,.ps-stat:hover,.ps-finding:hover{transform:none}}@media (width<=640px){.ps-control-head{align-items:center}.ps-chart-head{flex-direction:column;align-items:flex-start}.ps-chart{min-height:220px}.ps-split{height:52px}.ps-split-label{font-size:var(--text-2xs,.6875rem)}}
