behavior-wrapped 0.2.11
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/LICENSE +201 -0
- package/README.md +81 -0
- package/dist/assets/index-0bjvY6uC.js +11 -0
- package/dist/assets/index-Cjdrcfkw.css +1 -0
- package/dist/index.html +15 -0
- package/fixtures/codex-sessions/2026/06/07/rollout-2026-06-07T10-00-00-synthetic.jsonl +8 -0
- package/fixtures/projects/notes-lab/33333333-3333-4333-8333-333333333333.jsonl +6 -0
- package/fixtures/projects/synthetic-studio/11111111-1111-4111-8111-111111111111.jsonl +10 -0
- package/fixtures/projects/synthetic-studio/22222222-2222-4222-8222-222222222222.jsonl +10 -0
- package/package.json +68 -0
- package/scripts/benchmark-ngram-extraction.mjs +204 -0
- package/scripts/mine-phrase-families.mjs +419 -0
- package/scripts/review-interaction-tone.mjs +40 -0
- package/scripts/review-workaround-judge.mjs +148 -0
- package/server/analysis.mjs +475 -0
- package/server/cli.mjs +287 -0
- package/server/consent.mjs +19 -0
- package/server/discovery.mjs +370 -0
- package/server/frustration-card.mjs +174 -0
- package/server/instrumental-workarounds.mjs +590 -0
- package/server/interaction-tone.mjs +339 -0
- package/server/judge-debug.mjs +58 -0
- package/server/launcher.mjs +151 -0
- package/server/leaderboard.mjs +98 -0
- package/server/model-names.mjs +14 -0
- package/server/phrase-card.mjs +278 -0
- package/server/privacy.mjs +60 -0
- package/server/progress.mjs +71 -0
- package/server/public-report-schema.mjs +108 -0
- package/server/public-report.mjs +38 -0
- package/server/research-donation-schema.mjs +50 -0
- package/server/research-donation.mjs +28 -0
- package/server/session-topics.mjs +263 -0
- package/server/store.mjs +57 -0
- package/server/tool-semantics.mjs +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{color:#12101f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-synthesis:none;--ink:#12101f;--paper:#f7f5ee;--purple:#8d5cff;--lime:#c9f24b;--coral:#ff775f;--blue:#6ac8ff;--pink:#ff7dbe;--yellow:#ffd85d;background:#f7f5ee;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:#f7f5ee;min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.app-shell{min-height:100vh;overflow:hidden}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:20;background:#0d0b1be6;border-bottom:1px solid #ffffff1a;align-items:center;height:76px;padding:0 clamp(20px,5vw,76px);display:flex;position:relative}.brand{color:#fff;letter-spacing:-.02em;background:0 0;border:0;align-items:center;gap:11px;font-size:15px;font-weight:760;display:flex}.brand-mark{flex:none;width:34px;height:34px;overflow:visible}.local-pill{color:#bbb5d0;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:7px;margin-left:28px;padding:7px 11px;font-size:12px;display:flex}.pulse{background:var(--lime);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #c9f24b1f}.topbar nav{background:#ffffff0f;border-radius:12px;gap:6px;margin-left:auto;padding:4px;display:flex}.topbar nav button{color:#aaa4bc;background:0 0;border:0;border-radius:9px;padding:8px 13px;font-size:12px;font-weight:700}.topbar nav button.active{color:var(--ink);background:#fff}.hero{background:radial-gradient(circle at 66% 30%,#34206f 0,#16112f 31%,#0d0b1b 68%);justify-content:space-between;align-items:center;min-height:500px;padding:92px clamp(20px,8vw,122px) 88px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";border:1px solid #ffffff0f;border-radius:50%;width:580px;height:580px;position:absolute;top:-28%;right:9%;box-shadow:0 0 0 80px #ffffff05,0 0 0 160px #ffffff03}.hero-glow{filter:blur(2px);border-radius:50%;position:absolute}.glow-one{background:#ff775f29;width:300px;height:300px;top:90px;right:-80px}.glow-two{background:#8d5cff4d;width:230px;height:230px;bottom:-180px;left:30%}.hero-copy{z-index:2;max-width:750px;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--lime);font-size:11px;font-weight:850}.hero h1,.report-intro h1,.donation-hero h1{letter-spacing:-.065em;margin:22px 0;font-size:clamp(46px,6.6vw,88px);font-weight:830;line-height:.92}h1 em{color:var(--lime);font-family:Georgia,serif;font-weight:500}.hero-copy>p{color:#b8b2ca;max-width:540px;font-size:18px;line-height:1.55}.hero-card{background:var(--lime);width:246px;min-width:246px;height:310px;color:var(--ink);z-index:2;border-radius:26px;margin-right:5vw;padding:26px;position:relative;transform:rotate(5deg);box-shadow:-30px 30px 80px #00000059}.hero-card:before{content:"";border:1px solid #12101f26;border-radius:19px;position:absolute;inset:9px}.hero-card-label{letter-spacing:.17em;font-size:9px;font-weight:900}.hero-number{letter-spacing:-.08em;margin-top:48px;font-size:92px;font-weight:900;line-height:1}.hero-number span{font-size:32px}.hero-card p{margin:4px 0 31px;font-size:13px;font-weight:750}.spark{align-items:end;gap:5px;height:42px;display:flex}.spark i{background:var(--ink);opacity:.9;border-radius:4px 4px 1px 1px;width:13px}.spark i:first-child{height:30%}.spark i:nth-child(2){height:50%}.spark i:nth-child(3){height:42%}.spark i:nth-child(4){height:80%}.spark i:nth-child(5){height:63%}.spark i:nth-child(6){height:100%}.spark i:nth-child(7){height:84%}.workspace{color:var(--ink);background:var(--paper);padding:70px clamp(20px,8vw,122px) 90px}.section-heading{justify-content:space-between;align-items:center;margin-bottom:34px;display:flex}.section-heading>div{grid-template-columns:auto 1fr;align-items:center;column-gap:16px;display:grid}.step{background:var(--ink);color:#fff;border-radius:50%;grid-row:span 2;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.section-heading h2{letter-spacing:-.035em;margin:0;font-size:28px}.section-heading p{color:#6b6875;margin:4px 0 0;font-size:13px}.demo-badge{color:#6339bd;background:#e8ddff;border-radius:99px;padding:8px 12px;font-size:11px;font-weight:800}.filters{background:#fff;border:1px solid #dedbe3;border-radius:18px 18px 0 0;grid-template-columns:220px 220px 1fr;display:grid;overflow:hidden}.filters label{color:#77727d;text-transform:uppercase;letter-spacing:.1em;border-right:1px solid #e4e1e6;flex-direction:column;gap:7px;padding:15px 19px;font-size:10px;font-weight:800;display:flex}.filters input{color:var(--ink);background:0 0;border:0;padding:0;font-weight:700}.filter-stat{justify-content:end;align-items:baseline;gap:8px;padding:15px 20px;display:flex}.filter-stat strong{font-size:27px}.filter-stat span{color:#77727d;font-size:12px}.project-chips{background:#efedf0;border:1px solid #dedbe3;border-top:0;flex-wrap:wrap;gap:8px;padding:18px;display:flex}.project-chips button{color:#5e5a67;background:#fff;border:1px solid #d7d3dc;border-radius:999px;align-items:center;gap:7px;padding:8px 12px 8px 8px;font-size:12px;font-weight:700;display:flex}.project-chips button.selected{background:var(--ink);color:#fff;border-color:var(--ink)}.project-chips button>span{background:#ffffff24;border-radius:50%;place-items:center;width:20px;height:20px;display:grid}.project-chips button small{color:#8d8795;min-width:18px}.session-list{background:#fff;border:1px solid #dedbe3;border-top:0;border-radius:0 0 18px 18px;overflow:hidden}.list-head,.session-row{grid-template-columns:minmax(280px,1fr) 110px 100px 90px;align-items:center;display:grid}.list-head{letter-spacing:.12em;text-transform:uppercase;color:#928d98;border-bottom:1px solid #eeeaf0;min-height:46px;padding:0 18px 0 60px;font-size:9px;font-weight:850}.list-head button{color:#6544ae;text-transform:none;letter-spacing:0;background:0 0;border:0;padding:4px;font-size:10px;font-weight:800}.session-row{color:#696571;cursor:pointer;border-bottom:1px solid #efecf1;min-height:69px;padding:0 18px;font-size:12px;position:relative}.session-row:last-child{border-bottom:0}.session-row:hover{background:#fbfaff}.session-row input{opacity:0;position:absolute}.custom-check{color:#0000;border:1px solid #cdc8d2;border-radius:7px;place-items:center;width:22px;height:22px;margin-right:18px;display:grid;position:absolute;left:20px}.session-row input:checked+.custom-check{background:var(--purple);border-color:var(--purple);color:#fff}.session-title{color:var(--ink);flex-direction:column;gap:5px;padding-left:42px;display:flex}.session-title strong{font-size:13px}.session-title small{color:#8a8590;font-size:11px}.chevron{color:#b0aab7;text-align:right;font-size:21px}.no-results,.empty-state{text-align:center;color:#77727d;padding:52px}.empty-state{background:#fff;border:1px solid #dedbe3;border-radius:18px}.empty-state h3{color:var(--ink)}.empty-state code{color:#693ebc}.analyze-bar{justify-content:space-between;align-items:center;margin-top:22px;display:flex}.analyze-bar>div{color:#77727d;align-items:center;gap:12px;display:flex}.analyze-bar>div>span{flex-direction:column;gap:2px;display:flex}.analyze-bar strong{color:#33303b;font-size:12px}.analyze-bar small{font-size:10px}.shield{color:var(--purple);font-size:18px}.primary{background:var(--purple);color:#fff;border:0;border-radius:12px;justify-content:center;align-items:center;gap:24px;padding:14px 19px;font-weight:800;display:flex;box-shadow:0 8px 24px #8d5cff38}.primary:hover{transform:translateY(-1px)}.primary:disabled,.export-button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button-spinner{border:2px solid #ffffff61;border-top-color:#fff;border-radius:50%;width:13px;height:13px;animation:.7s linear infinite spin;display:block}.analysis-progress{color:var(--ink);background:#f9f7fb;border:1px solid #d9d4df;border-radius:14px;margin-top:14px;padding:15px 17px}.analysis-progress>div:first-child{justify-content:space-between;gap:20px;margin-bottom:11px;display:flex}.analysis-progress strong{font-size:11px}.analysis-progress span{color:#79737f;font-size:10px}.analysis-progress-track{background:#e6e0eb;border-radius:999px;height:6px;overflow:hidden}.analysis-progress-track i{border-radius:inherit;background:linear-gradient(90deg, var(--purple), var(--pink));width:38%;height:100%;animation:1.25s ease-in-out infinite scan-progress;display:block}@keyframes spin{to{transform:rotate(360deg)}}@keyframes scan-progress{0%{transform:translate(-105%)}to{transform:translate(275%)}}.error{color:#b22d49;font-size:12px;font-weight:700}.judge-option{color:var(--ink);cursor:pointer;background:#f9f7fb;border:1px solid #d9d4df;border-radius:15px;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:13px;margin-top:16px;padding:16px 18px;display:grid;position:relative}.judge-option input{opacity:0;position:absolute}.judge-option .custom-check{margin:0;position:static}.judge-option input:checked+.custom-check{background:var(--purple);border-color:var(--purple);color:#fff}.judge-option>span:nth-of-type(2){flex-direction:column;gap:4px;display:flex}.judge-option strong{font-size:12px}.judge-option small{color:#77717e;font-size:10px;line-height:1.45}.judge-option em{color:#6940bc;white-space:nowrap;font-size:10px;font-style:normal;font-weight:850}.judge-option.unavailable{opacity:.62;cursor:not-allowed}.judge-option.unavailable em{color:#77717e}.judge-option.judge-required{cursor:default}.network-mark{color:#6840b7;background:#e8ddff;border-radius:8px;place-items:center;width:24px;height:24px;font-size:13px;font-weight:900;display:grid}.privacy-panel{color:#c0bacf;grid-template-columns:70px 1fr;gap:16px;max-width:760px;margin:72px auto;padding:0 24px;display:grid}.privacy-icon{background:#8d5cff26;border:1px solid #8d5cff59;border-radius:18px;place-items:center;width:58px;height:58px;display:grid}.privacy-panel h3{color:#fff;letter-spacing:-.025em;margin:9px 0;font-size:22px}.privacy-panel p{margin:0;font-size:13px;line-height:1.7}.privacy-facts{color:#e1ddea;gap:20px;margin-top:17px;font-size:11px;font-weight:700;display:flex}footer{color:#716b80;border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;min-height:74px;padding:0 clamp(20px,5vw,76px);font-size:11px;display:flex}footer b{color:var(--lime)}.loading-screen{text-align:center;color:#aaa3bb;place-content:center;min-height:calc(100vh - 150px);display:grid}.orb{background:linear-gradient(135deg, var(--lime), var(--purple));border-radius:50%;width:52px;height:52px;margin:0 auto 20px;animation:1.4s ease-in-out infinite alternate breathe;box-shadow:0 0 70px #8d5cffb3}@keyframes breathe{to{opacity:.6;transform:scale(.8)}}.report-page{background:var(--paper);color:var(--ink);padding-bottom:90px}.report-intro{color:#fff;background:radial-gradient(circle at 75% 40%,#502592 0,#221444 32%,#0d0b1b 68%);min-height:500px;padding:80px clamp(20px,8vw,122px);position:relative}.report-intro:after{content:"✦";color:var(--lime);text-shadow:0 0 60px #c9f24b40;font-size:190px;line-height:1;position:absolute;top:80px;right:12%;transform:rotate(12deg)}.report-intro h1{z-index:1;margin-bottom:18px;position:relative}.report-intro>p{color:#b9b2ca;max-width:600px}.mode-toggle{z-index:2;background:#ffffff1a;border:1px solid #ffffff1a;border-radius:14px;margin-top:25px;padding:4px;display:inline-flex;position:relative}.mode-toggle button{color:#bbb5c9;background:0 0;border:0;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:800}.mode-toggle button.active{color:var(--ink);background:#fff}.mode-toggle .shield{margin-right:6px;font-size:11px}.mode-note{margin-top:10px;font-size:11px}.stat-grid{grid-template-columns:repeat(3,1fr);gap:13px;max-width:1450px;margin:auto;padding:70px clamp(20px,8vw,122px) 30px;display:grid}.stat-card{border-radius:22px;flex-direction:column;justify-content:space-between;min-height:210px;padding:24px;display:flex;position:relative;overflow:hidden}.stat-card:after{content:"";border:30px solid #0000000f;border-radius:50%;width:150px;height:150px;position:absolute;bottom:-75px;right:-65px}.stat-card>span{letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:900}.stat-card strong{letter-spacing:-.07em;font-size:clamp(43px,6vw,72px);line-height:1}.stat-card p{margin:0;font-size:12px;font-weight:700}.purple{background:var(--purple);color:#fff}.lime{background:var(--lime)}.orange{background:var(--coral)}.blue{background:var(--blue)}.pink{background:var(--pink)}.yellow{background:var(--yellow)}.wrapped-card{border-radius:30px;max-width:calc(1450px - 16vw);min-height:420px;margin:13px auto 85px;padding:clamp(32px,5vw,70px)}.catchphrase-card{color:#16111b;background:radial-gradient(circle at 12% 10%,#ffd4e7 0,#0000 35%),linear-gradient(135deg,#ff7dbe,#ff775f);grid-template-columns:1fr;align-items:center;display:grid;position:relative;overflow:hidden}.catchphrase-card:after{content:"“";color:#fff3;pointer-events:none;font-family:Georgia,serif;font-size:420px;line-height:1;position:absolute;top:-35%;right:3%}.catchphrase-card>*{z-index:1;position:relative}.catchphrase-card .card-kicker{color:#72264d}.catchphrase-card h2{letter-spacing:-.04em;max-width:820px;margin:19px 0;font-family:Georgia,serif;font-size:clamp(38px,5vw,68px);font-weight:600;line-height:1.03}.catchphrase-card p{color:#65354b;max-width:600px;font-size:12px;line-height:1.55}.tools-card{color:#fff;background:#171329;grid-template-columns:.75fr 1.25fr;align-items:center;gap:70px;display:grid}.card-kicker{letter-spacing:.2em;color:var(--blue);font-size:10px;font-weight:900}.tools-card h2{letter-spacing:-.06em;margin:18px 0;font-size:clamp(38px,5vw,67px);line-height:.98}.tools-card>div>p{color:#8f899c;font-size:13px}.tool-chart{flex-direction:column;display:flex}.tool-row{border-bottom:1px solid #ffffff14;grid-template-columns:38px minmax(100px,.7fr) 1fr 40px;align-items:center;gap:12px;min-height:57px;display:grid}.rank{color:#5f586d;font-size:10px;font-weight:900}.tool-row strong{font-size:13px}.tool-row>div{background:#ffffff14;border-radius:99px;height:5px;overflow:hidden}.tool-row i{border-radius:inherit;background:linear-gradient(90deg, var(--purple), var(--pink));height:100%;display:block}.tool-row b{text-align:right;color:#bdb6ca;font-size:12px}.findings-section{color:#f8f5ff;background:radial-gradient(circle at 50% 18%,#4b246b 0,#21162f 36%,#130f1b 72%);max-width:none;margin:0 0 85px;padding:82px clamp(20px,7vw,110px) 100px;position:relative;overflow:hidden}.findings-section:before{content:"";pointer-events:none;background:radial-gradient(circle at 16% 20%,#9766db24,#0000 28%),linear-gradient(#ffffff05 1px,#0000 1px) 0 0/46px 46px,linear-gradient(90deg,#ffffff05 1px,#0000 1px) 0 0/46px 46px;position:absolute;inset:0}.findings-section .section-heading,.finding-grid,.findings-section .quiet-card{z-index:1;width:min(1220px,100%);margin-inline:auto;position:relative}.findings-section .section-heading{margin-bottom:42px}.findings-section .section-heading h2{color:#fff;letter-spacing:-.06em;font-size:clamp(38px,5vw,66px);line-height:.9}.findings-section .section-heading p{color:#b9acc7;margin-top:11px}.section-heading.light .step{background:var(--lime);color:#191320;box-shadow:0 0 24px #c9f24b33}.finding-grid{perspective:1200px;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:22px;display:grid}.finding-card{color:#19151e;background:linear-gradient(145deg,#fffffff7,#f4f1ebf5) padding-box padding-box,conic-gradient(from 140deg,#d7fbff,#a9edff,#f0b9f0,#fff0a8,#b9f5d3,#fdfdff,#d7fbff) border-box;border:10px solid #0000;border-radius:28px;flex-direction:column;min-width:0;min-height:588px;padding:22px;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 28px 70px #03010957,inset 0 0 0 1px #fffc}.finding-card:nth-child(3n+1){transform:rotate(-1.2deg)}.finding-card:nth-child(3n+2){transform:translateY(-7px)}.finding-card:nth-child(3n+3){transform:rotate(1.2deg)}.finding-card:hover{transform:translateY(-7px)rotate(0);box-shadow:0 38px 85px #03010970,inset 0 0 0 1px #ffffffe6}.finding-card:before{content:"";z-index:0;background:repeating-conic-gradient(from 0deg at 50% 50%, #6742c8 0 10deg, #d9cdff 10deg 20deg);border:3px solid #19151e;height:168px;position:absolute;top:66px;left:18px;right:18px;box-shadow:inset 0 0 0 4px #ffffff2e}.finding-card:after{content:"";z-index:1;background:#fbf8f1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%2319151e' d='M32 8l7 17 17 7-17 7-7 17-7-17-17-7 17-7z'/%3E%3C/svg%3E") 50%/52px no-repeat;border:4px solid #19151e;border-radius:50%;width:88px;height:88px;position:absolute;top:104px;left:50%;transform:translate(-50%);box-shadow:7px 7px #19151e}.kind-correction:before{background:radial-gradient(circle, #d9ff63 0 15%, transparent 16%), repeating-conic-gradient(from 0deg, #6c43c8 0 10deg, #e3d7ff 10deg 20deg)}.kind-correction:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%2319151e' stroke-width='7' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M53 18H27c-10 0-17 7-17 17s7 17 17 17h22'/%3E%3Cpath d='M23 6L10 18l13 12'/%3E%3C/g%3E%3C/svg%3E")}.kind-repetition:before{background:repeating-linear-gradient(45deg,#ff6d8d 0 15px,#ffe0e7 15px 30px)}.kind-repetition:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%2319151e' stroke-width='7' stroke-linecap='square' stroke-linejoin='miter'%3E%3Cpath d='M49 24A19 19 0 0 0 16 19'/%3E%3Cpath d='M14 7l2 13 13-2'/%3E%3Cpath d='M15 40a19 19 0 0 0 33 5'/%3E%3Cpath d='M50 57l-2-13-13 2'/%3E%3C/g%3E%3C/svg%3E");border-radius:13px;transform:translate(-50%)rotate(7deg)}.kind-clarification:before{background-color:#27224f;background-image:radial-gradient(circle at 20% 20%,#60d9ff 0 4%,#0000 5%),radial-gradient(circle at 70% 70%,#60d9ff 0 5%,#0000 6%),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:55px 55px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box}.kind-clarification:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%2319151e' stroke-width='7' stroke-linecap='square'%3E%3Cpath d='M18 19c1-9 8-13 16-13 10 0 17 6 17 15 0 12-15 13-17 23'/%3E%3Cpath d='M34 55v2'/%3E%3C/g%3E%3C/svg%3E");border-radius:50% 50% 10px}.kind-scope:before{background-color:#0000;background-image:linear-gradient(45deg,#ffcc5e 25%,#0000 25% 75%,#ffcc5e 75%),linear-gradient(45deg,#ffcc5e 25%,#fff1b8 25% 75%,#ffcc5e 75%);background-position:0 0,16px 16px;background-repeat:repeat,repeat;background-size:32px 32px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box}.kind-scope:after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cg fill='none' stroke='%2319151e' stroke-width='7' stroke-linecap='square'%3E%3Cpath d='M22 8l-4 48M46 8l-4 48M8 24h48M7 43h48'/%3E%3C/g%3E%3C/svg%3E");border-radius:14px}.finding-top{z-index:2;justify-content:space-between;align-items:center;gap:12px;min-height:29px;display:flex;position:relative}.finding-index{color:#3e3743;letter-spacing:.12em;font-size:11px;font-weight:950}.confidence{color:#211c25;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;background:#fcfaf6c7;border:1px solid #6e6670;border-radius:99px;padding:6px 9px;font-size:10px;font-weight:900}.c-high,.c-medium,.c-low{color:#211c25;background:#fcfaf6c7}.finding-card h3{color:#19151e;letter-spacing:-.045em;z-index:2;max-width:none;margin:203px 0 11px;font-size:26px;line-height:1.06;position:relative}.finding-card>p{color:#67616b;z-index:2;margin:0 0 20px;font-size:13px;line-height:1.5;position:relative}.finding-card details{z-index:2;border-top:2px solid #d8d3d7;margin-top:auto;padding-top:14px;position:relative}.finding-card summary{color:#514a55;cursor:pointer;font-size:11px;font-weight:900}.finding-card details p{color:#756e78;font-size:11px;line-height:1.5}.evidence-link{color:#342b3a;text-align:left;z-index:2;background:0 0;border:0;justify-content:space-between;padding:13px 0 0;font-size:11px;font-weight:900;display:flex;position:relative}.share-safe{color:#4d684b;z-index:2;margin-top:13px;font-size:11px;font-weight:850;position:relative}.quiet-card{text-align:center;background:#fff;border:1px solid #e1dde5;border-radius:24px;padding:60px}.quiet-card>span{color:var(--purple);font-size:44px}.quiet-card h3{font-size:24px}.quiet-card p{color:#77717e;max-width:620px;margin:auto;line-height:1.6}.share-section{color:#fff;background:var(--purple);border-radius:28px;justify-content:space-between;align-items:end;gap:40px;max-width:calc(1450px - 16vw);min-height:330px;margin:0 auto 85px;padding:55px;display:flex;position:relative;overflow:hidden}.share-section:after{content:"SAFE";color:#ffffff0f;font-size:130px;font-weight:950;position:absolute;top:-35px;right:-18px;transform:rotate(8deg)}.share-section .eyebrow{color:var(--lime)}.share-section h2{letter-spacing:-.055em;margin:16px 0;font-size:clamp(34px,4vw,56px);line-height:.98}.share-section p{color:#ded4f3;max-width:590px;font-size:12px;line-height:1.6}.share-button{white-space:nowrap;z-index:1;background:var(--lime);color:var(--ink);border:0;border-radius:13px;gap:22px;padding:15px 18px;font-size:12px;font-weight:850;display:flex;position:relative}.research-cta{color:#fff;background:#171329;border:1px solid #ffffff17;border-radius:24px;grid-template-columns:55px 1fr auto;align-items:center;gap:22px;max-width:calc(1450px - 16vw);margin:auto;padding:32px;display:grid}.research-star{width:55px;height:55px;color:var(--lime);background:#c9f24b1f;border-radius:17px;place-items:center;font-size:25px;display:grid}.research-cta h2{letter-spacing:-.03em;margin:8px 0;font-size:22px}.research-cta p{color:#9690a2;margin:0;font-size:12px}.research-cta button{color:#fff;background:0 0;border:1px solid #ffffff2e;border-radius:12px;gap:18px;padding:13px 16px;font-size:11px;font-weight:800;display:flex}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#05040cc2;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.modal{background:var(--paper);width:min(720px,100%);max-height:90vh;color:var(--ink);border-radius:26px;padding:34px;position:relative;overflow:auto;box-shadow:0 30px 100px #00000080}.modal-close{background:#e9e5ec;border:0;border-radius:50%;width:34px;height:34px;font-size:20px;position:absolute;top:18px;right:18px}.private-label{color:#6c44b8;text-transform:uppercase;letter-spacing:.09em;font-size:10px;font-weight:900}.private-label .shield{font-size:11px}.modal h2{letter-spacing:-.045em;max-width:560px;font-size:30px}.modal-method{color:#706a77;font-size:12px;line-height:1.6}.transcript-excerpt{background:#fff;border:1px solid #dfdbe2;border-radius:17px;margin:25px 0;padding:18px}.excerpt-line{border-bottom:1px solid #f0edf1;grid-template-columns:60px 1fr;gap:13px;padding:12px 0;display:grid}.excerpt-line:last-child{border:0}.excerpt-line>span{color:#7e7784;padding-top:3px;font-size:10px;font-weight:900}.excerpt-line.assistant>span{color:#6c44b8}.excerpt-line p{white-space:pre-wrap;color:#47424d;margin:0;font-size:12px;line-height:1.6}.modal-foot{border-top:1px solid #dfdbe2;grid-template-columns:auto 1fr;column-gap:10px;padding-top:17px;display:grid}.modal-foot span,.modal-foot strong{font-size:11px}.modal-foot strong{color:#6c44b8}.modal-foot small{color:#807a86;grid-column:1/-1;margin-top:8px}.donation-page{background:var(--paper);color:var(--ink);min-height:calc(100vh - 76px);padding:50px clamp(20px,7vw,110px) 100px}.back-link{color:#6a6472;background:0 0;border:0;padding:0;font-size:12px;font-weight:750}.donation-hero{max-width:900px;padding:58px 0 55px}.donation-hero .eyebrow{color:#6c44b8}.donation-hero h1{margin:18px 0;font-size:clamp(46px,6vw,76px)}.donation-hero p{color:#6f6976;max-width:680px;line-height:1.6}.donation-layout{grid-template-columns:minmax(280px,.7fr) minmax(450px,1.3fr);align-items:start;gap:17px;display:grid}.donation-controls,.donation-preview{background:#fff;border:1px solid #ded9e1;border-radius:23px;padding:24px}.donation-step{align-items:flex-start;gap:13px;display:flex}.donation-step>span{background:var(--purple);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:10px;font-weight:900;display:grid}.donation-step h2{margin:3px 0 5px;font-size:18px}.donation-step p{color:#817b87;margin:0;font-size:11px;line-height:1.4}.donation-sessions{border:1px solid #e7e3e9;border-radius:14px;max-height:330px;margin:20px 0;overflow:auto}.donation-sessions label{border-bottom:1px solid #eeeaf0;align-items:flex-start;gap:10px;padding:13px;font-size:12px;font-weight:750;display:flex}.donation-sessions label:last-child{border:0}.donation-sessions label>span{flex-direction:column;gap:3px;display:flex}.donation-sessions small{color:#918b96;font-size:10px;font-weight:500}.full{width:100%}.preview-placeholder{text-align:center;color:#918a98;place-content:center;min-height:310px;display:grid}.preview-placeholder>span{color:#b7a3df;font-size:42px}.preview-placeholder p{font-size:12px}.redaction-banner{color:#65743f;background:#eff8d8;border-radius:12px;justify-content:space-between;gap:15px;margin-top:20px;padding:14px;font-size:10px;display:flex}.redaction-banner strong{color:#44531f}.manual-redact{margin:12px 0;display:flex}.manual-redact input{border:1px solid #dcd7e0;border-radius:10px 0 0 10px;flex:1;min-width:0;padding:10px 12px;font-size:11px}.manual-redact button{background:var(--ink);color:#fff;border:0;border-radius:0 10px 10px 0;padding:0 14px;font-size:10px;font-weight:800}.bundle-preview{background:#faf9fb;border:1px solid #e5e1e7;border-radius:14px;max-height:520px;overflow:auto}.bundle-session{border-bottom:1px solid #e5e1e7;padding:15px}.bundle-session:last-child{border:0}.bundle-session h3{justify-content:space-between;margin:0 0 12px;font-size:12px;display:flex}.bundle-session h3 small{color:#8f8995;font-weight:600}.bundle-session label{grid-template-columns:54px 1fr;gap:8px;margin-bottom:8px;display:grid}.bundle-session label>span{color:#6c44b8;padding-top:9px;font-size:9px;font-weight:900}.bundle-session textarea{resize:vertical;color:#403b46;border:1px solid #e2dfe5;border-radius:9px;width:100%;padding:8px;font-size:10px;line-height:1.5}.consent-step{border-top:1px solid #e4e0e6;margin-top:24px;padding-top:22px}.consent{color:#605b66;background:#f5f2f8;border-radius:12px;align-items:flex-start;gap:10px;margin:18px 0;padding:14px;font-size:10px;line-height:1.5;display:flex}.export-button{background:var(--lime);width:100%;color:var(--ink);border:0;border-radius:12px;padding:13px;font-size:11px;font-weight:900}.export-button span{float:right}.bundle-preview{overflow:hidden auto}.bundle-session{min-width:0;padding:16px}.bundle-session h3{gap:12px;min-width:0;margin-bottom:16px}.bundle-session h3 small{flex:none}.bundle-chat{flex-direction:column;min-width:0;display:flex}.bundle-message{flex-direction:column;width:min(86%,620px);min-width:0;margin-bottom:13px;display:flex}.bundle-message.assistant{align-self:flex-start;align-items:flex-start}.bundle-message.user{align-self:flex-end;align-items:flex-end}.bundle-role{color:#817a89;margin:0 7px 5px;font-size:9px;font-weight:850}.bundle-bubble{background:#fff;border:1px solid #e3dfe6;border-radius:15px 15px 15px 5px;width:100%;min-width:0;padding:10px 12px 8px}.bundle-message.user .bundle-bubble{background:#eee7fb;border-color:#ddd0f8;border-radius:15px 15px 5px}.bundle-bubble textarea{resize:none;color:#403b46;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:0 0;border:0;width:100%;min-width:0;padding:0;font-size:11px;line-height:1.5;display:block;overflow:hidden auto}.bundle-bubble textarea.collapsed{overflow-y:hidden}.bundle-bubble textarea.expanded{resize:vertical;max-height:240px}.bundle-bubble button{color:#6940bc;background:0 0;border:0;margin-top:7px;padding:0;font-size:9px;font-weight:850}@media (width<=1100px){.finding-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.finding-card:nth-child(n){transform:none}}@media (width<=900px){.hero-card{display:none}.hero{min-height:440px}.stat-grid{grid-template-columns:repeat(2,1fr)}.tools-card{grid-template-columns:1fr;gap:25px}.finding-grid{grid-template-columns:1fr}.share-section{flex-direction:column;align-items:flex-start}.research-cta{grid-template-columns:55px 1fr}.research-cta button{grid-column:2;justify-self:start}.donation-layout{grid-template-columns:1fr}}@media (width<=640px){.topbar{flex-wrap:wrap;gap:8px;height:auto;min-height:66px;padding-block:12px}.local-pill{margin-left:auto}.topbar nav{width:100%;margin:0}.topbar nav button{flex:1}.hero{padding-block:70px}.hero h1,.report-intro h1,.donation-hero h1{font-size:46px}.filters{grid-template-columns:1fr 1fr}.filter-stat{border-top:1px solid #e4e1e6;grid-column:1/-1;justify-content:center}.list-head{display:none}.session-row{grid-template-columns:1fr 50px 20px}.session-row>span:nth-of-type(3){display:none}.analyze-bar{flex-direction:column;align-items:stretch;gap:18px}.privacy-panel{grid-template-columns:1fr}.privacy-facts{flex-direction:column;gap:7px}.stat-grid{grid-template-columns:1fr}.stat-card{min-height:170px}.wrapped-card,.share-section,.research-cta{max-width:calc(100% - 40px)}.tool-row{grid-template-columns:30px 100px 1fr 30px}.research-cta{grid-template-columns:1fr}.research-cta button{grid-column:1}.report-intro:after{opacity:.5;font-size:90px;top:100px;right:4%}.mode-toggle{display:flex}.mode-toggle button{flex:1}.section-heading{align-items:flex-start}.demo-badge{margin-left:10px}.redaction-banner{flex-direction:column}.bundle-session label{grid-template-columns:1fr}footer{flex-direction:column;justify-content:center;gap:7px}.judge-option{grid-template-columns:28px 1fr}.judge-option em{grid-column:2}.findings-section{padding:64px 20px 75px}.finding-card{border-width:8px;min-height:565px}.finding-card h3{font-size:24px}.analysis-progress>div:first-child{flex-direction:column;gap:4px}.bundle-message{width:94%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.orb,.button-spinner,.analysis-progress-track i{animation:none}*{transition:none!important}}.shared-page{color:#fff;background:#09090b;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:34px 22px;display:flex}.story-progress{grid-auto-columns:1fr;grid-auto-flow:column;gap:7px;width:min(960px,100vw - 44px);margin-bottom:12px;display:grid}.story-progress button{background:#353438;border:0;border-radius:99px;height:4px;padding:0;overflow:hidden}.story-card{aspect-ratio:16/9;border-radius:32px;flex-direction:column;width:min(960px,100vw - 44px);min-height:480px;max-height:610px;padding:clamp(32px,4vw,54px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff17,0 28px 90px #0000006b}.story-card:after{content:"";border:95px solid #ffffff0d;border-radius:50%;width:520px;height:520px;position:absolute;top:-290px;right:-280px}.story-midnight{color:#f2eee8;background:linear-gradient(145deg,#1a1815,#11100f)}.story-midnight .story-progress{background:#ff6b38}.story-ice{color:#24211d;background:#e8f0f6}.story-ice .story-copy>div:first-child>span,.story-ice .story-tag{color:#376579}.story-ice .story-brand{color:#3d464b}.story-ice .story-brand i{background:#0000002e}.story-cost{color:#292720;background:#eef1e9}.story-cost .story-copy>div:first-child>span,.story-cost .story-tag{color:#53664a}.story-cost .story-brand{color:#36382f}.story-cost .story-brand i{background:#0000002e}.story-agents{color:#2a242d;background:#f1eaf4}.story-agents .story-copy>div:first-child>span,.story-agents .story-tag{color:#805b8c}.story-agents .story-brand i{background:#0000002e}.story-agents .story-data-row span i{background:#c5a9cf}.story-models{color:#28271f;background:#f0f1e9}.story-models .story-copy>div:first-child>span,.story-models .story-tag{color:#6d7156}.story-models .story-brand i{background:#0000002e}.story-models .story-data-row span i{background:#b8bc8c}.story-violet{color:#fff;background:linear-gradient(145deg,#8d5cff,#6030c5)}.story-violet .story-copy>div:first-child>span,.story-violet .story-tag{color:#dff58d}.story-turns{color:#2b1c18;background:linear-gradient(145deg,#ffe2c9,#efa681)}.story-turns .story-brand i{background:#0000002e}.story-turns .story-copy>div:first-child>span,.story-turns .story-tag{color:#8c4938}.story-turns .story-data-row span i{background:#b95f47}.story-social{color:#281b12;background:linear-gradient(145deg,#ffd85d,#ff9f5d)}.story-social:before{content:"!?";color:#5a270f14;letter-spacing:-.16em;font-size:clamp(150px,27vw,300px);font-weight:950;position:absolute;top:2%;right:7%}.story-social .story-brand i{background:#0000002e}.story-social .story-tag{color:#8a451e}.story-comparison-wrap{z-index:2;margin:auto 0;position:relative}.story-comparison{grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);display:grid}.story-comparison>div+div{border-left:2px solid #46230f29;padding-left:clamp(32px,6vw,80px)}.story-comparison span{letter-spacing:-.035em;max-width:330px;font-size:clamp(23px,2.8vw,34px);font-weight:800;line-height:1.08;display:block}.story-comparison p{align-items:baseline;gap:12px;margin:12px 0 0;display:flex}.story-comparison strong{letter-spacing:-.085em;font-size:clamp(90px,13vw,150px);line-height:.75}.story-comparison p b{font-size:clamp(20px,2.4vw,29px)}.story-comparison-wrap blockquote{color:#371f12ad;max-width:390px;margin:22px 0 0;font-family:Georgia,serif;font-size:clamp(13px,1.25vw,16px);font-style:italic;line-height:1.35}.story-comparison-wrap blockquote b{font-family:inherit;font-size:inherit;font-style:normal}.story-languages{color:#102733;background:linear-gradient(145deg,#d6f4ff,#7bd5f7)}.story-languages:before{content:"Aa\a 文";white-space:pre;color:#14536b17;font-family:Georgia,serif;font-size:clamp(95px,16vw,180px);font-weight:800;line-height:.8;position:absolute;top:5%;right:6%}.story-languages .story-brand i{background:#0000002e}.story-languages .story-copy>div:first-child>span,.story-languages .story-tag{color:#276b84}.story-languages .story-data-row span i{background:#2c91b7}.story-topics{color:#172515;background:linear-gradient(145deg,#e3ffd0,#a9ec7b)}.story-topics .story-brand i{background:#0000002e}.story-topics .story-copy>div:first-child>span,.story-topics .story-tag{color:#4d772f}.story-topics .story-data-row span i{background:#5c9b37}.story-stock{color:#2b1d19;background:linear-gradient(145deg,#fff0b8,#ffb8a8)}.story-stock .story-brand i{background:#0000002e}.story-stock .story-copy>div:first-child>span,.story-stock .story-tag{color:#8a4937}.story-stock .story-data-row span i{background:#c96149}.story-quote{color:#21101a;background:radial-gradient(circle at 12% 12%,#ffd5e8 0,#0000 34%),linear-gradient(145deg,#ff7dbe,#ff775f)}.story-quote:before{content:"“";color:#ffffff38;font-family:Georgia,serif;font-size:clamp(300px,42vw,500px);line-height:1;position:absolute;top:-25%;right:3%}.story-quote .story-brand i{background:#0000002e}.story-quote .story-copy>div:first-child>span,.story-quote .story-tag{color:#74264e}.story-quote .story-copy h1{letter-spacing:-.045em;max-width:860px;font-family:Georgia,serif;font-size:clamp(43px,5.6vw,72px);font-weight:600}.story-research{color:#fff;background:radial-gradient(circle at 80% 15%,#4d2787 0,#20133d 38%,#100d1c 78%)}.story-research:before{content:"✦";color:var(--lime);opacity:.92;font-size:clamp(110px,17vw,220px);line-height:1;position:absolute;top:11%;right:8%}.story-research .story-copy{max-width:780px;margin:30px 0 16px;padding:0}.story-research .story-copy>div:first-child>span{color:var(--lime);margin-bottom:18px}.story-research .story-copy h1{font-size:clamp(40px,4.6vw,62px)}.story-research .story-copy p{max-width:720px;margin-top:17px;font-size:clamp(15px,1.7vw,20px)}.story-research .story-cta{margin-top:auto}.story-leaderboard{color:#141515;background:linear-gradient(145deg,#d7ff58,#9ee843)}.story-leaderboard:before{content:"01\a 02\a 03";white-space:pre;color:#1415151a;letter-spacing:-.08em;font-size:clamp(72px,12vw,138px);font-weight:950;line-height:.7;position:absolute;top:9%;right:8%}.story-leaderboard .story-brand i{background:#0003}.story-leaderboard .story-copy{max-width:770px}.story-leaderboard .story-copy>div:first-child>span,.story-leaderboard .story-tag{color:#4d6519}.story-leaderboard .story-copy h1{font-size:clamp(45px,5.4vw,70px)}.story-leaderboard .story-cta{color:#fff;background:#12101f;box-shadow:0 12px 30px #12101f2e}.story-brand{z-index:2;align-items:center;gap:11px;font-size:16px;display:flex;position:relative}.story-copy{z-index:2;margin:auto 0;padding:28px 0;position:relative}.story-copy>div:first-child>span{color:#9f9990;margin-bottom:28px;font-size:clamp(16px,2.1vw,24px);font-weight:650;display:block}.story-copy h1{letter-spacing:-.055em;max-width:850px;margin:0;font-size:clamp(48px,6.1vw,78px);line-height:1.02}.story-copy h1.giant{letter-spacing:-.08em;font-size:clamp(100px,16vw,200px);line-height:.75}.story-copy p{opacity:.7;max-width:820px;margin:26px 0 0;font-size:clamp(17px,2.2vw,26px);line-height:1.35}.story-copy p.story-word-ratio{opacity:1;margin-top:14px;font-size:clamp(15px,1.75vw,21px);font-weight:650}.story-word-ratio strong{color:#dff58d;letter-spacing:-.04em;font-size:1.55em;font-weight:900;line-height:1}.story-copy.with-rows{grid-template-columns:minmax(0,.9fr) minmax(320px,1.1fr);align-items:center;gap:clamp(38px,7vw,100px);width:100%;display:grid}.story-copy.with-rows h1{font-size:clamp(60px,7.5vw,105px)}.story-copy.with-rows p{font-size:clamp(15px,1.6vw,20px)}.story-side{gap:18px;min-width:0;display:grid}.story-example{border-radius:16px;margin:0;padding:18px}.story-example>span{letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:900;display:block}.story-example p{margin:0}.story-example code{border-radius:6px;padding:2px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88em;font-style:normal}.story-data-rows{flex-direction:column;gap:18px;display:flex}.story-data-row>div{justify-content:space-between;align-items:baseline;gap:20px;display:flex}.story-data-row strong{font-size:clamp(16px,2vw,24px)}.story-data-row b{font-size:clamp(15px,1.8vw,22px)}.story-data-row>span{background:#1e19231a;border-radius:99px;height:10px;margin-top:9px;display:block;overflow:hidden}.story-data-row>span i{border-radius:inherit;background:#8d5cff;height:100%;display:block}.story-tag{color:#8e8880;z-index:2;font-size:15px;font-weight:750;position:relative}.story-cta{z-index:5;background:var(--lime);color:#12101f;border-radius:999px;align-self:flex-start;align-items:center;gap:30px;padding:14px 18px;font-size:13px;font-weight:900;text-decoration:none;display:flex;position:relative;box-shadow:0 12px 30px #c9f24b2e}.story-cta:hover{transform:translateY(-1px)}.story-cta-group{z-index:5;flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex;position:relative}.story-cta-group .story-cta{position:static}.story-cta-choice{flex-direction:column;flex:0 310px;align-items:stretch;gap:9px;display:flex}.story-cta-choice .story-cta{justify-content:space-between;width:100%}.story-cta-choice small{color:#52641f;max-width:300px;padding-inline:4px;font-size:10px;font-weight:650;line-height:1.4}.story-cta-group .story-cta.secondary{color:#fff;background:#ffffff1a;border:1px solid #ffffff40}.shared-page .story-cta-group .story-cta.secondary{color:#19151e;background:0 0;border-color:#19151e}.story-arrow{z-index:4;color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000040;border:1px solid #ffffff1f;border-radius:50%;place-items:center;width:41px;height:41px;font-size:27px;display:grid;position:absolute;top:50%}.story-arrow.prev{left:12px}.story-arrow.next{right:12px}.story-arrow:disabled{opacity:.18;cursor:default}.story-actions{align-items:center;gap:8px;margin-top:16px;display:flex}.story-actions button{color:#fff;background:#2a292d;border:0;border-radius:999px;padding:11px 17px;font-size:12px;font-weight:750}.story-foot{color:#6d6971;margin:15px 0 0;font-size:11px}.story-foot .shield{color:var(--lime);font-size:10px}.shared-page{--deck-teal:#397990;--deck-green:#4f7337;--deck-violet:#70478c;--deck-rust:#99513d;--deck-rose:#a34073;background:radial-gradient(circle at 50% 20%,#4b246b 0,#21162f 38%,#100c17 74%);padding-inline:78px}.shared-page .story-progress,.shared-page .story-card{width:min(960px,100vw - 156px)}.story-progress{gap:8px}.story-progress button{background:#27212d;border:1px solid #ffffff21;height:6px}.story-progress button.seen{background:linear-gradient(90deg,#bdf5ff,#f0b9f0,#fff0a8,#b9f5d3)}.story-midnight{--deck-accent:#6e6251}.story-ice{--deck-accent:var(--deck-teal)}.story-cost{--deck-accent:var(--deck-green)}.story-agents{--deck-accent:var(--deck-violet)}.story-models,.story-turns{--deck-accent:var(--deck-rust)}.story-violet{--deck-accent:var(--deck-teal)}.story-social{--deck-accent:var(--deck-violet)}.story-languages{--deck-accent:var(--deck-teal)}.story-topics{--deck-accent:var(--deck-green)}.story-stock,.story-quote{--deck-accent:var(--deck-rose)}.story-research{--deck-accent:var(--deck-violet)}.story-leaderboard{--deck-accent:var(--deck-green)}.shared-page .story-card{color:#19151e;background:linear-gradient(145deg,#fffffffb,#f0ece3fb) padding-box padding-box,conic-gradient(from 140deg,#d7fbff,#a9edff,#f0b9f0,#fff0a8,#b9f5d3,#fdfdff,#d7fbff) border-box;border:10px solid #0000;border-radius:30px;min-height:500px;padding:36px 52px 30px;font-family:inherit;overflow:visible;box-shadow:0 34px 100px #0301097a,inset 0 0 0 1px #ffffffd6}.shared-page .story-card:before{content:"";color:#0000;background:radial-gradient(circle at 82% 22%, color-mix(in srgb, var(--deck-accent,#673cc2) 13%, transparent), transparent 31%), linear-gradient(#19151e06 1px, transparent 1px), linear-gradient(90deg, #19151e06 1px, transparent 1px);opacity:1;pointer-events:none;background-size:auto,32px 32px,32px 32px;border:1.5px solid #19151e29;border-radius:19px;position:absolute;inset:17px}.shared-page .story-card:after{content:"";clip-path:inset(0 round 20px);pointer-events:none;background:linear-gradient(115deg,#0000 40%,#b1f2ff21 50%,#ffc2f01a 56%,#fff4a61a 62%,#0000 72%);border:0;border-radius:20px;width:auto;height:auto;position:absolute;inset:0;transform:none}.shared-page .story-brand{color:#38313d;text-transform:uppercase;letter-spacing:.055em;flex:none;font-size:14px;font-weight:850}.shared-page .story-copy{min-height:0;padding:18px 0 14px}.shared-page .story-copy>div:first-child>span,.shared-page .story-comparison-kicker,.shared-page .story-card .story-tag{color:var(--deck-accent,var(--deck-violet));letter-spacing:.01em;font-size:clamp(15px,1.6vw,19px);font-style:normal;font-weight:850;line-height:1.15}.shared-page .story-copy h1{color:#19151e;font-size:clamp(46px,5.4vw,68px);line-height:.96}.shared-page .story-copy h1.giant{font-size:clamp(90px,12.2vw,136px);line-height:.76}.shared-page .story-copy p{color:#665f69;opacity:1;max-width:720px;margin-top:18px;font-size:clamp(17px,1.8vw,21px);line-height:1.4}.shared-page .story-copy p.story-word-ratio{border-top:2px solid color-mix(in srgb, var(--deck-accent,#673cc2) 30%, transparent);color:#49414d;max-width:660px;margin-top:12px;padding-top:12px;font-size:clamp(15px,1.55vw,18px)}.shared-page .story-word-ratio strong{color:var(--deck-accent,#673cc2);font-size:1.7em}.shared-page .story-copy.with-rows{grid-template-columns:minmax(0,.82fr) minmax(300px,1.18fr);gap:clamp(28px,4vw,46px)}.shared-page .story-copy.with-rows h1{font-size:clamp(54px,6.3vw,78px)}.shared-page .story-copy.with-rows p{font-size:clamp(16px,1.5vw,19px)}.shared-page .story-data-rows{background:#ffffff94;border:2px solid #25202a;border-radius:18px;gap:13px;padding:18px;box-shadow:4px 4px #25202a}.shared-page .story-data-row>div{gap:14px}.shared-page .story-data-row strong,.shared-page .story-data-row b{color:#27212b;font-size:clamp(15px,1.6vw,20px)}.shared-page .story-data-row>span{background:#ded9dd;border:1px solid #8d858f;height:7px;margin-top:7px}.shared-page .story-data-row>span i,.shared-page .story-agents .story-data-row span i,.shared-page .story-models .story-data-row span i,.shared-page .story-languages .story-data-row span i,.shared-page .story-topics .story-data-row span i{background:var(--deck-accent,#673cc2)}.shared-page .story-turn-card .story-copy.with-rows{grid-template-columns:minmax(220px,.72fr) minmax(380px,1.28fr);gap:clamp(26px,3.6vw,44px)}.shared-page .story-turn-card .story-copy h1{font-size:clamp(58px,6.7vw,82px)}.session-turn-chart{background:#ffffffab;border:2px solid #25202a;border-radius:18px;width:100%;min-width:0;margin:0;padding:17px 18px 12px;box-shadow:4px 4px #25202a}.session-turn-chart figcaption{color:#625965;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:14px;font-size:11px;font-weight:800;display:flex}.session-turn-chart figcaption strong{color:#423943;white-space:nowrap;font-size:11px}.session-turn-chart figcaption b{color:var(--deck-accent);letter-spacing:-.02em;font-size:18px}.session-turn-chart svg{width:100%;display:block;overflow:visible}.turn-density-area{fill:url(#turn-density-fill);opacity:.78}.turn-density-line{fill:none;stroke:#8f3f31;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round}.turn-median-line{stroke:#282129;stroke-width:1.5px;stroke-dasharray:5 5;opacity:.68}.turn-session-dot{fill:#8f3f31;stroke:#fffaf4;stroke-width:1px;opacity:.76}.turn-axis,.turn-tick line{stroke:#746b75;stroke-width:1px}.turn-tick text{fill:#655d67;font-size:10px;font-weight:750}.session-turn-chart small{color:#766d77;letter-spacing:.03em;margin-top:-2px;font-size:10px;font-weight:650;display:block}.shared-page .story-workaround{--deck-accent:var(--deck-green)}.shared-page .story-workaround .story-headline-accent{color:var(--deck-accent)}.shared-page .story-workaround .story-copy>div:first-child>p{color:#5f5764;max-width:430px;font-weight:620}.shared-page .story-workaround .story-side{gap:20px}.shared-page .story-workaround .story-example{border:0;border-left:3px solid var(--deck-accent);box-shadow:none;background:0 0;border-radius:0;order:2;padding:3px 0 3px 18px;position:relative;transform:none}.shared-page .story-workaround .story-example>span{color:var(--deck-accent);margin-bottom:9px}.shared-page .story-workaround .story-example p{color:#34293a;font-size:clamp(17px,1.65vw,21px);font-style:italic;font-weight:720;line-height:1.3}.shared-page .story-workaround .story-example code{border:1px solid color-mix(in srgb, var(--deck-accent) 45%, white);color:#e5f3d9;box-shadow:2px 2px 0 color-mix(in srgb, var(--deck-accent) 65%, white);background:#252722}.shared-page .story-workaround .story-data-rows{order:1;padding:12px 16px;box-shadow:2px 2px #25202a}.shared-page .story-workaround .story-data-label{color:#5e5762;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:900;display:block}.shared-page .story-workaround .story-data-label+.story-data-row{padding-top:0}.shared-page .story-comparison{gap:clamp(28px,5vw,58px)}.shared-page .story-comparison>div+div{border-color:#19151e2b;padding-left:clamp(28px,5vw,58px)}.shared-page .story-comparison span{color:#19151e;font-size:clamp(21px,2.4vw,29px)}.shared-page .story-comparison strong{color:#19151e;font-size:clamp(78px,9.6vw,114px)}.shared-page .story-comparison p b{color:#19151e;font-size:clamp(19px,2.1vw,25px)}.shared-page .story-comparison-wrap blockquote{color:#69616b;font-family:inherit;font-size:clamp(14px,1.35vw,17px);font-style:normal}.shared-page .story-quote .story-copy h1{font-family:inherit;font-size:clamp(40px,4.9vw,60px);font-weight:760}.shared-page .story-research .story-copy{max-width:720px;margin:auto 0;padding:18px 0}.shared-page .story-research .story-copy h1,.shared-page .story-leaderboard .story-copy h1{font-size:clamp(42px,4.9vw,60px)}.shared-page .story-tag{text-transform:uppercase;letter-spacing:.08em;background:#ffffff85;border:1px solid #77707a;border-radius:999px;flex:none;align-self:flex-start;margin:3px 0 8px;padding:6px 9px;font-size:10px;line-height:1}.shared-page .story-cta,.shared-page .story-leaderboard .story-cta{color:#fff;box-shadow:4px 4px 0 var(--deck-accent,#673cc2);background:#19151e;border:1px solid #19151e;font-family:inherit;font-size:14px}.shared-page .story-arrow{color:#fff;width:42px;height:42px;box-shadow:4px 4px 0 var(--deck-accent,#673cc2);-webkit-backdrop-filter:none;backdrop-filter:none;background:#19151e;border:2px solid #f5f0f7;font-family:inherit;top:50%;transform:translateY(-50%)}.shared-page .story-arrow.prev{left:-64px}.shared-page .story-arrow.next{right:-64px}.shared-page .story-arrow:disabled{opacity:.12}.shared-page .story-actions button{background:#221a2b;border:1px solid #4d4555;font-family:inherit;font-size:13px}.shared-page .story-foot{color:#91879b;font-size:12px}.shared-page .story-progress{align-items:center;height:14px;margin-bottom:9px}.shared-page .story-progress button{background:0 0;border:0;height:14px;position:relative;overflow:visible}.shared-page .story-progress button:before{content:"";background:#27212d;border:1px solid #ffffff24;border-radius:999px;transition:transform .16s,box-shadow .16s;position:absolute;inset:4px 0}.shared-page .story-progress button.seen:before{background:linear-gradient(90deg,#bdf5ff,#f0b9f0,#fff0a8,#b9f5d3);border-color:#0000}.shared-page .story-progress button.active:before{transform:scaleY(1.45);box-shadow:0 0 0 2px #18121d,0 0 0 3px #dcf8aead}.shared-page .story-progress button:focus-visible{outline:0}.shared-page .story-progress button:focus-visible:before{box-shadow:0 0 0 2px #18121d, 0 0 0 4px var(--lime)}.shared-page .story-card{padding:36px 52px 34px}.shared-page .story-brand{min-height:34px}.shared-page .story-copy{width:100%;margin:auto 0;padding:16px 0}.shared-page .story-copy>div:first-child>span{margin-bottom:17px}.shared-page .story-copy h1{text-wrap:balance;font-weight:740;line-height:.98}.shared-page .story-copy p{text-wrap:pretty;max-width:760px;margin-top:17px;line-height:1.38}.shared-page .story-hero-card .story-copy{max-width:820px}.shared-page .story-metric-card .story-copy{max-width:790px;padding-bottom:22px}.shared-page .story-metric-card .story-copy h1.giant{line-height:.8}.shared-page .story-ratio-card .story-copy{max-width:none}.shared-page .story-copy p.story-word-ratio{border-top-width:1px;width:min(100%,760px);max-width:none;margin-top:14px;padding-top:14px}.shared-page .story-copy.with-rows{grid-template-columns:minmax(0,5fr) minmax(340px,7fr);align-items:start;gap:36px}.shared-page .story-copy.with-rows>div:first-child{padding-top:0}.shared-page .story-side{gap:14px}.shared-page .story-data-rows{background:#ffffffa8;border-width:1.5px;border-radius:17px;gap:0;padding:15px 17px;box-shadow:3px 3px #25202af0}.shared-page .story-data-row{padding:7px 0}.shared-page .story-data-row:first-child{padding-top:0}.shared-page .story-data-row:last-child{padding-bottom:0}.shared-page .story-data-row+.story-data-row{border-top:1px solid #27212b1a}.shared-page .story-data-row>div{align-items:center;min-height:23px}.shared-page .story-data-row strong{align-items:baseline;gap:9px;min-width:0;display:flex}.shared-page .story-data-row strong em{color:var(--deck-accent,#673cc2);text-align:center;flex:0 0 18px;font-size:12px;font-style:normal;font-weight:900}.shared-page .story-data-row>span{border-width:1px;height:6px;margin-top:6px}.shared-page .story-data-row>span i{min-width:4px}.shared-page .story-cost .story-data-rows{padding-block:13px}.shared-page .story-stock .story-copy.with-rows{grid-template-columns:minmax(0,1.15fr) minmax(350px,1fr);gap:32px}.shared-page .story-stock .story-copy h1{font-size:clamp(44px,4.4vw,54px)}.shared-page .story-workaround .story-copy{padding-block:8px}.shared-page .story-workaround .story-example{border:0;border-left:3px solid var(--deck-accent);box-shadow:none;background:0 0;border-radius:0;padding:3px 0 3px 18px;transform:none}.shared-page .story-workaround .story-data-rows{padding:12px 16px;box-shadow:2px 2px #25202a}.shared-page .story-comparison-card .story-comparison-wrap{width:100%;margin:auto 0}.shared-page .story-comparison-kicker{margin-bottom:15px;display:block}.shared-page .story-comparison-card .story-comparison{grid-template-columns:1fr 1px 1fr;align-items:stretch;gap:0}.shared-page .story-comparison-card .story-comparison:before{content:"";background:#19151e2b;grid-area:1/2;width:1px;height:100%}.shared-page .story-comparison-card .story-comparison>div{--comparison-accent:var(--deck-accent);min-width:0;padding:6px 34px 4px 20px}.shared-page .story-comparison-card .story-comparison>div:first-of-type{grid-area:1/1}.shared-page .story-comparison-card .story-comparison>div+div{border:0;grid-area:1/3;padding:6px 20px 4px 40px}.shared-page .story-comparison-card .story-comparison-item.is-yell{--comparison-accent:#b43f66}.shared-page .story-comparison-card .story-comparison-item.is-thanks{--comparison-accent:#4f7b36}.shared-page .story-comparison-card .story-comparison span{font-size:clamp(20px,2vw,25px)}.shared-page .story-comparison-card .story-comparison span em{color:var(--comparison-accent);font-style:normal}.shared-page .story-comparison-card .story-comparison p{margin-top:8px}.shared-page .story-comparison-card .story-comparison strong{color:var(--comparison-accent);font-size:clamp(66px,8vw,92px);line-height:.78}.shared-page .story-comparison-card .story-comparison p b{font-size:clamp(17px,1.8vw,21px)}.shared-page .story-comparison-card .story-comparison-wrap blockquote{border-top:2px solid color-mix(in srgb, var(--comparison-accent) 62%, transparent);color:#5b535f;max-width:none;margin:14px 0 0;padding:11px 0 0;font-size:clamp(12px,1.15vw,14px);line-height:1.35}.shared-page .story-quote .story-copy{max-width:840px}.shared-page .story-quote .story-copy h1{letter-spacing:-.05em;text-wrap:balance;line-height:.98}.shared-page .story-cta-card .story-copy{flex:1;align-items:center;margin:0;padding:12px 0 8px;display:flex}.shared-page .story-cta-card .story-copy>div{width:100%}.shared-page .story-cta-card .story-cta-group{flex:none;margin-bottom:8px}.shared-page .story-cta-card .story-cta{min-height:47px;box-shadow:3px 3px 0 var(--deck-accent,#673cc2);justify-content:space-between;gap:18px;padding-inline:18px}.shared-page .story-research .story-cta-group .story-cta{flex:0 254px}.shared-page .story-cta-group .story-cta.secondary{box-shadow:2px 2px 0 color-mix(in srgb, var(--deck-accent,#673cc2) 70%, transparent)}.shared-page .story-card .story-tag{letter-spacing:.065em;background:#ffffff47;border-color:#47404b6b;margin:4px 0 7px;padding:5px 8px;font-size:11px;font-weight:800}.shared-page .story-arrow{box-shadow:2px 2px 0 var(--deck-accent,#673cc2)}.shared-page .story-actions{background:#140e1ab8;border:1px solid #443b4d;border-radius:999px;gap:0;margin-top:16px;padding:4px;box-shadow:0 10px 28px #0000002e}.shared-page .story-actions button{background:0 0;border:0;min-height:32px;padding:7px 14px;font-size:12px}.shared-page .story-actions button+button{border-left:1px solid #443b4d;border-radius:0 999px 999px 0}.shared-page .story-foot{color:#a097a8;margin-top:10px;font-size:11px}.shared-loading,.shared-error{text-align:center;color:#aaa4b5;background:#09090b;place-content:center;min-height:100vh;display:grid}.shared-error h1{color:#fff;font-size:48px}.shared-error a{color:var(--lime)}.leaderboard-page{color:#f7f4ff;background:#0b0a10;min-height:100vh;padding:42px clamp(20px,7vw,110px) 110px}.leader-back{color:#aaa4b3;font-size:12px;font-weight:750;text-decoration:none}.leader-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px;max-width:1440px;margin:auto;display:grid}.leader-metric{color:#18151e;border-radius:28px;min-width:0;padding:clamp(24px,3vw,40px)}.token-leader{background:#d8ff61}.ratio-leader{background:#e5d8ff}.leader-metric-head{justify-content:space-between;align-items:flex-end;gap:22px;display:flex}.leader-metric-head span{color:#5c6450;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:850}.leader-metric-head h2{letter-spacing:-.05em;margin:6px 0 0;font-size:clamp(24px,3vw,38px)}.leader-metric-head>strong{letter-spacing:-.07em;flex:none;font-size:clamp(48px,6vw,82px);line-height:.85}.percentile-callout{background:#ffffff7a;border-radius:12px;margin:32px 0 22px;padding:13px 15px;font-size:12px;font-weight:800}.distribution-chart{border-bottom:1px solid #14121938;grid-auto-columns:1fr;grid-auto-flow:column;align-items:end;gap:8px;height:190px;padding-top:15px;display:grid}.distribution-column{text-align:center;grid-template-rows:1fr auto 32px;align-items:end;min-width:0;height:100%;display:grid}.distribution-column>span{justify-content:center;align-self:stretch;align-items:end;display:flex}.distribution-column i{background:#16131c;border-radius:8px 8px 0 0;width:min(48px,72%);min-height:2px;display:block}.distribution-column b{margin-top:6px;font-size:10px}.distribution-column small{color:#68616e;white-space:nowrap;align-self:center;font-size:8px}.leader-top{margin-top:35px}.leader-top h3{text-transform:uppercase;letter-spacing:.1em;margin:0 0 12px;font-size:13px}.leader-top>div{border-top:1px solid #1412191f;justify-content:space-between;gap:12px;padding:11px 0;font-size:12px;display:flex}.leader-top>div span{gap:11px;display:flex}.leader-top>div b{color:#777080}.phrase-board-heading{justify-content:space-between;align-items:end;gap:35px;margin-bottom:40px;display:flex}.phrase-board-heading h2{letter-spacing:-.06em;margin:14px 0 0;font-size:clamp(48px,6vw,82px);line-height:.9}.phrase-board-heading aside{background:var(--pink);color:#26141f;border-radius:20px;flex-direction:column;gap:9px;width:min(420px,45%);padding:24px;display:flex}.phrase-board-heading aside span{letter-spacing:.13em;text-transform:uppercase;font-size:9px;font-weight:900}.phrase-board-heading aside small{opacity:.64}.phrase-wall article{break-inside:avoid;color:#211c25;background:#f4f0e8;border-radius:20px;margin:0 0 13px;padding:22px}.phrase-wall article:nth-child(4n+2){background:#d8ff61}.phrase-wall article:nth-child(4n+3){background:#e5d8ff}.phrase-wall article:nth-child(4n+4){background:#ff9d88}.phrase-wall p{margin:0 0 18px;font-family:Georgia,serif;font-size:24px;line-height:1.05}.phrase-wall span{color:#6f6873;font-size:10px;font-weight:750}.empty-phrase-wall{color:#8e8796;text-align:center;border:1px dashed #48434e;border-radius:24px;padding:80px}.leader-join{background:#15131a;border:1px solid #312d38;border-radius:30px;max-width:1000px;margin:100px auto 0;padding:clamp(28px,5vw,62px)}.leader-join h2{letter-spacing:-.055em;margin:14px 0;font-size:clamp(36px,5vw,62px)}.leader-join>div:first-child p{color:#a29ca9;max-width:760px;font-size:12px;line-height:1.65}.leader-preview{grid-template-columns:repeat(3,1fr);gap:10px;margin:30px 0;display:grid}.leader-preview>span{background:#211e28;border-radius:14px;flex-direction:column;gap:7px;min-width:0;padding:15px;display:flex}.leader-preview small{color:#8c8595;text-transform:uppercase;letter-spacing:.1em;font-size:9px}.leader-preview strong{overflow-wrap:anywhere;font-size:14px}.leader-field{color:#b5aebd;text-transform:uppercase;letter-spacing:.09em;flex-direction:column;gap:8px;margin:24px 0;font-size:10px;font-weight:800;display:flex}.leader-field input{color:#fff;text-transform:none;letter-spacing:0;background:#0e0d12;border:1px solid #39343f;border-radius:12px;padding:13px}.leader-check{color:#c4bdcb;align-items:flex-start;gap:11px;margin:11px 0;font-size:11px;line-height:1.5;display:flex}.leader-check.consent{background:#211e28;border-radius:13px;margin-top:24px;padding:15px}.leader-buttons{gap:11px;margin-top:24px;display:flex}.leader-remove{color:#a9a2af;background:0 0;border:1px solid #4a444f;border-radius:12px;padding:13px 16px;font-size:11px;font-weight:800}.leader-public-note{text-align:center;background:#15131a;border:1px solid #34303a;border-radius:22px;max-width:760px;margin:90px auto 0;padding:28px}.leader-public-note strong{color:var(--lime);font-size:18px}.leader-public-note p{color:#aaa3b1;font-size:12px;line-height:1.6}.leaderboard-page{--foil:conic-gradient(from 140deg, #d7fbff, #a9edff, #f0b9f0, #fff0a8, #b9f5d3, #fdfdff, #d7fbff);color:#f7f4ff;background:radial-gradient(circle at 50% 4%,#3f2059 0,#1c1328 18%,#0d0a12 46%,#09080d 100%);padding:34px clamp(24px,6vw,92px) 110px;font-family:inherit}.leaderboard-page:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff05 1px,#0000 1px),linear-gradient(90deg,#ffffff05 1px,#0000 1px);background-size:42px 42px;position:fixed;inset:0}.leaderboard-page>*{z-index:1;position:relative}.leader-back{color:#d2c9d7;letter-spacing:.01em;background:#130e198c;border:1px solid #4b4153;border-radius:999px;align-items:center;min-height:34px;padding:0 13px;font-size:12px;display:inline-flex}.leader-hero{max-width:1040px;padding:76px 0 70px}.leader-hero>span,.phrase-board-heading>div>span,.leader-join>div:first-child>span{color:#c9f24b;letter-spacing:.18em;text-transform:uppercase;font-size:11px;font-weight:900}.leader-hero h1{letter-spacing:-.065em;max-width:880px;margin:18px 0 24px;font-size:clamp(64px,8.5vw,110px);line-height:.84}.leader-hero p{color:#b9b0c0;max-width:680px;font-size:15px;line-height:1.65}.leader-grid{gap:22px;max-width:1280px}.leader-metric{--leader-accent:#6b7e2f;background:linear-gradient(145deg, #fffffffa, #efebe5fa) padding-box, var(--foil) border-box;color:#19151e;border:8px solid #0000;border-radius:30px;min-height:550px;padding:clamp(25px,3vw,36px);box-shadow:0 26px 70px #00000052}.ratio-leader{--leader-accent:#684694}.human-leader{--leader-accent:#a94763}.workaround-leader{--leader-accent:#397990}.leader-metric-head{align-items:center;gap:24px}.leader-metric-head span{color:var(--leader-accent);letter-spacing:.14em;font-size:10px}.leader-metric-head h2{max-width:330px;margin-top:7px;font-size:clamp(26px,2.8vw,37px);line-height:1.03}.leader-metric-head>strong{font-size:clamp(52px,5.7vw,74px);line-height:.86}.percentile-callout{border:1px solid color-mix(in srgb, var(--leader-accent) 28%, transparent);background:color-mix(in srgb, var(--leader-accent) 9%, white);color:#3e3743;border-radius:11px;margin:26px 0 18px;padding:12px 14px;font-size:12px}.distribution-chart{border-color:#cfc8d0;gap:7px;height:176px}.distribution-column i{background:var(--leader-accent)}.distribution-column b{font-size:10px}.distribution-column small{color:#706873;font-size:8px}.leader-top{margin-top:28px;padding-top:4px}.leader-top h3{letter-spacing:.14em;font-size:12px}.leader-top>div{border-color:#d7d1d8;font-size:13px}.leader-top p{color:#6d6571;font-size:12px}.phrase-board-section{max-width:1280px;margin:96px auto}.phrase-board-heading{margin-bottom:34px}.phrase-board-heading h2{max-width:760px;margin-top:12px;font-size:clamp(48px,5.6vw,74px);line-height:.92}.phrase-board-heading aside{background:linear-gradient(#f6f1e9, #eee8e1) padding-box, var(--foil) border-box;color:#251e29;border:5px solid #0000;border-radius:22px;width:min(390px,42%)}.phrase-board-heading aside span{font-size:10px}.phrase-board-heading aside strong{font-family:inherit;font-size:24px;line-height:1.12}.phrase-board-heading aside small{font-size:12px}.phrase-wall{columns:4 220px;column-gap:16px}.phrase-wall article{--phrase-accent:#76508c;color:#211c25;background:linear-gradient(145deg,#fff,#eeeae4);border:1px solid #d6ced8;border-radius:18px;margin-bottom:16px;padding:24px;position:relative;overflow:hidden;box-shadow:0 12px 28px #0000002e}.phrase-wall article:before{content:"";background:linear-gradient(90deg,#bdf5ff,#f0b9f0,#fff0a8,#b9f5d3);height:5px;position:absolute;inset:0 0 auto}.phrase-wall article:nth-child(4n+2),.phrase-wall article:nth-child(4n+3),.phrase-wall article:nth-child(4n+4){background:linear-gradient(145deg,#fff,#eeeae4)}.phrase-wall p{font-family:inherit;font-size:22px;line-height:1.12}.phrase-wall span{font-size:11px}.empty-phrase-wall{background:linear-gradient(#17131c, #17131c) padding-box, var(--foil) border-box;color:#aaa1b0;border:5px solid #0000;border-radius:24px;padding:72px;font-size:17px}.leader-join{background:linear-gradient(145deg, #18131dfa, #100d15fa) padding-box, var(--foil) border-box;border:6px solid #0000;border-radius:30px;max-width:1000px;margin-top:104px;padding:clamp(30px,5vw,56px);box-shadow:0 28px 80px #00000057}.leader-join h2{max-width:780px;margin:14px 0 16px;font-size:clamp(40px,4.5vw,58px);line-height:.98}.leader-join>div:first-child p{color:#b9b0c0;font-size:13px}.leader-preview{grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin:28px 0}.leader-preview>span{background:#211b28;border:1px solid #37313d;border-radius:12px;padding:14px 16px}.leader-preview small{font-size:10px}.leader-preview strong{font-size:15px}.leader-field{font-size:11px}.leader-field input{background:#0e0b12;border-color:#49404f;border-radius:10px}.leader-check{color:#d0c7d4;font-size:12px}.leader-buttons .primary{box-shadow:4px 4px #7253a0}.leader-remove{font-size:12px}.leader-public-note{background:linear-gradient(#17131c, #17131c) padding-box, var(--foil) border-box;border:5px solid #0000}.leader-public-note p{font-size:13px}@media (width>=820px) and (width<=1120px){.shared-page{padding-inline:62px}.shared-page .story-progress,.shared-page .story-card{width:min(960px,100vw - 124px)}.shared-page .story-card{padding-inline:46px;overflow:visible}.shared-page .story-arrow.prev{left:-52px}.shared-page .story-arrow.next{right:-52px}.shared-page .story-copy.with-rows{grid-template-columns:minmax(0,.82fr) minmax(250px,1.18fr);gap:24px}}@media (width>=701px) and (width<=819px){.shared-page{padding-inline:22px}.shared-page .story-progress,.shared-page .story-card{width:calc(100vw - 44px)}.shared-page .story-card{padding-inline:72px;overflow:hidden}.shared-page .story-arrow.prev{left:12px}.shared-page .story-arrow.next{right:12px}.shared-page .story-copy.with-rows{grid-template-columns:minmax(0,.8fr) minmax(240px,1.2fr);gap:20px}.shared-page .story-turn-card .story-copy.with-rows{grid-template-columns:minmax(180px,.65fr) minmax(280px,1.35fr);gap:18px}.shared-page .story-turn-card .story-copy h1{font-size:54px}.session-turn-chart{padding-inline:14px}.shared-page .story-data-rows{gap:11px;padding:14px}.shared-page .story-data-row strong,.shared-page .story-data-row b{font-size:15px}}@media (width<=700px){.shared-page{justify-content:flex-start;padding:20px 14px 28px}.shared-page .story-progress,.shared-page .story-card{width:100%}.story-card,.shared-page .story-card{aspect-ratio:auto;border-width:8px;border-radius:25px;min-height:660px;max-height:none;padding:28px 24px 24px;overflow:hidden}.shared-page .story-card:before{border-radius:16px;inset:12px}.story-brand{font-size:12px}.story-brand .brand-mark{width:27px;height:27px}.story-copy h1{font-size:clamp(43px,13vw,62px)}.story-copy h1.giant{font-size:clamp(92px,30vw,140px)}.story-copy p{font-size:18px}.story-actions{flex-wrap:wrap;justify-content:center}.story-foot{text-align:center}.shared-page .story-brand{font-size:12px}.shared-page .story-copy{padding:22px 18px 14px}.shared-page .story-copy h1{font-size:clamp(42px,12.5vw,60px)}.shared-page .story-copy h1.giant{font-size:clamp(80px,26vw,120px)}.shared-page .story-copy p{font-size:18px}.shared-page .story-copy>div:first-child>span{margin-bottom:16px;font-size:15px}.story-research .story-copy,.shared-page .story-research .story-copy{margin:auto 0}.story-research .story-copy h1,.shared-page .story-research .story-copy h1{font-size:36px}.story-research .story-copy p{font-size:17px}.story-quote .story-copy h1,.shared-page .story-quote .story-copy h1{font-size:clamp(36px,10.2vw,48px)}.story-comparison{grid-template-columns:1fr;gap:22px}.story-comparison>div+div{border-top:1px solid #46230f29;border-left:0;padding-top:20px;padding-left:0}.story-comparison span{font-size:23px}.story-comparison strong{font-size:84px}.story-comparison-wrap blockquote{margin-top:22px;font-size:15px}.shared-page .story-comparison-card .story-comparison{grid-template-rows:auto 1px auto;grid-template-columns:1fr;gap:14px}.shared-page .story-comparison-card .story-comparison:before{grid-area:2/1;width:100%;height:1px}.shared-page .story-comparison-card .story-comparison>div,.shared-page .story-comparison-card .story-comparison>div:first-of-type{grid-area:1/1;padding:0 18px}.shared-page .story-comparison-card .story-comparison>div+div{border:0;grid-area:3/1;padding:0 18px}.shared-page .story-comparison-card .story-comparison strong{font-size:66px}.shared-page .story-comparison-card .story-comparison-wrap blockquote{margin-top:12px}.shared-page .story-comparison-card .story-arrow{top:57%}.story-copy.with-rows,.shared-page .story-copy.with-rows{grid-template-columns:1fr;gap:22px}.story-copy.with-rows h1,.shared-page .story-copy.with-rows h1{font-size:clamp(46px,14.5vw,66px)}.shared-page .story-data-rows{gap:11px;padding:15px;box-shadow:3px 3px #25202a}.story-data-row strong,.story-data-row b,.shared-page .story-data-row strong,.shared-page .story-data-row b{font-size:15px}.shared-page .story-turn-card .story-copy.with-rows{grid-template-columns:1fr;gap:16px}.shared-page .story-turn-card .story-copy h1{font-size:clamp(48px,15vw,64px)}.shared-page .story-turn-card .story-copy p{margin-top:12px;font-size:16px}.session-turn-chart{padding:14px 12px 10px;box-shadow:3px 3px #25202a}.session-turn-chart figcaption{font-size:10px}.session-turn-chart figcaption b{font-size:16px}.shared-page .story-stock .story-copy.with-rows{grid-template-columns:1fr;gap:18px}.shared-page .story-stock .story-copy h1{font-size:clamp(44px,13vw,58px)}.shared-page .story-copy.with-rows>div:first-child{padding-top:0}.shared-page .story-stock .story-arrow.prev{left:0}.shared-page .story-stock .story-arrow.next{right:0}.shared-page .story-quote .story-arrow{top:72%}.shared-page .story-workaround .story-example{padding:3px 0 3px 16px;transform:none}.shared-page .story-workaround .story-example p{font-size:17px}.shared-page .story-arrow{width:36px;height:36px;box-shadow:3px 3px 0 var(--deck-accent,#673cc2);font-size:23px}.shared-page .story-arrow.prev{left:8px}.shared-page .story-arrow.next{right:8px}.shared-page .story-cta-card .story-arrow{top:68%}.story-leaderboard .story-copy h1,.shared-page .story-leaderboard .story-copy h1{font-size:clamp(36px,10.5vw,48px)}.shared-page .story-cta-card .story-copy{padding-inline:18px}.shared-page .story-research .story-cta-group .story-cta{flex:100%}.shared-page .story-cta-choice{flex-basis:100%}.leaderboard-page{padding:22px 16px 72px}.leader-grid{grid-template-columns:1fr}.leader-hero{padding:58px 0 54px}.leader-hero h1{margin-block:16px 20px;font-size:clamp(58px,18.5vw,84px)}.leader-metric{border-width:6px;min-height:500px;padding:23px}.leader-metric-head{flex-direction:column;align-items:flex-start;gap:16px}.leader-metric-head>strong{font-size:58px}.phrase-board-section{margin-block:68px}.phrase-board-heading{flex-direction:column;align-items:flex-start}.phrase-board-heading h2{font-size:clamp(44px,13.5vw,62px)}.phrase-board-heading aside{width:100%}.empty-phrase-wall{padding:56px 24px}.leader-join{border-width:5px;margin-top:68px;padding:25px}.leader-join h2{font-size:clamp(38px,11.5vw,50px)}.leader-preview{grid-template-columns:1fr}.leader-buttons{flex-direction:column;align-items:stretch}}.leaderboard-page{--leader-bg:#f7f4ed;--leader-text:#19151e;--leader-muted:#6f6873;background:radial-gradient(circle at 72% -12%, #e9ddf5 0, #f2ecf2 24%, var(--leader-bg) 58%);color:var(--leader-text);padding:26px clamp(18px,5vw,72px) 96px}.leaderboard-page:before{display:none}.leader-back{color:#655e69;background:0 0;border:0;border-radius:0;min-height:30px;padding:0}.leader-hero{max-width:1120px;margin:0 auto;padding:38px 0 34px}.leader-hero>span{color:#587120;letter-spacing:.15em;font-size:10px}.leader-hero h1{letter-spacing:-.055em;margin:10px 0 12px;font-size:clamp(42px,6vw,72px);line-height:.9}.leader-hero p{max-width:none;color:var(--leader-muted);margin:0;font-size:13px;line-height:1.45}.leader-figures{max-width:1120px;margin:0 auto}.leader-figure{--figure-accent:#627c25;border-top:1px solid #d6cfd8;padding:42px 0 46px}.leader-relationship-figure{--figure-accent:#754ba8}.leader-workaround-figure{--figure-accent:#26798b;border-bottom:1px solid #d6cfd8}.leader-figure-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:28px;margin-bottom:22px;display:grid}.leader-figure-head span{color:var(--figure-accent);letter-spacing:.14em;text-transform:uppercase;font-size:10px;font-weight:850}.leader-figure-head h2{letter-spacing:-.045em;text-wrap:balance;max-width:780px;margin:8px 0 0;font-size:clamp(28px,4vw,48px);line-height:1}.leader-result{text-align:right;justify-items:end;gap:5px;display:grid}.leader-result strong{color:var(--figure-accent);letter-spacing:-.055em;font-size:clamp(40px,5vw,62px);line-height:.85}.leader-result small{color:var(--leader-muted);font-size:11px;font-weight:750}.leader-result-pair{grid-template-columns:auto auto;align-items:baseline;column-gap:9px}.leader-result-pair strong{font-size:clamp(30px,4vw,48px)}.leader-result-pair small{justify-self:start}.leader-plot{width:100%;min-width:0;position:relative}.leader-plot svg{width:100%;display:block;overflow:visible}.leader-chart-frame{fill:#ffffff6b;stroke:#d4cdd6;stroke-width:1px}.leader-violin{fill:color-mix(in srgb, var(--figure-accent) 18%, transparent);stroke:color-mix(in srgb, var(--figure-accent) 58%, transparent);stroke-width:1.5px}.leader-dot{fill:color-mix(in srgb, var(--figure-accent) 78%, white);stroke:color-mix(in srgb, var(--figure-accent) 62%, white);stroke-width:1px;opacity:.78}.leader-interactive-point{cursor:default;outline:none}.leader-interactive-point:focus .leader-dot,.leader-interactive-point:focus .leader-you-dot{stroke:#19151e;stroke-width:2px;opacity:1}.leader-point-hit{fill:#0000;stroke:none;pointer-events:all}.leader-hover-tooltip{z-index:5;color:#34283e;text-align:center;white-space:normal;overflow-wrap:anywhere;pointer-events:none;background:#fffdf8;border:1px solid #aa98bc;border-radius:8px;width:max-content;max-width:min(300px,100% - 24px);padding:8px 11px;font-size:11px;font-weight:750;line-height:1.4;position:absolute;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 8px 22px #432f4f24}.leader-hover-tooltip strong,.leader-hover-tooltip span{display:block}.leader-hover-tooltip strong{color:#6d4a8b;margin-bottom:2px}.leader-median{stroke:#19151e;stroke-width:1px;stroke-dasharray:4 4;opacity:.48}.leader-you-ring{fill:color-mix(in srgb, var(--figure-accent) 14%, transparent);stroke:#19151e;stroke-width:2px}.leader-you-dot{fill:var(--figure-accent);stroke:#fff;stroke-width:2px}.leader-you-label{fill:#19151e;letter-spacing:.1em;font-size:10px;font-weight:900}.leader-interactive-point.is-opted-out .leader-you-ring{fill:#b8664f21;stroke:#a85f4c;stroke-dasharray:3 2}.leader-interactive-point.is-opted-out .leader-you-dot{fill:#b8664f}.leader-axis,.leader-tick,.leader-grid-line{stroke:#8a818e;stroke-width:1px}.leader-grid-line{stroke-dasharray:4 5;opacity:.6}.leader-tick-label{fill:#746c78;font-size:10px}.leader-axis-title{fill:#5f5864;font-size:11px;font-weight:650}.leader-edge-pill rect{fill:#f7f4ed;stroke:#bcb3c0;stroke-width:1px}.leader-edge-pill text{fill:#514956;letter-spacing:.025em;text-transform:uppercase;font-size:10px;font-weight:800}.leader-quadrant{stroke:none}.leader-quadrant-kind{fill:#50a87f14}.leader-quadrant-yap{fill:#93b32617}.leader-quadrant-tense{fill:#754ba812}.leader-quadrant-podcast{fill:#d6675214}.leader-quadrant-label{fill:#4e4852;font-size:11px;font-weight:750}.relationship-dot{fill:#8058b2}.workaround-dot{fill:#31899b}.leader-figure-note{max-width:720px;color:var(--leader-muted);margin:8px 0 0;font-size:11px;line-height:1.5}.leader-join{color:#19151e;max-width:900px;box-shadow:none;background:#ffffffad;border-width:1px;border-color:#d4cdd6;border-radius:20px;margin-top:72px}.leader-join h2{margin-top:10px;font-size:clamp(34px,4vw,48px)}.leader-join>div:first-child p{color:#69616d}.leader-preview{grid-template-columns:repeat(4,minmax(0,1fr))}.leader-preview>span{background:#f0ebf1;border-color:#ddd6df}.leader-preview small,.leader-field{color:#756d79}.leader-check{color:#4f4854}.leader-check.consent{background:#f0ebf1;border:1px solid #ddd6df}.leader-public-note{color:#19151e;background:#ffffffad;border-width:1px;border-color:#d4cdd6;margin-top:72px}.leader-public-note p{color:#69616d}.leader-public-note code{color:#4e2c8b}.leader-donation{color:#19151e;background:#ffffffad;border:1px solid #d4cdd6;border-radius:20px;justify-content:space-between;align-items:center;gap:30px;max-width:900px;margin:72px auto 0;padding:clamp(24px,4vw,38px);display:flex}.leader-donation h2{letter-spacing:-.045em;margin:9px 0 8px;font-size:clamp(26px,3vw,38px);line-height:1}.leader-donation p{color:#69616d;max-width:610px;margin:0;font-size:12px;line-height:1.55}.leader-donation .primary{white-space:nowrap;flex:none;text-decoration:none}.leader-opt-out{color:#19151e;background:#ffffff7a;border:1px solid #d4cdd6;border-radius:14px;justify-content:space-between;align-items:center;gap:20px;max-width:900px;margin:14px auto 0;padding:18px 20px;display:flex}.leader-opt-out p{color:#5f5864;margin:0;font-size:13px}.leader-opt-out .error{margin-top:6px;display:block}.leader-opt-out .leader-remove,.leader-opt-out .primary{flex:none}@media (width<=700px){.leaderboard-page{padding:20px 14px 68px}.leader-hero{padding:28px 0 26px}.leader-hero h1{margin-block:9px 10px;font-size:clamp(40px,13vw,56px)}.leader-figure{padding:32px 0 36px}.leader-figure-head{grid-template-columns:1fr;align-items:start;gap:18px}.leader-figure-head h2{font-size:clamp(29px,9vw,39px)}.leader-result{text-align:left;justify-items:start}.leader-result-pair{grid-template-columns:auto auto}.leader-result strong{font-size:42px}.leader-result-pair strong{font-size:34px}.leader-quadrant-label{font-size:9px}.leader-axis-title{font-size:10px}.leader-edge-pill text{font-size:9px}.leader-join{border-width:1px;margin-top:54px;padding:24px}.leader-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.leader-donation{flex-direction:column;align-items:stretch;padding:24px}.leader-donation .primary{text-align:center;white-space:normal}.leader-opt-out{flex-direction:column;align-items:stretch}}.donation-mode-links{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.donation-mode-links a{color:#1a1520;border:1px solid #393244;border-radius:999px;padding:10px 16px;font-weight:750;text-decoration:none}.donation-mode-links a.active{color:#12101f;background:#c9f24b;border-color:#c9f24b;font-weight:800}.donation-summary{background:#17131e;border:1px solid #332b3d;border-radius:18px;gap:10px;padding:20px;display:grid}.donation-summary strong{color:#f8f5ff;font-size:20px}.donation-summary span{color:#aaa3ba}.donation-summary a{color:#c9f24b}.donation-message-row{position:relative}.bundle-session-toggle{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;display:flex}.bundle-session-toggle span{gap:3px;font-weight:850;display:grid}.bundle-session-toggle small{color:#81798a;font-weight:600}.bundle-session-toggle b{color:#6f43d6}.remove-message{color:#c7bfce;cursor:pointer;background:#1a1520;border:1px solid #493d55;border-radius:999px;padding:6px 10px;position:absolute;top:10px;right:10px}.donation-success{text-align:center;max-width:760px;margin:12vh auto}.landing-page code{color:#c9f24b;background:#17131e;border-radius:14px;padding:18px 24px;font-size:18px;display:block}.landing-page .brand-mark{width:64px;height:64px}.landing-note{color:#81798a;font-size:14px}
|
package/dist/index.html
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<meta name="theme-color" content="#0d0b1b" />
|
|
7
|
+
<meta name="description" content="Your private, local-first Claude Code behavior report." />
|
|
8
|
+
<title>Behavior Wrapped</title>
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-0bjvY6uC.js"></script>
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/assets/index-Cjdrcfkw.css">
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="root"></div>
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
{"timestamp":"2026-06-07T10:00:00.000Z","type":"session_meta","payload":{"id":"codex-synthetic-1","session_id":"codex-synthetic-1","timestamp":"2026-06-07T10:00:00.000Z","cwd":"/Users/demo/synthetic-studio","model_provider":"openai","source":"synthetic"}}
|
|
2
|
+
{"timestamp":"2026-06-07T10:00:01.000Z","type":"turn_context","payload":{"cwd":"/Users/demo/synthetic-studio","model":"gpt-5.6-sol"}}
|
|
3
|
+
{"timestamp":"2026-06-07T10:00:02.000Z","type":"response_item","payload":{"type":"message","role":"user","content":[{"type":"input_text","text":"Please verify the synthetic dashboard build."}]}}
|
|
4
|
+
{"timestamp":"2026-06-07T10:00:05.000Z","type":"response_item","payload":{"type":"message","role":"assistant","content":[{"type":"output_text","text":"Let me check that carefully."}]}}
|
|
5
|
+
{"timestamp":"2026-06-07T10:00:07.000Z","type":"response_item","payload":{"type":"function_call","name":"exec_command","call_id":"synthetic-call-1","arguments":"{}"}}
|
|
6
|
+
{"timestamp":"2026-06-07T10:00:09.000Z","type":"response_item","payload":{"type":"function_call_output","call_id":"synthetic-call-1","output":"synthetic build passed"}}
|
|
7
|
+
{"timestamp":"2026-06-07T10:00:10.000Z","type":"event_msg","payload":{"type":"token_count","info":{"total_token_usage":{"input_tokens":800,"output_tokens":200,"cache_write_input_tokens":0,"cached_input_tokens":1000,"reasoning_output_tokens":50,"total_tokens":2050}}}}
|
|
8
|
+
{"timestamp":"2026-06-07T10:00:12.000Z","type":"event_msg","payload":{"type":"task_complete","started_at":"2026-06-07T10:00:01.000Z","completed_at":"2026-06-07T10:00:12.000Z","duration_ms":11000,"turn_id":"synthetic-turn-1"}}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{"type":"user","uuid":"u20","sessionId":"33333333-3333-4333-8333-333333333333","cwd":"/Users/demo/notes-lab","timestamp":"2026-06-09T19:00:00.000Z","message":{"role":"user","content":"Make the note cards feel calmer."}}
|
|
2
|
+
{"type":"assistant","uuid":"a20","sessionId":"33333333-3333-4333-8333-333333333333","timestamp":"2026-06-09T19:00:10.000Z","message":{"role":"assistant","model":"claude-opus-4-8","content":[{"type":"text","text":"I'll soften the border, spacing, and contrast, then check the result in the browser."},{"type":"tool_use","id":"t20","name":"Edit","input":{"file_path":"src/Notes.css"}}],"usage":{"input_tokens":1200,"output_tokens":300,"cache_read_input_tokens":4000,"cache_creation_input_tokens":0}}}
|
|
3
|
+
{"type":"assistant","uuid":"a21","sessionId":"33333333-3333-4333-8333-333333333333","timestamp":"2026-06-09T19:02:00.000Z","message":{"role":"assistant","content":[{"type":"tool_use","id":"t21","name":"Browser","input":{"action":"screenshot"}}]}}
|
|
4
|
+
{"type":"user","uuid":"tr20","sessionId":"33333333-3333-4333-8333-333333333333","timestamp":"2026-06-09T19:02:08.000Z","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"t21","content":"synthetic screenshot captured"}]}}
|
|
5
|
+
{"type":"assistant","uuid":"a22","sessionId":"33333333-3333-4333-8333-333333333333","timestamp":"2026-06-09T19:03:00.000Z","message":{"role":"assistant","content":"The update is complete and visually verified."}}
|
|
6
|
+
{"type":"assistant","uuid":"a23","sessionId":"33333333-3333-4333-8333-333333333333","timestamp":"2026-06-09T19:03:10.000Z","message":{"role":"assistant","content":"Let me check that carefully."}}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{"type":"user","uuid":"u1","sessionId":"11111111-1111-4111-8111-111111111111","cwd":"/Users/demo/synthetic-studio","timestamp":"2026-06-02T16:00:00.000Z","message":{"role":"user","content":"Please add a compact export button to the dashboard."}}
|
|
2
|
+
{"type":"assistant","uuid":"a1","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:00:10.000Z","message":{"role":"assistant","content":[{"type":"text","text":"I'll inspect the interface and add the button."},{"type":"tool_use","id":"t1","name":"Read","input":{"file_path":"src/Dashboard.tsx"}}]}}
|
|
3
|
+
{"type":"user","uuid":"tr1","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:00:12.000Z","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"t1","content":"synthetic component source"}]}}
|
|
4
|
+
{"type":"assistant","uuid":"a2","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:02:00.000Z","message":{"role":"assistant","content":[{"type":"text","text":"Implemented the export button. While I'm at it, I also went ahead and changed the navigation colors."},{"type":"tool_use","id":"t2","name":"Edit","input":{"file_path":"src/Dashboard.tsx"}}]}}
|
|
5
|
+
{"type":"user","uuid":"u2","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:02:30.000Z","message":{"role":"user","content":"No, that's not what I asked for. Please leave the navigation alone."}}
|
|
6
|
+
{"type":"assistant","uuid":"a3","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:02:42.000Z","message":{"role":"assistant","content":"You're right—thanks for catching that. I'll revert the navigation change and keep the export button scoped to the dashboard."}}
|
|
7
|
+
{"type":"assistant","uuid":"a4","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:04:00.000Z","message":{"role":"assistant","content":[{"type":"tool_use","id":"t3","name":"Edit","input":{"file_path":"src/Nav.tsx"}},{"type":"tool_use","id":"t4","name":"Bash","input":{"command":"npm test"}}]}}
|
|
8
|
+
{"type":"user","uuid":"tr2","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:05:00.000Z","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"t4","content":"3 synthetic tests passed"}]}}
|
|
9
|
+
{"type":"assistant","uuid":"a5","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:05:12.000Z","message":{"role":"assistant","content":"The scoped change is complete and the synthetic tests pass."}}
|
|
10
|
+
{"type":"assistant","uuid":"a6","sessionId":"11111111-1111-4111-8111-111111111111","timestamp":"2026-06-02T16:05:20.000Z","message":{"role":"assistant","content":"Let me check that carefully."}}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{"type":"user","uuid":"u10","sessionId":"22222222-2222-4222-8222-222222222222","cwd":"/Users/demo/synthetic-studio","timestamp":"2026-06-05T17:00:00.000Z","message":{"role":"user","content":"Delete all generated preview files and publish the package."}}
|
|
2
|
+
{"type":"assistant","uuid":"a10","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:00:11.000Z","message":{"role":"assistant","content":"Before I do that, should I delete only the build previews, and do you want me to publish to the public registry or just create a local package?"}}
|
|
3
|
+
{"type":"user","uuid":"u11","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:00:40.000Z","message":{"role":"user","content":"Only build previews. Create a local package. My test email is demo.person@example.com and token=sk-test_demo_12345678901234567890."}}
|
|
4
|
+
{"type":"assistant","uuid":"a11","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:01:00.000Z","message":{"role":"assistant","content":[{"type":"text","text":"Understood. I'll remove only generated previews."},{"type":"tool_use","id":"t10","name":"Bash","input":{"command":"safe synthetic cleanup"}}]}}
|
|
5
|
+
{"type":"user","uuid":"tr10","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:01:02.000Z","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"t10","is_error":true,"content":"synthetic permission error"}]}}
|
|
6
|
+
{"type":"assistant","uuid":"a12","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:01:09.000Z","message":{"role":"assistant","content":[{"type":"text","text":"I'll try that cleanup once more."},{"type":"tool_use","id":"t11","name":"Bash","input":{"command":"safe synthetic cleanup retry"}}]}}
|
|
7
|
+
{"type":"user","uuid":"tr11","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:01:12.000Z","message":{"role":"user","content":[{"type":"tool_result","tool_use_id":"t11","content":"synthetic cleanup complete"}]}}
|
|
8
|
+
{"type":"system","uuid":"s1","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:01:20.000Z","subtype":"interrupt","content":"User interrupted the operation"}
|
|
9
|
+
{"type":"assistant","uuid":"a13","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:06:00.000Z","message":{"role":"assistant","content":"Done. The local package is ready."}}
|
|
10
|
+
{"type":"assistant","uuid":"a14","sessionId":"22222222-2222-4222-8222-222222222222","timestamp":"2026-06-05T17:06:10.000Z","message":{"role":"assistant","content":"Let me check that carefully."}}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "behavior-wrapped",
|
|
3
|
+
"version": "0.2.11",
|
|
4
|
+
"description": "A private, local-first Wrapped report for Claude Code and Codex behavior.",
|
|
5
|
+
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"author": "Haoxing Du",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/haoxing-du/agent-behavior-wrapped.git"
|
|
11
|
+
},
|
|
12
|
+
"homepage": "https://github.com/haoxing-du/agent-behavior-wrapped#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/haoxing-du/agent-behavior-wrapped/issues"
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"claude-code",
|
|
21
|
+
"local-first",
|
|
22
|
+
"behavior-analysis",
|
|
23
|
+
"wrapped"
|
|
24
|
+
],
|
|
25
|
+
"os": [
|
|
26
|
+
"darwin"
|
|
27
|
+
],
|
|
28
|
+
"files": [
|
|
29
|
+
"dist/",
|
|
30
|
+
"server/",
|
|
31
|
+
"scripts/",
|
|
32
|
+
"fixtures/",
|
|
33
|
+
"README.md"
|
|
34
|
+
],
|
|
35
|
+
"bin": {
|
|
36
|
+
"behavior-wrapped": "server/cli.mjs"
|
|
37
|
+
},
|
|
38
|
+
"scripts": {
|
|
39
|
+
"dev": "vite",
|
|
40
|
+
"build": "tsc --noEmit && vite build",
|
|
41
|
+
"start": "node server/launcher.mjs",
|
|
42
|
+
"demo": "node server/launcher.mjs --demo",
|
|
43
|
+
"wrapped": "node server/cli.mjs",
|
|
44
|
+
"analyze:phrases": "node scripts/mine-phrase-families.mjs",
|
|
45
|
+
"review:interactions": "node scripts/review-interaction-tone.mjs",
|
|
46
|
+
"review:workarounds": "node scripts/review-workaround-judge.mjs",
|
|
47
|
+
"worker:dev": "npx --yes wrangler@4.86.0 dev",
|
|
48
|
+
"worker:deploy": "npx --yes wrangler@4.86.0 deploy",
|
|
49
|
+
"test": "node --test tests/*.test.mjs",
|
|
50
|
+
"check": "npm test && npm run build",
|
|
51
|
+
"prepack": "npm run build",
|
|
52
|
+
"prepublishOnly": "npm run check"
|
|
53
|
+
},
|
|
54
|
+
"engines": {
|
|
55
|
+
"node": ">=20"
|
|
56
|
+
},
|
|
57
|
+
"devDependencies": {
|
|
58
|
+
"@types/node": "22.19.19",
|
|
59
|
+
"@types/react": "19.2.14",
|
|
60
|
+
"@types/react-dom": "19.2.3",
|
|
61
|
+
"@vitejs/plugin-react": "6.0.2",
|
|
62
|
+
"html-to-image": "^1.11.13",
|
|
63
|
+
"react": "19.2.6",
|
|
64
|
+
"react-dom": "19.2.6",
|
|
65
|
+
"typescript": "5.9.3",
|
|
66
|
+
"vite": "^8.2.0"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { performance } from "node:perf_hooks";
|
|
5
|
+
import { redactText } from "../server/privacy.mjs";
|
|
6
|
+
|
|
7
|
+
const inputRoot = path.resolve(process.argv[2] || "");
|
|
8
|
+
const outputFile = path.resolve(process.argv[3] || "");
|
|
9
|
+
if (!process.argv[2] || !process.argv[3]) {
|
|
10
|
+
console.error("Usage: benchmark-ngram-extraction.mjs <corpus-directory> <output.json>");
|
|
11
|
+
process.exit(2);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const startedAt = new Date().toISOString();
|
|
15
|
+
const totalStarted = performance.now();
|
|
16
|
+
const files = [];
|
|
17
|
+
let corpusBytes = 0;
|
|
18
|
+
const stack = [inputRoot];
|
|
19
|
+
while (stack.length) {
|
|
20
|
+
const directory = stack.pop();
|
|
21
|
+
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
22
|
+
const item = path.join(directory, entry.name);
|
|
23
|
+
if (entry.isDirectory()) stack.push(item);
|
|
24
|
+
else if (entry.isFile() && entry.name.endsWith(".jsonl") && !item.includes(`${path.sep}subagents${path.sep}`)) {
|
|
25
|
+
files.push(item);
|
|
26
|
+
corpusBytes += fs.statSync(item).size;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
files.sort();
|
|
31
|
+
const discoveryFinished = performance.now();
|
|
32
|
+
|
|
33
|
+
const segmenter = new Intl.Segmenter("en", { granularity: "sentence" });
|
|
34
|
+
const stopwords = new Set("a an and are as at be been but by can could did do does for from had has have he her here him his how i if in into is it its just may me more my no not of on or our out please she should so some than that the their them then there these they this those to up us was we were what when where which who why will with would you your".split(" "));
|
|
35
|
+
const counts = new Map();
|
|
36
|
+
let parsedRecords = 0;
|
|
37
|
+
let modelAssistantMessages = 0;
|
|
38
|
+
let modelAssistantSentences = 0;
|
|
39
|
+
let excludedNonModelAssistantRecords = 0;
|
|
40
|
+
let sessionsWithModelResponses = 0;
|
|
41
|
+
|
|
42
|
+
function visibleText(record) {
|
|
43
|
+
const content = record?.message?.content ?? record?.content;
|
|
44
|
+
if (typeof content === "string") return content;
|
|
45
|
+
if (!Array.isArray(content)) return "";
|
|
46
|
+
return content.filter((block) => block?.type === "text").map((block) => block.text || "").join("\n");
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function isModelGenerated(record) {
|
|
50
|
+
return record.type === "assistant" && !record.isApiErrorMessage && record?.message?.model && record.message.model !== "<synthetic>";
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function cleanText(value) {
|
|
54
|
+
return redactText(String(value)
|
|
55
|
+
.replace(/```[\s\S]*?```/g, " ")
|
|
56
|
+
.replace(/`[^`]*`/g, " ")
|
|
57
|
+
.replace(/https?:\/\/\S+/g, " ")
|
|
58
|
+
.replace(/\[[^\]]+\]\([^\)]+\)/g, " ")
|
|
59
|
+
.replace(/\b([A-Z][a-z]{2,})[’']s\b/g, "person's")).text;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function tokens(value) {
|
|
63
|
+
return value.normalize("NFKC").replace(/[’‘]/g, "'").toLowerCase().match(/[a-z]+(?:'[a-z]+)?/g) || [];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function add(phrase, sessionIndex) {
|
|
67
|
+
let item = counts.get(phrase);
|
|
68
|
+
if (!item) counts.set(phrase, item = { phrase, occurrences: 0, sessions: 0, lastSession: -1 });
|
|
69
|
+
item.occurrences++;
|
|
70
|
+
if (item.lastSession !== sessionIndex) {
|
|
71
|
+
item.sessions++;
|
|
72
|
+
item.lastSession = sessionIndex;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
for (let sessionIndex = 0; sessionIndex < files.length; sessionIndex++) {
|
|
77
|
+
let hasModelResponse = false;
|
|
78
|
+
const body = fs.readFileSync(files[sessionIndex], "utf8");
|
|
79
|
+
for (const line of body.split("\n")) {
|
|
80
|
+
if (!line) continue;
|
|
81
|
+
let record;
|
|
82
|
+
try { record = JSON.parse(line); } catch { continue; }
|
|
83
|
+
parsedRecords++;
|
|
84
|
+
if (record.type === "assistant" && !isModelGenerated(record)) {
|
|
85
|
+
excludedNonModelAssistantRecords++;
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
88
|
+
if (!isModelGenerated(record)) continue;
|
|
89
|
+
const prose = cleanText(visibleText(record));
|
|
90
|
+
if (!prose.trim()) continue;
|
|
91
|
+
hasModelResponse = true;
|
|
92
|
+
modelAssistantMessages++;
|
|
93
|
+
for (const part of segmenter.segment(prose)) {
|
|
94
|
+
const sentenceTokens = tokens(part.segment);
|
|
95
|
+
if (!sentenceTokens.length) continue;
|
|
96
|
+
modelAssistantSentences++;
|
|
97
|
+
for (let n = 3; n <= 8; n++) {
|
|
98
|
+
for (let offset = 0; offset + n <= sentenceTokens.length; offset++) {
|
|
99
|
+
const slice = sentenceTokens.slice(offset, offset + n);
|
|
100
|
+
if (slice.filter((token) => !stopwords.has(token)).length < 2) continue;
|
|
101
|
+
add(slice.join(" "), sessionIndex);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
if (hasModelResponse) sessionsWithModelResponses++;
|
|
107
|
+
if ((sessionIndex + 1) % 10_000 === 0) process.stderr.write(`scanned ${sessionIndex + 1}/${files.length}\n`);
|
|
108
|
+
}
|
|
109
|
+
const scanFinished = performance.now();
|
|
110
|
+
|
|
111
|
+
function publicRow(row, rank) {
|
|
112
|
+
return {
|
|
113
|
+
rank,
|
|
114
|
+
phrase: row.phrase,
|
|
115
|
+
token_count: row.phrase.split(" ").length,
|
|
116
|
+
occurrences: row.occurrences,
|
|
117
|
+
distinct_sessions: row.sessions,
|
|
118
|
+
session_rate: Number((row.sessions / Math.max(1, sessionsWithModelResponses)).toFixed(6)),
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
const ranked = [...counts.values()]
|
|
123
|
+
.filter((row) => row.sessions >= 3)
|
|
124
|
+
.sort((a, b) => b.occurrences - a.occurrences || b.sessions - a.sessions || b.phrase.split(" ").length - a.phrase.split(" ").length);
|
|
125
|
+
const rawTop50 = ranked.slice(0, 50).map(publicRow);
|
|
126
|
+
|
|
127
|
+
function containsTokens(container, contained) {
|
|
128
|
+
const outer = container.split(" ");
|
|
129
|
+
const inner = contained.split(" ");
|
|
130
|
+
if (inner.length > outer.length) return false;
|
|
131
|
+
outerLoop: for (let offset = 0; offset + inner.length <= outer.length; offset++) {
|
|
132
|
+
for (let index = 0; index < inner.length; index++) if (outer[offset + index] !== inner[index]) continue outerLoop;
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
const candidates = [];
|
|
139
|
+
for (const row of ranked) {
|
|
140
|
+
const redundant = candidates.some((selected) => {
|
|
141
|
+
const nested = containsTokens(row.phrase, selected.phrase) || containsTokens(selected.phrase, row.phrase);
|
|
142
|
+
const occurrenceRatio = Math.min(row.occurrences, selected.occurrences) / Math.max(row.occurrences, selected.occurrences);
|
|
143
|
+
return nested && occurrenceRatio >= 0.72;
|
|
144
|
+
});
|
|
145
|
+
if (!redundant) candidates.push(row);
|
|
146
|
+
if (candidates.length === 50) break;
|
|
147
|
+
}
|
|
148
|
+
const candidateTop50 = candidates.map(publicRow);
|
|
149
|
+
const finished = performance.now();
|
|
150
|
+
const resourceUsage = process.resourceUsage();
|
|
151
|
+
const scanSeconds = (scanFinished - discoveryFinished) / 1000;
|
|
152
|
+
|
|
153
|
+
const artifact = {
|
|
154
|
+
schema: "behavior-wrapped.exact-ngram-analysis.v1",
|
|
155
|
+
generated_at: new Date().toISOString(),
|
|
156
|
+
source: {
|
|
157
|
+
kind: "claude-code-export",
|
|
158
|
+
label: path.basename(inputRoot),
|
|
159
|
+
transcript_content_included: false,
|
|
160
|
+
},
|
|
161
|
+
corpus: {
|
|
162
|
+
session_files: files.length,
|
|
163
|
+
sessions_with_model_responses: sessionsWithModelResponses,
|
|
164
|
+
corpus_bytes: corpusBytes,
|
|
165
|
+
parsed_records: parsedRecords,
|
|
166
|
+
model_assistant_messages: modelAssistantMessages,
|
|
167
|
+
model_assistant_sentences: modelAssistantSentences,
|
|
168
|
+
excluded_non_model_assistant_records: excludedNonModelAssistantRecords,
|
|
169
|
+
},
|
|
170
|
+
extraction: {
|
|
171
|
+
ngram_token_lengths: [3, 4, 5, 6, 7, 8],
|
|
172
|
+
exact_after_normalization: true,
|
|
173
|
+
minimum_distinct_sessions: 3,
|
|
174
|
+
excluded_content: ["thinking blocks", "tool calls", "tool results", "code blocks", "inline code", "URLs", "synthetic/API-error assistant records"],
|
|
175
|
+
normalization: ["Unicode NFKC", "lowercase", "apostrophe normalization", "likely secret/PII redaction", "possessive proper-name placeholder"],
|
|
176
|
+
raw_ranking: "occurrences desc, distinct_sessions desc, token_count desc",
|
|
177
|
+
candidate_ranking: "raw ranking with nested phrases suppressed when occurrence counts are within 72%",
|
|
178
|
+
},
|
|
179
|
+
benchmark: {
|
|
180
|
+
started_at: startedAt,
|
|
181
|
+
file_discovery_ms: Math.round(discoveryFinished - totalStarted),
|
|
182
|
+
extraction_ms: Math.round(scanFinished - discoveryFinished),
|
|
183
|
+
ranking_and_serialization_ms: Math.round(finished - scanFinished),
|
|
184
|
+
total_ms: Math.round(finished - totalStarted),
|
|
185
|
+
input_throughput_mib_per_second: Number((corpusBytes / 1048576 / Math.max(scanSeconds, 0.001)).toFixed(2)),
|
|
186
|
+
max_rss_mib: Number((resourceUsage.maxRSS / 1024).toFixed(2)),
|
|
187
|
+
node_version: process.version,
|
|
188
|
+
platform: process.platform,
|
|
189
|
+
architecture: process.arch,
|
|
190
|
+
},
|
|
191
|
+
privacy: {
|
|
192
|
+
local_only: true,
|
|
193
|
+
raw_transcripts_in_artifact: false,
|
|
194
|
+
review_before_external_upload: true,
|
|
195
|
+
note: "Automated redaction is imperfect. Review phrases before sending this file to an external model.",
|
|
196
|
+
},
|
|
197
|
+
recommended_for_llm: "candidate_top_50",
|
|
198
|
+
candidate_top_50: candidateTop50,
|
|
199
|
+
raw_top_50: rawTop50,
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
fs.mkdirSync(path.dirname(outputFile), { recursive: true, mode: 0o700 });
|
|
203
|
+
fs.writeFileSync(outputFile, `${JSON.stringify(artifact, null, 2)}\n`, { mode: 0o600 });
|
|
204
|
+
console.log(JSON.stringify({ outputFile, corpus: artifact.corpus, benchmark: artifact.benchmark, candidateCount: candidateTop50.length, rawCount: rawTop50.length }, null, 2));
|