/* v347: dim text greys lifted to solid white. Same reasoning as styles.css --muted:
   these measured above the AA floor but were still too dim to read comfortably at the
   sizes used, and hierarchy on this site is carried by weight and size, not by draining
   colour out of the copy. Lifted: #9ca3af (a genuine grey). NOT #9333EA — that is the brand purple-600, and an
   over-broad hex regex clobbered it on the first pass, turning the primary hover state
   white. Restored. A colour sweep that matches on digits rather than on role will do
   this every time. */
/* landing.css — self-hosted Tailwind utilities for the marketing pages
   (/, /about/, /contact/, /guide/). These pages previously loaded the Tailwind
   Play CDN — a ~350KB render-blocking JIT engine — to style a static page.
   This file is the exact CSS output of the utilities those four pages (plus
   landing.js / features.js runtime toggles) actually use, compiled ahead of
   time with standard Tailwind v3 semantics. Same approach as /legal/*.
   Loads BEFORE each page's inline <style> so page-specific overrides win. */

/* ── Mini-preflight: the slice of Tailwind's preflight these pages depend on ── */
*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}
html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}
body{margin:0;line-height:inherit}
hr{height:0;color:inherit;border-top-width:1px}
h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}
a{color:inherit;text-decoration:inherit}
b,strong{font-weight:bolder}
code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}
small{font-size:80%}
table{text-indent:0;border-color:inherit;border-collapse:collapse}
button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}
button,select{text-transform:none}
button,[type="button"],[type="reset"],[type="submit"]{-webkit-appearance:button;background-color:transparent;background-image:none}
:-moz-focusring{outline:auto}
progress{vertical-align:baseline}
summary{display:list-item}
blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}
fieldset{margin:0;padding:0}
legend{padding:0}
ol,ul,menu{list-style:none;margin:0;padding:0}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{opacity:1;color:#ffffff}
button,[role="button"]{cursor:pointer}
:disabled{cursor:default}
img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}
img,video{max-width:100%;height:auto}
[hidden]{display:none}

/* ── Display ── */
.block{display:block}
.inline-block{display:inline-block}
.flex{display:flex}
.inline-flex{display:inline-flex}
.grid{display:grid}
.hidden{display:none}

/* ── Position / inset / z ── */
.absolute{position:absolute}
.relative{position:relative}
.sticky{position:sticky}
.top-0{top:0}
.top-24{top:6rem}
.top-full{top:100%}
.left-0{left:0}
.right-6{right:1.5rem}
.z-40{z-index:40}
.z-50{z-index:50}

/* ── Overflow / object ── */
.overflow-hidden{overflow:hidden}
.object-contain{object-fit:contain}

/* ── Flexbox / grid ── */
.flex-col{flex-direction:column}
.flex-wrap{flex-wrap:wrap}
.items-center{align-items:center}
.justify-center{justify-content:center}
.justify-between{justify-content:space-between}
.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}
.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.gap-1\.5{gap:0.375rem}
.gap-2{gap:0.5rem}
.gap-3{gap:0.75rem}
.gap-4{gap:1rem}
.gap-5{gap:1.25rem}
.gap-6{gap:1.5rem}
.gap-8{gap:2rem}
.gap-10{gap:2.5rem}
.gap-12{gap:3rem}
.gap-x-6{column-gap:1.5rem}
.gap-y-3{row-gap:0.75rem}

/* ── Margin ── */
.mx-auto{margin-left:auto;margin-right:auto}
.-m-2\.5{margin:-0.625rem}
.-m-3{margin:-0.75rem}
.-my-\[14px\]{margin-top:-14px;margin-bottom:-14px}

/* ── Space-between children ── */
.space-x-2>:not([hidden])~:not([hidden]){margin-left:0.5rem}
.space-x-3>:not([hidden])~:not([hidden]){margin-left:0.75rem}
.space-x-4>:not([hidden])~:not([hidden]){margin-left:1rem}
.space-x-6>:not([hidden])~:not([hidden]){margin-left:1.5rem}
.space-x-8>:not([hidden])~:not([hidden]){margin-left:2rem}
.space-y-1>:not([hidden])~:not([hidden]){margin-top:0.25rem}
.space-y-1\.5>:not([hidden])~:not([hidden]){margin-top:0.375rem}
.space-y-2>:not([hidden])~:not([hidden]){margin-top:0.5rem}
.space-y-2\.5>:not([hidden])~:not([hidden]){margin-top:0.625rem}
.space-y-3>:not([hidden])~:not([hidden]){margin-top:0.75rem}
.space-y-4>:not([hidden])~:not([hidden]){margin-top:1rem}
.space-y-5>:not([hidden])~:not([hidden]){margin-top:1.25rem}
.space-y-6>:not([hidden])~:not([hidden]){margin-top:1.5rem}
.space-y-8>:not([hidden])~:not([hidden]){margin-top:2rem}
.space-y-10>:not([hidden])~:not([hidden]){margin-top:2.5rem}
.space-y-12>:not([hidden])~:not([hidden]){margin-top:3rem}

/* ── Padding ── */
.p-2\.5{padding:0.625rem}
.p-3{padding:0.75rem}
.p-6{padding:1.5rem}
.p-8{padding:2rem}
.px-3{padding-left:0.75rem;padding-right:0.75rem}
.px-4{padding-left:1rem;padding-right:1rem}
.px-5{padding-left:1.25rem;padding-right:1.25rem}
.px-6{padding-left:1.5rem;padding-right:1.5rem}
.px-7{padding-left:1.75rem;padding-right:1.75rem}
.px-8{padding-left:2rem;padding-right:2rem}
.px-10{padding-left:2.5rem;padding-right:2.5rem}
.py-1{padding-top:0.25rem;padding-bottom:0.25rem}
.py-1\.5{padding-top:0.375rem;padding-bottom:0.375rem}
.py-2{padding-top:0.5rem;padding-bottom:0.5rem}
.py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}
.py-3{padding-top:0.75rem;padding-bottom:0.75rem}
.py-3\.5{padding-top:0.875rem;padding-bottom:0.875rem}
.py-4{padding-top:1rem;padding-bottom:1rem}
.py-5{padding-top:1.25rem;padding-bottom:1.25rem}
.py-8{padding-top:2rem;padding-bottom:2rem}
.py-10{padding-top:2.5rem;padding-bottom:2.5rem}
.py-12{padding-top:3rem;padding-bottom:3rem}
.py-14{padding-top:3.5rem;padding-bottom:3.5rem}
.py-16{padding-top:4rem;padding-bottom:4rem}
.py-20{padding-top:5rem;padding-bottom:5rem}
.py-\[14px\]{padding-top:14px;padding-bottom:14px}
.pt-1{padding-top:0.25rem}
.pt-2{padding-top:0.5rem}
.pt-3{padding-top:0.75rem}
.pt-4{padding-top:1rem}
.pt-8{padding-top:2rem}
.pt-12{padding-top:3rem}
.pt-16{padding-top:4rem}
.pt-20{padding-top:5rem}
.pb-2{padding-bottom:0.5rem}
.pb-6{padding-bottom:1.5rem}
.pb-8{padding-bottom:2rem}
.pb-12{padding-bottom:3rem}
.pb-16{padding-bottom:4rem}
.pb-20{padding-bottom:5rem}
.pb-24{padding-bottom:6rem}

/* ── Sizing ── */
.w-full{width:100%}
.w-auto{width:auto}
.w-6{width:1.5rem}
.w-12{width:3rem}
.h-6{height:1.5rem}
.h-7{height:1.75rem}
.h-9{height:2.25rem}
.h-12{height:3rem}
.min-h-screen{min-height:100vh}
.min-h-\[44px\]{min-height:44px}
.max-w-sm{max-width:24rem}
.max-w-2xl{max-width:42rem}
.max-w-3xl{max-width:48rem}
.max-w-4xl{max-width:56rem}
.max-w-5xl{max-width:64rem}
.max-w-6xl{max-width:72rem}

/* ── Typography ── */
.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}
.font-bold{font-weight:700}
.font-black{font-weight:900}
.text-xs{font-size:0.75rem;line-height:1rem}
.text-sm{font-size:0.875rem;line-height:1.25rem}
.text-base{font-size:1rem;line-height:1.5rem}
.text-lg{font-size:1.125rem;line-height:1.75rem}
.text-xl{font-size:1.25rem;line-height:1.75rem}
.text-2xl{font-size:1.5rem;line-height:2rem}
.text-3xl{font-size:1.875rem;line-height:2.25rem}
.text-4xl{font-size:2.25rem;line-height:2.5rem}
.text-\[9px\]{font-size:9px}
.text-\[10px\]{font-size:10px}
.text-\[11px\]{font-size:11px}
.leading-none{line-height:1}
.leading-relaxed{line-height:1.625}
.tracking-tighter{letter-spacing:-0.05em}
.tracking-tight{letter-spacing:-0.025em}
.tracking-wide{letter-spacing:0.025em}
.tracking-wider{letter-spacing:0.05em}
.tracking-widest{letter-spacing:0.1em}
.uppercase{text-transform:uppercase}
.underline{text-decoration-line:underline}
.text-left{text-align:left}
.text-center{text-align:center}
.break-all{word-break:break-all}

/* ── Colors ── */
.text-white{color:#fff}
.text-green-500{color:#22c55e}
.text-\[\#A855F7\]{color:#A855F7}
.text-\[var\(--bg\)\]{color:var(--bg)}
.text-\[var\(--fg\)\]{color:var(--fg)}
.text-\[var\(--accent\)\]{color:var(--accent)}
.bg-transparent{background-color:transparent}
.bg-\[\#A855F7\]{background-color:#A855F7}
.bg-\[\#A855F7\]\/10{background-color:rgb(168 85 247 / 0.1)}
.bg-\[var\(--bg\)\]{background-color:var(--bg)}
.bg-\[var\(--fg\)\]{background-color:var(--fg)}

/* ── Borders ── */
.border{border-width:1px}
.border-2{border-width:2px}
.border-current{border-color:currentColor}
.border-\[\#A855F7\]{border-color:#A855F7}
.border-\[\#A855F7\]\/30{border-color:rgb(168 85 247 / 0.3)}
.border-\[var\(--fg\)\]{border-color:var(--fg)}
.rounded-xl{border-radius:0.75rem}
.rounded-2xl{border-radius:1rem}
.rounded-full{border-radius:9999px}

/* ── Effects / filters ── */
.shadow-xl{box-shadow:0 20px 25px -5px rgb(0 0 0 / 0.1),0 8px 10px -6px rgb(0 0 0 / 0.1)}
.shadow-2xl{box-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25)}
.opacity-0{opacity:0}
.opacity-60{opacity:0.6}
.opacity-70{opacity:0.7}
.backdrop-blur-md{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}

/* ── Transforms (Tailwind var pipeline so translate + scale compose) ── */
.transform,.-translate-y-1\/2,.hover\:scale-105:hover,.hover\:scale-\[1\.01\]:hover{
  --tw-translate-x:0;--tw-translate-y:0;--tw-scale-x:1;--tw-scale-y:1;
  transform:translate(var(--tw-translate-x),var(--tw-translate-y)) scale(var(--tw-scale-x),var(--tw-scale-y));
}
.-translate-y-1\/2{--tw-translate-y:-50%}
.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}
.hover\:scale-\[1\.01\]:hover{--tw-scale-x:1.01;--tw-scale-y:1.01}

/* ── Transitions ── */
.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4,0,0.2,1);transition-duration:150ms}
.duration-200{transition-duration:200ms}

/* ── Interactivity / SVG ── */
.cursor-pointer{cursor:pointer}
.select-none{-webkit-user-select:none;user-select:none}
.pointer-events-none{pointer-events:none}
.stroke-current{stroke:currentColor}

/* ── Hover / focus variants ── */
.hover\:underline:hover{text-decoration-line:underline}
.hover\:opacity-60:hover{opacity:0.6}
.hover\:bg-\[\#9333EA\]:hover{background-color:#9333EA}
.hover\:bg-\[var\(--fg\)\]:hover{background-color:var(--fg)}
.hover\:text-\[var\(--bg\)\]:hover{color:var(--bg)}
.hover\:border-\[var\(--accent\)\]:hover{border-color:var(--accent)}
.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}

/* ── Selection variant ── */
.selection\:bg-\[\#A855F7\]\/30 *::selection{background-color:rgb(168 85 247 / 0.3)}
.selection\:bg-\[\#A855F7\]\/30::selection{background-color:rgb(168 85 247 / 0.3)}

/* ── sm: 640px ── */
@media (min-width:640px){
  .sm\:inline{display:inline}
  .sm\:flex-row{flex-direction:row}
  .sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sm\:w-auto{width:auto}
  .sm\:text-base{font-size:1rem;line-height:1.5rem}
  .sm\:text-xl{font-size:1.25rem;line-height:1.75rem}
  .sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}
  .sm\:text-5xl{font-size:3rem;line-height:1}
  .sm\:text-6xl{font-size:3.75rem;line-height:1}
}

/* ── md: 768px ── */
@media (min-width:768px){
  .md\:flex{display:flex}
  .md\:hidden{display:none}
  .md\:col-span-2{grid-column:span 2 / span 2}
  .md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
  .md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
  .md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}
  .md\:ml-auto{margin-left:auto}
  .md\:w-auto{width:auto}
}

/* ── lg: 1024px ── */
@media (min-width:1024px){
  .lg\:block{display:block}
  .lg\:grid-cols-\[220px_1fr\]{grid-template-columns:220px 1fr}
}
