/* VixNova's four-colour system. This final layer changes colour and controls, never layout. */
:root{
  --vix-ink:#101819;
  --vix-paper:#F0EEE6;
  --vix-coral:#FF7059;
  --vix-aqua:#8AF0D4;
  --vix-muted-dark:color-mix(in srgb,var(--vix-paper) 75%,var(--vix-ink));
  --vix-muted-light:color-mix(in srgb,var(--vix-ink) 75%,var(--vix-paper));
  --vix-line-dark:color-mix(in srgb,var(--vix-paper) 45%,var(--vix-ink));
  --vix-line-light:color-mix(in srgb,var(--vix-ink) 55%,var(--vix-paper));
  --vix-paper-tint:color-mix(in srgb,var(--vix-paper) 94%,var(--vix-ink));
  --vix-coral-tint:color-mix(in srgb,var(--vix-coral) 22%,var(--vix-paper));
  --vix-aqua-tint:color-mix(in srgb,var(--vix-aqua) 24%,var(--vix-paper));
  --cream:var(--vix-paper);
  --studio-accent:var(--vix-coral);
  --aqua:var(--vix-aqua);
  --blue:var(--vix-aqua);
  --muted:var(--vix-muted-dark);
  --line:var(--vix-line-dark);
  --vix-button-height:56px;
  --vix-button-pad-y:17px;
  --vix-button-pad-x:24px;
  --vix-button-font:14px;
  --vix-button-gap:24px;
  --vix-button-arrow:22px;
}
body{
  background-color:var(--vix-ink);
  color:var(--vix-paper);
  --section-fg:var(--vix-paper);
  --section-muted:var(--vix-muted-dark);
  --section-line:var(--vix-line-dark);
}
::selection{background:var(--vix-coral);color:var(--vix-ink)}

/* Sections alternate ink and paper. Aqua is reserved for a purposeful highlight. */
.studio-hero,.page-hero,.statement-section,.st-packages,.st-trust,.st-faq,
.orbit-section,.labs-section,.insights-section,.ownership,.site-footer,
.article-wrap,.legal,.not-found{
  background:var(--vix-ink);
  color:var(--vix-paper);
  --section-fg:var(--vix-paper);
  --section-muted:var(--vix-muted-dark);
  --section-line:var(--vix-line-dark);
}
.industry-section,.st-founder,.st-work,.st-booking,.fan-section,
body[data-route="services"] .page-hero+.section,
body[data-route="industries"] .page-hero+.section,
body[data-route="careers"] .page-hero+.section,
body[data-route="about"] .st-founder+.section,
body[data-route="about"] .industry-section+.section{
  background:var(--vix-paper);
  color:var(--vix-ink);
  --section-fg:var(--vix-ink);
  --section-muted:var(--vix-muted-light);
  --section-line:var(--vix-line-light);
}
.principle-bar{background:var(--vix-ink);border-color:var(--vix-line-dark)}
.principles>span,.principles>div{color:var(--vix-paper)}
.principles svg{color:var(--vix-aqua)}
.contact-band,body[data-page="home"] .contact-band,.st-call-strip{
  background:var(--vix-coral);
  color:var(--vix-ink);
  --section-fg:var(--vix-ink);
  --section-muted:var(--vix-ink);
  --section-line:var(--vix-ink);
}
/* Kept for any saved link to the former invitation band. */
.aqua-manifesto{background:var(--vix-paper);color:var(--vix-ink);--section-fg:var(--vix-ink);--section-muted:var(--vix-muted-light);--section-line:var(--vix-line-light)}
.contact-band .eyebrow,body[data-page="home"] .contact-band .eyebrow,
.st-call-strip .st-available,.st-call-strip h2,.st-call-layout>div>p,
.st-call-email,.studio-response{color:var(--vix-ink);opacity:1}
.contact-band .eyebrow:before,body[data-page="home"] .contact-band .eyebrow:before{background:var(--vix-ink)}
.st-call-email{border-color:var(--vix-ink)}
.st-call-strip .st-available i{background:var(--vix-ink);box-shadow:none}

/* Shared text uses full-opacity, contrast-tested ink/paper mixes. */
.eyebrow,.eyebrow.blue{color:var(--section-muted);opacity:1}
.section-head p,.statement-bottom>p,.ownership-pillars p,
.ownership-intro,.ownership-item p,.labs-note,.perspective-note,
.st-work .st-head>p,.st-section .st-small,.st-case-body .st-case-warning,
.st-case-body dt,.st-trust-heading>p:last-child,.st-testimonial figcaption>span,
.st-rating small,.st-faq-layout>div:first-child>p:last-child,
.st-faq-item>p,.st-founder-signoff>div>span,.st-profile-link small,
.st-package-intro p,.st-package-intro .st-kicker,.st-package-price>span,
.st-package-foot>span,.st-case-bottom .st-kicker,
.st-booking-card .st-booking-note,.st-booking-card .st-calendar-placeholder{
  color:var(--section-muted);
  opacity:1;
}
.st-section h2 em,.st-call-strip h2 em{opacity:1;color:inherit}
.studio-hero-top,.studio-descriptor,.studio-audience,.studio-founder-note,
.studio-hero-end>p,.nova-studio-label{color:var(--vix-muted-dark)}
.studio-availability,.studio-founder-note strong{color:var(--vix-paper)}
.studio-hero h1 em,.ownership-pillars article>span,.st-package-number{color:var(--vix-coral)}
.studio-hero h1 em:after{border-color:var(--vix-coral);border-top-color:transparent;border-right-color:transparent}
.nova-handnote,.studio-availability i,.studio-dock i{color:var(--vix-aqua)}
.studio-availability i,.st-available i{background:var(--vix-aqua);box-shadow:0 0 0 4px color-mix(in srgb,var(--vix-aqua) 14%,transparent)}
.mini-portrait{background:var(--vix-ink);color:var(--vix-coral);border-color:var(--vix-line-dark)}
.studio-hero-end,.studio-hero .hero-actions>.text-link,.studio-scroll span{border-color:var(--vix-line-dark)}
.studio-nova-ring,.studio-nova-ring:before,.studio-nova-ring:after{border-color:color-mix(in srgb,var(--vix-paper) 22%,transparent)}
.studio-marquee{background:var(--vix-coral);color:var(--vix-ink);border-color:var(--vix-ink)}
.studio-marquee b,.studio-marquee .marquee-track i{color:var(--vix-ink)}
.word-statement span{color:var(--vix-muted-dark)}
.word-statement span.lit{color:var(--vix-paper);text-shadow:none}
.ownership-pillars article,.ownership-item{border-color:var(--vix-line-dark)}
.text-link,.text-link:hover{color:var(--section-fg);border-color:currentColor}
.industry-link:hover{color:var(--vix-ink)}

/* One primary pill, including every historical variant and repeated call path. */
body[data-page] :is(.btn,.st-button,.cta-pill,.nav-cta,.studio-dock>a)[class],
body[data-page] .studio-dock>a{
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  min-height:var(--vix-button-height);
  padding:var(--vix-button-pad-y) var(--vix-button-pad-x);
  gap:var(--vix-button-gap);
  border:1px solid var(--vix-ink);
  border-radius:100px;
  background:var(--vix-coral);
  color:var(--vix-ink);
  font-family:var(--sans);
  font-size:var(--vix-button-font);
  font-weight:600;
  line-height:1.3;
  text-decoration:none;
  box-shadow:none;
}
body[data-page] :is(.btn,.st-button,.cta-pill,.nav-cta,.studio-dock>a)[class]:hover,
body[data-page] .studio-dock>a:hover{
  background:var(--vix-paper);
  color:var(--vix-ink);
  border-color:var(--vix-ink);
  box-shadow:none;
}
body[data-page] :is(.btn,.st-button,.cta-pill,.nav-cta,.studio-dock>a) :is(.arrow,span:last-child){
  color:inherit;
  font-size:var(--vix-button-arrow);
  opacity:1;
}
.studio-dock{
  background:var(--vix-paper);
  color:var(--vix-ink);
  border-color:var(--vix-ink);
  --vix-button-height:48px;
  --vix-button-pad-y:13px;
  --vix-button-pad-x:18px;
  --vix-button-font:12px;
  --vix-button-gap:18px;
  --vix-button-arrow:20px;
}
.studio-dock i{background:var(--vix-ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--vix-aqua) 50%,transparent)}
@media(max-width:700px){
  .nav{
    --vix-button-height:44px;
    --vix-button-pad-y:10px;
    --vix-button-pad-x:14px;
    --vix-button-font:10px;
    --vix-button-gap:12px;
    --vix-button-arrow:18px;
  }
}
@media(max-width:370px){
  .nav{--vix-button-font:9px;--vix-button-pad-x:11px;--vix-button-gap:8px;--vix-button-arrow:17px}
}

/* Fan cards keep their depth and fanning, with undimmed, readable brand surfaces. */
.fan-card:not(.selected),.fan-card{
  background:var(--vix-paper);
  color:var(--vix-ink);
  border-color:var(--vix-ink);
  opacity:1;
  --section-fg:var(--vix-ink);
  --section-muted:var(--vix-ink);
}
.fan-card:nth-child(3n+2){background:var(--vix-coral)}
.fan-card:nth-child(3n){background:var(--vix-aqua)}
.fan-card.selected{
  background:var(--vix-ink);
  color:var(--vix-paper);
  border-color:var(--vix-paper);
  opacity:1;
  --section-fg:var(--vix-paper);
  --section-muted:var(--vix-paper);
}
.fan-card:is(.selected,:not(.selected)) :is(h3,p,.fan-label,.fan-card-index,.text-link){color:inherit;opacity:1}
.fan-card:is(.selected,:not(.selected)) .fan-label{border-color:currentColor;background:transparent}
.fan-card .text-link{border-color:currentColor}
.fan-card:not(.selected) .fan-card-star{color:color-mix(in srgb,var(--vix-ink) 12%,transparent)}
.fan-card.selected .fan-card-star{color:color-mix(in srgb,var(--vix-paper) 10%,transparent)}
.fan-section .section-head h2 em{color:var(--vix-ink)}
.fan-section .section-head p,.fan-hint{color:var(--vix-muted-light)}
.fan-arrow,.fan-dot{color:var(--vix-ink);background:var(--vix-paper);border-color:var(--vix-ink)}
.fan-arrow:hover,.fan-dot.selected{color:var(--vix-paper);background:var(--vix-ink);border-color:var(--vix-ink)}

/* The process is exactly ink; ring accents carry the active state. */
.orbit-section{background:var(--vix-ink)}
.orbit-section .orbit-heading>p,.orbit-section .orbit-copy>p,
.orbit-section .orbit-output,.orbit-section .orbit-scroll-note,
.orbit-section .orbit-navigation>span{color:var(--vix-muted-dark);opacity:1}
.orbit-section .orbit-output>span,.orbit-section .orbit-copy h3{color:var(--vix-paper)}
.orbit-section .orbit-copy-num,.orbit-heading h2 em{color:var(--vix-coral)}
.orbit-section .orbit-track{background:none;border-color:var(--vix-line-dark)}
.orbit-section .orbit-track:after{color:var(--vix-line-dark)}
.orbit-section .orbit-output{border-color:var(--vix-line-dark)}
.orbit-section .orbit-step{color:var(--vix-paper)}
.orbit-section .orbit-step-label small{color:inherit;opacity:1}
.orbit-section .orbit-step.active,.orbit-section .orbit-step:hover{color:var(--vix-aqua)}
.orbit-section .orbit-point{background:var(--vix-ink);border-color:var(--vix-paper)}
.orbit-section .orbit-step.active .orbit-point{background:var(--vix-aqua);border-color:var(--vix-aqua);box-shadow:0 0 15px color-mix(in srgb,var(--vix-aqua) 40%,transparent)}
.orbit-section .orbit-progress{background:conic-gradient(from 0deg,var(--vix-aqua) calc(var(--progress,0)*360deg),transparent 0);opacity:1}
.orbit-section .orbit-arrow{background:var(--vix-ink);color:var(--vix-paper);border-color:var(--vix-line-dark)}
.orbit-section .orbit-arrow:hover{background:var(--vix-aqua);color:var(--vix-ink);border-color:var(--vix-aqua)}

/* Original Labs and industry drawings use only the brand colours and their paper tints. */
.product-art.voice{background:var(--vix-coral-tint)}
.product-art.search{background:var(--vix-aqua-tint)}
.product-art.crawler{background:var(--vix-coral)}
.product-art.story{background:var(--vix-paper)}
.product-art:is(.voice,.search,.crawler,.story) svg,
.product-art:is(.voice,.search,.crawler,.story) :is(.art-index,.art-label,.lab-query,.lab-checks){color:var(--vix-ink);opacity:1}
.product-art .lab-query{background:var(--vix-paper);border-color:var(--vix-ink)}
.product-card h3{color:var(--vix-paper)}
.product-card p,.product-card .product-type,.labs-note{color:var(--vix-muted-dark)}
.lab-heading .lab-stamp{color:var(--vix-coral);border-color:var(--vix-coral)}
.industry-visual,.industry-full .industry-detail-art{background:var(--vix-paper-tint);color:var(--vix-ink)}
.industry-visual:nth-child(2n),.industry-full:nth-child(2n) .industry-detail-art{background:var(--vix-coral-tint)}
.industry-visual:nth-child(3n),.industry-full:nth-child(3n) .industry-detail-art{background:var(--vix-aqua-tint)}
.industry-visual:hover{background:var(--vix-aqua-tint)}
.industry-visual :is(h3,p,.industry-visual-number,.industry-explore),.industry-art,.industry-full .industry-detail-art svg{color:var(--vix-ink)}
.industry-art:before{background:color-mix(in srgb,var(--vix-paper) 60%,transparent)}
.industry-explore,.industry-full,.industry-full .clean-list li{border-color:var(--vix-line-light)}
.industry-full :is(p,h3,.clean-list li),.gallery-hint{color:var(--vix-muted-light)}
.industry-section .section-head p{color:var(--vix-muted-light)}

/* Founder, work and booking all belong to the same paper/ink world. */
.st-founder-poster,.st-photo-note{background:var(--vix-coral);color:var(--vix-ink)}
.st-portrait-placeholder:before{background:var(--vix-aqua)}
.st-portrait-placeholder{border-color:var(--vix-ink)}
.st-portrait-placeholder svg{stroke:var(--vix-ink);opacity:1}
.st-founder-sticker{background:var(--vix-ink);color:var(--vix-paper)}
.st-founder-signoff,.st-case-details,.st-case-body dl>div{border-color:var(--vix-line-light)}
.st-case-art--search{background:var(--vix-aqua-tint);color:var(--vix-ink)}
.st-case-art--search:before{background:conic-gradient(from 80deg,var(--vix-aqua),var(--vix-paper),var(--vix-coral),var(--vix-aqua))}
.st-demo-orb{background:radial-gradient(circle at 25% 20%,var(--vix-paper),var(--vix-aqua) 35%,var(--vix-coral) 65%,var(--vix-ink) 95%)}
.st-search-window,.st-flow-node{background:var(--vix-paper);color:var(--vix-ink);border-color:var(--vix-ink)}
.st-demo-query,.st-demo-sources>span,.st-flow-node span{border-color:var(--vix-line-light)}
.st-window-dots i,.st-demo-result i{background:var(--vix-line-light)}
.st-case-art--flow{background:var(--vix-coral);color:var(--vix-ink)}
.st-flow-lines{stroke:var(--vix-ink)}
.st-flow-node--three i{background:var(--vix-aqua);color:var(--vix-ink)}
.st-booking-card{
  background:var(--vix-paper);
  color:var(--vix-ink);
  outline:1px solid var(--vix-ink);
  outline-offset:-1px;
  --section-fg:var(--vix-ink);
  --section-muted:var(--vix-muted-light);
  --section-line:var(--vix-line-light);
}
.st-booking-card .st-booking-duration{color:var(--vix-ink)}
.st-booking-duration>span{background:var(--vix-aqua);color:var(--vix-ink)}
.st-booking-response{color:var(--vix-ink);border-color:var(--vix-line-light)}
.st-booking .st-available i{background:var(--vix-ink);box-shadow:0 0 0 4px var(--vix-aqua)}
.st-case-warning{border-color:var(--vix-ink)}
.st-package-list,.st-package,.st-testimonial figcaption,.st-rating{border-color:var(--vix-line-dark)}
.st-package-includes li:before,.st-quote-mark{color:var(--vix-coral)}
.st-rating-stars{color:var(--vix-aqua)}
.st-testimonial{border-color:var(--vix-line-dark);background:var(--vix-ink)}
.st-faq-list,.st-faq-item{border-color:var(--vix-line-dark)}
.st-faq-layout a,.st-faq-number,.st-faq-item[open] summary{color:var(--vix-aqua)}

/* Every route uses the same neutral text and boundary colours. */
.page-hero p,.page-hero .page-number,.article-back,.article-byline,.article-end,.article-deck,
.article-wrap .article-body p,.legal p,.legal li{color:var(--vix-muted-dark)}
.page-hero h1 em,.footer-col h3,.insight-card .insight-meta{color:var(--vix-coral)}
.page-hero,.article-byline,.article-end,.filter-btn,.insight-card,.insights-page .insight-card{border-color:var(--vix-line-dark)}
.insight-card h3,.insights-page .insight-card h3{color:var(--vix-paper)}
.insight-card p,.insights-page .insight-card p{color:var(--vix-muted-dark)}
.insight-card:hover h3{color:var(--vix-aqua)}
.insight-card:before{color:var(--vix-line-dark)}
.filter-btn{background:var(--vix-ink);color:var(--vix-paper);box-shadow:none}
.filter-btn:hover{background:var(--vix-paper);color:var(--vix-ink);border-color:var(--vix-paper)}
.filter-btn.active{background:var(--vix-aqua);color:var(--vix-ink);border-color:var(--vix-aqua);box-shadow:none}
.service-full{border-color:var(--vix-line-light)}
.service-full .service-index,.service-full .lead,.detail-columns h3,.clean-list li,
.clean-list li:before,.split-story p,.value p,.value .num{color:var(--section-muted)}
.clean-list li,.value{border-color:var(--section-line)}
.split-story .large-copy{color:var(--section-fg)}
.vision-block{background:var(--vix-paper-tint);color:var(--vix-ink)}
.vision-block p{color:var(--vix-muted-light)}
.location,.application-box,.contact-form{
  background:var(--vix-ink);
  color:var(--vix-paper);
  --section-fg:var(--vix-paper);
  --section-muted:var(--vix-muted-dark);
  --section-line:var(--vix-line-dark);
}
.location :is(.location-number,p),.application-box p{color:var(--vix-muted-dark)}
.location h3,.application-box h3{color:var(--vix-paper)}
.location svg{color:var(--vix-aqua)}
.careers-intro p,.career-area span:last-child{color:var(--vix-muted-light)}
.career-area{color:var(--vix-ink);border-color:var(--vix-line-light)}
.contact-form{border-color:var(--vix-line-dark)}
.field label{color:var(--vix-paper)}
.field label span,.form-foot p{color:var(--vix-muted-dark)}
.field input,.field textarea,.field select,.field select option{background:var(--vix-ink);color:var(--vix-paper);border-color:var(--vix-line-dark)}
.field input::placeholder,.field textarea::placeholder{color:var(--vix-muted-dark);opacity:1}
.field input:hover,.field textarea:hover,.field select:hover{border-color:var(--vix-paper)}
.field input:focus,.field textarea:focus,.field select:focus{background:var(--vix-ink);border-color:var(--vix-aqua)}
.email-link,.copy-button{color:var(--vix-aqua);border-color:var(--vix-line-dark)}
.contact-note,.contact-locations p,.contact-locations .muted{color:var(--vix-muted-dark)}
.contact-locations h3{color:var(--vix-paper)}
.form-status,.toast{background:var(--vix-paper);color:var(--vix-ink);border-color:var(--vix-ink)}
.faq{color:var(--section-fg);border-color:var(--section-line)}
.faq summary{color:var(--section-fg)}
.faq summary:after{color:var(--section-fg)}
.faq p{color:var(--section-muted)}
.legal a,.article-back:hover{color:var(--vix-aqua)}
.site-header,.site-header.menu-open,.site-header.menu-open .nav-links.open{background:var(--vix-ink);border-color:var(--vix-line-dark)}
.site-header .nav-links>a,.site-header.menu-open .nav-links.open>a{color:var(--vix-paper)}
.site-header .nav-links>a:hover,.site-header .nav-links>a.active,
.site-header.menu-open .nav-links.open>a:hover,.site-header.menu-open .nav-links.open>a.active{color:var(--vix-aqua)}
.site-header .nav-links>a{border-color:var(--vix-line-dark)}
.logo svg,.footer-watermark span{color:var(--vix-coral)}
.logo,.menu-toggle,.footer-watermark{color:var(--vix-paper)}
.footer-col,.footer-brand p,.footer-bottom{color:var(--vix-muted-dark)}
.footer-top,.footer-preword,.footer-bottom{border-color:var(--vix-line-dark)}
.footer-preword>a{color:var(--vix-paper);border-color:var(--vix-line-dark)}
.footer-col a:hover,.footer-preword>a:hover{color:var(--vix-aqua)}
.motion-toggle{color:var(--vix-paper);border-color:var(--vix-line-dark)}
.motion-toggle:hover{color:var(--vix-aqua);border-color:var(--vix-aqua);background:var(--vix-ink)}

/* The inner ink ring is visible on paper/coral; the outer paper ring is visible on ink. */
:is(a,button,input,textarea,select,summary,[tabindex]):focus-visible{
  outline:3px solid var(--vix-ink)!important;
  outline-offset:3px!important;
  box-shadow:0 0 0 6px var(--vix-paper)!important;
}

/* Text links keep AA contrast on both section themes; motion and underline provide hover feedback. */
.text-link:hover{color:var(--section-fg)}
.cta-intro{max-width:580px;color:var(--vix-ink);font-size:15px;line-height:1.7;margin:22px 0 0}
@media(max-width:760px){.st-package-price{grid-template-columns:1fr}.st-package-price .st-button{grid-column:1;grid-row:auto;max-width:100%;width:max-content;margin-top:12px}}
/* Demonstration labels stay legible throughout their animation. */
.product-art .lab-checks>span{animation-name:vix-check-in}
@keyframes vix-check-in{0%,12%{opacity:1;translate:0 3px}27%,85%{opacity:1;translate:0 0}100%{opacity:1;translate:0 3px}}
@media(prefers-reduced-motion:reduce){.product-art .lab-checks>span{animation:none!important}}
