/* Editorial structure with Cenovel's original typography and palette. Public pages use
   existing --cv-* colors via aliases; the console is unchanged. */
.cv-bar-inner{gap:32px}
.cv-nav-main{gap:0}
.cv-nav-main a{font-size:15px;padding-inline:10px}
.cv-nav-side{gap:12px}
.cv-header-cta{white-space:nowrap;min-height:var(--cv-btn-h);padding-inline:16px}
main:has(>.ed-next)+.cv-foot{margin-top:0}
body.cv .cv-link{font-size:15px;gap:10px}
body.cv main{padding-bottom:0}
.ed-label{display:block;font:500 14px/1.4 var(--cv-font);letter-spacing:0;color:var(--ed-accent)}
.ed-features-head h1{font:500 clamp(42px,4.25vw,60px)/1.06 var(--cv-font);letter-spacing:-.045em;text-wrap:balance;margin:24px 0}
.ed-lead{font-size:19px;line-height:1.6;color:var(--ed-muted);max-width:49ch}
.ed-release{display:flex;align-items:center;gap:24px;min-height:64px;border-block:1px solid var(--ed-line);font-size:14px}
.ed-release>.ed-label{color:var(--ed-muted);font-size:11px}
.ed-release-desc{margin-left:auto;color:var(--ed-muted)}
.ed-release:hover .ed-release-desc{text-decoration:underline;text-underline-offset:4px}
.ed-section{padding:88px 0}
.ed-section-head{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:42px}
.ed-section-head h2,.ed-work h2,.ed-next h2,.ed-resource-row h2{font:500 40px/1.12 var(--cv-font);letter-spacing:-.035em}
.ed-section-head .ed-label{margin-bottom:18px}
.ed-section-head p{max-width:51ch;color:var(--ed-muted);font-size:17px;line-height:1.65}
.ed-capabilities{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.ed-capabilities article{border-top:1px solid var(--ed-line-strong);padding-top:20px;display:flex;flex-direction:column;align-items:start}
.ed-number{font:13px var(--cv-mono);color:var(--ed-accent);margin-bottom:36px}
.ed-capabilities h3{font:500 26px/1.2 var(--cv-font);letter-spacing:-.02em}
.ed-capabilities p{font-size:16px;line-height:1.65;color:var(--ed-muted);margin:16px 0 24px}
.ed-capabilities .cv-link{margin-top:auto}
.ed-product-view{background:var(--ed-section)}
.ed-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:20px}
.ed-screen{margin:0;background:var(--ed-card);border:1px solid var(--ed-line);border-radius:3px}
.ed-screen img{display:block;width:100%;height:auto;border-radius:2px 2px 0 0}
.ed-screen figcaption{padding:13px 20px;font-size:13px;line-height:1.5;color:var(--ed-muted);border-top:1px solid var(--ed-line)}
.ed-work{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.ed-work>div>p{color:var(--ed-muted);max-width:38ch;margin:22px 0}
.ed-work h2{margin-top:18px}
.ed-work-list{list-style:none;padding:0;margin:0}
.ed-work-list li{display:grid;grid-template-columns:32px 1fr;gap:18px;border-top:1px solid var(--ed-line);padding:24px 0}
.ed-work-list li:first-child{padding-top:0;border-top:0}
.ed-work-list>li>span{color:var(--ed-accent);font:13px/1.8 var(--cv-mono)}
.ed-work-list h3{font-size:19px}
.ed-work-list p{font-size:16px;color:var(--ed-muted);margin-top:8px}
.ed-principles{padding:72px 0;background:var(--ed-section-alt)}
.ed-principle-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px}
.ed-principle-grid article{display:flex;flex-direction:column;align-items:start;border-top:1px solid var(--ed-line-strong);padding-top:24px}
.ed-principle-grid h3{font-size:19px}
.ed-principle-grid p{font-size:16px;color:var(--ed-muted);margin:14px 0 24px}
.ed-principle-grid .cv-link{margin-top:auto}
.ed-resource-row{display:flex;justify-content:space-between;align-items:center;gap:32px}
.ed-resource-row>div{display:flex;flex-wrap:wrap;gap:20px 32px}
.ed-next{background:var(--ed-well);padding:64px 0;border-top:1px solid var(--ed-line)}
.ed-next-inner{display:grid;grid-template-columns:1.4fr 1fr;gap:80px;align-items:center}
.ed-next h2{margin:18px 0}
.ed-next p{font-size:16px;max-width:53ch;color:var(--ed-muted)}
.ed-next-actions{display:flex;flex-direction:column;align-items:start;gap:22px;justify-self:end}
/* Feature pages use chapters, evidence, and guide links instead of a wall of cards. */
.ed-features-head{padding:64px 0 40px}
.ed-features-head h1{max-width:1000px}
.ed-features-head .ed-lead{max-width:65ch}
.ed-jump-links{display:flex;flex-wrap:wrap;gap:16px 36px;border-top:1px solid var(--ed-line);padding-top:24px;margin-top:40px;font-size:15px}
.ed-jump-links a{display:inline-flex;align-items:center;gap:18px;min-height:36px}
.ed-jump-links a:hover{text-decoration:underline;text-underline-offset:4px}
.ed-feature-group{padding:72px 0;border-top:1px solid var(--ed-line);scroll-margin-top:16px}
.ed-feature-group:nth-of-type(even){background:var(--ed-well)}
.ed-feature-details{display:grid;grid-template-columns:.85fr 1.6fr;gap:64px;align-items:start}
.ed-feature-details>ul{list-style:none;margin:0;padding:0}
.ed-feature-details li+li{margin-top:26px;padding-top:24px;border-top:1px solid var(--ed-line)}
.ed-feature-details h3{font-size:18px}
.ed-feature-details p{font-size:15px;color:var(--ed-muted);margin:8px 0 10px}
.ed-feature-details .ed-screen{margin-bottom:18px}
.ed-editions{display:grid;grid-template-columns:1fr 1fr;gap:48px}
.ed-editions article{padding-top:24px;border-top:1px solid var(--ed-line-strong)}
.ed-editions h3{font:500 26px/1.25 var(--cv-font)}
.ed-editions p{margin:16px 0;color:var(--ed-muted);font-size:16px}
.ed-editions .ed-fine{font-size:14px}
.ed-support-row{display:flex;flex-wrap:wrap;gap:16px 36px;margin-top:40px}
@media(max-width:1100px){
.ed-section-head,.ed-work{gap:48px}.ed-feature-details{gap:32px}
 .cv-bar-inner{gap:32px}.cv-nav-main{gap:0}
}
@media(max-width:1023px){
 .cv-nav-side{align-items:center}
}
@media(max-width:800px){
 .ed-features-head h1{font-size:48px}
 .ed-section{padding:56px 0}
 .ed-section-head,.ed-work,.ed-next-inner,.ed-feature-details{grid-template-columns:1fr;gap:28px}
 .ed-section-head h2,.ed-work h2,.ed-next h2,.ed-resource-row h2{font-size:36px}
 .ed-capabilities,.ed-principle-grid{grid-template-columns:1fr;gap:32px}
 .ed-number{margin-bottom:20px}.ed-capabilities p{max-width:58ch;margin-bottom:14px}
 .ed-principles{padding:56px 0}.ed-resource-row{align-items:start;flex-direction:column}
 .ed-next-actions{justify-self:start}.ed-feature-group{padding:48px 0}
 .ed-feature-details>div{max-width:100%}.ed-editions{gap:32px}
}
@media(max-width:520px){
 .ed-features-head h1{font-size:40px;letter-spacing:-.04em}
 .ed-lead{font-size:17px}
 .ed-release{gap:12px;flex-wrap:wrap;padding:16px 0}.ed-release-desc{flex-basis:calc(100% - 40px);margin-left:0}
 .ed-section-head h2,.ed-work h2,.ed-next h2,.ed-resource-row h2{font-size:32px}
 .ed-editions{grid-template-columns:1fr}.ed-jump-links{gap:8px 24px}
 .ed-resource-row>div{flex-direction:column;gap:18px}.ed-screen figcaption{padding:12px}
}
@media(prefers-reduced-motion:reduce){
 .ed-jump-links,.ed-feature-group{scroll-behavior:auto}
}

/* Progressive enhancement: the compact navigation must remain usable without scripts. */
@media(max-width:1023px){
 html:not(.js) .cv-menu{display:none}
 html:not(.js) .cv-bar{position:static}
 html:not(.js) .cv-nav{display:flex}
 html:not(.js) body:is(.cv,.cv-docs){height:auto;overflow:visible}
 html:not(.js) body:is(.cv,.cv-docs)>.page-scroll{height:auto;overflow:visible}
 html:not(.js) .page-scroll>main{padding-top:0}
 html:not(.js) .page-scroll>main>:is(.cv-hero,.cv-subhero):first-child{margin-top:0;padding-top:48px}
}

/* The page heads retain Cenovel's titanium field, blue accents, and white diagram surface. */
.ed-features-head{background:var(--cv-hero);--ed-ink:var(--cv-hero-ink);--ed-muted:var(--cv-hero-muted);--ed-accent:var(--cv-hero-label);--ed-line:var(--cv-hero-line)}
.ed-features-head h1{color:var(--cv-hero-ink)}
.ed-features-head .ed-jump-links{color:var(--cv-hero-ink)}
.ed-release{margin-top:24px}

/* The same editorial rhythm across public articles, trust, demo, and documentation. */
body.cv :is(.cv-hero,.cv-subhero) h1{max-width:19ch;line-height:1.1;letter-spacing:-.035em}
body.cv .cv-subhero .cv-hero-copy{align-items:center;gap:72px}
body.cv .cv-subhero .cv-hero-copy .cv-lead{margin-top:0}
body.cv main>.cv-s{padding-top:64px}
body.cv main>.cv-s .cv-s-head{gap:64px;border-top:0;padding-top:0;margin-bottom:32px;align-items:end}
body.cv main>.cv-s .cv-s-head h2{font-size:32px;line-height:1.2;max-width:22ch}
body.cv main>.cv-s .cv-s-head p{font-size:17px;line-height:1.65}
body.cv .cv-article{padding-top:56px;column-gap:64px}
body.cv .cv-prose>section{padding-block:36px}
body.cv .cv-prose>section:first-child{padding-top:0}
body.cv .cv-prose h2{font-size:28px;line-height:1.25;margin-bottom:18px}
body.cv .cv-prose :is(p,li){line-height:1.7}
body.cv .cv-article.no-toc .cv-prose{max-width:800px}
.ed-trust-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 48px}
.ed-trust-links li{border-top:1px solid var(--cv-line)}
.ed-trust-links a{position:relative;display:block;padding:24px 36px 24px 0;min-height:136px}
.ed-trust-links h3{font-size:20px;margin:0 0 10px}
.ed-trust-links p{color:var(--cv-muted);font-size:15px;line-height:1.6;max-width:52ch}

.ed-trust-links a:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.ed-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.ed-contact-grid h2{font-size:28px;line-height:1.25;margin-bottom:18px}
.ed-contact-grid p{color:var(--cv-muted);font-size:17px;line-height:1.7;max-width:52ch}
.ed-contact-security{padding:40px 0;background:var(--cv-page-low)}
.ed-contact-security h2{font-size:22px;margin-bottom:12px}
.ed-contact-security p{margin-bottom:12px;color:var(--cv-muted)}
.ed-contact-security p a{color:var(--cv-blue-text);text-decoration:underline;text-underline-offset:3px}
/* Reading pages: a clearer title, comfortable line length, quiet metadata, and usable wayfinding. */
body.cv-docs .docs-shell{padding-top:48px}
body.cv-docs .docs-article h1{font-size:42px;line-height:1.14;letter-spacing:-.03em;margin:12px 0 20px}
body.cv-docs .docs-article .intro{font-size:19px;line-height:1.65;color:var(--cv-muted)}
body.cv-docs .docs-article .kicker{font-size:13px;color:var(--cv-blue-text)}
body.cv-docs .docs-article .asof{margin:24px 0 36px;padding:14px 0;font-size:13px;color:var(--cv-muted)}
body.cv-docs .docs-article>section>h2{padding-left:0;font-size:28px;line-height:1.25;margin:48px 0 18px}
body.cv-docs .docs-article>section>h2::before,body.cv-docs .docs-article>section>h3::before,body.cv-docs .page-outline nav a::before{content:none}
body.cv-docs .docs-article>section:first-of-type>h2{margin-top:0}
body.cv-docs .docs-article>section>h3{font-size:21px;margin:28px 0 12px}
body.cv-docs .docs-article :is(p,li){line-height:1.7}
body.cv-docs .docs-article .rel-kind li{padding-left:0}
body.cv-docs .docs-article .rel-kind li::before{content:none}
body.cv-docs .rel-kind ul{list-style:disc;padding-left:22px}
body.cv-docs .doc-next{align-items:start;gap:24px;padding-top:24px;margin-top:48px}
body.cv-docs .doc-next a{font-size:14px;line-height:1.6;max-width:46%}
body.cv-docs .page-outline a{padding-block:7px;line-height:1.5}
body.cv-docs .landing-hero{display:grid;grid-template-columns:1.35fr 1fr;gap:80px;align-items:center;padding:64px 0}
body.cv-docs .landing-hero h1{font:500 48px/1.12 var(--cv-font);letter-spacing:-.03em;max-width:14ch}
body.cv-docs .landing-statement{font-size:18px;line-height:1.65;max-width:54ch}
body.cv-docs .landing-intro .meta-line{font-size:13px;margin:20px 0}
.ed-doc-start{display:grid;border-top:1px solid var(--cv-line)}
.ed-doc-start a{display:block;padding:22px 0;border-bottom:1px solid var(--cv-line);color:var(--cv-ink);text-decoration:none}
.ed-doc-start a>span{font-size:19px;font-weight:500}
.ed-doc-start a:hover>span{text-decoration:underline;text-underline-offset:4px}
.ed-doc-start p{font-size:15px;line-height:1.6;color:var(--cv-muted);margin:8px 0 0;max-width:44ch}
body.cv-docs .pubs-head{border-top:1px solid var(--cv-line);padding-top:32px}
body.cv-docs .pub-group-head{grid-template-columns:1fr;border-bottom-color:var(--cv-line);padding:8px 0 20px}
body.cv-docs .pub-group-head p{grid-column:1;font-size:15px;line-height:1.6;max-width:72ch}
body.cv-docs .pub-num{display:none}
body.cv-docs .pub-group .pub-list li{grid-template-columns:minmax(200px,1fr) minmax(0,2fr);column-gap:48px;row-gap:8px;padding:20px 0}
body.cv-docs .pub-group .pub-list li>a{grid-column:1;grid-row:1}
body.cv-docs .pub-group .pub-summary{grid-column:2;grid-row:1/3;font-size:15px;line-height:1.6}
body.cv-docs .pub-group .pub-date{grid-column:1;grid-row:2;text-align:left;font-size:12px}
@media(min-width:1280px){body.cv-docs .docs-shell{grid-template-columns:208px minmax(0,1fr) 176px;gap:40px}}
@media(max-width:1023px){
 body.cv .cv-subhero .cv-hero-copy{gap:28px}
 body.cv .cv-article{gap:32px}
 body.cv-docs .landing-hero{gap:40px}
}
@media(max-width:800px){
 .ed-trust-links,.ed-contact-grid,body.cv-docs .landing-hero{grid-template-columns:1fr;gap:32px}
 .ed-trust-links{gap:0}
 body.cv main>.cv-s .cv-s-head{gap:20px}
 body.cv-docs .landing-hero{padding:40px 0}
 body.cv-docs .landing-hero h1{font-size:38px}
 body.cv-docs .docs-article h1{font-size:34px}
 body.cv-docs .pub-group .pub-list li{display:grid;grid-template-columns:1fr;gap:8px;padding:20px 0}
 body.cv-docs .pub-group .pub-summary{grid-column:1;grid-row:2}
 body.cv-docs .pub-group .pub-date{grid-row:3}
 body.cv-docs .doc-next{flex-direction:column}
 body.cv-docs .doc-next a{max-width:100%}
}

/* The inner page owns scrolling. Clipping both outer boxes prevents native hash
   navigation from also scrolling a hidden outer ancestor under the fixed header. */
html:has(body:is(.cv,.cv-docs)){height:100%;overflow:clip}
body:is(.cv,.cv-docs){position:fixed;inset:0;width:100%;overflow:clip}
@media(max-width:1023px){
 html:not(.js):has(body:is(.cv,.cv-docs)){height:auto;overflow:visible}
 html:not(.js) body:is(.cv,.cv-docs){position:static;overflow:visible}
}

.ed-contact-security-inner{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.ed-contact-security-inner>div:last-child{padding-left:0}
.ed-contact-security-inner p{max-width:48ch}
@media(max-width:800px){.ed-contact-security-inner{grid-template-columns:1fr;gap:20px}}

/* Explanatory diagrams replace miniature console screenshots in the product story. */
.ed-diagram{margin:0 0 20px;background:var(--cv-page);border:1px solid var(--cv-line);border-radius:var(--cv-radius-lg);padding:20px 24px 0;color:var(--cv-ink)}
.ed-diagram svg{display:block;width:100%;height:auto;max-height:490px;overflow:visible}
.ed-diagram svg text{font:24px var(--cv-font);fill:var(--cv-ink)}
.ed-diagram svg .ed-diagram-note{font-size:18px;fill:var(--cv-muted)}
.ed-diagram-object{fill:var(--cv-page);stroke:var(--cv-ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.ed-diagram-wire{fill:none;stroke:var(--cv-blue-text);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ed-diagram-dashed{stroke-dasharray:5 7}
.ed-diagram-node,.ed-diagram-dot{fill:var(--cv-page);stroke:var(--cv-blue-text);stroke-width:2}
.ed-diagram-field{fill:var(--cv-page);stroke:var(--cv-line);stroke-width:1}
.ed-diagram figcaption{border-top:1px solid var(--cv-line);padding:16px 0;font-size:15px;line-height:1.6}
.ed-diagram figcaption span{display:block;color:var(--cv-muted);font-size:13px}
.ed-product-view .ed-diagram{max-width:900px;margin-inline:auto}
.ed-feature-details>div>.cv-link{margin-top:4px}
@media(max-width:800px){.ed-diagram{padding:12px 8px 0}.ed-diagram figcaption{padding:12px 8px}}

/* Keyboard selection must remain distinct beyond the pale result-row fill. */
.search-dialog li[aria-selected=true] a{outline:2px solid var(--ed-focus);outline-offset:-2px}

/* Header links: the hover underline (180 ms in, 120 ms out, platinum.css) spans the link's own text at this padding. */
.cv-nav-main a::after{left:10px;right:10px}

/* Moving drawings on Home and Features (owner 2026-10-12): wires draw in once, then a blue pulse travels each path in
   turn. Labels never move. The pulse is hidden unless the figure is playing (platinum.js .cv-run), so without
   JavaScript or under reduced motion every drawing is complete and still. */
.ed-pulse{fill:none;stroke:var(--cv-blue);stroke-width:7;stroke-linecap:round;stroke-dasharray:.02 2;stroke-dashoffset:.1;visibility:hidden}
.ed-diagram figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:16px}
.ed-diagram .cv-motion-btn{flex:none}
@media (prefers-reduced-motion:no-preference){
  .js [data-anim] .ed-pulse{visibility:visible;animation:ed-travel 6s linear 1s infinite both}
  .js [data-anim] .ed-pulse.k2{animation-delay:2.2s}.js [data-anim] .ed-pulse.k3{animation-delay:3.4s}.js [data-anim] .ed-pulse.k4{animation-delay:4.6s}
  .js [data-anim] .ed-diagram-operations .ed-pulse{animation-duration:8s}
  .js [data-anim] :is(.ed-diagram-node,.ed-diagram-dot){transform-box:fill-box;transform-origin:center;animation:cv-pop 420ms var(--cv-ease-enter) 700ms both}
  @keyframes ed-travel{0%{stroke-dashoffset:.1}30%,100%{stroke-dashoffset:-1.1}}
}
/* Features head on the shared page head (its line field and one signal pass): the head runs under the fixed bar. */
.cv-subhero.ed-features-head{padding:calc(64px + var(--cv-bar)) 0 40px}
body.cv .cv-subhero.ed-features-head h1{max-width:1000px}
