@eeshans/howiprompt 2.1.1 → 2.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -63,6 +63,18 @@ npx @eeshans/howiprompt --help # usage info
63
63
 
64
64
  Subsequent refreshes are incremental and reuse the local database, caches, and configured exclusions.
65
65
 
66
+ ### Self-Host On GitHub Pages
67
+
68
+ If you want to publish your own stats as a static site:
69
+
70
+ ```bash
71
+ git clone https://github.com/eeshansrivastava89/howiprompt.git
72
+ cd howiprompt && npm install && npm run dev:cli
73
+ cd howiprompt/frontend && DEMO_DEPLOY=true npm run build
74
+ ```
75
+
76
+ Then commit and push `docs/`, and enable GitHub Pages from `main` / `docs` in your repo settings.
77
+
66
78
  ---
67
79
 
68
80
  ## What You Get
@@ -133,6 +145,9 @@ npm run dev:cli
133
145
  # Build frontend
134
146
  cd frontend && npm run build
135
147
 
148
+ # Build the hosted demo from ~/.howiprompt/metrics.json
149
+ cd frontend && DEMO_DEPLOY=true npm run build
150
+
136
151
  # Build for distribution
137
152
  npm run build:cli
138
153
 
package/dist/server.js CHANGED
@@ -43,7 +43,7 @@ export async function startServer(opts) {
43
43
  // API: pick directory (native macOS folder picker)
44
44
  if (req.method === "GET" && url.pathname === "/api/pick-directory") {
45
45
  try {
46
- const result = execSync(`osascript -e 'tell application "Finder" to activate' -e 'return POSIX path of (choose folder with prompt "Select directory to exclude")'`, { timeout: 60000 }).toString().trim();
46
+ const result = execSync(`osascript -e 'return POSIX path of (choose folder with prompt "Select directory to exclude")'`, { timeout: 60000 }).toString().trim();
47
47
  // Remove trailing slash
48
48
  const dirPath = result.replace(/\/$/, "");
49
49
  res.writeHead(200, { "Content-Type": "application/json" });
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans", system-ui, -apple-system, sans-serif;--font-serif:"Fraunces", Georgia, serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, monospace;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--tracking-widest:.1em;--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-text:var(--text);--color-muted:var(--muted);--color-border:var(--border);--grid-template-columns-24:repeat(24, minmax(0, 1fr))}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;touch-action:manipulation}}@layer components{@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes methBob{0%,to{transform:rotate(45deg)translate(0)}50%{transform:rotate(45deg)translate(2px,2px)}}.animate{animation:.4s forwards fadeIn}.delay-1{opacity:0;animation-delay:50ms}.delay-2{opacity:0;animation-delay:.1s}.delay-3{opacity:0;animation-delay:.15s}.delay-4{opacity:0;animation-delay:.2s}.delay-5{opacity:0;animation-delay:.25s}.refreshing .refresh-icon{animation:.8s linear infinite spin}.top-nav{z-index:50;background:var(--bg);position:sticky;top:0}.source-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 24px;display:flex}.source-pill{color:var(--muted);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.source-pill:hover{border-color:var(--text);color:var(--text)}.source-pill.active{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}.source-pill-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}@media(max-width:640px){.source-bar{gap:4px;padding:6px 12px}.source-pill{padding:5px 10px;font-size:12px}}.card-dock{perspective:1200px}.player-card{transform-style:preserve-3d;will-change:transform;border:1px solid #0000000f;transition:transform .15s ease-out,box-shadow .2s ease-out;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f,0 12px 32px #00000014,0 24px 60px #0000000f;container-type:inline-size}.dark .player-card{border-color:#ffffff0f;box-shadow:0 1px 2px #0003,0 4px 12px #0003,0 12px 32px #00000040,0 24px 60px #0003}.persona-name{text-shadow:0 2px 8px #0000004d;font-size:clamp(26px,6cqw,36px)}.donut-ring svg{transform:rotate(-90deg)}.donut-fill{transition:stroke-dashoffset .6s}.stat-block:not(:last-child):after{content:"";background:var(--border);width:1px;height:60%;position:absolute;top:20%;right:0}.trend-dot{transition:r .1s}.trend-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.heatmap-cell.l1{background:var(--heatmap-color,var(--accent));opacity:.2}.heatmap-cell.l2{background:var(--heatmap-color,var(--accent));opacity:.35}.heatmap-cell.l3{background:var(--heatmap-color,var(--accent));opacity:.55}.heatmap-cell.l4{background:var(--heatmap-color,var(--accent));opacity:.75}.heatmap-cell.l5{background:var(--heatmap-color,var(--accent));opacity:1}.heatmap-tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.meth-modal{box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 32px 64px #00000014}.dark .meth-modal{box-shadow:0 1px 2px #0003,0 8px 24px #0003,0 32px 64px #00000040}.meth-progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent))}@supports (color:color-mix(in lab,red,red)){.meth-progress-fill{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 50%,transparent))}}.meth-step-icon{background:linear-gradient(135deg,var(--accent),var(--accent))}@supports (color:color-mix(in lab,red,red)){.meth-step-icon{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#a08060))}}.meth-step-icon{box-shadow:0 4px 10px rgba(var(--accent-rgb),.2)}.meth-step:not(:last-child):after{content:"";z-index:2;background:var(--bg);border:1px solid var(--border);border-bottom:none;border-left:none;width:14px;height:14px;position:absolute;top:50%;right:-1px;transform:translate(50%)translateY(-50%)rotate(45deg)}@media(max-width:700px){.meth-step:not(:last-child):after{display:none}}.meth-scroll-arrow{animation:2s ease-in-out infinite methBob}.meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.06),transparent)}.meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.06),transparent 45%)}.meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.06),transparent)}.dark .meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.1),transparent)}.dark .meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.1),transparent 45%)}.dark .meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.1),transparent)}.meth-taste-card:before{content:"";background:var(--tc,var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.meth-pd-art:after{content:"";background:radial-gradient(circle at 50% 80%,#0000 40%,#fff3);position:absolute;inset:0}.dark .meth-pd-art:after{background:radial-gradient(circle at 50% 80%,#0000 40%,#00000026)}.meth-p-thumb.active{box-shadow:0 0 0 3px var(--pa),var(--shadow)}@supports (color:color-mix(in lab,red,red)){.meth-p-thumb.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--pa) 10%,transparent),var(--shadow)}}.meth-reveal{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.meth-reveal.vis{opacity:1;transform:translateY(0)}.meth-reveal.d1{transition-delay:80ms}.meth-reveal.d2{transition-delay:.16s}.meth-reveal.d3{transition-delay:.24s}.meth-reveal.d4{transition-delay:.32s}.wizard-stage-fill{background:var(--accent);transition:width .35s}@supports (color:color-mix(in lab,red,red)){.wizard-stage-fill{background:color-mix(in srgb,var(--accent) 18%,transparent)}}.wizard-stage-track.is-active .wizard-stage-fill{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-active .wizard-stage-fill{background:color-mix(in srgb,var(--accent) 28%,transparent)}}.wizard-stage-track.is-done .wizard-stage-fill{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-done .wizard-stage-fill{background:color-mix(in srgb,var(--accent) 40%,transparent)}}.wizard-stage-track.is-error .wizard-stage-fill{background:var(--stat-r)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-error .wizard-stage-fill{background:color-mix(in srgb,var(--stat-r) 32%,transparent)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--ui-radius-sm)}@media(prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.player-card{transform:none!important}.meth-reveal{opacity:1!important;transform:none!important}}}@layer utilities{.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.bottom-12{bottom:calc(var(--spacing) * 12)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.ml-12{margin-left:calc(var(--spacing) * 12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.aspect-square{aspect-ratio:1}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-24{grid-template-columns:var(--grid-template-columns-24)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[1px\]{gap:1px}.gap-\[2px\]{gap:2px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\[2px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(2px * var(--tw-space-y-reverse));margin-block-end:calc(2px * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--color-border)}.bg-bg{background-color:var(--color-bg)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-muted,.text-muted\/40{color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted\/40{color:color-mix(in oklab,var(--color-muted) 40%,transparent)}}.text-muted\/60{color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.text-text,.text-text\/80{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.text-text\/80{color:color-mix(in oklab,var(--color-text) 80%,transparent)}}.text-text\/90{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.text-text\/90{color:color-mix(in oklab,var(--color-text) 90%,transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-1{transition-delay:1ms}.delay-2{transition-delay:2ms}.delay-3{transition-delay:3ms}.duration-300{--tw-duration:.3s;transition-duration:.3s}@media(hover:hover){.hover\:text-text:hover{color:var(--color-text)}}@media(min-width:40rem){.sm\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.sm\:flex{display:flex}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:gap-\[2px\]{gap:2px}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-20{padding-block:calc(var(--spacing) * 20)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}}:root{--bg:#f5f3f0;--surface:#fff;--surface-raised:#faf8f5;--text:#3c3226;--subtext:#6b5e50;--muted:#8a7d6f;--border:#d9d2c9;--border-light:#ebe5dc;--accent:#5c3d2e;--accent-soft:#ede6de;--accent-rgb:92,61,46;--ui-radius:14px;--ui-radius-sm:8px;--shadow:0 1px 3px #3c32260f, 0 4px 12px #3c32260a;--shadow-hover:0 4px 12px #3c32261a, 0 8px 24px #3c32260f;--stat-b:#1a5bdb;--stat-r:#d20f39}.dark{--bg:#1c1816;--surface:#2a2420;--surface-raised:#332c26;--text:#e0d6cc;--subtext:#b0a596;--muted:#8a7d6f;--border:#3d342c;--border-light:#4a3f35;--accent:#c9a882;--accent-soft:#2e261f;--accent-rgb:201,168,130;--shadow:0 1px 3px #0000004d, 0 4px 12px #0003;--shadow-hover:0 4px 12px #0006, 0 8px 24px #0000004d;--stat-b:#89b4fa;--stat-r:#f38ba8}.header{background:var(--bg);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.header-left{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.header h1{letter-spacing:-.02em;font-size:24px;font-weight:700}.header h1 span{color:var(--accent)}.header-subtitle{color:var(--muted);font-size:20px;font-weight:500}.date-range{color:var(--muted);font-size:14px;font-weight:500}.header-right{align-items:center;gap:12px;display:flex}.nav-link,.accent-link{color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:20px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.nav-link:hover,.accent-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.nav-link:hover,.accent-link:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}}.create-btn{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.create-btn{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border))}}.create-btn{cursor:pointer;white-space:nowrap;border-radius:20px;font-family:inherit;transition:all .15s}.create-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.create-btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}}.create-modal{background:var(--surface);width:min(92vw,860px);max-width:860px;box-shadow:var(--shadow-hover);border:1px solid var(--border);border-radius:28px;flex-direction:column;max-height:min(88vh,860px);display:flex;overflow:hidden}.create-header{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.create-header-left{align-items:center;gap:14px;display:flex}.create-logo{border:1px solid var(--accent);border-radius:14px;width:40px;height:40px}@supports (color:color-mix(in lab,red,red)){.create-logo{border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border))}}.create-logo{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.create-logo{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.create-logo{color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:700;display:flex}.create-header-title{letter-spacing:-.02em;color:var(--text);font-family:Fraunces,serif;font-size:18px;font-weight:700}.create-header-sub{color:var(--muted);margin-top:2px;font-size:12px}.create-body{flex-direction:column;gap:18px;padding:22px 24px;display:flex;overflow:auto}.create-card{border:1px solid var(--border);padding:18px 18px 16px}@supports (color:color-mix(in lab,red,red)){.create-card{border:1px solid color-mix(in srgb,var(--border) 92%,transparent)}}.create-card{background:linear-gradient(180deg,var(--surface),var(--bg));border-radius:22px}@supports (color:color-mix(in lab,red,red)){.create-card{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 82%,var(--bg) 18%),color-mix(in srgb,var(--bg) 34%,transparent))}}.create-card-muted{background:linear-gradient(180deg,var(--bg),var(--surface))}@supports (color:color-mix(in lab,red,red)){.create-card-muted{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 28%,transparent),color-mix(in srgb,var(--surface) 94%,transparent))}}.create-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.create-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:11px;font-weight:700}.create-rule{letter-spacing:-.02em;color:var(--text);margin:0;font-size:19px;font-weight:700}.create-card-copy{color:var(--muted);max-width:62ch;margin:0 0 14px;font-size:14px;line-height:1.55}.create-kicker{letter-spacing:.02em;text-transform:uppercase;color:var(--text);margin:0 0 4px;font-size:12px;font-weight:700}.create-subcopy{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.command-strip{background:linear-gradient(180deg,var(--bg),var(--bg));justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.command-strip{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 82%,transparent),color-mix(in srgb,var(--bg) 96%,transparent))}}.command-strip{border:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.command-strip{border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}}.command-strip{border-radius:16px;box-shadow:inset 0 1px #ffffff08}.command-line-wrap{flex:1;min-width:0}.command-line{color:var(--text);white-space:nowrap;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:15px;display:flex;overflow:auto}.command-prompt{color:var(--accent);font-weight:700}.command-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.create-copy-btn,.create-source-link{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.create-copy-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0}.create-copy-btn:hover,.create-source-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.create-copy-btn:hover,.create-source-link:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}}.create-copy-btn.is-copied{color:#2f8f5b;background:#2f8f5b1a;border-color:#2f8f5b}.create-source-link{border:1px solid var(--border);color:var(--muted);background:0 0}.create-steps{border-top:1px solid var(--border);flex-direction:column;gap:0;display:flex}@supports (color:color-mix(in lab,red,red)){.create-steps{border-top:1px solid color-mix(in srgb,var(--border) 82%,transparent)}}.create-steps{margin-top:4px}.create-step{border-bottom:1px solid var(--border);padding:12px 0}@supports (color:color-mix(in lab,red,red)){.create-step{border-bottom:1px solid color-mix(in srgb,var(--border) 82%,transparent)}}.create-step-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.create-step-num{background:var(--accent);border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.create-step-num{background:color-mix(in srgb,var(--accent) 16%,transparent)}}.create-step-num{color:var(--accent);flex-shrink:0;font-size:12px;font-weight:700}.create-step-title{color:var(--text);font-size:15px;font-weight:700}.create-step-command{justify-content:space-between;align-items:center;gap:12px;padding-left:34px;display:flex}.create-step-command code{color:var(--text);white-space:nowrap;flex:1;font-family:JetBrains Mono,monospace;font-size:12px;overflow:auto}.create-copy-btn-sm{flex-shrink:0;padding:6px 9px;font-size:11px}.create-hosted-note{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.55}.create-hosted-note a{color:var(--accent);text-decoration:none}.create-hosted-note a:hover{text-decoration:underline}.create-bottom{border-top:1px solid var(--border);background:var(--bg);padding:14px 24px}.create-bottom-note{color:var(--muted);font-size:11px;line-height:1.5}.theme-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:36px;height:36px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.theme-btn:hover{border-color:var(--accent);color:var(--accent)}@media(max-width:640px){.header{gap:8px;padding:10px 16px}.header-right{gap:8px}.header-right .nav-link{display:none}.create-modal{border-radius:22px;width:min(94vw,860px)}.create-header{align-items:flex-start;padding:16px 18px}.create-body{padding:18px}.create-bottom{padding:12px 18px}.command-strip{flex-direction:column;align-items:stretch}.command-actions{flex-wrap:wrap;justify-content:flex-start}.create-step-command{flex-direction:column;align-items:stretch;padding-left:0}.create-step-command code{white-space:normal;word-break:break-word}}.page-frame{flex-direction:column;height:100dvh;min-height:0;display:flex}@media(max-width:1024px){.page-frame{height:auto;min-height:100dvh}}.dash-panel{flex-direction:column;flex:1;min-height:0;display:flex}.dash-container{flex-direction:column;flex:1;min-height:0;padding:0 24px;display:flex}.main-grid{flex:1;grid-template-columns:2fr 1fr;gap:20px;min-height:0;padding:16px 0;display:grid}@media(max-width:1024px){.main-grid{flex:none;grid-template-columns:1fr}.right-col{order:-1}}.left{flex-direction:column;gap:12px;min-width:0;min-height:0;display:flex}.stat-cards{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}@media(max-width:640px){.stat-cards{grid-template-columns:repeat(2,1fr)}}.stat-card{background:var(--surface);border-radius:var(--ui-radius-sm);box-shadow:var(--shadow);padding:14px 16px}.stat-card-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600}.stat-card-value{letter-spacing:-.03em;font-family:JetBrains Mono,monospace;font-size:28px;font-weight:700;line-height:1}.stat-card-value.highlight{color:var(--text);font-weight:800}.stat-card-sub{color:var(--muted);margin-top:4px;font-size:13px}.trend-panel{background:var(--surface);border-radius:var(--ui-radius-sm);box-shadow:var(--shadow);flex-direction:column;flex:1;min-width:0;min-height:340px;padding:14px 20px 10px;display:flex}.trend-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 16px;min-width:0;margin-bottom:10px;display:flex}.trend-copy{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.trend-copy-row{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.trend-title{font-size:16px;font-weight:700}.trend-copy-sep{color:var(--border);font-size:13px;line-height:1}.trend-metric-def{color:var(--muted);min-width:0;font-size:12px;font-style:italic;line-height:1.35}.trend-legend{flex-wrap:wrap;align-items:center;gap:10px;min-height:15px;display:flex}.trend-legend-pill{color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:11px;font-weight:500;display:inline-flex}.trend-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.metric-tabs{flex-wrap:wrap;align-self:flex-start;gap:4px;min-width:0;display:flex}.metric-tab{border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;padding:6px 14px;font-family:inherit;font-size:12px;font-weight:600;transition:all .15s;position:relative}.metric-tab[data-tooltip]:hover:after{content:attr(data-tooltip);background:var(--text);color:var(--bg);white-space:normal;z-index:20;pointer-events:none;border-radius:8px;width:max-content;max-width:220px;padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:500;line-height:1.4;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%)}.metric-tab[data-tooltip]:hover:before{content:"";border:5px solid #0000;border-bottom-color:var(--text);z-index:20;pointer-events:none;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)}.metric-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.metric-tab:hover:not(.active){border-color:var(--accent);color:var(--accent)}.trend-current{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.trend-current-val{letter-spacing:-.03em;color:var(--trend-color,var(--accent));font-family:JetBrains Mono,monospace;font-size:36px;font-weight:800}.trend-current-label{display:none}.trend-chart-wrap{flex:1;min-width:0;min-height:60px;position:relative}.heatmap-panel{background:var(--surface);border-radius:var(--ui-radius-sm);box-shadow:var(--shadow);flex-shrink:0;padding:14px 18px}.heatmap-title{margin-bottom:8px;font-size:14px;font-weight:700}.heatmap{grid-template-columns:32px repeat(24,1fr);gap:1px;font-size:10px;display:grid}.heatmap-label{color:var(--muted);align-items:center;font-size:10px;font-weight:500;display:flex}.heatmap-hour{text-align:center;color:var(--muted);font-size:10px;font-weight:500}.heatmap-cell{background:var(--border);opacity:.3;border-radius:2px;height:18px}.heatmap-cell.l1{background:var(--heatmap-color,var(--accent));opacity:.2}.heatmap-cell.l2{background:var(--heatmap-color,var(--accent));opacity:.35}.heatmap-cell.l3{background:var(--heatmap-color,var(--accent));opacity:.55}.heatmap-cell.l4{background:var(--heatmap-color,var(--accent));opacity:.75}.heatmap-cell.l5{background:var(--heatmap-color,var(--accent));opacity:1}.heatmap-tooltip{background:var(--text);color:var(--bg);pointer-events:none;opacity:0;white-space:nowrap;z-index:10;border-radius:6px;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:600;transition:opacity .1s;position:absolute;top:0;left:0;transform:translate(-50%)}.heatmap-tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.heatmap-panel{position:relative}.heatmap-meta{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.right-col{flex-direction:column;gap:12px;min-width:0;min-height:0;display:flex}.card-dock{perspective:1200px;flex:1;width:100%;min-height:0;display:flex;position:relative}.player-card{background:var(--surface);width:100%;transform-style:preserve-3d;will-change:transform;border:1px solid #0000000f;border-radius:24px;flex-direction:column;height:100%;transition:transform .15s ease-out,box-shadow .2s ease-out;display:flex;overflow:hidden;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f,0 12px 32px #00000014,0 24px 60px #0000000f;container-type:inline-size}.dark .player-card{border-color:#ffffff0f;box-shadow:0 1px 2px #0003,0 4px 12px #0003,0 12px 32px #00000040,0 24px 60px #0003}.card-top{aspect-ratio:840/1040;background-position:50%;background-size:cover;border-radius:24px 24px 0 0;padding:0;position:relative;overflow:hidden}.card-top-content{z-index:2;flex-direction:column;gap:8px;width:50%;padding:22px 24px 18px;display:flex;position:absolute;inset:0}.persona-name{color:#fff;letter-spacing:-.04em;text-shadow:0 2px 8px #0000004d;white-space:nowrap;font-size:clamp(22px,5.5cqw,36px);font-weight:800;line-height:.96}.donut-grid{flex-direction:column;gap:10px;margin-top:16px;display:flex}.donut-item{align-items:center;gap:10px;display:flex}.donut-ring{flex-shrink:0;width:44px;height:44px;position:relative}.donut-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-ring .donut-track{fill:none;stroke:#ffffff26;stroke-width:5px}.donut-ring .donut-fill{fill:none;stroke:#ffffffd9;stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .6s}.donut-val{color:#fff;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800;display:flex;position:absolute;inset:0}.donut-label{color:#ffffffb3;font-size:12px;font-weight:600}.card-body{padding:14px 24px 12px}.persona-desc{color:var(--muted);font-size:14px;line-height:1.58}.persona-desc strong{color:var(--text);font-weight:700}.stat-strip{border-top:1px solid var(--border);grid-template-columns:repeat(2,1fr);display:grid}.stat-block{text-align:center;padding:16px 10px 14px;position:relative}.stat-block:not(:last-child):after{content:"";background:var(--border);width:1px;height:60%;position:absolute;top:20%;right:0}.stat-num{letter-spacing:-.04em;font-family:JetBrains Mono,monospace;font-size:30px;font-weight:800;line-height:1}.stat-block:first-child .stat-num{color:var(--accent)}.stat-block:nth-child(2) .stat-num{color:var(--stat-b)}.stat-block:nth-child(3) .stat-num{color:var(--stat-r)}.stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:5px;font-size:12px;font-weight:700}.stat-minibar{background:var(--border);opacity:.55;border-radius:999px;width:58%;height:3px;margin:8px auto 0;overflow:hidden}.stat-minibar-fill{border-radius:2px;height:100%}.stat-minibar-fill.o{background:var(--accent)}.stat-minibar-fill.b{background:var(--stat-b)}.stat-minibar-fill.r{background:var(--stat-r)}.card-foot{color:var(--muted);border-top:1px solid var(--border);justify-content:space-between;padding:8px 24px;font-family:JetBrains Mono,monospace;font-size:11px;display:flex}.footer{color:var(--muted);border-top:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 24px;font-size:11px;display:flex}.footer-links{gap:16px;display:flex}.footer-links a{color:var(--muted);text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--text)}.share-toast{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--ui-radius-sm);box-shadow:var(--shadow);z-index:50;opacity:0;pointer-events:none;padding:10px 16px;font-size:13px;font-weight:500;transition:opacity .3s,transform .3s;position:fixed;bottom:84px;right:24px;transform:translateY(8px)}.share-toast.show{opacity:1;transform:translateY(0)}.refresh-modal{background:var(--surface);border-radius:var(--ui-radius);width:90%;max-width:480px;box-shadow:var(--shadow-hover);text-align:center;padding:28px 32px}.refresh-modal h3{margin-bottom:16px;font-size:16px;font-weight:700}.refresh-modal .wizard-log{text-align:left;height:180px;margin-bottom:12px}.refresh-modal .wizard-progress{margin-bottom:12px}.refresh-modal-result{color:var(--text);font-size:14px;line-height:1.8}.refresh-modal-result .result-num{color:var(--accent);font-family:JetBrains Mono,monospace;font-weight:700}.refresh-modal-close{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:20px;margin-top:16px;padding:8px 24px;font-family:inherit;font-size:13px;font-weight:600;transition:transform .1s}.refresh-modal-close:hover{transform:scale(1.03)}@media(max-width:1024px){.page-frame{overflow-x:hidden}.dash-container,.main-grid,.card-dock{flex:none}.player-card{height:auto}.card-top-content{gap:8px}.trend-panel{flex:none;min-height:320px}.right-col{align-self:center;width:100%;max-width:480px}}@media(max-width:1400px){.trend-panel{min-height:320px}}@media(max-width:640px){html,body{height:auto;overflow-x:hidden}.header{gap:8px;padding:10px 16px}.header-right{gap:8px}.tab-bar{padding:0 16px}.dash-container{padding:0 12px}.main-grid{gap:12px}.right-col{align-self:stretch;gap:10px;max-width:none}.card-top{aspect-ratio:840/1040}.card-top-content{width:45%;padding:14px 14px 12px}.persona-name{font-size:22px}.donut-ring{width:36px;height:36px}.donut-val{font-size:11px}.donut-label{font-size:10px}.donut-grid,.donut-item{gap:6px}.card-body{padding:10px 16px 8px}.persona-desc{overflow-wrap:break-word;font-size:12px}.stat-num{font-size:22px}.stat-label{font-size:10px}.stat-block{padding:10px 4px}.card-foot{padding:6px 16px;font-size:10px}.stat-cards{gap:8px}.stat-card{padding:10px 12px}.stat-card-value{font-size:20px}.stat-card-label,.stat-card-sub{font-size:11px}.trend-panel{min-height:300px;padding:14px}.trend-header{flex-direction:column;align-items:flex-start;gap:6px}.trend-copy{gap:4px;width:100%}.trend-copy-row{gap:6px}.trend-copy-sep{display:none}.trend-metric-def{font-size:11px}.trend-title{font-size:14px}.metric-tabs{flex-wrap:wrap;gap:3px;width:100%}.metric-tab{border-radius:14px;padding:4px 8px;font-size:10px}.trend-current-val{font-size:24px}.trend-current-label{font-size:12px}.trend-chart-wrap{min-height:80px}.heatmap-panel{padding:10px 14px}.heatmap-title{margin-bottom:4px;font-size:13px}.heatmap{grid-template-columns:14px repeat(24,1fr);gap:1px}.heatmap-hour{visibility:hidden;height:0;font-size:0;line-height:0}.heatmap-label{text-overflow:clip;white-space:nowrap;width:14px;font-size:7px;overflow:hidden}.heatmap-cell{border-radius:1px;height:8px}.heatmap-meta{flex-wrap:wrap;gap:4px;font-size:10px}.footer{text-align:center;flex-direction:column;gap:4px;margin-top:8px;padding:10px 12px;font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}.player-card{transform:none!important}}.icon-sm{width:16px;height:16px}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wizard-overlay{z-index:200;background:var(--bg);justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.wizard-overlay.active{display:flex}.wizard-panel{background:var(--surface);border-radius:var(--ui-radius);width:100%;max-width:520px;box-shadow:var(--shadow-hover);padding:32px}.wizard-title{letter-spacing:-.02em;margin-bottom:4px;font-size:20px;font-weight:700}.wizard-title span{color:var(--accent)}.wizard-steps{gap:6px;margin:20px 0 24px;display:flex}.wizard-step{color:var(--muted);background:var(--bg);border-radius:20px;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.wizard-step.active{background:var(--accent);color:#fff}.wizard-step.done{color:var(--accent)}.wizard-step-num{font-weight:700}.wizard-page{display:none}.wizard-page.active{display:block}.wizard-intro{color:var(--subtext);margin-bottom:20px;font-size:14px;line-height:1.5}.wizard-loading{color:var(--muted);text-align:center;padding:24px 0;font-size:13px}.wizard-backends{flex-direction:column;gap:8px;margin-bottom:24px;display:flex}.wizard-backend{border:1px solid var(--border);border-radius:var(--ui-radius-sm);align-items:center;gap:12px;padding:12px 16px;transition:border-color .15s;display:flex}.wizard-backend.detected{border-color:var(--accent)}.wizard-backend-icon{border-radius:50%;flex-shrink:0;width:8px;height:8px}.wizard-backend-icon.available{background:#40a02b}.wizard-backend-icon.coming_soon{background:#df8e1d}.wizard-backend-icon.not_found{background:var(--border)}.wizard-backend-info{flex:1}.wizard-backend-name{font-size:14px;font-weight:600}.wizard-backend-detail{color:var(--muted);margin-top:2px;font-size:12px}.wizard-config{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.wizard-toggle{border:1px solid var(--border);border-radius:var(--ui-radius-sm);cursor:pointer;align-items:center;gap:12px;padding:10px 16px;font-size:14px;font-weight:500;transition:border-color .15s;display:flex}.wizard-toggle:has(input:checked){border-color:var(--accent)}.wizard-toggle input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.wizard-toggle.is-disabled{cursor:not-allowed;opacity:.65}.wizard-exclusions{margin-bottom:16px}.wizard-label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.wizard-hint{color:var(--muted);margin-top:8px;font-size:11px}.exclusion-chips{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.exclusion-chip{background:var(--bg);border:1px solid var(--border);border-radius:var(--ui-radius-sm);align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.exclusion-chip-path{text-overflow:ellipsis;white-space:nowrap;color:var(--text);flex:1;font-family:JetBrains Mono,monospace;overflow:hidden}.exclusion-chip-count{color:var(--muted);white-space:nowrap;font-size:11px}.exclusion-chip-remove{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:2px;font-size:16px;line-height:1;transition:color .15s}.exclusion-chip-remove:hover{color:var(--stat-r)}.exclusion-add-btn{align-items:center;gap:6px;padding:8px 16px;font-size:12px;display:inline-flex}.wizard-nav{justify-content:flex-end;gap:8px;display:flex}.wizard-btn{cursor:pointer;border:none;border-radius:20px;padding:10px 24px;font-family:inherit;font-size:13px;font-weight:600;transition:transform .1s}.wizard-btn:hover{transform:scale(1.03)}.wizard-btn-primary{background:var(--accent);color:#fff}.wizard-btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--border)}.wizard-log{background:var(--bg);border:1px solid var(--border);border-radius:var(--ui-radius-sm);height:180px;margin-bottom:16px;padding:12px;font-family:JetBrains Mono,monospace;font-size:12px;overflow-y:auto}.wizard-log-entry{color:var(--subtext);padding:2px 0}.wizard-log-entry.done{color:var(--accent);font-weight:600}.wizard-log-entry.error{color:var(--stat-r)}.wizard-progress{background:var(--border);border-radius:2px;height:4px;margin-bottom:12px;overflow:hidden}.wizard-progress-bar{background:var(--accent);width:0;height:100%;transition:width .4s}.wizard-progress-meta{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.wizard-progress-label{color:var(--text);font-size:12px;font-weight:600}.wizard-progress-pct{color:var(--accent);font-size:12px;font-weight:700}.wizard-stage-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.wizard-stage-row{grid-template-columns:minmax(0,130px) 1fr 36px;align-items:center;gap:10px;display:grid}.wizard-stage-name{letter-spacing:.02em;color:var(--muted);text-transform:uppercase;font-size:11px;font-weight:700}.wizard-stage-track{border:1px solid var(--border);background:var(--bg);border-radius:999px;height:24px;position:relative;overflow:hidden}.wizard-stage-fill{background:var(--accent);width:0;position:absolute;inset:0 auto 0 0}@supports (color:color-mix(in lab,red,red)){.wizard-stage-fill{background:color-mix(in srgb,var(--accent) 18%,transparent)}}.wizard-stage-fill{transition:width .35s}.wizard-stage-track.is-active .wizard-stage-fill{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-active .wizard-stage-fill{background:color-mix(in srgb,var(--accent) 28%,transparent)}}.wizard-stage-track.is-done .wizard-stage-fill{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-done .wizard-stage-fill{background:color-mix(in srgb,var(--accent) 40%,transparent)}}.wizard-stage-track.is-error .wizard-stage-fill{background:var(--stat-r)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-error .wizard-stage-fill{background:color-mix(in srgb,var(--stat-r) 32%,transparent)}}.wizard-stage-detail{z-index:1;color:var(--subtext);white-space:nowrap;text-overflow:ellipsis;padding:0 10px;font-size:11px;line-height:24px;display:block;position:relative;overflow:hidden}.wizard-stage-track.is-active .wizard-stage-detail{color:var(--text)}.wizard-stage-value{color:var(--muted);text-align:right;font-size:11px;font-weight:700}@media(max-width:640px){.wizard-panel{padding:24px 20px}.wizard-steps{flex-wrap:wrap}.wizard-stage-row{grid-template-columns:110px 1fr 32px}}.settings-modal{background:var(--surface);border-radius:var(--ui-radius);width:90%;max-width:460px;box-shadow:var(--shadow-hover)}.settings-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.settings-header h3{font-size:16px;font-weight:700}.settings-body{padding:16px 24px}.settings-section{margin-bottom:16px}.settings-backend-row{flex-direction:column;gap:4px;display:flex}.settings-backend-title{align-items:center;gap:8px;display:inline-flex}.settings-backend-badge{letter-spacing:.02em;text-transform:uppercase;background:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.settings-backend-badge{background:color-mix(in srgb,var(--accent) 16%,transparent)}}.settings-backend-badge{color:var(--accent)}.settings-backend-detail{color:var(--muted);padding:0 4px 2px 16px;font-size:12px}.settings-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:16px 24px 20px;display:flex}.settings-footer-right{gap:8px;display:flex}@media(max-width:480px){.settings-footer{flex-direction:column-reverse;align-items:stretch}.settings-footer-right{justify-content:stretch}.settings-footer-right .wizard-btn{text-align:center;flex:1}.settings-footer .wizard-btn-danger{text-align:center}}.wizard-btn-danger{color:var(--stat-r);border:1px solid var(--stat-r);background:0 0;padding:8px 16px;font-size:12px}.wizard-btn-danger:hover{background:var(--stat-r);color:#fff}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#3c322659;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.dark .modal-overlay{background:#0000008c}.modal-overlay.active{display:flex}.meth-modal{background:var(--bg);border:1px solid var(--border);border-radius:20px;flex-direction:column;width:min(1000px,100%);height:min(720px,100vh - 32px);display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 32px 64px #00000014}.dark .meth-modal{box-shadow:0 1px 2px #0003,0 8px 24px #0003,0 32px 64px #00000040}.meth-progress{background:var(--border);z-index:20;opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.meth-progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent));border-radius:0 1px 1px 0;width:0%;height:100%;transition:width .25s}@supports (color:color-mix(in lab,red,red)){.meth-progress-fill{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 50%,transparent))}}.meth-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.meth-header-left{align-items:center;gap:12px;display:flex}.meth-logo{background:var(--accent);width:32px;height:32px;box-shadow:0 2px 6px rgba(var(--accent-rgb),.2);border-radius:8px;justify-content:center;align-items:center;font-size:15px;display:flex}.meth-header-title{letter-spacing:-.02em;color:var(--text);font-family:Fraunces,serif;font-size:16px;font-weight:700}.meth-header-sub{color:var(--muted);margin-top:1px;font-size:11px}.modal-close{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.modal-close:hover{border-color:var(--accent);color:var(--accent)}.modal-close svg{color:currentColor;width:16px;height:16px}.meth-scroll{scroll-snap-type:y mandatory;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.12) transparent;flex:1;height:0;min-height:0;overflow:hidden auto}.meth-scroll::-webkit-scrollbar{width:5px}.meth-scroll::-webkit-scrollbar-track{background:0 0}.meth-scroll::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.12);border-radius:3px}.meth-snap{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;flex-shrink:0;height:100%;min-height:100%;display:flex;overflow:hidden}.meth-reveal{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.meth-reveal.vis{opacity:1;transform:translateY(0)}.meth-reveal.d1{transition-delay:80ms}.meth-reveal.d2{transition-delay:.16s}.meth-reveal.d3{transition-delay:.24s}.meth-reveal.d4{transition-delay:.32s}.meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.06),transparent)}.dark .meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.1),transparent)}.meth-s1-inner{flex-direction:column;flex:1;justify-content:center;padding:0 48px;display:flex}@media(max-width:640px){.meth-s1-inner{padding:0 20px}}.meth-hero{text-align:center;padding:40px 0 32px}.meth-hero-kicker{background:var(--accent-soft);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);border-radius:999px;align-items:center;gap:7px;margin-bottom:20px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:inline-flex}.meth-hero h1{letter-spacing:-.04em;color:var(--text);max-width:15ch;margin:0 auto;font-family:Fraunces,serif;font-size:clamp(34px,5.5vw,52px);font-weight:800;line-height:1.02}.meth-hero h1 em{color:var(--accent);font-style:italic;font-weight:600}.meth-hero-sub{color:var(--subtext,var(--muted));max-width:46ch;margin-top:16px;margin-left:auto;margin-right:auto;font-size:17px;line-height:1.6}.meth-pipeline-wrap{padding:0 0 28px}.meth-rule{color:var(--accent);align-items:center;gap:12px;margin-bottom:18px;font-family:Fraunces,serif;font-size:14px;font-weight:700;display:flex}.meth-rule:after{content:"";background:var(--border);flex:1;height:1px}.meth-process{grid-template-columns:repeat(4,1fr);gap:2px;display:grid}@media(max-width:700px){.meth-process{grid-template-columns:1fr 1fr}}.meth-step{background:var(--surface);border:1px solid var(--border);padding:22px 20px;transition:all .2s;position:relative}.meth-step:first-child{border-radius:12px 0 0 12px}.meth-step:last-child{border-radius:0 12px 12px 0}@media(max-width:700px){.meth-step:first-child{border-radius:12px 0 0}.meth-step:nth-child(2){border-radius:0 12px 0 0}.meth-step:nth-child(3){border-radius:0 0 0 12px}.meth-step:last-child{border-radius:0 0 12px}}.meth-step:hover{background:var(--accent-soft)}.meth-step-icon{background:linear-gradient(135deg,var(--accent),var(--accent));border-radius:9px;width:38px;height:38px}@supports (color:color-mix(in lab,red,red)){.meth-step-icon{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#a08060))}}.meth-step-icon{color:#f0e8de;box-shadow:0 4px 10px rgba(var(--accent-rgb),.2);justify-content:center;align-items:center;margin-bottom:12px;font-size:17px;display:flex}.meth-step h3{color:var(--text);margin-bottom:5px;font-family:Fraunces,serif;font-size:16px;font-weight:700}.meth-step p{color:var(--muted);font-size:13px;line-height:1.55}.meth-step:not(:last-child):after{content:"";z-index:2;background:var(--bg);border:1px solid var(--border);border-bottom:none;border-left:none;width:14px;height:14px;position:absolute;top:50%;right:-1px;transform:translate(50%)translateY(-50%)rotate(45deg)}@media(max-width:700px){.meth-step:not(:last-child):after{display:none}}.meth-scroll-hint{text-align:center;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;flex-direction:column;align-items:center;gap:6px;padding:8px 0 16px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.meth-scroll-arrow{border-right:2px solid var(--border);border-bottom:2px solid var(--border);width:14px;height:14px;animation:2s ease-in-out infinite methBob;transform:rotate(45deg)}@keyframes methBob{0%,to{transform:rotate(45deg)translate(0)}50%{transform:rotate(45deg)translate(2px,2px)}}.meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.06),transparent 45%)}.dark .meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.1),transparent 45%)}.meth-s2-inner{flex-direction:column;flex:1;justify-content:center;padding:0 48px;display:flex}@media(max-width:640px){.meth-s2-inner{padding:0 20px}}.meth-s2-header{text-align:center;margin-bottom:36px}.meth-s2-header h2{letter-spacing:-.03em;color:var(--text);font-family:Fraunces,serif;font-size:clamp(28px,4vw,40px);font-weight:800;line-height:1.05}.meth-s2-header p{color:var(--subtext,var(--muted));max-width:48ch;margin-top:10px;margin-left:auto;margin-right:auto;font-size:16px;line-height:1.6}.meth-taste-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media(max-width:800px){.meth-taste-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.meth-taste-grid{grid-template-columns:1fr}}.meth-taste-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:24px 22px;position:relative;overflow:hidden}.meth-taste-card:before{content:"";background:var(--tc,var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.meth-taste-cat{color:var(--text);margin-bottom:16px;font-family:Fraunces,serif;font-size:17px;font-weight:700}.meth-taste-list{flex-direction:column;display:flex}.meth-taste-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:6px;padding:9px 0;font-size:13px;display:flex}.meth-taste-item:last-child{border-bottom:none}.meth-taste-name{color:var(--text);white-space:nowrap;font-weight:600}.meth-taste-note{color:var(--muted);text-align:right;font-size:11px}.meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.06),transparent)}.dark .meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.1),transparent)}.meth-s3-inner{flex-direction:column;flex:1;min-height:0;padding:28px 48px 24px;display:flex}@media(max-width:640px){.meth-s3-inner{padding:24px 20px 20px}}.meth-s3-header{margin-bottom:20px}.meth-s3-header h2{letter-spacing:-.03em;color:var(--text);font-family:Fraunces,serif;font-size:clamp(26px,3.5vw,36px);font-weight:800;line-height:1.05}.meth-s3-header p{color:var(--subtext,var(--muted));margin-top:8px;font-size:15px;line-height:1.55}.meth-persona-layout{flex:1;grid-template-columns:210px 1fr;gap:16px;min-height:0;display:grid}@media(max-width:760px){.meth-persona-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}}.meth-persona-list{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.1) transparent;flex-direction:column;gap:6px;display:flex;overflow-y:auto}@media(max-width:760px){.meth-persona-list{flex-direction:row;gap:8px;padding-bottom:4px;overflow:auto hidden}}.meth-p-thumb{background:var(--surface);cursor:pointer;box-shadow:var(--shadow);border:2px solid #0000;border-radius:13px;flex-shrink:0;align-items:center;gap:12px;padding:11px 14px;transition:all .2s;display:flex}.meth-p-thumb:hover{border-color:var(--border);transform:translateY(-1px)}.meth-p-thumb.active{border-color:var(--pa,var(--accent));background:var(--pa,var(--accent))}@supports (color:color-mix(in lab,red,red)){.meth-p-thumb.active{background:color-mix(in srgb,var(--pa,var(--accent)) 6%,var(--surface))}}.meth-p-thumb.active{box-shadow:0 0 0 3px var(--pa),var(--shadow)}@supports (color:color-mix(in lab,red,red)){.meth-p-thumb.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--pa) 10%,transparent),var(--shadow)}}.meth-p-thumb-img{background:var(--bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.meth-p-thumb-img img{object-fit:contain;filter:drop-shadow(0 2px 4px #0000001a);width:90%;height:90%}.meth-p-thumb-text{min-width:0}.meth-p-thumb-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-family:Fraunces,serif;font-size:14px;font-weight:700;overflow:hidden}.meth-p-thumb-trait{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}@media(max-width:760px){.meth-p-thumb{text-align:center;flex-direction:column;gap:6px;min-width:100px;padding:8px 14px}.meth-p-thumb-trait{display:none}}.meth-pd{background:var(--surface);border:1px solid var(--border);min-height:0;box-shadow:var(--shadow);border-radius:18px;grid-template-columns:240px 1fr;display:grid;overflow:hidden}@media(max-width:900px){.meth-pd{grid-template-columns:200px 1fr}}@media(max-width:760px){.meth-pd{grid-template-rows:180px 1fr;grid-template-columns:1fr}}.meth-pd-art{background:var(--pd-gradient,linear-gradient(160deg,#ede6de,#f5f3f0));border-right:1px solid var(--border);justify-content:center;align-items:center;padding:20px;display:flex;position:relative;overflow:hidden}@media(max-width:760px){.meth-pd-art{border-right:none;border-bottom:1px solid var(--border)}}.meth-pd-art:after{content:"";background:radial-gradient(circle at 50% 80%,#0000 40%,#fff3);position:absolute;inset:0}.dark .meth-pd-art{background:var(--pd-gradient-dark,linear-gradient(160deg,#2e2822,#1c1816))}.dark .meth-pd-art:after{background:radial-gradient(circle at 50% 80%,#0000 40%,#00000026)}.meth-pd-art img{object-fit:contain;z-index:1;filter:drop-shadow(0 10px 20px #00000026);width:auto;max-width:90%;height:82%;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .25s;position:relative}.meth-pd-copy{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.1) transparent;flex-direction:column;padding:24px 28px;display:flex;overflow-y:auto}@media(max-width:640px){.meth-pd-copy{padding:18px 20px}}.meth-pd-badge{text-transform:uppercase;letter-spacing:.1em;color:var(--pa,var(--accent));margin-bottom:5px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.meth-pd-name{letter-spacing:-.04em;color:var(--text);margin-bottom:12px;font-family:Fraunces,serif;font-size:clamp(28px,3.5vw,38px);font-weight:800;line-height:.95}.meth-pd-desc{color:var(--subtext,var(--muted));margin-bottom:18px;font-size:15px;line-height:1.6}.meth-pd-cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}@media(max-width:500px){.meth-pd-cards{grid-template-columns:1fr}}.meth-pd-card{background:var(--accent-soft);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.meth-pd-card-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.meth-pd-card-text{color:var(--text);font-size:13px;line-height:1.55}.meth-pd-axes{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}@media(max-width:600px){.meth-pd-axes{grid-template-columns:1fr}}.meth-ax{flex-direction:column;gap:5px;display:flex}.meth-ax-label{color:var(--text);justify-content:space-between;font-size:11px;font-weight:600;display:flex}.meth-ax-label span:last-child{color:var(--muted);font-family:JetBrains Mono,monospace}.meth-ax-track{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.meth-ax-fill{background:var(--pa,var(--accent));border-radius:3px;height:100%;transition:width .5s cubic-bezier(.16,1,.3,1)}.meth-bottom{border-top:1px solid var(--border);background:var(--bg);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 22px;display:flex}.meth-bottom-note{color:var(--muted);max-width:50ch;font-size:11px;line-height:1.5}.meth-dot-nav{align-items:center;gap:6px;display:flex}.meth-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;transition:all .2s}.meth-dot.active{background:var(--accent);box-shadow:0 0 6px rgba(var(--accent-rgb),.25)}.meth-dot:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.meth-dot:hover{background:color-mix(in srgb,var(--accent) 50%,var(--border))}}@media(prefers-reduced-motion:reduce){.meth-reveal{opacity:1!important;transition:none!important;transform:none!important}.meth-scroll-arrow{animation:none!important}}.card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
@@ -0,0 +1,37 @@
1
+ import{i as Me}from"./theme.CbYAaQI4.js";let b={},O="both",F="both",ae=null,fe={};const q=document.getElementById("sourceBar"),pe="dashboard-source-filter",ie={both:"All",claude_code:"Claude Code",codex:"Codex",copilot_chat:"Copilot Chat",cursor:"Cursor",lmstudio:"LM Studio"},K={claude_code:"#e67e22",codex:"#a855f7",copilot_chat:"#06b6d4",cursor:"#3b82f6",lmstudio:"#22c55e"};function ee(e){return ie[e]||e.replace(/_/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function ne(e){return Math.round(Number(e)||0).toLocaleString()}function J(e){const t=Number(e)||0;if(t<1e6)return Math.round(t).toLocaleString();if(t<1e9){const o=t/1e6;return(o>=100?Math.round(o):o.toFixed(1).replace(/\.0$/,""))+"M"}const n=t/1e9;return(n>=100?Math.round(n):n.toFixed(1).replace(/\.0$/,""))+"B"}function ce(e){const t=Number(e)||0;return`${t%12||12}${t<12?"am":"pm"}`}function Ie(e){if(!e||!e.first||!e.last)return"2025";const t=new Date(e.first),n=new Date(e.last),o={month:"short",day:"2-digit",year:"numeric"};return`${t.toLocaleDateString("en-US",o)} – ${n.toLocaleDateString("en-US",o)}`}const he={"The Architect":"/images/card_architect.png","The Explorer":"/images/card_explorer.png","The Commander":"/images/card_commander.png","The Partner":"/images/card_partner.png"},Te=125.66;function ge(e,t,n){const o=document.getElementById(e),s=document.getElementById(t),a=Math.round(n??0);if(o){const i=Te*(1-Math.min(a,100)/100);o.setAttribute("stroke-dashoffset",String(i))}s&&(s.textContent=a)}function $e(e,t,n,o){const s=document.getElementById("cardTop"),a=e.name||"The Explorer";s&&(s.style.backgroundImage=`url('${he[a]||he["The Explorer"]}')`);const i=document.getElementById("personaName");i&&(i.textContent=a);const h=document.getElementById("personaDescription");h&&(h.textContent=e.description||"Not enough data."),ge("donutDetail","valDetail",e.detail_score),ge("donutStyle","valStyle",e.style_score);const r=t?.vibe_coder_index?.avg_score,u=r!=null?100-r:null,m=t?.politeness?.avg_score,c=d=>document.getElementById(d);c("cardVibe")&&(c("cardVibe").textContent=u!=null?Math.round(u):"--"),c("cardPolite")&&(c("cardPolite").textContent=m!=null?Math.round(m):"--"),c("cardVibeBar")&&(c("cardVibeBar").style.width=`${Math.min(u??0,100)}%`),c("cardPoliteBar")&&(c("cardPoliteBar").style.width=`${Math.min(m,100)}%`);const p=c("cardSerial");if(p){const d=String(Math.abs((e.name||"").split("").reduce((w,x)=>(w<<5)-w+x.charCodeAt(0),0))%1e4).padStart(4,"0");p.textContent=`#${d}`}}function ze(e){const t=Array.isArray(e)?e:[],n=document.getElementById("heatmapGrid");if(!n)return;const o=n.closest(".heatmap-panel");o&&o.style.setProperty("--heatmap-color",re());let s=o?.querySelector(".heatmap-tooltip");!s&&o&&(s=document.createElement("div"),s.className="heatmap-tooltip",o.appendChild(s));const a=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"];n.innerHTML="";const i=document.createElement("div");n.appendChild(i);for(let r=0;r<24;r++){const u=document.createElement("div");u.className="heatmap-hour",u.textContent=r%3===0?String(r):"",n.appendChild(u)}const h=Math.max(1,...t.flat());a.forEach((r,u)=>{const m=document.createElement("div");m.className="heatmap-label",m.textContent=r,n.appendChild(m),(t[u]||[]).forEach((c,p)=>{const d=document.createElement("div");if(d.className="heatmap-cell",c>0){const w=Math.ceil(c/h*5);d.classList.add("l"+Math.min(w,5))}d.setAttribute("aria-label",`${r} ${ce(p)}: ${c} prompt${c!==1?"s":""}`),d.dataset.day=r,d.dataset.hour=p,d.dataset.count=c,n.appendChild(d)})}),s&&(n.onmouseover=r=>{const u=r.target.closest(".heatmap-cell");if(!u){s.style.opacity="0";return}const{day:m,hour:c,count:p}=u.dataset;s.textContent=`${m} ${ce(c)} — ${p} prompt${p!=="1"?"s":""}`;const d=u.getBoundingClientRect(),w=o.getBoundingClientRect();let x=d.left-w.left+d.width/2;x=Math.max(60,Math.min(x,w.width-60)),s.style.left=x+"px",s.style.top=d.top-w.top-30+"px",s.style.opacity="1"},n.onmouseleave=()=>{s.style.opacity="0"})}let $={},z="vibe";const Ae={vibe:{key:"vibe_coder_index",label:"Vibe Coder Index",suffix:"/100",desc:"<strong>Higher</strong> = vibe coder. <strong>Lower</strong> = engineer.",invert:!0},polite:{key:"politeness",label:"Politeness",suffix:"/100",desc:"<strong>Higher</strong> = warmer. <strong>Lower</strong> = sharper.",axisTop:"Warmer",axisBottom:"Sharper"},activity:{key:"_prompts",label:"Activity",suffix:"/wk",desc:"<strong>Higher</strong> = heavier usage. <strong>Lower</strong> = quieter weeks."}};function Ne(e,t){return e.map(n=>t==="_prompts"?n.prompts??null:n.nlp&&n.nlp[t]!=null?Math.round(n.nlp[t]):null)}function re(){const e=K[F];return e||getComputedStyle(document.documentElement).getPropertyValue("--accent").trim()||"#5c3d2e"}function ye(e){return getComputedStyle(document.documentElement).getPropertyValue(e).trim()}let H=null;function we(e){const t=e?.trends||{},n=t?.weekly_rollups||[];if(n.length<2)return;const o=t?.weekly_by_platform||{},s=Object.keys(o).length>0,a=document.getElementById("trendChart"),i=document.getElementById("trendVal"),h=document.getElementById("trendLabel"),r=document.getElementById("trendMetricDef");if(!a)return;const u=n.map((f,l)=>{const C=new Date(f.week_start||f.date),k=C.toLocaleDateString("en-US",{month:"short",day:"numeric"}),L=l>0?new Date(n[l-1].week_start||n[l-1].date):null;return l===0||!L||L.getFullYear()!==C.getFullYear()?`${k} '${String(C.getFullYear()).slice(-2)}`:k}),m=e.nlp||{},c=n.length>0?Math.round(n.reduce((f,l)=>f+l.prompts,0)/n.length):null,p={vibe:m.vibe_coder_index?.avg_score,polite:m.politeness?.avg_score,activity:c};$={};for(const[f,l]of Object.entries(Ae)){const C=Ne(n,l.key),k=l.invert?C.map(v=>v!=null?100-v:null):C;if(k.some(v=>v!=null)){const v=p[f],A={points:k.map(N=>N??0),label:l.label,desc:l.desc,suffix:l.suffix,lifetime:l.invert&&v!=null?100-v:v};if(s){const N=n.map(D=>D.week_start);A.platforms={};for(const[D,P]of Object.entries(o)){const S=new Map(P.map(M=>[M.week_start,M])),V=N.map(M=>{const I=S.get(M);if(!I)return 0;if(l.key==="_prompts")return I.prompts??0;if(I.nlp&&I.nlp[l.key]!=null){const G=Math.round(I.nlp[l.key]);return l.invert?100-G:G}return 0});V.some(M=>M!=null&&M!==0)&&(A.platforms[D]=V)}}$[f]=A}}$[z]||(z=Object.keys($)[0]||"vibe");function d(f){const l=$[f];if(!l)return{series:[],colors:[]};if(l.platforms&&Object.keys(l.platforms).length>1){const k=[],L=[];for(const[v,A]of Object.entries(l.platforms))k.push({name:ie[v]||v,data:A.map(N=>N??0)}),L.push(K[v]||"#666666");return{series:k,colors:L,showLegend:!0}}else return{series:[{name:l.label,data:l.points}],colors:[re()],showLegend:!1}}function w(f,l){if(f==="vibe"||f==="polite")return{min:0,max:100,tickAmount:4};const C=l.flatMap(v=>v.data||[]).filter(v=>Number.isFinite(v)),k=C.length>0?Math.max(...C):0;return{min:0,max:k<=0?10:Math.ceil(k*1.15),tickAmount:4}}function x(){return window.innerWidth<=1100?4:window.innerWidth<=1400?5:7}const j=document.documentElement.classList.contains("dark"),g=ye("--muted")||"#888",y=ye("--border")||"#ddd",E=d(z),B=$[z]?.suffix||"",R=w(z,E.series),Y={chart:{type:"area",height:window.innerWidth<=1100?150:window.innerWidth<=1400?170:190,fontFamily:"'DM Sans', system-ui, sans-serif",toolbar:{show:!1},zoom:{enabled:!1},background:"transparent",animations:{enabled:!1}},stroke:{curve:"smooth",width:2.5},fill:{type:"gradient",gradient:{shadeIntensity:1,opacityFrom:.35,opacityTo:.02,stops:[0,95]}},colors:E.colors,series:E.series,xaxis:{categories:u,labels:{style:{colors:g,fontSize:"11px"},rotate:0,hideOverlappingLabels:!0},tickAmount:x(),axisBorder:{show:!1},axisTicks:{show:!1}},yaxis:{show:!0,min:R.min,max:R.max,tickAmount:R.tickAmount,forceNiceScale:!1,axisBorder:{show:!1},axisTicks:{show:!1},labels:{style:{colors:g,fontSize:"11px"},formatter:f=>z==="activity"?J(Math.round(f)):`${Math.round(f)}`}},grid:{show:!0,borderColor:y,strokeDashArray:3,xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},padding:{left:12,right:12,top:-8,bottom:0}},legend:{show:!1},tooltip:{shared:!0,intersect:!1,theme:j?"dark":"light",y:{formatter:f=>f!=null?Math.round(f)+B:"--"},style:{fontSize:"12px",fontFamily:"'JetBrains Mono', monospace"}},dataLabels:{enabled:!1}};H&&(H.destroy(),H=null),H=new ApexCharts(a,Y),H.render();function _(f){if(!$[f])return;z=f;const l=$[f],C=l.lifetime!=null?Math.round(l.lifetime):l.points[l.points.length-1];i.textContent=(f==="activity"?J(C):C)+l.suffix,h.textContent="",r&&(r.innerHTML=l.desc||"");const k=i.closest(".trend-panel");k&&k.style.setProperty("--trend-color",re()),document.querySelectorAll(".metric-tab").forEach(S=>S.classList.toggle("active",S.dataset.metric===f));const{series:L,colors:v,showLegend:A}=d(f),N=l.suffix||"",D=w(f,L),P=document.getElementById("trendLegend");if(P)if(P.innerHTML="",A){for(const S of L){const V=Object.entries(ie).find(([,G])=>G===S.name)?.[0],M=V?K[V]:"#666",I=document.createElement("span");I.className="trend-legend-pill",I.innerHTML=`<span class="trend-legend-dot" style="background:${M}"></span>${S.name}`,P.appendChild(I)}P.style.display=""}else P.style.display="none";H.updateOptions({series:L,colors:v,chart:{animations:{enabled:!1}},xaxis:{categories:u,tickAmount:x(),labels:{style:{colors:g,fontSize:"11px"},rotate:0,hideOverlappingLabels:!0},axisBorder:{show:!1},axisTicks:{show:!1}},yaxis:{show:!0,min:D.min,max:D.max,tickAmount:D.tickAmount,forceNiceScale:!1,axisBorder:{show:!1},axisTicks:{show:!1},labels:{style:{colors:g,fontSize:"11px"},formatter:S=>f==="activity"?J(Math.round(S)):`${Math.round(S)}`}},tooltip:{y:{formatter:S=>S!=null?Math.round(S)+N:"--"}}},!1,!1,!1)}document.querySelectorAll(".metric-tab").forEach(f=>{f.addEventListener("click",()=>_(f.dataset.metric))}),_(z)}function De(){const e=document.getElementById("playerCard"),t=e?.closest(".card-dock");if(!e||!t)return;const n=12;t.addEventListener("mousemove",o=>{const s=t.getBoundingClientRect(),a=(o.clientX-s.left)/s.width,i=(o.clientY-s.top)/s.height;e.style.transform=`rotateY(${(a-.5)*n}deg) rotateX(${(.5-i)*n}deg)`}),t.addEventListener("mouseleave",()=>{e.style.transform=""})}function ve(e){return b[e]||null}function Pe(){return Object.keys(b).filter(e=>e==="both"||!!ve(e)).sort((e,t)=>e==="both"?1:t==="both"?-1:ee(e).localeCompare(ee(t)))}function Ee(e){const t=ve(e);if(!t)return;F=e,ae=t;const n=t.volume||{},o=t.temporal||{},s=t.conversation_depth||{};t.politeness;const a=t.persona||{},i=g=>document.getElementById(g),h=i("dateRange");h&&(h.textContent=Ie(t.date_range));const r=i("promptsValue");r&&(r.textContent=ne(n.total_human));const u=i("promptsSubtitle");u&&(u.textContent=`${ne(n.avg_words_per_prompt)} words avg`);const m=i("conversationsValue");m&&(m.textContent=ne(n.total_conversations));const c=i("conversationsSubtitle");c&&(c.textContent=`${s.avg_turns??0} turns avg`);const p=i("wordsTypedValue");p&&(p.textContent=J(n.total_words_human));const d=i("wordsTypedSubtitle");d&&(d.textContent=`${n.avg_words_per_prompt??0} words avg`);const w=i("nightOwlValue");w&&(w.textContent=`${o.night_owl_pct??0}%`);const x=i("peakHourValue");x&&(x.textContent=ce(o.peak_hour));const j=i("peakDayValue");j&&(j.textContent=o.peak_day||"N/A"),$e(a,t.nlp||{}),ze(o.heatmap),we(t)}function de(){if(!q)return;const e=Pe();q.innerHTML="";for(const o of e){const s=document.createElement("button");s.className="source-pill",s.dataset.source=o;const a=K[o];if(a){const h=document.createElement("span");h.className="source-pill-dot",h.style.background=a,s.appendChild(h)}const i=document.createTextNode(ee(o));s.appendChild(i),q.appendChild(s)}let t=localStorage.getItem(pe)||O;t==="claude"&&e.includes("claude_code")&&(t="claude_code"),(t==="both"||!e.includes(t))&&(t=e.find(o=>o!=="both")||e[0]||"both");function n(o){q.querySelectorAll(".source-pill").forEach(s=>{s.classList.toggle("active",s.dataset.source===o)}),localStorage.setItem(pe,o),Ee(o)}q.addEventListener("click",o=>{const s=o.target.closest(".source-pill");s&&n(s.dataset.source)}),n(t)}let X=null;function Oe(){const e=document.getElementById("methodologyModal");if(e){X=document.activeElement,e.classList.add("active"),document.body.style.overflow="hidden";const t=e.querySelector(".modal-close");t&&t.focus()}}function ue(){const e=document.getElementById("methodologyModal");e&&(e.classList.remove("active"),document.body.style.overflow="",X&&(X.focus(),X=null))}window.openMethodology=Oe;window.closeMethodology=ue;let Q=null,Z=null,W=null;function le(){return Array.isArray(U)&&U.length>0?U:Array.isArray(Z)&&Z.length>0?Z:[]}function ke(e){const t=Array.isArray(e)?e:[];return Z=t,t.length>0&&(U=t),t}function je(e=[],t=[],n=[]){const o=new Map((e||[]).map(i=>[i.id,i])),s=new Set(n),a={};for(const i of t||[]){const h=o.get(i.id);if(!h){s.has(i.id)||(a[i.id]="New");continue}(h.status!==i.status||h.detected!==i.detected)&&(a[i.id]="Updated")}return a}async function xe(e={}){const{useCache:t=!0,force:n=!1}=e;if(!n){const o=le();if(t&&o.length>0)return o;if(W)return W}return W=fetch("/api/detect").then(o=>o.json()).then(o=>ke(o.backends||[])).catch(()=>le()).finally(()=>{W=null}),W}function be(e={},t=[],n={}){const{isRefreshing:o=!1,badges:s={}}=n,a=document.getElementById("settingsBackends");if(!a)return;const i=new Map((t||[]).map(r=>[r.id,r])),h=Array.from(new Set([...Object.keys(e.backends||{}),...Array.from(i.keys())]));if(h.length===0){a.innerHTML=`<div class="wizard-loading">${o?"Checking installed backends…":"No backend settings yet."}</div>`;return}a.innerHTML=h.map(r=>{const u=e.backends?.[r]||{enabled:!1},m=i.get(r),c=m?m.supported===!1||m.status==="coming_soon"||m.status==="not_found":!1;let p=o?"Checking installation...":"Saved configuration";m?.status==="available"&&(p="Ready to analyze"),m?.status==="coming_soon"&&(p="Detected, but analysis support is not shipped yet"),m?.status==="not_found"&&(p="Not installed");const d=s[r]?`<span class="settings-backend-badge">${s[r]}</span>`:"";return`<div class="settings-backend-row">
2
+ <label class="wizard-toggle ${c?"is-disabled":""}">
3
+ <input type="checkbox" data-backend="${r}" ${u.enabled!==!1?"checked":""} ${c?"disabled":""}>
4
+ <span class="settings-backend-title">${ee(r)}${d}</span>
5
+ </label>
6
+ <div class="settings-backend-detail">${p}</div>
7
+ </div>`}).join("")}async function Re(){const e=document.getElementById("settingsModal");if(!e)return;Q=document.activeElement,e.classList.add("active"),document.body.style.overflow="hidden";const t=await fetch("/api/config").then(s=>s.json()).catch(()=>({})),n=le();be(t,n,{isRefreshing:!0});const o=document.getElementById("settingsExclusionSection");if(o&&t.backends?.claude_code){o.style.display="block";const s=t.backends.claude_code.exclusions??[];_e("settingsExclusionChips",s)}xe({force:!0}).then(s=>{if(!document.getElementById("settingsModal")?.classList.contains("active"))return;const i=[...n.map(r=>r.id),...Object.keys(t.backends||{})],h=je(n,s,i);be(t,s,{isRefreshing:!1,badges:h})}).catch(()=>{})}function te(){const e=document.getElementById("settingsModal");e&&(e.classList.remove("active"),document.body.style.overflow="",Q&&(Q.focus(),Q=null))}async function He(){if(document.querySelectorAll("#settingsBackends input[type=checkbox]:checked").length===0){alert("Please enable at least one backend to analyze.");return}const t={};document.querySelectorAll("#settingsBackends input[type=checkbox]").forEach(n=>{t[n.dataset.backend]={enabled:n.checked,exclusions:[]}}),t.claude_code&&(t.claude_code.exclusions=Le("settingsExclusionChips")),await fetch("/api/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({backends:t})}),te(),qe()}window.openSettings=Re;window.closeSettings=te;document.getElementById("settingsAddExclusion")?.addEventListener("click",()=>Se("settingsExclusionChips"));document.getElementById("settingsSave")?.addEventListener("click",He);document.getElementById("settingsReset")?.addEventListener("click",()=>{document.getElementById("resetConfirmModal")?.classList.add("active")});document.getElementById("resetCancel")?.addEventListener("click",()=>{document.getElementById("resetConfirmModal")?.classList.remove("active")});document.getElementById("resetConfirm")?.addEventListener("click",async()=>{await fetch("/api/reset",{method:"POST"}),window.location.reload()});document.getElementById("settingsModal")?.addEventListener("click",e=>{e.target===e.currentTarget&&te()});document.getElementById("methodologyModal")?.addEventListener("click",e=>{e.target===e.currentTarget&&ue()});document.addEventListener("keydown",e=>{e.key==="Escape"&&(ue(),te());const t=document.getElementById("methodologyModal");if(e.key==="Tab"&&t?.classList.contains("active")){const n=t.querySelectorAll('button, [href], [tabindex]:not([tabindex="-1"])');if(n.length===0)return;const o=n[0],s=n[n.length-1];e.shiftKey&&document.activeElement===o?(e.preventDefault(),s.focus()):!e.shiftKey&&document.activeElement===s&&(e.preventDefault(),o.focus())}});function Ve(){(location.protocol==="file:"||location.hostname==="localhost"||location.hostname==="127.0.0.1")&&document.querySelectorAll('a[href="/wrapped"]').forEach(t=>{const n=location.pathname,o=n.substring(0,n.lastIndexOf("/"));t.href=o+"/wrapped/index.html"})}function Ce(e){fe=e.branding||{};const t=fe.github_repo||"https://github.com/eeshansrivastava89/howiprompt",n=document.getElementById("footerGithubLink");n&&(n.href=t)}let oe=!1;async function qe(){if(oe)return;oe=!0;const e=document.getElementById("refreshModal"),t=document.getElementById("refreshLog"),n=document.getElementById("refreshProgressBar"),o=document.getElementById("refreshModalResult"),s=document.getElementById("refreshModalClose");e&&(t&&(t.innerHTML='<div class="wizard-log-entry">Starting pipeline...</div>'),n&&(n.style.width="0"),o.style.display="none",s.style.display="none",e.classList.add("active"),document.body.style.overflow="hidden");const a=m=>{o&&(o.innerHTML=m,o.style.display="block",s.style.display="inline-block",s.focus()),oe=!1},i=["sync","parse","insert","nlp","embedding","classifiers","metrics"];let h=0,r=!1;const u=new EventSource("/api/pipeline/stream");u.addEventListener("progress",m=>{const c=JSON.parse(m.data);if(t){const d=document.createElement("div");d.className="wizard-log-entry",d.textContent=`${c.stage}: ${c.detail}`,t.appendChild(d),t.scrollTop=t.scrollHeight}const p=i.indexOf(c.stage);p>=0&&p>h&&(h=p),n&&(n.style.width=`${(h+1)/i.length*100}%`)}),u.addEventListener("complete",m=>{r=!0,u.close();const c=JSON.parse(m.data);if(n&&(n.style.width="100%"),t){const w=document.createElement("div");w.className="wizard-log-entry done",w.textContent=`Done! ${c.stats.totalMessages.toLocaleString()} messages analyzed.`,t.appendChild(w),t.scrollTop=t.scrollHeight}c.metrics&&(b=c.metrics.source_views||{both:c.metrics},!b.claude_code&&b.claude&&(b.claude_code=b.claude),b.both=b.both||c.metrics,b[F]||(F="both"),de(),Ee(F));const p=[],d=c.stats;d.newMessages>0?p.push(`<span class="result-num">${d.newMessages}</span> new message${d.newMessages===1?"":"s"} synced`):p.push("Already up to date"),p.push(`<span class="result-num">${J(d.totalMessages)}</span> total messages`),d.embedded>0&&p.push(`<span class="result-num">${d.embedded}</span> embeddings computed`),a(p.join("<br>"))}),u.addEventListener("pipeline_error",m=>{r=!0,u.close();const c=JSON.parse(m.data);a(`Refresh failed: ${c.message}`)}),u.onerror=()=>{r||(u.close(),a("Refresh failed — is the server running?"))}}document.getElementById("refreshModalClose")?.addEventListener("click",()=>{const e=document.getElementById("refreshModal");e&&(e.classList.remove("active"),document.body.style.overflow="")});let U=[];const T=[{key:"boot",label:"Prepare"},{key:"sync",label:"Sync Sources"},{key:"parse",label:"Parse Chats"},{key:"insert",label:"Store Messages"},{key:"nlp",label:"Language Scores"},{key:"embedding",label:"Embeddings"},{key:"classifiers",label:"Behavior Scores"},{key:"metrics",label:"Build Dashboard"}],se=Object.fromEntries(T.map((e,t)=>[e.key,t]));function We(){const e=document.getElementById("wizardLog"),t=document.getElementById("wizardProgressBar"),n=document.getElementById("wizardProgressLabel"),o=document.getElementById("wizardProgressPct"),s=document.getElementById("wizardStageList"),a=Object.fromEntries(T.map(({key:g},y)=>[g,{key:g,label:T[y].label,detail:"Waiting...",progress:0,status:"pending"}]));let i="boot",h=null,r=!1;function u(){const g=T.reduce((y,{key:E})=>y+(a[E].progress||0),0)/T.length;if(t&&(t.style.width=`${Math.round(g)}%`),n){const y=a[i]||a.boot;n.textContent=y?.detail||"Preparing analysis..."}o&&(o.textContent=`${Math.round(g)}%`),s&&(s.innerHTML=T.map(({key:y,label:E})=>{const B=a[y];return`
8
+ <div class="wizard-stage-row">
9
+ <div class="wizard-stage-name">${E}</div>
10
+ <div class="wizard-stage-track is-${B.status}">
11
+ <div class="wizard-stage-fill" style="width:${B.progress}%"></div>
12
+ <span class="wizard-stage-detail">${B.detail}</span>
13
+ </div>
14
+ <div class="wizard-stage-value">${Math.round(B.progress)}%</div>
15
+ </div>
16
+ `}).join(""))}function m(){h&&(clearInterval(h),h=null)}function c(g){m(),h=window.setInterval(()=>{if(r||i!==g)return;const y=a[g],E=g==="embedding"||g==="classifiers"?95:88;y.progress>=E||(y.progress=Math.min(E,y.progress+(y.progress<30?3:1)),u())},450)}function p(g,y="normal"){if(!e)return;const E=document.createElement("div");E.className=`wizard-log-entry${y==="done"?" done":y==="error"?" error":""}`,E.textContent=g,e.appendChild(E),e.scrollTop=e.scrollHeight}function d(){e&&(e.innerHTML="");for(const{key:g}of T)a[g].detail="Waiting...",a[g].progress=0,a[g].status="pending";i="boot",a.boot.detail="Connecting to local pipeline...",a.boot.progress=5,a.boot.status="active",r=!1,p("Starting pipeline..."),c("boot"),u()}function w(g,y,E){const B=se[g]!=null?g:"boot",R=se[B],Y=se[i]??0;if(R>Y)for(let f=Y;f<R;f++){const l=T[f].key;a[l].status="done",a[l].progress=100}i=B;const _=a[B];_.status="active",_.detail=y,typeof E=="number"&&Number.isFinite(E)?_.progress=Math.max(_.progress,Math.min(100,E)):_.progress=Math.max(_.progress,12),p(`${B}: ${y}`),c(B),u()}function x(g){r=!0,m();for(const{key:y}of T)a[y].status="done",a[y].progress=100,a[y].detail==="Waiting..."&&(a[y].detail="Done");i="metrics",a.metrics.detail="Dashboard ready.",p(`Done! ${Number(g||0).toLocaleString()} messages analyzed.`,"done"),u()}function j(g){r=!0,m();const y=a[i]||a.boot;y.status="error",y.detail=g,p(`Error: ${g}`,"error"),u()}return{begin:d,advance:w,finish:x,fail:j}}async function Fe(){const e=document.getElementById("setupWizard");if(!e)return!1;let t=!1;try{t=(await fetch("./metrics.json")).ok}catch{}if(t)return fetch("/api/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({hasCompletedSetup:!0})}).catch(()=>{}),!1;let n;try{const o=await fetch("/api/config");o.ok&&(n=await o.json())}catch{}return n?.hasCompletedSetup&&t?!1:(e.classList.add("active"),document.body.style.overflow="hidden",await Je(),!0)}async function Je(){const e=document.getElementById("wizardBackends");if(e)try{const t=await fetch("/api/detect"),{backends:n}=await t.json();ke(n),e.innerHTML=n.map(o=>{let s="";return o.status==="available"?s="Detected locally":o.status==="coming_soon"?s="Detected (coming soon)":s="Not installed",`
17
+ <div class="wizard-backend ${o.detected?"detected":""}" data-id="${o.id}">
18
+ <div class="wizard-backend-icon ${o.status}"></div>
19
+ <div class="wizard-backend-info">
20
+ <div class="wizard-backend-name">${o.name}</div>
21
+ <div class="wizard-backend-detail">${s}</div>
22
+ </div>
23
+ </div>`}).join("")}catch{e.innerHTML='<div class="wizard-loading">Could not detect backends.</div>'}}async function Se(e){const t=document.getElementById(e);if(!t)return;let n;try{n=(await(await fetch("/api/pick-directory")).json()).path}catch{return}if(!n||t.querySelector(`[data-path="${CSS.escape(n)}"]`))return;let o=0;try{o=(await(await fetch("/api/exclusion-count",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:n})})).json()).messageCount||0}catch{}Be(t,n,o)}function Be(e,t,n){const o=document.createElement("div");o.className="exclusion-chip",o.dataset.path=t;const s=t.split("/").pop()||t,a=n>0?`${n.toLocaleString()} messages`:"no data found";o.innerHTML=`
24
+ <span class="exclusion-chip-path" title="${t}">${s}</span>
25
+ <span class="exclusion-chip-count">${a}</span>
26
+ <button class="exclusion-chip-remove" type="button" aria-label="Remove">&times;</button>
27
+ `,o.querySelector(".exclusion-chip-remove").addEventListener("click",()=>o.remove()),e.appendChild(o)}function Le(e){const t=document.getElementById(e);return t?[...t.querySelectorAll(".exclusion-chip")].map(n=>n.dataset.path):[]}async function _e(e,t){const n=document.getElementById(e);if(n){n.innerHTML="";for(const o of t){let s=0;try{s=(await(await fetch("/api/exclusion-count",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:o})})).json()).messageCount||0}catch{}Be(n,o,s)}}}function Ue(){const e=document.getElementById("wizardConfig"),t=document.getElementById("wizardExclusions");if(!e)return;const n=U.filter(o=>o.status==="available"&&o.supported!==!1);fetch("/api/config").then(o=>o.json()).then(o=>{e.innerHTML=n.map(s=>{const a=o.backends?.[s.id],i=a?a.enabled!==!1:!0;return`
28
+ <label class="wizard-toggle">
29
+ <input type="checkbox" data-backend="${s.id}" ${i?"checked":""}>
30
+ ${s.name}
31
+ </label>
32
+ `}).join(""),n.some(s=>s.id==="claude_code")&&t?(t.style.display="block",_e("wizardExclusionChips",o.backends?.claude_code?.exclusions??[])):t&&(t.style.display="none")}).catch(()=>{e.innerHTML=n.map(o=>`
33
+ <label class="wizard-toggle">
34
+ <input type="checkbox" data-backend="${o.id}" checked>
35
+ ${o.name}
36
+ </label>
37
+ `).join("")})}async function Ye(){const e={};document.querySelectorAll("#wizardConfig input[type=checkbox]").forEach(t=>{e[t.dataset.backend]={enabled:t.checked,exclusions:[]}}),e.claude_code&&(e.claude_code.exclusions=Le("wizardExclusionChips"));try{await fetch("/api/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({backends:e})})}catch{}}function Ge(){const e=document.getElementById("wizardDone"),t=We();let n=!1;t.begin();const o=new EventSource("/api/pipeline/stream");o.addEventListener("progress",s=>{const a=JSON.parse(s.data);t.advance(a.stage,a.detail,a.progress)}),o.addEventListener("complete",s=>{n=!0,o.close();const a=JSON.parse(s.data);t.finish(a.stats.totalMessages),e&&(e.style.display="inline-block"),a.metrics&&(b=a.metrics.source_views||{both:a.metrics},!b.claude_code&&b.claude&&(b.claude_code=b.claude),b.both=b.both||a.metrics,O=a.metrics.default_view||"both",O==="claude"&&b.claude_code&&(O="claude_code"))}),o.addEventListener("pipeline_error",s=>{n=!0,o.close();const a=JSON.parse(s.data);t.fail(a.message),e&&(e.textContent="Continue Anyway",e.style.display="inline-block")}),o.onerror=()=>{n||(o.close(),t.fail("Connection lost — check terminal for details."),e&&(e.textContent="Continue Anyway",e.style.display="inline-block"))}}function me(e){document.querySelectorAll(".wizard-step").forEach(t=>{const n=Number(t.dataset.step);t.classList.toggle("active",n===e),t.classList.toggle("done",n<e)}),document.querySelectorAll(".wizard-page").forEach(t=>t.classList.remove("active")),document.getElementById(`wizardStep${e}`)?.classList.add("active")}document.getElementById("wizardAddExclusion")?.addEventListener("click",()=>Se("wizardExclusionChips"));document.getElementById("wizardNext1")?.addEventListener("click",()=>{Ue(),me(2)});document.getElementById("wizardBack2")?.addEventListener("click",()=>me(1));document.getElementById("wizardNext2")?.addEventListener("click",async()=>{if(document.querySelectorAll("#wizardConfig input[type=checkbox]:checked").length===0){alert("Please enable at least one backend to analyze.");return}await Ye(),me(3),Ge()});document.getElementById("wizardDone")?.addEventListener("click",async()=>{try{await fetch("/api/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({hasCompletedSetup:!0})})}catch{}const e=document.getElementById("setupWizard");e&&(e.classList.remove("active"),document.body.style.overflow=""),Ce({}),de()});async function Xe(){if(Me(),Ve(),De(),document.getElementById("themeToggle")?.addEventListener("click",()=>{requestAnimationFrame(()=>{ae&&we(ae)})}),!await Fe()){xe({useCache:!0}).catch(()=>{});try{const t=await fetch("./metrics.json");if(!t.ok)throw new Error(`HTTP ${t.status}`);const n=await t.json();b=n.source_views||{both:n},!b.claude_code&&b.claude&&(b.claude_code=b.claude),b.both=b.both||n,O=n.default_view||"both",O==="claude"&&b.claude_code&&(O="claude_code"),Ce(n),de()}catch(t){console.warn("Could not load metrics.json:",t.message)}}}Xe();
@@ -0,0 +1 @@
1
+ import"./wrapped.astro_astro_type_script_index_1_lang.DKLs-Mo8.js";
@@ -0,0 +1 @@
1
+ /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial}}}@layer theme{:root,:host{--font-sans:"DM Sans", system-ui, -apple-system, sans-serif;--font-serif:"Fraunces", Georgia, serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, monospace;--spacing:.25rem;--container-md:28rem;--container-lg:32rem;--container-3xl:48rem;--container-4xl:56rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height: 1.5 ;--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wider:.05em;--tracking-widest:.1em;--radius-sm:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-text:var(--text);--color-muted:var(--muted);--color-border:var(--border);--grid-template-columns-24:repeat(24, minmax(0, 1fr))}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;touch-action:manipulation}}@layer components{@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes methBob{0%,to{transform:rotate(45deg)translate(0)}50%{transform:rotate(45deg)translate(2px,2px)}}.animate{animation:.4s forwards fadeIn}.delay-1{opacity:0;animation-delay:50ms}.delay-2{opacity:0;animation-delay:.1s}.delay-3{opacity:0;animation-delay:.15s}.delay-4{opacity:0;animation-delay:.2s}.delay-5{opacity:0;animation-delay:.25s}.refreshing .refresh-icon{animation:.8s linear infinite spin}.top-nav{z-index:50;background:var(--bg);position:sticky;top:0}.source-bar{border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;align-items:center;gap:6px;padding:8px 24px;display:flex}.source-pill{color:var(--muted);border:1px solid var(--border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.source-pill:hover{border-color:var(--text);color:var(--text)}.source-pill.active{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:600}.source-pill-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}@media(max-width:640px){.source-bar{gap:4px;padding:6px 12px}.source-pill{padding:5px 10px;font-size:12px}}.card-dock{perspective:1200px}.player-card{transform-style:preserve-3d;will-change:transform;border:1px solid #0000000f;transition:transform .15s ease-out,box-shadow .2s ease-out;box-shadow:0 1px 2px #0000000a,0 4px 12px #0000000f,0 12px 32px #00000014,0 24px 60px #0000000f;container-type:inline-size}.dark .player-card{border-color:#ffffff0f;box-shadow:0 1px 2px #0003,0 4px 12px #0003,0 12px 32px #00000040,0 24px 60px #0003}.persona-name{text-shadow:0 2px 8px #0000004d;font-size:clamp(26px,6cqw,36px)}.donut-ring svg{transform:rotate(-90deg)}.donut-fill{transition:stroke-dashoffset .6s}.stat-block:not(:last-child):after{content:"";background:var(--border);width:1px;height:60%;position:absolute;top:20%;right:0}.trend-dot{transition:r .1s}.trend-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.heatmap-cell.l1{background:var(--heatmap-color,var(--accent));opacity:.2}.heatmap-cell.l2{background:var(--heatmap-color,var(--accent));opacity:.35}.heatmap-cell.l3{background:var(--heatmap-color,var(--accent));opacity:.55}.heatmap-cell.l4{background:var(--heatmap-color,var(--accent));opacity:.75}.heatmap-cell.l5{background:var(--heatmap-color,var(--accent));opacity:1}.heatmap-tooltip:after{content:"";border:4px solid #0000;border-top-color:var(--text);position:absolute;top:100%;left:50%;transform:translate(-50%)}.meth-modal{box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 32px 64px #00000014}.dark .meth-modal{box-shadow:0 1px 2px #0003,0 8px 24px #0003,0 32px 64px #00000040}.meth-progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent))}@supports (color:color-mix(in lab,red,red)){.meth-progress-fill{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 50%,transparent))}}.meth-step-icon{background:linear-gradient(135deg,var(--accent),var(--accent))}@supports (color:color-mix(in lab,red,red)){.meth-step-icon{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#a08060))}}.meth-step-icon{box-shadow:0 4px 10px rgba(var(--accent-rgb),.2)}.meth-step:not(:last-child):after{content:"";z-index:2;background:var(--bg);border:1px solid var(--border);border-bottom:none;border-left:none;width:14px;height:14px;position:absolute;top:50%;right:-1px;transform:translate(50%)translateY(-50%)rotate(45deg)}@media(max-width:700px){.meth-step:not(:last-child):after{display:none}}.meth-scroll-arrow{animation:2s ease-in-out infinite methBob}.meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.06),transparent)}.meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.06),transparent 45%)}.meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.06),transparent)}.dark .meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.1),transparent)}.dark .meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.1),transparent 45%)}.dark .meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.1),transparent)}.meth-taste-card:before{content:"";background:var(--tc,var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.meth-pd-art:after{content:"";background:radial-gradient(circle at 50% 80%,#0000 40%,#fff3);position:absolute;inset:0}.dark .meth-pd-art:after{background:radial-gradient(circle at 50% 80%,#0000 40%,#00000026)}.meth-p-thumb.active{box-shadow:0 0 0 3px var(--pa),var(--shadow)}@supports (color:color-mix(in lab,red,red)){.meth-p-thumb.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--pa) 10%,transparent),var(--shadow)}}.meth-reveal{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.meth-reveal.vis{opacity:1;transform:translateY(0)}.meth-reveal.d1{transition-delay:80ms}.meth-reveal.d2{transition-delay:.16s}.meth-reveal.d3{transition-delay:.24s}.meth-reveal.d4{transition-delay:.32s}.wizard-stage-fill{background:var(--accent);transition:width .35s}@supports (color:color-mix(in lab,red,red)){.wizard-stage-fill{background:color-mix(in srgb,var(--accent) 18%,transparent)}}.wizard-stage-track.is-active .wizard-stage-fill{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-active .wizard-stage-fill{background:color-mix(in srgb,var(--accent) 28%,transparent)}}.wizard-stage-track.is-done .wizard-stage-fill{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-done .wizard-stage-fill{background:color-mix(in srgb,var(--accent) 40%,transparent)}}.wizard-stage-track.is-error .wizard-stage-fill{background:var(--stat-r)}@supports (color:color-mix(in lab,red,red)){.wizard-stage-track.is-error .wizard-stage-fill{background:color-mix(in srgb,var(--stat-r) 32%,transparent)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--ui-radius-sm)}@media(prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.player-card{transform:none!important}.meth-reveal{opacity:1!important;transform:none!important}}}@layer utilities{.absolute{position:absolute}.relative{position:relative}.static{position:static}.top-1\/2{top:50%}.bottom-12{bottom:calc(var(--spacing) * 12)}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mx-2{margin-inline:calc(var(--spacing) * 2)}.mx-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-16{margin-top:calc(var(--spacing) * 16)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.ml-12{margin-left:calc(var(--spacing) * 12)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.aspect-square{aspect-ratio:1}.h-2{height:calc(var(--spacing) * 2)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.min-h-screen{min-height:100vh}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-8{width:calc(var(--spacing) * 8)}.w-12{width:calc(var(--spacing) * 12)}.w-full{width:100%}.max-w-3xl{max-width:var(--container-3xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-24{grid-template-columns:var(--grid-template-columns-24)}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-\[1px\]{gap:1px}.gap-\[2px\]{gap:2px}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-\[2px\]>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(2px * var(--tw-space-y-reverse));margin-block-end:calc(2px * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-full{border-radius:3.40282e38px}.rounded-sm{border-radius:var(--radius-sm)}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--color-border)}.bg-bg{background-color:var(--color-bg)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-14{padding-top:calc(var(--spacing) * 14)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.text-center{text-align:center}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-muted,.text-muted\/40{color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted\/40{color:color-mix(in oklab,var(--color-muted) 40%,transparent)}}.text-muted\/60{color:var(--color-muted)}@supports (color:color-mix(in lab,red,red)){.text-muted\/60{color:color-mix(in oklab,var(--color-muted) 60%,transparent)}}.text-text,.text-text\/80{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.text-text\/80{color:color-mix(in oklab,var(--color-text) 80%,transparent)}}.text-text\/90{color:var(--color-text)}@supports (color:color-mix(in lab,red,red)){.text-text\/90{color:color-mix(in oklab,var(--color-text) 90%,transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.invert{--tw-invert:invert(100%);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.delay-1{transition-delay:1ms}.delay-2{transition-delay:2ms}.delay-3{transition-delay:3ms}.duration-300{--tw-duration:.3s;transition-duration:.3s}@media(hover:hover){.hover\:text-text:hover{color:var(--color-text)}}@media(min-width:40rem){.sm\:mb-8{margin-bottom:calc(var(--spacing) * 8)}.sm\:flex{display:flex}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:gap-6{gap:calc(var(--spacing) * 6)}.sm\:gap-\[2px\]{gap:2px}.sm\:p-4{padding:calc(var(--spacing) * 4)}.sm\:p-6{padding:calc(var(--spacing) * 6)}.sm\:px-6{padding-inline:calc(var(--spacing) * 6)}.sm\:py-20{padding-block:calc(var(--spacing) * 20)}.sm\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.sm\:text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.sm\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.sm\:text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.sm\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.sm\:text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.md\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}}:root{--bg:#f5f3f0;--surface:#fff;--surface-raised:#faf8f5;--text:#3c3226;--subtext:#6b5e50;--muted:#8a7d6f;--border:#d9d2c9;--border-light:#ebe5dc;--accent:#5c3d2e;--accent-soft:#ede6de;--accent-rgb:92,61,46;--ui-radius:14px;--ui-radius-sm:8px;--shadow:0 1px 3px #3c32260f, 0 4px 12px #3c32260a;--shadow-hover:0 4px 12px #3c32261a, 0 8px 24px #3c32260f;--stat-b:#1a5bdb;--stat-r:#d20f39}.dark{--bg:#1c1816;--surface:#2a2420;--surface-raised:#332c26;--text:#e0d6cc;--subtext:#b0a596;--muted:#8a7d6f;--border:#3d342c;--border-light:#4a3f35;--accent:#c9a882;--accent-soft:#2e261f;--accent-rgb:201,168,130;--shadow:0 1px 3px #0000004d, 0 4px 12px #0003;--shadow-hover:0 4px 12px #0006, 0 8px 24px #0000004d;--stat-b:#89b4fa;--stat-r:#f38ba8}.header{background:var(--bg);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 24px;display:flex}.header-left{flex-wrap:wrap;align-items:baseline;gap:12px;display:flex}.header h1{letter-spacing:-.02em;font-size:24px;font-weight:700}.header h1 span{color:var(--accent)}.header-subtitle{color:var(--muted);font-size:20px;font-weight:500}.date-range{color:var(--muted);font-size:14px;font-weight:500}.header-right{align-items:center;gap:12px;display:flex}.nav-link,.accent-link{color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:20px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.nav-link:hover,.accent-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.nav-link:hover,.accent-link:hover{background:color-mix(in srgb,var(--accent) 10%,var(--surface))}}.create-btn{color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);align-items:center;gap:7px;padding:8px 14px;font-size:13px;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.create-btn{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border))}}.create-btn{cursor:pointer;white-space:nowrap;border-radius:20px;font-family:inherit;transition:all .15s}.create-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.create-btn:hover{background:color-mix(in srgb,var(--accent) 18%,var(--surface))}}.create-modal{background:var(--surface);width:min(92vw,860px);max-width:860px;box-shadow:var(--shadow-hover);border:1px solid var(--border);border-radius:28px;flex-direction:column;max-height:min(88vh,860px);display:flex;overflow:hidden}.create-header{border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;display:flex}.create-header-left{align-items:center;gap:14px;display:flex}.create-logo{border:1px solid var(--accent);border-radius:14px;width:40px;height:40px}@supports (color:color-mix(in lab,red,red)){.create-logo{border:1px solid color-mix(in srgb,var(--accent) 28%,var(--border))}}.create-logo{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.create-logo{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.create-logo{color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:700;display:flex}.create-header-title{letter-spacing:-.02em;color:var(--text);font-family:Fraunces,serif;font-size:18px;font-weight:700}.create-header-sub{color:var(--muted);margin-top:2px;font-size:12px}.create-body{flex-direction:column;gap:18px;padding:22px 24px;display:flex;overflow:auto}.create-card{border:1px solid var(--border);padding:18px 18px 16px}@supports (color:color-mix(in lab,red,red)){.create-card{border:1px solid color-mix(in srgb,var(--border) 92%,transparent)}}.create-card{background:linear-gradient(180deg,var(--surface),var(--bg));border-radius:22px}@supports (color:color-mix(in lab,red,red)){.create-card{background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 82%,var(--bg) 18%),color-mix(in srgb,var(--bg) 34%,transparent))}}.create-card-muted{background:linear-gradient(180deg,var(--bg),var(--surface))}@supports (color:color-mix(in lab,red,red)){.create-card-muted{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 28%,transparent),color-mix(in srgb,var(--surface) 94%,transparent))}}.create-section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;display:flex}.create-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin:0;font-size:11px;font-weight:700}.create-rule{letter-spacing:-.02em;color:var(--text);margin:0;font-size:19px;font-weight:700}.create-card-copy{color:var(--muted);max-width:62ch;margin:0 0 14px;font-size:14px;line-height:1.55}.create-kicker{letter-spacing:.02em;text-transform:uppercase;color:var(--text);margin:0 0 4px;font-size:12px;font-weight:700}.create-subcopy{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.command-strip{background:linear-gradient(180deg,var(--bg),var(--bg));justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}@supports (color:color-mix(in lab,red,red)){.command-strip{background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 82%,transparent),color-mix(in srgb,var(--bg) 96%,transparent))}}.command-strip{border:1px solid var(--border)}@supports (color:color-mix(in lab,red,red)){.command-strip{border:1px solid color-mix(in srgb,var(--border) 70%,transparent)}}.command-strip{border-radius:16px;box-shadow:inset 0 1px #ffffff08}.command-line-wrap{flex:1;min-width:0}.command-line{color:var(--text);white-space:nowrap;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:15px;display:flex;overflow:auto}.command-prompt{color:var(--accent);font-weight:700}.command-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.create-copy-btn,.create-source-link{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 10px;font-family:inherit;font-size:12px;font-weight:600;text-decoration:none;transition:all .15s;display:inline-flex}.create-copy-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0}.create-copy-btn:hover,.create-source-link:hover{border-color:var(--accent);color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.create-copy-btn:hover,.create-source-link:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}}.create-copy-btn.is-copied{color:#2f8f5b;background:#2f8f5b1a;border-color:#2f8f5b}.create-source-link{border:1px solid var(--border);color:var(--muted);background:0 0}.create-steps{border-top:1px solid var(--border);flex-direction:column;gap:0;display:flex}@supports (color:color-mix(in lab,red,red)){.create-steps{border-top:1px solid color-mix(in srgb,var(--border) 82%,transparent)}}.create-steps{margin-top:4px}.create-step{border-bottom:1px solid var(--border);padding:12px 0}@supports (color:color-mix(in lab,red,red)){.create-step{border-bottom:1px solid color-mix(in srgb,var(--border) 82%,transparent)}}.create-step-head{align-items:center;gap:10px;margin-bottom:8px;display:flex}.create-step-num{background:var(--accent);border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.create-step-num{background:color-mix(in srgb,var(--accent) 16%,transparent)}}.create-step-num{color:var(--accent);flex-shrink:0;font-size:12px;font-weight:700}.create-step-title{color:var(--text);font-size:15px;font-weight:700}.create-step-command{justify-content:space-between;align-items:center;gap:12px;padding-left:34px;display:flex}.create-step-command code{color:var(--text);white-space:nowrap;flex:1;font-family:JetBrains Mono,monospace;font-size:12px;overflow:auto}.create-copy-btn-sm{flex-shrink:0;padding:6px 9px;font-size:11px}.create-hosted-note{color:var(--muted);margin:12px 0 0;font-size:12px;line-height:1.55}.create-hosted-note a{color:var(--accent);text-decoration:none}.create-hosted-note a:hover{text-decoration:underline}.create-bottom{border-top:1px solid var(--border);background:var(--bg);padding:14px 24px}.create-bottom-note{color:var(--muted);font-size:11px;line-height:1.5}.theme-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:36px;height:36px;color:var(--muted);border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex}.theme-btn:hover{border-color:var(--accent);color:var(--accent)}.wizard-config{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.wizard-toggle{border:1px solid var(--border);border-radius:var(--ui-radius-sm);cursor:pointer;align-items:center;gap:12px;padding:10px 16px;font-size:14px;font-weight:500;transition:border-color .15s;display:flex}.wizard-toggle:has(input:checked){border-color:var(--accent)}.wizard-toggle input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.wizard-toggle.is-disabled{cursor:not-allowed;opacity:.65}.wizard-label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.wizard-hint{color:var(--muted);margin-top:8px;font-size:11px}.wizard-loading{color:var(--muted);text-align:center;padding:24px 0;font-size:13px}.exclusion-chips{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.exclusion-chip{background:var(--bg);border:1px solid var(--border);border-radius:var(--ui-radius-sm);align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex}.exclusion-chip-path{text-overflow:ellipsis;white-space:nowrap;color:var(--text);flex:1;font-family:JetBrains Mono,monospace;overflow:hidden}.exclusion-chip-count{color:var(--muted);white-space:nowrap;font-size:11px}.exclusion-chip-remove{cursor:pointer;color:var(--muted);background:0 0;border:none;padding:2px;font-size:16px;line-height:1;transition:color .15s}.exclusion-chip-remove:hover{color:var(--stat-r)}.exclusion-add-btn{align-items:center;gap:6px;padding:8px 16px;font-size:12px;display:inline-flex}.wizard-btn{cursor:pointer;border:none;border-radius:20px;padding:10px 24px;font-family:inherit;font-size:13px;font-weight:600;transition:transform .1s}.wizard-btn:hover{transform:scale(1.03)}.wizard-btn-primary{background:var(--accent);color:#fff}.wizard-btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--border)}.wizard-btn-danger{color:var(--stat-r);border:1px solid var(--stat-r);background:0 0;padding:8px 16px;font-size:12px}.wizard-btn-danger:hover{background:var(--stat-r);color:#fff}.wizard-progress{background:var(--border);border-radius:2px;height:4px;margin-bottom:12px;overflow:hidden}.wizard-progress-bar{background:var(--accent);width:0;height:100%;transition:width .4s}.wizard-log{background:var(--bg);border:1px solid var(--border);border-radius:var(--ui-radius-sm);height:180px;margin-bottom:16px;padding:12px;font-family:JetBrains Mono,monospace;font-size:12px;overflow-y:auto}.wizard-log-entry{color:var(--subtext);padding:2px 0}.wizard-log-entry.done{color:var(--accent);font-weight:600}.wizard-log-entry.error{color:var(--stat-r)}.settings-modal{background:var(--surface);border-radius:var(--ui-radius);width:90%;max-width:460px;box-shadow:var(--shadow-hover)}.settings-header{justify-content:space-between;align-items:center;padding:20px 24px 0;display:flex}.settings-header h3{font-size:16px;font-weight:700}.settings-body{padding:16px 24px}.settings-section{margin-bottom:16px}.settings-backend-row{flex-direction:column;gap:4px;display:flex}.settings-backend-title{align-items:center;gap:8px;display:inline-flex}.settings-backend-badge{letter-spacing:.02em;text-transform:uppercase;background:var(--accent);border-radius:999px;justify-content:center;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.settings-backend-badge{background:color-mix(in srgb,var(--accent) 16%,transparent)}}.settings-backend-badge{color:var(--accent)}.settings-backend-detail{color:var(--muted);padding:0 4px 2px 16px;font-size:12px}.settings-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;padding:16px 24px 20px;display:flex}.settings-footer-right{gap:8px;display:flex}.refresh-modal{background:var(--surface);border-radius:var(--ui-radius);width:90%;max-width:480px;box-shadow:var(--shadow-hover);text-align:center;padding:28px 32px}.refresh-modal h3{margin-bottom:16px;font-size:16px;font-weight:700}.refresh-modal .wizard-log{text-align:left;height:180px;margin-bottom:12px}.refresh-modal .wizard-progress{margin-bottom:12px}.refresh-modal-result{color:var(--text);font-size:14px;line-height:1.8}.refresh-modal-result .result-num{color:var(--accent);font-family:JetBrains Mono,monospace;font-weight:700}.refresh-modal-close{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:20px;margin-top:16px;padding:8px 24px;font-family:inherit;font-size:13px;font-weight:600;transition:transform .1s}.refresh-modal-close:hover{transform:scale(1.03)}@media(max-width:640px){.header{gap:8px;padding:10px 16px}.header-right{gap:8px}.header-right .nav-link{display:none}.create-modal{border-radius:22px;width:min(94vw,860px)}.create-header{align-items:flex-start;padding:16px 18px}.create-body{padding:18px}.create-bottom{padding:12px 18px}.command-strip{flex-direction:column;align-items:stretch}.command-actions{flex-wrap:wrap;justify-content:flex-start}.create-step-command{flex-direction:column;align-items:stretch;padding-left:0}.create-step-command code{white-space:normal;word-break:break-word}}@media(max-width:480px){.settings-footer{flex-direction:column-reverse;align-items:stretch}.settings-footer-right{justify-content:stretch}.settings-footer-right .wizard-btn{text-align:center;flex:1}.settings-footer .wizard-btn-danger{text-align:center}}html{scroll-snap-type:y mandatory;scroll-behavior:smooth}section{scroll-snap-align:start;scroll-snap-stop:always}.top-nav{z-index:60;background:var(--bg);position:fixed;top:0;left:0;right:0}@keyframes fadeInWrapped{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:1s ease-out forwards fadeInWrapped}.animate-fade-in-up{animation:.8s ease-out forwards fadeInUp}.delay-1{opacity:0;animation-delay:.3s}.delay-2{opacity:0;animation-delay:.6s}.stat-accent{color:var(--accent)}.gradient-text{background:linear-gradient(135deg,var(--accent),rgba(var(--accent-rgb),.6));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.heatmap-cell{transition:all .3s}.heatmap-cell:hover{z-index:10;transform:scale(1.2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px}.scroll-hint{animation:2s infinite bounce}@keyframes bounce{0%,to{animation-timing-function:cubic-bezier(.8,0,1,1);transform:translateY(-25%)}50%{animation-timing-function:cubic-bezier(0,0,.2,1);transform:none}}.tabular-nums{font-variant-numeric:tabular-nums}.refresh-btn{cursor:pointer;border:1px solid var(--border);color:var(--text);background:0 0;border-radius:999px;align-items:center;gap:5px;padding:4px 12px;font-family:inherit;font-size:13px;transition:border-color .2s;display:inline-flex}.refresh-btn:hover{border-color:var(--accent)}.icon-sm{width:16px;height:16px}.arc-gauge{width:140px;height:140px;margin:0 auto;position:relative}.arc-gauge svg{width:100%;height:100%}.arc-gauge .arc-track{fill:none;stroke:var(--border);stroke-width:8px;opacity:.3}.arc-gauge .arc-fill{fill:none;stroke:var(--accent);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s}.arc-gauge-inner{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.donut-ring{flex-shrink:0;width:56px;height:56px;position:relative}.donut-ring svg{width:100%;height:100%;transform:rotate(-90deg)}.donut-ring .donut-track{fill:none;stroke:var(--border);stroke-width:5px}.donut-ring .donut-fill{fill:none;stroke:var(--accent);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .8s}.donut-val{color:var(--text);justify-content:center;align-items:center;font-family:JetBrains Mono,monospace;font-size:15px;font-weight:800;display:flex;position:absolute;inset:0}.wrapped-card-top{object-fit:contain;width:100%;max-height:320px;margin:0 auto;display:block}.wrapped-persona-section{padding-top:8rem;padding-bottom:4.5rem}.wrapped-receipt-section{padding-top:7rem;padding-bottom:4.5rem}.wrapped-persona-body{padding:1.25rem 1.5rem 1.5rem}.receipt-card{padding:1.25rem 1.5rem;font-size:13px;line-height:1.45}.receipt-card>.border-b{margin-bottom:.875rem;padding-bottom:.875rem}.receipt-card>.space-y-1{gap:.125rem}@media(min-width:640px){.wrapped-persona-section{padding-top:9rem}.wrapped-receipt-section{padding-top:7.5rem}.wrapped-persona-body{padding:1.5rem 1.75rem 1.75rem}.receipt-card{padding:1.5rem 1.75rem}}@media(prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#3c322659;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.dark .modal-overlay{background:#0000008c}.modal-overlay.active{display:flex}.meth-modal{background:var(--bg);border:1px solid var(--border);border-radius:20px;flex-direction:column;width:min(1000px,100%);height:min(720px,100vh - 32px);display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000000a,0 8px 24px #0000000f,0 32px 64px #00000014}.dark .meth-modal{box-shadow:0 1px 2px #0003,0 8px 24px #0003,0 32px 64px #00000040}.meth-progress{background:var(--border);z-index:20;opacity:.5;height:2px;position:absolute;top:0;left:0;right:0}.meth-progress-fill{background:linear-gradient(90deg,var(--accent),var(--accent));border-radius:0 1px 1px 0;width:0%;height:100%;transition:width .25s}@supports (color:color-mix(in lab,red,red)){.meth-progress-fill{background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 50%,transparent))}}.meth-header{border-bottom:1px solid var(--border);background:var(--bg);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 22px;display:flex}.meth-header-left{align-items:center;gap:12px;display:flex}.meth-logo{background:var(--accent);width:32px;height:32px;box-shadow:0 2px 6px rgba(var(--accent-rgb),.2);border-radius:8px;justify-content:center;align-items:center;font-size:15px;display:flex}.meth-header-title{letter-spacing:-.02em;color:var(--text);font-family:Fraunces,serif;font-size:16px;font-weight:700}.meth-header-sub{color:var(--muted);margin-top:1px;font-size:11px}.modal-close{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .15s;display:flex}.modal-close:hover{border-color:var(--accent);color:var(--accent)}.modal-close svg{color:currentColor;width:16px;height:16px}.meth-scroll{scroll-snap-type:y mandatory;scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.12) transparent;flex:1;height:0;min-height:0;overflow:hidden auto}.meth-scroll::-webkit-scrollbar{width:5px}.meth-scroll::-webkit-scrollbar-track{background:0 0}.meth-scroll::-webkit-scrollbar-thumb{background:rgba(var(--accent-rgb),.12);border-radius:3px}.meth-snap{scroll-snap-align:start;scroll-snap-stop:always;flex-direction:column;flex-shrink:0;height:100%;min-height:100%;display:flex;overflow:hidden}.meth-reveal{opacity:0;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);transform:translateY(20px)}.meth-reveal.vis{opacity:1;transform:translateY(0)}.meth-reveal.d1{transition-delay:80ms}.meth-reveal.d2{transition-delay:.16s}.meth-reveal.d3{transition-delay:.24s}.meth-reveal.d4{transition-delay:.32s}.meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.06),transparent)}.dark .meth-s1{background:radial-gradient(ellipse 55% 50% at 50% 85%,rgba(var(--accent-rgb),.1),transparent)}.meth-s1-inner{flex-direction:column;flex:1;justify-content:center;padding:0 48px;display:flex}@media(max-width:640px){.meth-s1-inner{padding:0 20px}}.meth-hero{text-align:center;padding:40px 0 32px}.meth-hero-kicker{background:var(--accent-soft);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);border-radius:999px;align-items:center;gap:7px;margin-bottom:20px;padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;display:inline-flex}.meth-hero h1{letter-spacing:-.04em;color:var(--text);max-width:15ch;margin:0 auto;font-family:Fraunces,serif;font-size:clamp(34px,5.5vw,52px);font-weight:800;line-height:1.02}.meth-hero h1 em{color:var(--accent);font-style:italic;font-weight:600}.meth-hero-sub{color:var(--subtext,var(--muted));max-width:46ch;margin-top:16px;margin-left:auto;margin-right:auto;font-size:17px;line-height:1.6}.meth-pipeline-wrap{padding:0 0 28px}.meth-rule{color:var(--accent);align-items:center;gap:12px;margin-bottom:18px;font-family:Fraunces,serif;font-size:14px;font-weight:700;display:flex}.meth-rule:after{content:"";background:var(--border);flex:1;height:1px}.meth-process{grid-template-columns:repeat(4,1fr);gap:2px;display:grid}@media(max-width:700px){.meth-process{grid-template-columns:1fr 1fr}}.meth-step{background:var(--surface);border:1px solid var(--border);padding:22px 20px;transition:all .2s;position:relative}.meth-step:first-child{border-radius:12px 0 0 12px}.meth-step:last-child{border-radius:0 12px 12px 0}@media(max-width:700px){.meth-step:first-child{border-radius:12px 0 0}.meth-step:nth-child(2){border-radius:0 12px 0 0}.meth-step:nth-child(3){border-radius:0 0 0 12px}.meth-step:last-child{border-radius:0 0 12px}}.meth-step:hover{background:var(--accent-soft)}.meth-step-icon{background:linear-gradient(135deg,var(--accent),var(--accent));border-radius:9px;width:38px;height:38px}@supports (color:color-mix(in lab,red,red)){.meth-step-icon{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#a08060))}}.meth-step-icon{color:#f0e8de;box-shadow:0 4px 10px rgba(var(--accent-rgb),.2);justify-content:center;align-items:center;margin-bottom:12px;font-size:17px;display:flex}.meth-step h3{color:var(--text);margin-bottom:5px;font-family:Fraunces,serif;font-size:16px;font-weight:700}.meth-step p{color:var(--muted);font-size:13px;line-height:1.55}.meth-step:not(:last-child):after{content:"";z-index:2;background:var(--bg);border:1px solid var(--border);border-bottom:none;border-left:none;width:14px;height:14px;position:absolute;top:50%;right:-1px;transform:translate(50%)translateY(-50%)rotate(45deg)}@media(max-width:700px){.meth-step:not(:last-child):after{display:none}}.meth-scroll-hint{text-align:center;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;flex-direction:column;align-items:center;gap:6px;padding:8px 0 16px;font-family:JetBrains Mono,monospace;font-size:10px;display:flex}.meth-scroll-arrow{border-right:2px solid var(--border);border-bottom:2px solid var(--border);width:14px;height:14px;animation:2s ease-in-out infinite methBob;transform:rotate(45deg)}@keyframes methBob{0%,to{transform:rotate(45deg)translate(0)}50%{transform:rotate(45deg)translate(2px,2px)}}.meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.06),transparent 45%)}.dark .meth-s2{background:radial-gradient(circle at 80% 20%,rgba(var(--accent-rgb),.1),transparent 45%)}.meth-s2-inner{flex-direction:column;flex:1;justify-content:center;padding:0 48px;display:flex}@media(max-width:640px){.meth-s2-inner{padding:0 20px}}.meth-s2-header{text-align:center;margin-bottom:36px}.meth-s2-header h2{letter-spacing:-.03em;color:var(--text);font-family:Fraunces,serif;font-size:clamp(28px,4vw,40px);font-weight:800;line-height:1.05}.meth-s2-header p{color:var(--subtext,var(--muted));max-width:48ch;margin-top:10px;margin-left:auto;margin-right:auto;font-size:16px;line-height:1.6}.meth-taste-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}@media(max-width:800px){.meth-taste-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.meth-taste-grid{grid-template-columns:1fr}}.meth-taste-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;padding:24px 22px;position:relative;overflow:hidden}.meth-taste-card:before{content:"";background:var(--tc,var(--accent));height:3px;position:absolute;top:0;left:0;right:0}.meth-taste-cat{color:var(--text);margin-bottom:16px;font-family:Fraunces,serif;font-size:17px;font-weight:700}.meth-taste-list{flex-direction:column;display:flex}.meth-taste-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:6px;padding:9px 0;font-size:13px;display:flex}.meth-taste-item:last-child{border-bottom:none}.meth-taste-name{color:var(--text);white-space:nowrap;font-weight:600}.meth-taste-note{color:var(--muted);text-align:right;font-size:11px}.meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.06),transparent)}.dark .meth-s3{background:radial-gradient(ellipse 60% 50% at 30% 70%,rgba(var(--accent-rgb),.1),transparent)}.meth-s3-inner{flex-direction:column;flex:1;min-height:0;padding:28px 48px 24px;display:flex}@media(max-width:640px){.meth-s3-inner{padding:24px 20px 20px}}.meth-s3-header{margin-bottom:20px}.meth-s3-header h2{letter-spacing:-.03em;color:var(--text);font-family:Fraunces,serif;font-size:clamp(26px,3.5vw,36px);font-weight:800;line-height:1.05}.meth-s3-header p{color:var(--subtext,var(--muted));margin-top:8px;font-size:15px;line-height:1.55}.meth-persona-layout{flex:1;grid-template-columns:210px 1fr;gap:16px;min-height:0;display:grid}@media(max-width:760px){.meth-persona-layout{grid-template-rows:auto 1fr;grid-template-columns:1fr}}.meth-persona-list{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.1) transparent;flex-direction:column;gap:6px;display:flex;overflow-y:auto}@media(max-width:760px){.meth-persona-list{flex-direction:row;gap:8px;padding-bottom:4px;overflow:auto hidden}}.meth-p-thumb{background:var(--surface);cursor:pointer;box-shadow:var(--shadow);border:2px solid #0000;border-radius:13px;flex-shrink:0;align-items:center;gap:12px;padding:11px 14px;transition:all .2s;display:flex}.meth-p-thumb:hover{border-color:var(--border);transform:translateY(-1px)}.meth-p-thumb.active{border-color:var(--pa,var(--accent));background:var(--pa,var(--accent))}@supports (color:color-mix(in lab,red,red)){.meth-p-thumb.active{background:color-mix(in srgb,var(--pa,var(--accent)) 6%,var(--surface))}}.meth-p-thumb.active{box-shadow:0 0 0 3px var(--pa),var(--shadow)}@supports (color:color-mix(in lab,red,red)){.meth-p-thumb.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--pa) 10%,transparent),var(--shadow)}}.meth-p-thumb-img{background:var(--bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex;overflow:hidden}.meth-p-thumb-img img{object-fit:contain;filter:drop-shadow(0 2px 4px #0000001a);width:90%;height:90%}.meth-p-thumb-text{min-width:0}.meth-p-thumb-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-family:Fraunces,serif;font-size:14px;font-weight:700;overflow:hidden}.meth-p-thumb-trait{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}@media(max-width:760px){.meth-p-thumb{text-align:center;flex-direction:column;gap:6px;min-width:100px;padding:8px 14px}.meth-p-thumb-trait{display:none}}.meth-pd{background:var(--surface);border:1px solid var(--border);min-height:0;box-shadow:var(--shadow);border-radius:18px;grid-template-columns:240px 1fr;display:grid;overflow:hidden}@media(max-width:900px){.meth-pd{grid-template-columns:200px 1fr}}@media(max-width:760px){.meth-pd{grid-template-rows:180px 1fr;grid-template-columns:1fr}}.meth-pd-art{background:var(--pd-gradient,linear-gradient(160deg,#ede6de,#f5f3f0));border-right:1px solid var(--border);justify-content:center;align-items:center;padding:20px;display:flex;position:relative;overflow:hidden}@media(max-width:760px){.meth-pd-art{border-right:none;border-bottom:1px solid var(--border)}}.meth-pd-art:after{content:"";background:radial-gradient(circle at 50% 80%,#0000 40%,#fff3);position:absolute;inset:0}.dark .meth-pd-art{background:var(--pd-gradient-dark,linear-gradient(160deg,#2e2822,#1c1816))}.dark .meth-pd-art:after{background:radial-gradient(circle at 50% 80%,#0000 40%,#00000026)}.meth-pd-art img{object-fit:contain;z-index:1;filter:drop-shadow(0 10px 20px #00000026);width:auto;max-width:90%;height:82%;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .25s;position:relative}.meth-pd-copy{scrollbar-width:thin;scrollbar-color:rgba(var(--accent-rgb),.1) transparent;flex-direction:column;padding:24px 28px;display:flex;overflow-y:auto}@media(max-width:640px){.meth-pd-copy{padding:18px 20px}}.meth-pd-badge{text-transform:uppercase;letter-spacing:.1em;color:var(--pa,var(--accent));margin-bottom:5px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700}.meth-pd-name{letter-spacing:-.04em;color:var(--text);margin-bottom:12px;font-family:Fraunces,serif;font-size:clamp(28px,3.5vw,38px);font-weight:800;line-height:.95}.meth-pd-desc{color:var(--subtext,var(--muted));margin-bottom:18px;font-size:15px;line-height:1.6}.meth-pd-cards{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}@media(max-width:500px){.meth-pd-cards{grid-template-columns:1fr}}.meth-pd-card{background:var(--accent-soft);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.meth-pd-card-label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700}.meth-pd-card-text{color:var(--text);font-size:13px;line-height:1.55}.meth-pd-axes{grid-template-columns:repeat(2,1fr);gap:14px;display:grid}@media(max-width:600px){.meth-pd-axes{grid-template-columns:1fr}}.meth-ax{flex-direction:column;gap:5px;display:flex}.meth-ax-label{color:var(--text);justify-content:space-between;font-size:11px;font-weight:600;display:flex}.meth-ax-label span:last-child{color:var(--muted);font-family:JetBrains Mono,monospace}.meth-ax-track{background:var(--border);border-radius:3px;height:6px;overflow:hidden}.meth-ax-fill{background:var(--pa,var(--accent));border-radius:3px;height:100%;transition:width .5s cubic-bezier(.16,1,.3,1)}.meth-bottom{border-top:1px solid var(--border);background:var(--bg);flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 22px;display:flex}.meth-bottom-note{color:var(--muted);max-width:50ch;font-size:11px;line-height:1.5}.meth-dot-nav{align-items:center;gap:6px;display:flex}.meth-dot{background:var(--border);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;transition:all .2s}.meth-dot.active{background:var(--accent);box-shadow:0 0 6px rgba(var(--accent-rgb),.25)}.meth-dot:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.meth-dot:hover{background:color-mix(in srgb,var(--accent) 50%,var(--border))}}@media(prefers-reduced-motion:reduce){.meth-reveal{opacity:1!important;transition:none!important;transform:none!important}.meth-scroll-arrow{animation:none!important}}.card-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:600}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}
@@ -0,0 +1 @@
1
+ function s(o){return navigator.clipboard?.writeText?navigator.clipboard.writeText(o):new Promise((c,n)=>{try{const e=document.createElement("textarea");e.value=o,e.setAttribute("readonly",""),e.style.position="absolute",e.style.left="-9999px",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),c()}catch(e){n(e)}})}function l(){const o=document.getElementById("createModal"),c=[...document.querySelectorAll("[data-copy-text]")];if(!o||c.length===0)return;const n=new WeakMap;let e=null;window.openCreateModal=()=>{e=document.activeElement,o.classList.add("active"),document.body.style.overflow="hidden"},window.closeCreateModal=()=>{o.classList.remove("active"),document.body.style.overflow="",e&&typeof e.focus=="function"&&(e.focus(),e=null)},c.forEach(t=>{const i=t.querySelector(".create-copy-label");t.addEventListener("click",async()=>{const r=t.dataset.copyText||"";try{await s(r),i&&(i.textContent="Copied"),t.classList.add("is-copied");const a=n.get(t);a&&clearTimeout(a);const d=window.setTimeout(()=>{i&&(i.textContent="Copy"),t.classList.remove("is-copied")},1600);n.set(t,d)}catch{i&&(i.textContent="Failed");const a=n.get(t);a&&clearTimeout(a);const d=window.setTimeout(()=>{i&&(i.textContent="Copy")},1600);n.set(t,d)}})}),o.addEventListener("click",t=>{t.target===o&&window.closeCreateModal()}),document.addEventListener("keydown",t=>{t.key==="Escape"&&window.closeCreateModal()})}l();