/* Dyēŭs hero — proposition-first composition.
   This file is the hero layout authority and loads after the legacy page bundle. */
body.dyeus-deep .concept-hero:has(.dyeus-ident){
  position:relative;
  overflow:hidden;
  padding:calc(var(--cyb-nav-h,72px) + clamp(2.4rem,4vw,3.8rem)) 0 clamp(3.2rem,5vw,4.8rem)!important;
  min-height:auto!important;
  display:flex;
  align-items:center;
}
body.dyeus-deep .concept-hero:has(.dyeus-ident)::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(70% 90% at 76% 48%,color-mix(in srgb,var(--cyb-accent) 9%,transparent),transparent 66%);
}
body.dyeus-deep .concept-hero:has(.dyeus-ident)>.cyb-wrap{
  position:relative;z-index:1;width:min(1240px,calc(100% - 2*var(--cyb-gutter)));max-width:none!important;margin-inline:auto;text-align:left!important;
}
/* Columns align at the top, not the centre. Centred, any change in the copy column's height — the
   display face arriving and re-wrapping the h1 — moved the identity block by half the difference,
   a 0.09 layout shift on every desktop visit; the two columns are within a few pixels of each
   other anyway, so the composition reads the same. */
.dyeus-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:clamp(2.4rem,5vw,5.5rem);align-items:start}
.dyeus-hero-copy{min-width:0;max-width:690px}
body.dyeus-deep .dyeus-ident.dyeus-deep-ident{align-items:flex-start!important;max-width:none!important;margin:0 0 1.55rem!important}
body.dyeus-deep .dyeus-ident .dyeus-kicker{margin:0 0 .5rem!important;font-size:var(--cyb-label-min)!important;letter-spacing:.29em!important}
body.dyeus-deep .dyeus-wordmark.dyeus-deep-wordmark{font-size:clamp(2.05rem,3.15vw,3.35rem)!important;line-height:.94!important;letter-spacing:.115em!important;text-indent:0!important;opacity:.88}
body.dyeus-deep .dyeus-ident .dyeus-sub{margin-top:.55rem!important;font-size:var(--cyb-label-min)!important;letter-spacing:.17em!important;opacity:.7}
body.dyeus-deep .concept-hero:has(.dyeus-ident) h1{margin:0 0 1rem!important;max-width:10.5em!important;font-size:clamp(2.8rem,4.5vw,4.75rem)!important;line-height:1.01!important;letter-spacing:-.035em!important}
body.dyeus-deep .concept-hero:has(.dyeus-ident) .lede{margin:0!important;max-width:56ch!important;font-size:clamp(.98rem,1.05vw,1.1rem)!important;line-height:1.62!important;color:var(--cyb-fg-2)!important}
body.dyeus-deep .concept-hero:has(.dyeus-ident) .actions{justify-content:flex-start!important;margin:1.55rem 0 0!important;gap:.75rem}

.dyeus-hero-instrument{position:relative;min-height:440px;display:grid;place-items:center;isolation:isolate;border:1px solid var(--cyb-line);border-radius:var(--cyb-radius-lg);background:radial-gradient(65% 70% at 50% 50%,color-mix(in srgb,var(--cyb-accent) 8%,transparent),transparent 72%),color-mix(in srgb,var(--cyb-bg-2) 48%,transparent);box-shadow:var(--cyb-shadow-1);overflow:hidden}
.dyeus-hero-instrument::before{content:"";position:absolute;width:min(27vw,390px);aspect-ratio:1;border-radius:50%;border:1px solid color-mix(in srgb,var(--cyb-accent) 18%,transparent);box-shadow:0 0 0 34px color-mix(in srgb,var(--cyb-accent) 2.5%,transparent),0 0 64px color-mix(in srgb,var(--cyb-accent) 7%,transparent)}
.dyeus-hero-core{position:relative;z-index:3;width:132px;aspect-ratio:1;display:grid;place-items:center;border-radius:50%;border:1px solid color-mix(in srgb,var(--cyb-cyan) 55%,transparent);background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--cyb-accent) 20%,var(--cyb-bg)),var(--cyb-bg) 72%);box-shadow:0 0 50px color-mix(in srgb,var(--cyb-accent) 16%,transparent);text-align:center}
.dyeus-hero-core::before,.dyeus-hero-core::after{content:"";position:absolute;border:1px solid color-mix(in srgb,var(--cyb-cyan) 25%,transparent);border-radius:50%}.dyeus-hero-core::before{inset:14px}.dyeus-hero-core::after{inset:29px}
.dyeus-hero-core b{font:500 .72rem/1 var(--cyb-mono);letter-spacing:.16em;color:var(--cyb-cyan);z-index:1}.dyeus-hero-core span{display:block;margin-top:.45rem;font:500 .625rem/1.3 var(--cyb-mono);letter-spacing:.12em;color:var(--cyb-fg-3)}
.dyeus-hero-node{position:absolute;z-index:2;width:min(205px,42%);padding:.8rem .9rem;border:1px solid var(--cyb-line);border-radius:10px;background:color-mix(in srgb,var(--cyb-bg-2) 88%,transparent);box-shadow:0 12px 30px rgba(0,0,0,.12)}
.dyeus-hero-node b{display:block;font:500 var(--cyb-label-min)/1.2 var(--cyb-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyb-cyan)}
.dyeus-hero-node span{display:block;margin-top:.4rem;font-size:.76rem;line-height:1.38;color:var(--cyb-fg-2)}
.dyeus-hero-node::after{content:"";position:absolute;background:linear-gradient(90deg,color-mix(in srgb,var(--cyb-cyan) 35%,transparent),transparent);height:1px;width:64px;top:50%}
.dyeus-hero-node--state{left:4%;top:9%}.dyeus-hero-node--state::after{left:100%}
.dyeus-hero-node--reason{right:4%;top:9%}.dyeus-hero-node--reason::after{right:100%;transform:rotate(180deg)}
.dyeus-hero-node--govern{right:4%;bottom:9%;border-left-color:color-mix(in srgb,var(--cyb-green) 65%,var(--cyb-line))}.dyeus-hero-node--govern b{color:var(--cyb-green)}.dyeus-hero-node--govern::after{right:100%;transform:rotate(180deg)}
.dyeus-hero-node--prove{left:4%;bottom:9%}.dyeus-hero-node--prove::after{left:100%}
.dyeus-hero-loop{position:absolute;inset:13% 12%;border:1px dashed color-mix(in srgb,var(--cyb-cyan) 18%,transparent);border-radius:50%;z-index:0}.dyeus-hero-loop::after{content:"OBSERVE → REASON → GOVERN → VERIFY";position:absolute;left:50%;bottom:-1.45rem;transform:translateX(-50%);white-space:nowrap;font:500 .5rem/1 var(--cyb-mono);letter-spacing:.14em;color:var(--cyb-fg-3)}

@media(max-width:1050px){.dyeus-hero-grid{grid-template-columns:1fr;gap:2.75rem}.dyeus-hero-copy{max-width:780px}.dyeus-hero-instrument{min-height:440px;max-width:760px;width:100%;margin-inline:auto}}
@media(max-width:700px){body.dyeus-deep .concept-hero:has(.dyeus-ident){padding-top:calc(var(--cyb-nav-h,72px) + 1.8rem)!important}body.dyeus-deep .dyeus-wordmark.dyeus-deep-wordmark{font-size:clamp(2rem,10vw,2.8rem)!important}body.dyeus-deep .concept-hero:has(.dyeus-ident) h1{font-size:clamp(2.5rem,11vw,3.35rem)!important}body.dyeus-deep .concept-hero:has(.dyeus-ident) .actions{display:grid!important;grid-template-columns:1fr}body.dyeus-deep .concept-hero:has(.dyeus-ident) .actions .cyb-button{justify-content:center;width:100%}.dyeus-hero-instrument{min-height:520px;display:block;border-radius:var(--cyb-radius-md)}.dyeus-hero-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:118px}.dyeus-hero-node{width:47%;padding:.8rem}.dyeus-hero-node::after{display:none}.dyeus-hero-node--state{left:0;top:5%}.dyeus-hero-node--reason{right:0;top:5%}.dyeus-hero-node--prove{left:0;bottom:5%}.dyeus-hero-node--govern{right:0;bottom:5%}.dyeus-hero-loop{inset:21% 8%}}
/* The breathe is an opacity pulse on a glow layer so it composites; dyeus-hero.js
   pauses it while the hero is off screen or the tab is hidden. */
@media(prefers-reduced-motion:no-preference){.dyeus-hero-core>div::before{content:"";position:absolute;inset:-1px;border-radius:50%;box-shadow:0 0 68px color-mix(in srgb,var(--cyb-accent) 12%,transparent);opacity:0;pointer-events:none;animation:dyeus-core-breathe 6s ease-in-out infinite}.dyeus-hero-instrument.is-paused .dyeus-hero-core>div::before{animation-play-state:paused}@keyframes dyeus-core-breathe{50%{opacity:1}}}
