/* Free tools hub and tool pages. Built by preview/_build/tools/build.py. All classes start with tx- so nothing else is touched. */
.tx{--tx-bg:#09090c;--tx-bg2:#101016;--tx-line:rgba(255,255,255,.1);--tx-line2:rgba(255,255,255,.16);--tx-ink:#fff;--tx-text:#c3c3cf;--tx-faint:#8a8a99;--tx-ac:#9372ff;--tx-soft:#d4b4ff;--tx-cta:#7f58ec;--tx-ok:#7ee0a6;font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:16px;line-height:1.55;color:var(--tx-text)}
.tx *{box-sizing:border-box}
.tx-w{width:min(1160px,100% - 40px);margin:0 auto}.tx-w--n{width:min(900px,100% - 40px)}
.tx-hero{position:relative;padding:clamp(48px,9vh,96px) 0 clamp(28px,5vh,48px);overflow:hidden}
.tx-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(55% 70% at 80% 0,rgba(127,88,236,.22),transparent 70%);pointer-events:none}
.tx-hero>.tx-w{position:relative}
.tx-crumb{font-size:13px;color:var(--tx-faint);margin-bottom:22px}.tx-crumb a{color:var(--tx-faint);text-decoration:none}.tx-crumb a:hover{color:#fff}
.tx-k{display:block;font:400 12px "JetBrains Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--tx-ac);margin-bottom:16px}
.tx h1{font:800 clamp(34px,5.6vw,68px)/1.03 "Archivo","Helvetica Neue",Arial,sans-serif;letter-spacing:-.035em;color:#fff;margin:0 0 16px;text-wrap:balance;max-width:16em}.tx h1 em{font-style:normal;color:var(--tx-ac);white-space:normal;text-wrap:balance}.tx h1 em::before,.tx h1 em::after,.tx h1::after{content:none!important;display:none!important}
.tx-lead{font-size:clamp(16px,2.2vw,20px);max-width:36em;color:var(--tx-text);margin:0}
.tx h2,.tx h3{font-family:"Archivo","Helvetica Neue",Arial,sans-serif;color:#fff;letter-spacing:-.025em;margin:0}
.tx-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 24px;border-radius:99px;border:1px solid var(--tx-cta);background:var(--tx-cta);color:#fff;font:600 16px "IBM Plex Sans",system-ui,sans-serif;text-decoration:none;cursor:pointer;box-shadow:0 18px 40px -18px var(--tx-cta);transition:transform .25s,background .25s}
.tx-btn:hover{background:#8f6cf5;transform:translateY(-2px)}.tx-btn--g{background:transparent;border-color:var(--tx-line2);box-shadow:none}.tx-btn--g:hover{background:rgba(255,255,255,.06)}.tx-btn--s{min-height:42px;padding:0 18px;font-size:14px}
.tx-tag{display:inline-flex;font:400 11px "JetBrains Mono",monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--tx-soft);border:1px solid rgba(147,114,255,.4);background:rgba(147,114,255,.1);border-radius:99px;padding:4px 10px}.tx-free{color:var(--tx-ok);border-color:rgba(126,224,166,.35);background:rgba(126,224,166,.08)}
/* hub: question posters */
.tx-pps{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:clamp(28px,4vw,48px)}
.tx-pp{--mx:50%;--my:0%;position:relative;display:flex;flex-direction:column;gap:16px;min-height:430px;padding:clamp(24px,3vw,36px);border-radius:28px;border:1px solid var(--tx-line2);overflow:hidden;animation:txpp .7s var(--d,0s) both;transition:transform .3s,border-color .3s,box-shadow .3s}
@keyframes txpp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.tx-pp.in{opacity:1;transform:none}
.tx-pp.p0{background:radial-gradient(90% 90% at 100% 0,rgba(127,88,236,.4),transparent 70%),#12101c}.tx-pp.p1{background:radial-gradient(90% 90% at 0 100%,rgba(127,88,236,.32),transparent 70%),#101016}.tx-pp.p2{background:radial-gradient(90% 90% at 100% 100%,rgba(169,139,255,.28),transparent 70%),#12101c}
.tx-pp::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(420px circle at var(--mx) var(--my),rgba(255,255,255,.07),transparent 60%);opacity:0;transition:opacity .35s;pointer-events:none}
.tx-pp:hover{border-color:rgba(147,114,255,.55);box-shadow:0 30px 70px -40px #7f58ec}.tx-pp:hover::after{opacity:1}
.tx-pp.in:hover{transform:translateY(-4px)}
.tx-no{font:400 12px "JetBrains Mono",monospace;letter-spacing:.14em;color:var(--tx-soft)}
.tx-q{font:800 clamp(26px,3vw,38px)/1.08 "Archivo","Helvetica Neue",Arial,sans-serif;letter-spacing:-.03em;color:#fff;text-wrap:balance;margin:0}
.tx-pp p{margin:0;max-width:30em;font-size:16px}
.tx-pf{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:auto}
.tx-tm{font:400 11px "JetBrains Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-soft)}
.tx-more{padding:clamp(20px,3vw,32px);border:1px solid var(--tx-line);border-radius:22px;background:rgba(255,255,255,.02);margin-bottom:clamp(40px,6vw,72px)}.tx-more h2{font-size:20px;margin-bottom:12px}.tx-more ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px 12px}.tx-more a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:99px;border:1px solid var(--tx-line2);color:#fff;text-decoration:none;font-size:14.5px}.tx-more a:hover{border-color:var(--tx-ac)}
/* the small live preview on each poster */
.mv{min-height:96px;border:1px solid var(--tx-line);border-radius:16px;background:rgba(0,0,0,.3);padding:14px 16px;overflow:hidden;position:relative;display:flex;align-items:center;gap:8px}
.mv *{animation-play-state:paused}.tx-pp.live .mv *{animation-play-state:running}
.mv-ai{flex-wrap:wrap;align-content:center}.mv-ai span{font-size:12.5px;padding:5px 12px;border-radius:99px;border:1px solid var(--tx-line2);color:#fff;opacity:0;animation:mvIn 9s var(--d) infinite}.mv-ai .you{border:1px dashed var(--tx-ac);background:rgba(147,114,255,.14);color:var(--tx-soft);animation-name:mvIn,mvPulse;animation-duration:9s,3s;animation-iteration-count:infinite,infinite;animation-delay:2.2s,3s}
@keyframes mvIn{0%,4%{opacity:0;transform:translateX(-10px)}12%,88%{opacity:1;transform:none}96%,100%{opacity:0}}@keyframes mvPulse{50%{box-shadow:0 0 0 4px rgba(147,114,255,.18)}}
.mv-roas{flex-direction:column;align-items:stretch;justify-content:center;gap:10px}.mv-roas .trk{position:relative;height:12px;border-radius:99px;background:rgba(255,255,255,.08)}.mv-roas .bar{position:absolute;left:0;top:0;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#7f58ec,#b79cff);animation:mvBar 8s ease-in-out infinite}.mv-roas .mk{position:absolute;left:50%;top:-5px;width:2px;height:22px;background:#fff;opacity:.9}.mv-roas .lb{display:flex;justify-content:space-between;align-items:center;font:400 11px "JetBrains Mono",monospace;color:var(--tx-faint);letter-spacing:.06em}.mv-roas .lb b{color:#fff;font-weight:400}
@keyframes mvBar{0%{width:0}45%,88%{width:50%}100%{width:0}}
.mv-utm{font:400 12.5px/1.4 "JetBrains Mono",monospace;color:var(--tx-soft)}.mv-utm .ty{display:inline-block;overflow:hidden;white-space:nowrap;max-width:100%;border-right:2px solid var(--tx-ac);width:0;animation:mvTy 9s steps(60) infinite}
@keyframes mvTy{0%{width:0}55%,88%{width:62ch}100%{width:0}}
.mv-stl{flex-direction:column;justify-content:center;gap:10px;align-items:stretch}.mv-stl .r{display:flex;align-items:center;gap:12px}.mv-stl em{font:400 12px "JetBrains Mono",monospace;font-style:normal;color:var(--tx-faint);width:44px}.mv-stl i{display:block;height:10px;border-radius:99px;flex:none}.mv-stl .o{background:#4d4c63;width:100%;max-width:calc(100% - 56px)}.mv-stl .n{background:linear-gradient(90deg,#7f58ec,#b79cff);width:0;animation:mvFast 8s ease-in-out infinite}
@keyframes mvFast{0%,15%{width:0}50%,88%{width:14%}100%{width:0}}
.mv-llm{flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;font:400 12.5px "JetBrains Mono",monospace;color:var(--tx-soft)}.mv-llm span{display:block;overflow:hidden;white-space:nowrap;max-width:100%;width:0;animation:mvLine 9s steps(34) var(--d) infinite}
@keyframes mvLine{0%{width:0}18%,88%{width:36ch}100%{width:0}}
.mv-hrs{gap:6px}.mv-hrs i{width:22px;height:22px;border-radius:7px;background:rgba(255,255,255,.07);animation:mvLit 6s var(--d) infinite}.mv-hrs b{margin-left:auto;font:800 18px "Archivo",sans-serif;color:#fff;letter-spacing:-.02em;opacity:.9}
@keyframes mvLit{0%,6%{background:rgba(255,255,255,.07)}16%,72%{background:#8f6cf5;box-shadow:0 6px 16px -8px #7f58ec}86%,100%{background:rgba(255,255,255,.07)}}
@media(prefers-reduced-motion:reduce){.tx-pp{opacity:1;transform:none;transition:none}.mv *{animation:none!important;opacity:1!important;transform:none!important}.mv-roas .bar{width:50%}.mv-utm .ty{width:62ch}.mv-stl .n{width:14%}.mv-llm span{width:36ch}.mv-hrs i{background:#8f6cf5}}
.tx-band{padding:clamp(48px,7vw,88px) 0;border-top:1px solid var(--tx-line);background:radial-gradient(60% 80% at 50% 0,rgba(127,88,236,.14),transparent 70%)}.tx-band .in{display:flex;flex-wrap:wrap;gap:24px 40px;align-items:center;justify-content:space-between}.tx-band h2{font-size:clamp(28px,4vw,44px);max-width:14em}.tx-band p{max-width:30em;margin:10px 0 0}
@media(max-width:900px){.tx-pps{grid-template-columns:1fr}.tx-pp{min-height:0}.tx-pf .tx-btn{width:100%}}
/* tool pages */
.tx-tool{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(20px,3vw,36px);align-items:start;padding-bottom:clamp(32px,5vw,56px)}
.tx-card{border:1px solid var(--tx-line2);border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.012));padding:clamp(20px,3vw,32px)}
.tx-res{position:sticky;top:76px;background:radial-gradient(80% 80% at 100% 0,rgba(127,88,236,.22),transparent 70%),rgba(255,255,255,.02);border-color:rgba(147,114,255,.4)}
.tx-row{display:grid;gap:6px;margin-bottom:18px}.tx-row label{font-weight:600;color:#fff;font-size:15px}.tx-row small{color:var(--tx-faint);font-size:13px}
.tx-in{width:100%;min-height:50px;padding:0 16px;border:1px solid var(--tx-line2);border-radius:14px;background:rgba(0,0,0,.35);color:#fff;font:16px "IBM Plex Sans",system-ui,sans-serif;outline:none;transition:border-color .2s,box-shadow .2s}.tx-in:focus{border-color:var(--tx-ac);box-shadow:0 0 0 3px rgba(147,114,255,.22)}textarea.tx-in{padding:12px 16px;min-height:96px;resize:vertical}
.tx-range{width:100%;accent-color:#9372ff;min-height:32px}
.tx-big{font:800 clamp(44px,7vw,76px)/1 "Archivo","Helvetica Neue",Arial,sans-serif;letter-spacing:-.045em;color:#fff}.tx-big small{display:block;font:400 12px "JetBrains Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-faint);margin-top:8px}
.tx-sub{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.tx-sub div{padding:14px;border:1px solid var(--tx-line);border-radius:14px;background:rgba(0,0,0,.25)}.tx-sub b{display:block;font:800 24px "Archivo",sans-serif;letter-spacing:-.02em;color:#fff}.tx-sub span{font-size:12.5px;color:var(--tx-faint)}
.tx-verdict{padding:14px 16px;border-radius:14px;border:1px solid var(--tx-line2);background:rgba(255,255,255,.04);color:#fff;font-size:15px}.tx-verdict.bad{border-color:rgba(255,122,122,.5);background:rgba(255,122,122,.08)}.tx-verdict.ok{border-color:rgba(126,224,166,.45);background:rgba(126,224,166,.07)}.tx-verdict.mid{border-color:rgba(245,197,66,.5);background:rgba(245,197,66,.07)}
.tx-out{width:100%;min-height:150px;padding:14px;border:1px solid var(--tx-line2);border-radius:14px;background:#06060a;color:var(--tx-soft);font:400 13px/1.6 "JetBrains Mono",monospace;resize:vertical}
.tx-acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.tx-warn{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px;font-size:13.5px;color:#f5c542}.tx-warn li::before{content:"! ";font-weight:700}
.tx-list{display:grid;gap:8px;margin-top:12px}.tx-li{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--tx-line);border-radius:12px;background:rgba(0,0,0,.25);font:400 12.5px "JetBrains Mono",monospace;color:var(--tx-soft);word-break:break-all}
.tx-mini{min-height:36px;padding:0 12px;border-radius:99px;border:1px solid var(--tx-line2);background:transparent;color:#fff;font:600 13px "IBM Plex Sans",system-ui,sans-serif;cursor:pointer}.tx-mini:hover{border-color:var(--tx-ac)}
.tx-tr{display:grid;grid-template-columns:1.4fr .8fr .8fr auto;gap:8px;margin-bottom:8px}.tx-tr .tx-in{min-height:44px}.tx-x{min-height:44px;width:44px;border-radius:12px;border:1px solid var(--tx-line2);background:transparent;color:#fff;cursor:pointer;font-size:18px}
.tx-rank{display:grid;gap:8px;margin:14px 0 0;padding:0;list-style:none;counter-reset:r}.tx-rank li{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--tx-line);border-radius:12px;counter-increment:r}.tx-rank li::before{content:counter(r);display:grid;place-items:center;width:26px;height:26px;border-radius:8px;background:rgba(147,114,255,.2);color:#fff;font:700 12px "JetBrains Mono",monospace}.tx-rank li.first{border-color:var(--tx-ac);background:rgba(147,114,255,.12)}.tx-rank b{color:#fff}.tx-rank span{color:var(--tx-soft);font:400 13px "JetBrains Mono",monospace}
.tx-sec{padding:clamp(28px,4vw,48px) 0;border-top:1px solid var(--tx-line)}.tx-sec h2{font-size:clamp(24px,3vw,32px);margin-bottom:12px}.tx-sec p{max-width:44em;margin:0 0 12px}.tx-sec ul{max-width:44em;padding-left:20px;display:grid;gap:6px}
.tx-code{display:inline-block;padding:10px 14px;border:1px solid var(--tx-line2);border-radius:12px;background:#06060a;color:var(--tx-soft);font:400 14px "JetBrains Mono",monospace}
.tx-faq details{border:1px solid var(--tx-line);border-radius:16px;background:rgba(255,255,255,.02);margin-bottom:10px}.tx-faq summary{cursor:pointer;min-height:56px;display:flex;align-items:center;padding:0 20px;font:700 17px "Archivo",sans-serif;color:#fff;list-style:none}.tx-faq summary::-webkit-details-marker{display:none}.tx-faq summary::after{content:"+";margin-left:auto;color:var(--tx-ac);font-size:22px}.tx-faq details[open] summary::after{content:"\2212"}.tx-faq details p{padding:0 20px 18px;margin:0;max-width:46em}
.tx-rel{display:flex;flex-wrap:wrap;gap:10px}.tx-rel a{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:99px;border:1px solid var(--tx-line2);color:#fff;text-decoration:none;font-size:14.5px}.tx-rel a:hover{border-color:var(--tx-ac)}
@media(max-width:900px){.tx-tool{grid-template-columns:1fr}.tx-res{position:static}.tx-tr{grid-template-columns:1fr 1fr}.tx-tr .tx-in:first-child{grid-column:1/-1}.tx-x{width:100%}.tx-sub{grid-template-columns:1fr 1fr}}
