/* Pixel theme shared by every page. Loaded after the page stylesheets: it re-themes
   the site onto the dark pixel sky with square cards, hard offset shadows, a
   terminal face (VT323) for labels and controls, and lime for primary actions. */
:root{--surface-page:#050a1f;--surface-tint:#0b1440;--surface-dark:#030716;--text-primary:#eef2ff;--text-muted:#aab4d4;--border-soft:#243275;--accent:#8ea2ff;--accent-lime:#d8ff78;
 --px-ink:#050a1f;--px-panel:#0b1440;--px-panel-2:#111c52;--px-line:#243275;--px-edge:#2c3fd0;--px-cobalt:#2948e5;--px-link:#8ea2ff;--px-lime:#d8ff78;--px-font:'VT323',ui-monospace,monospace;
 color-scheme:dark;color:var(--text-primary);background:var(--px-ink)}
body{background:var(--px-ink) radial-gradient(#ffffff0d 1px,transparent 1.5px) 0 0/24px 24px;color:var(--text-primary);position:relative}
::selection{background:var(--px-lime);color:var(--px-ink)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline-color:var(--px-lime)!important}

/* Page-top sky band behind the header and page title on inner pages. */
.page-sky{position:absolute;top:0;left:0;right:0;height:min(560px,80vh);z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
canvas.pixel-sky{display:block;width:100%;height:100%;image-rendering:pixelated}
.page-sky+.site-header,body>main,body>.site-footer{position:relative;z-index:1}

/* Header */
.site-header{position:relative;z-index:3;color:var(--text-primary);border-bottom:1px solid #ffffff14!important;background:transparent}
.brand-dot{color:var(--px-lime)!important}
.site-header nav,.site-header nav a{font:400 21px var(--px-font)!important}
.site-header nav a:hover{color:var(--px-lime)!important}
.nav-cta{border:1px solid var(--text-primary)!important;border-radius:0!important;box-shadow:3px 3px 0 var(--px-cobalt)}
.nav-cta:hover{border-color:var(--px-lime)!important;box-shadow:3px 3px 0 var(--px-lime)}
.brand-symbol{border-radius:0}

/* Shared type: terminal labels and pixel-shadowed display headings. */
.section-overline,.offer-num,.data-option-label,.marketing-label,.library-eyebrow,.use-case-intro>span,.proof-inner span,.process-steps span,.content-breadcrumb,.field-options,.actor-result small,.footer-end,.content-aside h2,.directory-toolbar label,#directory-count{font-family:var(--px-font)!important;font-weight:400!important;letter-spacing:.02em!important}
.section-overline,.offer-num{font-size:20px!important;color:var(--px-lime)!important}
.section-overline:before,.offer-num:before{content:"";width:9px;height:9px;background:currentColor;display:inline-block;margin-right:10px;vertical-align:1px}
.section-overline:before{margin-right:0}
.data-option-label,.marketing-label,.use-case-intro>span{font-size:19px!important;color:var(--px-link)!important}
.section-lead h2,.process-intro h2,.contact-inner h2,.marketing-intro h2,.library-copy h2,.data-options-heading h2,.content-page h1,.not-found h1{color:#f5f7ff;text-shadow:3px 3px 0 var(--px-cobalt)}
.section-lead h2 em{color:var(--px-lime)!important}
h2,h3,dt,strong{color:inherit}

/* Buttons: lime primary with a hard cobalt shadow; outlined secondary. */
.content-primary,.contact-main,.library-action,.directory-toolbar button,.button.primary,.contact-options a{background:var(--px-lime)!important;color:var(--px-ink)!important;border:0!important;border-radius:0!important;box-shadow:4px 4px 0 var(--px-cobalt);font:400 22px/1 var(--px-font)!important;transition:transform .12s steps(2),box-shadow .12s steps(2)!important}
.content-primary:hover,.contact-main:hover,.library-action:hover,.directory-toolbar button:hover,.button.primary:hover,.contact-options a:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--px-cobalt)}
.content-primary:active,.contact-main:active,.library-action:active,.directory-toolbar button:active,.button.primary:active,.contact-options a:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--px-cobalt)}
.contact-telegram,.contact-options a+a{background:transparent!important;color:var(--text-primary)!important;border:1px solid var(--text-primary)!important;border-radius:0!important;box-shadow:4px 4px 0 var(--px-cobalt);font:400 22px/1 var(--px-font)!important}
.contact-telegram:hover,.contact-options a+a:hover{border-color:var(--px-lime)!important;color:var(--px-lime)!important}

/* Action and inline links */
.offer-card a,.data-option-action,.marketing-guide,.library-action,.category-use>a{font-family:var(--px-font)!important;font-weight:400!important;font-size:21px!important}
.offer-card a,.data-option-action,.marketing-guide{color:var(--px-lime)!important}
.marketing-guide{border-bottom:1px dashed var(--px-lime)!important}
.market-questions dd a,.content-aside a,.content-followup a,.category-use>a,.collection-guide a,.service-email a,.content-breadcrumb a,.contact-copy-row a{color:var(--px-link)!important;text-decoration:underline dashed!important;text-underline-offset:4px}
.market-questions dd a:hover,.content-aside a:hover,.content-followup a:hover,.category-use>a:hover,.collection-guide a:hover,.service-email a:hover,.content-breadcrumb a:hover{color:var(--px-lime)!important}

/* Panels: square, hairline cobalt edge; interactive ones lift onto a hard shadow. */
.use-case-links,.data-option,.offer-card,.actor-result,.field-grid,.table-scroll,.collection-guide,.directory-toolbar,.output-sample{background:var(--px-panel)!important;border:1px solid var(--px-edge)!important;border-radius:0!important;color:var(--text-primary)}
.data-option,.offer-card,.actor-result{transition:transform .12s steps(2),box-shadow .12s steps(2),border-color .12s}
.data-option:hover,.actor-result:hover,.offer-card:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--px-cobalt);border-color:var(--px-link)!important}
.data-option p,.offer-card p,.dataset-note,.section-lead>p,.data-options-heading p,.process-intro p,.process-steps p,.marketing-intro p,.market-questions dd{color:var(--text-muted)!important}

/* Homepage below the hero */
.proof-band{background:var(--surface-dark)!important;border-bottom:1px solid var(--px-line)}
.proof-inner strong{color:var(--px-lime);text-shadow:3px 3px 0 var(--px-cobalt)}
.proof-inner span{font-size:19px!important;color:var(--text-muted)!important}
.use-case-intro h2{color:var(--text-primary)!important}
.use-case-links li:before{background:var(--px-line)!important}
.use-case-links li{border-color:var(--px-line)!important}
.use-case-links a{border-radius:0!important;color:var(--text-primary)!important}
.use-case-links a:hover,.use-case-links a:focus-visible{background:var(--px-panel-2)!important}
.use-case-links a:hover .use-case-icon{stroke:var(--px-lime)!important}
.use-case-icon{stroke:var(--px-link)!important;stroke-linecap:square!important;stroke-linejoin:miter!important}
.use-case-label small{color:var(--text-muted)!important;font:400 17px var(--px-font)!important}
.data-option h3,.offer-card h3{color:var(--text-primary)}
/* Offer illustrations become pixel scenes on a dithered field. */
.offer-art{border-radius:0!important;background:var(--px-ink) conic-gradient(#18237a 25%,transparent 0 50%,#18237a 0 75%,transparent 0) 0 0/4px 4px!important;border:1px solid var(--px-line)}
.offer-art i{border-radius:0!important}
.offer-art-actors i{background:var(--px-panel)!important;border:1px solid var(--px-link)!important;box-shadow:4px 4px 0 var(--px-cobalt)!important}
.offer-art-actors i:nth-child(2){background:var(--px-lime)!important;border-color:var(--px-lime)!important}
.offer-art-actors i:nth-child(3){background:#6d86ff!important;border-color:#6d86ff!important}
.offer-art-custom i{background:var(--px-link)!important}
.offer-art-custom i:nth-child(3){background:var(--px-panel)!important;border:2px solid var(--px-lime)!important;box-shadow:4px 4px 0 var(--px-cobalt)!important}
.process-section,.marketing-section{background:#081033!important;border-top:1px solid var(--px-line)!important;border-bottom:1px solid var(--px-line)}
.process-steps,.process-steps>div,.market-questions>div{border-color:var(--px-line)!important}
.process-steps span{font-size:22px!important;color:var(--px-lime)!important}
.process-steps h3,.market-questions dt{color:var(--text-primary)}
.market-questions{border-top:2px solid var(--px-cobalt)!important}
.library-portal{border-radius:0!important;background:var(--px-cobalt) conic-gradient(#3a55f0 25%,transparent 0 50%,#3a55f0 0 75%,transparent 0) 0 0/6px 6px!important;box-shadow:6px 6px 0 var(--px-lime)}
.library-eyebrow{font-size:20px!important;color:#e6ebff!important}
.library-copy p{color:#e6ebff!important}
.library-ring{border:2px dashed #b7c4ff!important}
.library-tile{border-radius:0!important;border:2px solid var(--px-ink)!important;box-shadow:6px 6px 0 var(--px-ink)!important}
.library-portal:hover .library-tile{box-shadow:8px 10px 0 var(--px-ink)!important}
.library-tile span{font:400 19px var(--px-font)!important}
.library-tile svg{stroke-linecap:square;stroke-linejoin:miter}
.library-action{box-shadow:4px 4px 0 var(--px-ink)}
.contact-section{position:relative;overflow:hidden;background:var(--surface-dark)!important;border-top:2px solid var(--px-cobalt)}
.contact-section>.pixel-sky{position:absolute;inset:0;z-index:0}
.contact-section>.wrap{position:relative;z-index:1}
.contact-inner p{color:#c5d0f0!important}

/* Footer */
.site-footer{background:var(--surface-dark)!important;border-top:2px solid var(--px-cobalt)!important;color:var(--text-primary)!important}
.footer-group h2{font:400 22px/1.5 var(--px-font)!important;color:var(--px-lime)}
.footer-brand p{color:var(--text-primary)!important}
.footer-brand .footer-description,.footer-group p,.footer-group a{color:var(--text-muted)!important}
.footer-group a:hover{color:var(--px-lime)!important}
.footer-group a span{color:var(--px-lime)!important}
.footer-end{border-top:1px dashed var(--px-line)!important;font-size:18px!important;color:var(--text-muted)!important}
.back-to-top{border-radius:0!important;background:var(--px-cobalt)!important;border-color:var(--px-cobalt)!important;box-shadow:4px 4px 0 var(--px-ink)}
.back-to-top-label{font:400 19px var(--px-font)!important}
.back-to-top-icon{border-radius:0!important;background:var(--px-lime)!important;color:var(--px-ink)!important}
.back-to-top:hover{background:var(--px-panel)!important}

/* Inner pages: actors, directory, categories, services */
.content-breadcrumb ol{font-size:19px!important;color:var(--text-muted)!important}
.content-breadcrumb li+li:before{color:var(--px-link)!important}
.content-page h1>span{color:var(--text-muted)!important}
.content-intro,.service-email,.actor-documentation p,.actor-documentation li,.category-use li,.category-use p,.service-content p,.collection-guide p,.collection-guide li,.content-followup{color:#b4bede!important}
.content-page h2{color:var(--text-primary)}
.actor-heading>img,.actor-result img{border-radius:0!important;background:#eef2ff!important;border:2px solid var(--px-edge);box-shadow:3px 3px 0 var(--px-cobalt)}
.actor-result>span:last-child{color:var(--px-lime)!important}
.actor-result small{font-size:17px!important;color:var(--text-muted)!important}
.content-aside{border-color:var(--px-line)!important}
.content-aside h2{font-size:21px!important;color:var(--px-lime)}
.table-scroll table{color:var(--text-primary)}
.table-scroll thead{background:var(--px-panel-2)!important}
.table-scroll th,.table-scroll td{border-color:var(--px-line)!important}
.table-scroll caption,.table-scroll th small{color:var(--text-muted)!important}
.field-grid>div{background:var(--px-panel)!important;border-color:var(--px-line)!important}
.field-grid code{color:#5fd4ff!important}
.field-grid span{color:var(--text-muted)!important}
.field-options{font-size:17px!important;color:var(--px-link)!important}
.output-sample{background:var(--surface-dark)!important;color:#d6e0ff!important;box-shadow:4px 4px 0 var(--px-cobalt)}
.content-page details{border-color:var(--px-line)!important}
.content-page summary{color:var(--text-primary)}
.content-page summary::marker{color:var(--px-lime)}
.category-links a{background:var(--px-panel)!important;border:1px solid var(--px-edge)!important;border-radius:0!important;color:#cfd7ff!important;font:400 19px var(--px-font)!important;padding:6px 12px!important}
.category-links a:hover{border-color:var(--px-lime)!important;color:var(--px-lime)!important}
.collection-guide{box-shadow:4px 4px 0 var(--px-cobalt)}
.directory-toolbar label{font-size:19px!important;color:var(--text-muted)!important}
.directory-toolbar input,.directory-toolbar select{background:var(--surface-dark)!important;border:1px solid #3a4fd6!important;border-radius:0!important;color:var(--text-primary)!important}
#directory-count{font-size:19px!important;color:var(--px-link)!important}
.directory-pagination a{background:var(--px-panel)!important;border:1px solid var(--px-edge)!important;border-radius:0!important;font:400 21px var(--px-font)!important;color:var(--text-primary)}
.directory-pagination a:hover{border-color:var(--px-lime)!important}
.directory-pagination a[aria-current=page]{background:var(--px-lime)!important;border-color:var(--px-lime)!important;color:var(--px-ink)!important;box-shadow:3px 3px 0 var(--px-cobalt)}
.related-section{border-color:var(--px-line)!important}
.service-page .content-primary{border:0!important}

/* Contact dialog */
.contact-dialog{background:var(--px-panel)!important;color:var(--text-primary)!important;border:2px solid var(--px-link)!important;border-radius:0!important;box-shadow:8px 8px 0 var(--px-cobalt)!important}
.contact-dialog::backdrop{background:#030716cc}
.contact-dialog .contact-close{color:var(--text-primary)!important}
.contact-dialog .contact-eyebrow{font:400 20px var(--px-font)!important;letter-spacing:.02em!important;color:var(--px-lime)!important}
.contact-dialog .contact-intro,.contact-dialog label span{color:var(--text-muted)!important}
.contact-copy-row button{background:var(--surface-dark)!important;border:1px solid var(--px-edge)!important;border-radius:0!important;color:var(--text-primary)!important;font:400 20px var(--px-font)!important}
.contact-dialog textarea{background:var(--surface-dark)!important;border:1px solid #3a4fd6!important;border-radius:0!important;color:var(--text-primary)!important}
.contact-dialog .contact-feedback{color:var(--px-lime)!important}

/* 404 */
.not-found{position:relative;z-index:1}
.not-found p{color:var(--text-muted)}

@media(max-width:600px){.site-header nav,.site-header nav a{font-size:19px!important}.content-breadcrumb ol{font-size:17px!important}.page-sky{height:420px}}
@media(prefers-reduced-motion:reduce){.content-primary,.contact-main,.library-action,.directory-toolbar button,.button.primary,.contact-options a,.data-option,.offer-card,.actor-result{transition:none!important}}
.page-sky-full{height:100vh!important;-webkit-mask-image:none!important;mask-image:none!important}

/* Cards sit a clear step above the page: brighter cobalt panel, stronger edge. */
:root{--px-card:#15206a;--px-card-edge:#4460f0}
.actor-result,.data-option,.offer-card,.use-case-links,.collection-guide,.directory-toolbar{background:var(--px-card)!important;border-color:var(--px-card-edge)!important}
.actor-result:hover,.data-option:hover,.offer-card:hover{background:#1a2780!important;border-color:var(--px-lime)!important}
.use-case-links a:hover,.use-case-links a:focus-visible{background:#1d2b8a!important}
.actor-result small,.data-option p,.offer-card p,.use-case-label small{color:#c3cbee!important}
/* Logos are a mix of white and dark marks; a mid cobalt tile keeps both visible. */
.actor-heading>img,.actor-result img{background:#3550e8!important;border-color:var(--px-card-edge)!important;box-shadow:3px 3px 0 var(--px-ink)!important}
/* Form fields keep the readable body face; only their labels use the terminal face. */
.directory-toolbar input,.directory-toolbar select{font:400 15px 'DM Sans',Arial,sans-serif!important}
.directory-toolbar input::placeholder{color:#8f9bc4}
.category-links a{background:var(--px-card)!important;border-color:var(--px-card-edge)!important}
.content-actions a:not(.content-primary):not(.contact-telegram){font:400 21px var(--px-font);color:var(--px-lime);text-decoration:underline dashed;text-underline-offset:5px}

/* Contact form inside the dialog */
.contact-dialog [hidden]{display:none!important}
.contact-form{display:grid;gap:12px;margin:0 0 20px}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.contact-dialog label{margin:0!important}
.contact-fields label{display:grid;gap:8px}
.contact-dialog input:not(.contact-trap){width:100%;min-height:46px;padding:0 12px;background:var(--surface-dark);border:1px solid #3a4fd6;border-radius:0;color:var(--text-primary);font:400 15px 'DM Sans',Arial,sans-serif}
.contact-dialog :is(input,textarea):focus{border-color:var(--px-lime)}
.contact-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.contact-turnstile{min-height:65px}
.contact-send{justify-self:start;display:inline-flex;align-items:center;gap:18px;padding:13px 18px;border:0;border-radius:0;background:var(--px-lime);color:var(--px-ink);font:400 22px/1 var(--px-font);box-shadow:4px 4px 0 var(--px-cobalt);cursor:pointer;transition:transform .12s steps(2),box-shadow .12s steps(2)}
.contact-send:hover:not(:disabled){transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--px-cobalt)}
.contact-send:disabled{opacity:.5;cursor:not-allowed}
.contact-dialog .contact-feedback[data-tone=error]{color:#ff9d8a!important}
.contact-dialog .contact-feedback[data-tone=success]{color:var(--px-lime)!important;font:400 21px var(--px-font)}
.contact-alt{margin:4px 0 10px;font:400 19px var(--px-font);color:var(--px-link)}
@media(max-width:440px){.contact-fields{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.contact-send{transition:none}}
.contact-fields label b{font-weight:600}
.contact-fields label span{display:inline!important;margin:0!important}
.contact-dialog[data-mode=form] .contact-options a{background:transparent!important;color:var(--text-primary)!important;border:1px solid var(--text-primary)!important;box-shadow:3px 3px 0 var(--px-cobalt);font-size:20px!important}
.contact-dialog[data-mode=form] .contact-options a:hover{border-color:var(--px-lime)!important;color:var(--px-lime)!important}
.contact-options{grid-template-columns:minmax(0,1fr)!important;max-width:320px}

/* ---- Round 1 polish (award audit) ---- */
:root{--section:clamp(80px,9vw,120px)}
/* One display scale for every section heading; tighter tracking reads cleaner with the hard shadow. */
.section-lead h2,.process-intro h2,.marketing-intro h2,.data-options-heading h2,.contact-inner h2,.library-copy h2{font:600 clamp(40px,4.2vw,56px)/1.06 'Space Grotesk',sans-serif!important;letter-spacing:-.045em!important}
.library-copy h2{text-shadow:3px 3px 0 var(--px-ink)}
h1,h2,h3,dt{text-wrap:balance}
p,dd,li{text-wrap:pretty}
/* One vertical rhythm for homepage sections. */
.data-options,.offer-section,.process-section,.marketing-section,.contact-section,.library-section{padding-top:var(--section)!important;padding-bottom:var(--section)!important}
#ai-datasets{padding-top:calc(var(--section) * .5)!important}
/* Tinted bands a clear step off the page, so they read as intent. */
.process-section,.marketing-section{background:var(--px-panel)!important}
/* Readable body copy on dark. */
.process-steps p,.market-questions dd,.offer-card p,.data-option p,.dataset-note{font-size:15px!important;line-height:1.7!important}
.field-grid code{color:var(--px-link)!important}
/* Filters sit on their own surface; results keep the card surface. */
.directory-toolbar{background:var(--surface-dark)!important;border-color:var(--px-line)!important}
/* Actor banner tiles become pixel cards. */
.library-tile{background:var(--px-card)!important;color:#dfe5ff!important}
.library-tile.tile-commerce{background:var(--px-lime)!important;color:var(--px-ink)!important}
.library-tile.tile-maps{background:#6d86ff!important;color:var(--px-ink)!important}
/* Category chips: current page and counts. */
.category-links a small{margin-left:8px;color:var(--px-link);font-size:.85em}
.category-links a[aria-current=page]{background:var(--px-lime)!important;border-color:var(--px-lime)!important;color:var(--px-ink)!important;box-shadow:3px 3px 0 var(--px-cobalt)}
.category-links a[aria-current=page] small{color:var(--px-ink)}
/* Hero label: long form on wide screens, short form on narrow ones, never wrapping. */
.studio-intro b{font-weight:400}
.studio-intro .intro-narrow{display:none}
@media(max-width:900px){.studio-intro .intro-wide{display:none}.studio-intro .intro-narrow{display:inline}}
.home-dark .studio-intro{white-space:nowrap}
/* Calm hero: static status dot, cursor blinks a few times after typing then rests. */
.home-dark .studio-intro>span{animation:none!important}
.home-dark .studio-copy h1 em::after{animation:pixel-blink 1s steps(1) 1.5s 6 both!important}
/* Tablet: no empty sky above the copy. */
@media(min-width:761px) and (max-width:1100px){.studio-layout{height:auto!important;max-height:none!important;min-height:560px!important;padding:56px 0 80px}}
/* Mobile: the sculpture stays inside the viewport. */
@media(max-width:760px){.sculpture-stage{width:100%!important;margin-left:0!important}}

/* Proof ticker: real actor names scroll like a terminal feed. */
.proof-band{padding-bottom:0}
.data-ticker{overflow:hidden;border-top:1px solid var(--px-line);-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker-track{display:flex;width:max-content;gap:0;padding:14px 0;font:400 20px/1 var(--px-font);color:#dfe5ff;animation:ticker 70s linear infinite}
.ticker-track span{display:inline-flex;align-items:baseline;gap:10px;padding:0 28px;white-space:nowrap}
.ticker-track span:before{content:"";width:8px;height:8px;background:var(--px-lime);align-self:center}
.ticker-track small{font-size:17px;color:var(--px-link)}
.data-ticker:hover .ticker-track{animation-play-state:paused}
@keyframes ticker{to{transform:translateX(-50%)}}

/* Pixel reveal: sections below the fold resolve in whole-pixel steps as they enter. */
.px-reveal-ready .px-reveal:not(.is-passed){clip-path:inset(0 0 100% 0);opacity:.001}
.px-reveal-ready .px-reveal.is-in{animation:px-in .55s steps(6,end) var(--px-delay,0s) both}
@keyframes px-in{from{clip-path:inset(0 0 100% 0);opacity:1;filter:contrast(2.2) saturate(1.4)}to{clip-path:inset(0 0 0 0);opacity:1;filter:none}}

/* Nav and inline text links get a pixel underline that steps in. */
.site-header nav a:not(.nav-cta),.footer-group a{background:linear-gradient(var(--px-lime),var(--px-lime)) 0 100%/0 2px no-repeat;transition:background-size .2s steps(4)}
.site-header nav a:not(.nav-cta):hover,.footer-group a:hover{background-size:100% 2px;text-decoration:none!important}

@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.px-reveal-ready .px-reveal{clip-path:none;opacity:1}.px-reveal-ready .px-reveal.is-in{animation:none}.site-header nav a,.footer-group a{transition:none}}
.home-dark .studio-intro{gap:0!important}.home-dark .studio-intro>span{margin-right:10px}
/* Tablet: two-column splits collapse before they get cramped. */
@media(max-width:900px){.section-lead,.contact-inner{grid-template-columns:minmax(0,1fr)!important;gap:18px!important;align-items:start!important}.section-lead>p,.contact-inner p{max-width:60ch}.offer-grid{grid-template-columns:minmax(0,1fr)!important}.offer-card{min-height:0!important}}
@media(min-width:761px) and (max-width:1000px){.library-portal{grid-template-columns:minmax(0,1fr) minmax(0,.9fr)!important}.library-art{transform:scale(.66)!important;transform-origin:left center!important}}
/* Offer cards lift on hover, so the whole card follows its link. */
.offer-card{position:relative;cursor:pointer}
.offer-card a::after{content:"";position:absolute;inset:0}
.offer-card:focus-within{box-shadow:5px 5px 0 var(--px-cobalt);border-color:var(--px-lime)!important}

/* ---- Round 3 ---- */
/* Proof band: the stat leads a single ticker bar that underlines the hero. */
.proof-band{padding:0!important;border-top:0}
.data-ticker{display:flex;align-items:stretch;border-top:2px solid var(--px-cobalt)!important;-webkit-mask-image:none!important;mask-image:none!important}
.ticker-stat{flex:none;display:flex;align-items:center;gap:10px;margin:0;padding:12px clamp(20px,4vw,48px);background:var(--px-cobalt);font:400 20px/1 var(--px-font);color:#eef2ff;white-space:nowrap}
.ticker-stat strong{font:600 26px/1 'Space Grotesk',sans-serif;color:var(--px-lime);text-shadow:2px 2px 0 var(--px-ink)}
.ticker-window{flex:1;min-width:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
@media(max-width:600px){.ticker-stat{font-size:17px;padding:10px 16px}.ticker-stat strong{font-size:22px}}
/* Featured card: real actors instead of an illustration. */
.data-option-featured{display:flex!important;flex-direction:column;gap:18px}
.data-option-featured .featured-actors{grid-template-columns:minmax(0,1fr)!important;gap:8px!important;margin:0!important}
.data-option-featured .actor-result{min-height:64px;padding:10px 12px;background:var(--px-panel)!important;border-color:var(--px-edge)!important}
.data-option-featured .actor-result img{width:36px;height:36px}
.data-option-featured .actor-result strong{font-size:13px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.data-option-featured .data-option-action{margin-top:4px}
.data-option-featured:hover{transform:none!important;box-shadow:none!important;border-color:var(--px-card-edge)!important}
/* Directory: compact filter bar, count on the same row as the button. */
.directory-toolbar{padding:16px!important;gap:10px!important}
.directory-toolbar #directory-count{flex-basis:100%!important}
@media(min-width:901px){.directory-toolbar #directory-count{flex-basis:auto!important;margin-left:4px;align-self:flex-end;padding-bottom:12px}.directory-toolbar{flex-wrap:nowrap!important}}
.content-page .category-links{margin:16px 0 20px!important}
.content-page .content-intro{margin-bottom:18px}
/* Actor card layout for pages that don't load content.css (homepage featured list). */
.featured-actors{list-style:none;padding:0;display:grid}
.featured-actors li{min-width:0}
.featured-actors .actor-result{display:flex;align-items:center;gap:12px;height:100%;border:1px solid;color:var(--text-primary)}
.featured-actors .actor-result img{flex:none;object-fit:contain}
.featured-actors .actor-result>span:nth-child(2){min-width:0;flex:1}
.featured-actors .actor-result strong{line-height:1.45}
.featured-actors .actor-result small{display:block;margin-top:3px}
.data-options-grid .data-option{align-items:start!important}
.data-option-featured .featured-actors{width:100%}
.data-option-points{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px;font:400 20px/1.2 var(--px-font);color:#dfe5ff}
.data-option-points li{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--px-panel);border:1px solid var(--px-edge)}
.data-option-points li:before{content:"";flex:none;width:9px;height:9px;background:var(--px-lime)}
.data-options-heading p,.section-lead>p{text-wrap:balance}
.market-questions dd a{font:400 20px var(--px-font)!important}

/* ---- Round 4: inner pages ---- */
.content-page h1{text-wrap:balance}
/* Long schemas fold away behind a terminal-style toggle. */
.content-more{margin-top:12px;border:1px dashed var(--px-edge)!important;padding:0!important}
.content-more>summary{list-style:none;padding:14px 16px;font:400 21px var(--px-font)!important;color:var(--px-lime);cursor:pointer}
.content-more>summary::-webkit-details-marker{display:none}
.content-more>summary:before{content:"+";display:inline-block;width:1.2em}
.content-more[open]>summary:before{content:"−"}
.content-more>summary:hover{background:var(--px-panel)}
.content-more>.table-scroll,.content-more>.field-grid{margin:0 12px 12px}
/* Service pages use the same two-column layout as actor pages. */
.service-page .content-layout{margin-top:8px}
.service-page .service-content{max-width:78ch}
@media(max-width:600px){
 /* Breadcrumb: keep the trail on one line; the page title is already the H1. */
 .content-breadcrumb ol{flex-wrap:nowrap!important;white-space:nowrap}
 .content-breadcrumb li[aria-current]{min-width:0;overflow:hidden;text-overflow:ellipsis}
 /* Input tables stack so identifiers get the full width. */
 .table-scroll thead{display:none}
 .table-scroll tr{display:block;border-top:1px solid var(--px-line)}
 .table-scroll th[scope=row],.table-scroll td{display:block;width:auto!important;border:0!important}
 .table-scroll th[scope=row]{padding-bottom:4px!important}
 .table-scroll td{padding-top:0!important}
 .table-scroll th code{overflow-wrap:normal;word-break:normal}
}
/* Contact form: a clear waiting state until the spam check passes. */
.contact-send:disabled{background:transparent!important;color:var(--px-link)!important;border:1px dashed var(--px-link)!important;box-shadow:none!important;opacity:1!important}
@media(max-width:600px){.content-breadcrumb li[aria-current],.content-breadcrumb li:last-child{flex:1 1 0;min-width:0;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}.content-breadcrumb li{white-space:nowrap!important}}
.contact-dialog:focus{outline:none}
/* Long sample lines scroll; a lime inset edge says so. */
.output-sample{box-shadow:4px 4px 0 var(--px-cobalt),inset -3px 0 0 var(--px-lime)!important}
.content-aside a{font-size:13px;line-height:1.4}

/* ---- Round 5: answer-first blocks ---- */
/* Actor pages: a short answer and a facts list directly under the title. */
.actor-summary{margin:0 0 44px;padding:24px 28px;background:var(--px-panel);border:1px solid var(--px-line);border-left:4px solid var(--px-lime)}
.actor-summary h2{font:400 22px/1.2 var(--px-font)!important;letter-spacing:.02em!important;color:var(--px-lime);margin:0 0 10px!important;text-shadow:none!important}
.actor-summary>p{font-size:16px;line-height:1.75;color:var(--text-primary);margin:0 0 18px;max-width:80ch}
.actor-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));margin:0;background:var(--px-ink);border-top:1px solid var(--px-line);border-left:1px solid var(--px-line)}
.actor-facts>div{padding:12px 14px;min-width:0;border-right:1px solid var(--px-line);border-bottom:1px solid var(--px-line)}
.actor-facts dt{font:400 18px/1.1 var(--px-font);color:var(--text-muted);margin:0 0 4px}
.actor-facts dd{margin:0;font-size:14px;line-height:1.5;color:var(--text-primary)}
/* Collection pages: one factual line under the intro. */
.collection-facts{font:400 20px/1.35 var(--px-font);color:var(--px-lime);margin:-12px 0 8px;max-width:860px}
/* Homepage questions: same split as the market section, answers fold under each question. */
.home-faq{padding:var(--section) 0;border-top:1px solid var(--px-line)}
.home-faq-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr);gap:clamp(36px,6vw,100px);align-items:start}
.home-faq-intro h2{font:600 clamp(40px,4.2vw,56px)/1.06 'Space Grotesk',sans-serif;letter-spacing:-.045em;margin:14px 0 18px;text-shadow:3px 3px 0 var(--px-cobalt)}
.home-faq-intro p{color:var(--text-muted);font-size:15px;line-height:1.7;max-width:34ch}
.home-faq-list{border-top:2px solid var(--px-cobalt)}
.home-faq-list details{border-bottom:1px solid var(--px-line)}
.home-faq-list summary{list-style:none;display:flex;gap:16px;align-items:baseline;padding:24px 0;cursor:pointer}
.home-faq-list summary::-webkit-details-marker{display:none}
.home-faq-list summary:before{content:"+";flex:none;width:1em;font:400 26px/1 var(--px-font);color:var(--px-lime)}
.home-faq-list details[open] summary:before{content:"−"}
.home-faq-list summary:hover h3{color:var(--px-lime)}
.home-faq-list h3{margin:0;font:500 21px/1.35 'Space Grotesk',sans-serif;letter-spacing:-.025em;color:var(--text-primary);transition:color .12s steps(2)}
.home-faq-list p{margin:0 0 24px 42px;font-size:15px;line-height:1.75;color:var(--text-muted);max-width:68ch}
@media(max-width:900px){.home-faq-layout{grid-template-columns:minmax(0,1fr);gap:28px}.home-faq-intro h2 br{display:none}}
@media(max-width:600px){.actor-summary{padding:20px 18px}.home-faq-list h3{font-size:19px}.home-faq-list p{margin-left:0}}

/* ---- Round 6: library terminal ---- */
/* The library portal's art is a terminal window listing the largest categories with live counts. */
.library-art{display:flex!important;align-items:center;justify-content:center;min-height:0!important;height:auto!important;width:auto!important;padding:48px 48px 48px 0;margin:0!important;transform:none!important;perspective:none}
.library-window{width:100%;max-width:470px;background:var(--px-ink);border:2px solid var(--px-ink);box-shadow:10px 10px 0 var(--px-ink),10px 10px 0 2px #b7c4ff;color:#dfe5ff;transition:transform .2s steps(2),box-shadow .2s steps(2)}
.library-portal:hover .library-window{transform:translate(-4px,-4px);box-shadow:14px 14px 0 var(--px-ink),14px 14px 0 2px var(--px-lime)}
.library-bar{display:flex;align-items:center;gap:7px;padding:9px 12px;background:var(--px-panel-2);border-bottom:2px solid var(--px-cobalt);font:400 18px/1 var(--px-font);color:var(--text-muted)}
.library-bar i{width:10px;height:10px;background:var(--px-line)}
.library-bar i:first-child{background:var(--px-lime)}
.library-bar span{margin-left:8px}
.library-prompt{margin:0;padding:16px 18px 6px;font:400 21px/1.2 var(--px-font);color:#dfe5ff}
.library-prompt b{font-weight:400;color:var(--px-lime);margin-right:8px}
.library-rows{list-style:none;margin:0;padding:6px 18px 4px;display:grid;gap:9px}
.library-rows li{display:grid;grid-template-columns:20px 150px minmax(0,1fr) 34px;align-items:center;gap:12px;font:400 20px/1 var(--px-font)}
.library-rows svg{width:20px;height:20px;fill:var(--px-link)}
.library-rows span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.library-rows em{height:12px;background:repeating-linear-gradient(90deg,#24327580 0 6px,transparent 6px 8px)}
.library-rows em:before{content:"";display:block;height:100%;width:var(--w);background:repeating-linear-gradient(90deg,var(--px-link) 0 6px,transparent 6px 8px);transition:background-color .2s steps(2)}
.library-rows strong{font-weight:400;text-align:right;color:#fff}
.library-portal:hover .library-rows em:before{background:repeating-linear-gradient(90deg,var(--px-lime) 0 6px,transparent 6px 8px)}
.library-portal:hover .library-rows svg{fill:var(--px-lime)}
.library-total{padding:12px 18px 18px;color:var(--text-muted)}
.library-cursor{display:inline-block;width:10px;height:18px;margin-left:6px;vertical-align:-2px;background:var(--px-lime);animation:library-blink 1s steps(1) 4}
@keyframes library-blink{50%{opacity:0}}
@media(max-width:900px){.library-art{padding:36px 28px 40px}.library-window{max-width:none}}
@media(max-width:600px){.library-art{padding:32px 20px 34px}.library-rows li{grid-template-columns:18px 128px minmax(0,1fr) 30px;gap:9px;font-size:18px}.library-window{box-shadow:6px 6px 0 var(--px-ink),6px 6px 0 2px #b7c4ff}}
@media(prefers-reduced-motion:reduce){.library-window,.library-rows em:before{transition:none}.library-cursor{animation:none}}

/* ---- Round 7: use-case strip ---- */
/* Pixel sprites on hard-shadow tiles; the tile turns lime when its card is hovered. */
.use-case-intro h2{font:400 22px/1 var(--px-font)!important;letter-spacing:.02em!important;color:var(--px-lime)!important}
.use-case-intro h2:before{content:"";display:inline-block;width:9px;height:9px;margin-right:10px;vertical-align:2px;background:currentColor}
.use-case-links{counter-reset:use-case}
.use-case-links li{counter-increment:use-case}
.use-case-links a{position:relative}
.use-case-links a:after{content:counter(use-case,decimal-leading-zero);position:absolute;top:18px;right:18px;font:400 18px/1 var(--px-font);color:#7083d8}
.use-case-icon{width:44px!important;height:44px!important;padding:7px;box-sizing:border-box;fill:var(--px-link);stroke:none!important;background:var(--px-ink);border:1px solid var(--px-edge);box-shadow:3px 3px 0 var(--px-cobalt);transition:background-color .15s steps(2),box-shadow .15s steps(2),transform .15s steps(2)}
.use-case-links a:hover .use-case-icon,.use-case-links a:focus-visible .use-case-icon{background:var(--px-lime);fill:var(--px-ink);border-color:var(--px-lime);box-shadow:3px 3px 0 var(--px-ink);transform:translate(-1px,-1px)}
.use-case-links a:hover:after,.use-case-links a:focus-visible:after{color:var(--px-lime)}
@media(max-width:600px){.use-case-icon{width:38px!important;height:38px!important;padding:6px}.use-case-links a:after{top:14px;right:12px;font-size:16px}}
@media(prefers-reduced-motion:reduce){.use-case-icon{transition:none}}

/* ---- Round 8: custom-scraper card art ---- */
/* A small request brief (source, fields, rhythm) replaces the abstract tilted square. */
.offer-art-custom{display:flex;align-items:center;justify-content:center;padding:12px}
.brief-card{width:100%;display:flex;flex-direction:column;background:var(--px-panel);border:1px solid var(--px-link);box-shadow:4px 4px 0 var(--px-cobalt);font:400 15px/1 var(--px-font);color:#dfe5ff}
.brief-bar{padding:5px 7px;background:var(--px-panel-2);border-bottom:1px solid var(--px-cobalt);color:var(--text-muted)}
.brief-bar:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;vertical-align:1px;background:var(--px-lime)}
.brief-row{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:6px;padding:7px 7px 0}
.brief-row b{font-weight:400;color:var(--text-muted)}
.brief-fill{display:block;height:8px;width:var(--w);background:repeating-linear-gradient(90deg,var(--px-link) 0 5px,transparent 5px 7px)}
.brief-chips{display:flex;gap:3px}
.brief-chips span{width:12px;height:8px;background:var(--px-link)}
.brief-ok{padding:9px 7px 7px;color:var(--px-lime)}
.data-option:hover .brief-fill{background:repeating-linear-gradient(90deg,var(--px-lime) 0 5px,transparent 5px 7px)}
.data-option:hover .brief-chips span{background:var(--px-lime)}

/* ---- Round 9: consistency pass ---- */
/* The collection fact line is supporting copy, not an action: keep lime for actions. */
.collection-facts{color:#c3cbee!important;font-size:19px!important}
.collection-facts:before{content:"";display:inline-block;width:8px;height:8px;margin-right:10px;vertical-align:2px;background:var(--px-lime)}
/* Marketing label matches every other section overline. */
.marketing-label{font-size:20px!important;color:var(--px-lime)!important}
.marketing-label:before{content:"";width:9px;height:9px;background:currentColor;display:inline-block;margin-right:10px;vertical-align:1px}
/* Inner-page questions use the same +/− terminal toggle as the homepage. */
.content-page details:not(.content-more)>summary{list-style:none;display:flex;gap:14px;align-items:baseline}
.content-page details:not(.content-more)>summary::-webkit-details-marker{display:none}
.content-page details:not(.content-more)>summary:before{content:"+";flex:none;width:.9em;font:400 24px/1 var(--px-font);color:var(--px-lime)}
.content-page details:not(.content-more)[open]>summary:before{content:"−"}
.content-page details:not(.content-more)>summary:hover{color:var(--px-lime)}
.content-page details:not(.content-more)>p{padding-left:36px}
