/* Compact Hero: preserve title position and the full curve rotation envelope. */
.page-hero.page-hero--auralis.page-hero--products { min-height: 464px; padding-bottom: 33.5px; }
.page-hero.page-hero--auralis.page-hero--products > .site-wrap { justify-content: flex-start; }
.page-hero--products .products-hero__title-slot { display: flex; flex-direction: column; justify-content: flex-end; min-height: inherit; }
.page-hero--products .page-title { margin: 0; }
.page-hero--products .products-hero__tagline { margin: 20px 0 0; max-width: 650px; font-size: 18px; font-weight: 300; line-height: 1.8; color: #373431; }
@media (min-width: 1440px) {
  /* (94 + 380 - 52) / 2 = 211px of whitespace above the existing 52px title. */
  .page-hero.page-hero--auralis.page-hero--products > .site-wrap { min-height: 169px; }
}
@media (max-width: 767px) {
  .page-hero.page-hero--auralis.page-hero--products { min-height: 440px; padding-bottom: 26px; }
  .page-hero--products .product-hero-curves__anchor { top: 24px; }
}
.products-overview p { margin: 0; font-size: 16px; font-weight: 300; line-height: 1.8; color: #383532; }
.products-overview h2, .products-overview h3 { overflow-wrap: anywhere; }
.products-overview__aios { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; row-gap: 28px; padding-bottom: 25px; }
.products-overview__aios-heading { display: flex; flex-direction: column; align-self: start; min-width: 0; color: inherit; text-decoration: none; background: #fff; border: 1px solid #e7e7e9; border-radius: 16px; overflow: hidden; }
.products-overview__aios-heading, .products-overview__app { transition: border-color .3s, translate .3s, box-shadow .3s; }
.products-aios-card__heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 18px 22px 20px; }
.products-aios-card__heading > h2 { min-width: 0; margin: 0; }
.products-aios-card__heading > .site-link-arrow { flex-shrink: 0; }
.products-overview__aios-heading:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
/* React Bits Well Organized — Copyright (c) 2026 David Haz.
   MIT + Commons Clause: client/src/components/react-bits/LICENSE.md.
   Source light surfaces and orbit geometry, with title above. */
.products-aios-card__visual { height: 252px; flex: none; width: calc(100% - 16px); margin: 0 8px 8px; display: flex; align-items: center; justify-content: center; position: relative; overflow: hidden; border: 1px solid rgba(24,24,27,.07); border-radius: 8px; background: #fafafa; pointer-events: none; }
.products-aios-orbit { position: relative; flex: none; width: 280px; height: 280px; transform: scale(1.3); transform-origin: center; }
.products-aios-orbit__center, .products-aios-orbit__node { position: absolute; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgba(255,255,255,.94); border: 1px solid rgba(24,24,27,.1); color: #52525b; box-shadow: 0 4px 14px rgba(24,24,27,.055); }
.products-aios-orbit__center { top: 50%; left: 50%; transform: translate(-50%,-50%); width: 54px; height: 54px; z-index: 3; }
.products-aios-orbit__ring { position: absolute; top: 50%; left: 50%; border-radius: 50%; border: 1px solid rgba(24,24,27,.09); }
.products-aios-orbit__ring--1 { width: 140px; height: 140px; margin: -70px 0 0 -70px; animation: products-orbit-cw 20s linear infinite; }
.products-aios-orbit__ring--2 { width: 260px; height: 260px; margin: -130px 0 0 -130px; animation: products-orbit-ccw 30s linear infinite; }
.products-aios-orbit__node { width: 42px; height: 42px; z-index: 2; }
.products-aios-orbit__node--top { top: -21px; left: calc(50% - 21px); }
.products-aios-orbit__node--right { top: calc(50% - 21px); left: calc(100% - 21px); }
.products-aios-orbit__node--bottom { top: calc(100% - 21px); left: calc(50% - 21px); }
.products-aios-orbit__node--left { top: calc(50% - 21px); left: -21px; }
.products-aios-orbit__node--tr { top: calc(14.65% - 21px); left: calc(85.35% - 21px); }
.products-aios-orbit__node--br { top: calc(85.35% - 21px); left: calc(85.35% - 21px); }
.products-aios-orbit__node--bl { top: calc(85.35% - 21px); left: calc(14.65% - 21px); }
.products-aios-orbit__node--tl { top: calc(14.65% - 21px); left: calc(14.65% - 21px); }
.products-aios-orbit__ring--1 svg { animation: products-orbit-ccw 20s linear infinite; }
.products-aios-orbit__ring--2 svg { animation: products-orbit-cw 30s linear infinite; }
@keyframes products-orbit-cw { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes products-orbit-ccw { from { transform: rotate(0deg); } to { transform: rotate(-360deg); } }
@media (hover: hover) and (pointer: fine) {
  .products-overview__aios-heading:hover, .products-overview__app:hover { border-color: #d4d4d8; translate: 0 -2px; box-shadow: 0 4px 14px rgba(24,24,27,.055); }
}
@media (prefers-reduced-motion: reduce) {
  .products-aios-orbit__ring, .products-aios-orbit__node svg { animation: none; }
  .products-overview__aios-heading, .products-overview__app { transition: none; }
  .products-overview__aios-heading:hover, .products-overview__app:hover { translate: none; }
}
.products-overview__copy {
  grid-column: 1 / -1; min-width: 0; }
.products-overview__copy p { margin-top: 12px; text-indent: 2em; }
.products-overview__link { display: inline-flex; align-items: center; min-height: 44px; width: fit-content; max-width: 100%; text-underline-offset: 5px; }
.products-overview__link:hover { text-decoration: underline; }
.products-overview__link:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.products-overview__apps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-top: 25px; }
.products-overview__app-item { display: flex; min-width: 0; }
.products-overview__app-item > .products-overview__app { flex: 1; min-width: 0; }
.products-overview__app { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 340px; padding: 32px; background: #fff; border: 1px solid #e7e7e9; border-radius: 14px; overflow: hidden; }
.products-overview__app h2 { margin: 0 0 24px; font: 300 28px/1.4 var(--display); text-wrap: balance; }
.products-overview__app p { margin-bottom: 24px; }
.products-overview__app .products-overview__link { margin-top: auto; }
.products-overview__app--dazee { --dazee-inset: 32px; color: inherit; text-decoration: none; background-image: url('/assets/site/products-dazee-background.webp'); background-size: 100% auto; background-position: center bottom; background-repeat: no-repeat; }
.products-overview__app--dazee h2 { max-width: calc(100% - 48px); }
.products-dazee-action { position: absolute; top: var(--dazee-inset); right: var(--dazee-inset); display: flex; align-items: center; gap: 12px; height: 39.2px; }
.products-overview__app--dazee:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.products-overview__app--geo { justify-content: center; align-items: center; color: inherit; text-decoration: none; isolation: isolate; }
.products-overview__app--geo h2 { position: relative; display: grid; width: max-content; gap: 8px; margin: 0; text-align: center; }
.products-geo-title__name { white-space: nowrap; }
/* Only the main title determines the width; justify the smaller line to its edges. */
.products-geo-title__subtitle { contain: inline-size; font-size: 12px; font-weight: 300; line-height: 1.6; text-align: justify; text-align-last: justify; text-justify: inter-character; }
.products-overview__app--geo:focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }
.products-geo-rings { position: absolute; inset: 0; pointer-events: none; }
.products-geo-rings canvas { display: block; width: 100%; height: 100%; filter: grayscale(1) invert(1); }
/* Static fallback remains visible without JavaScript or a usable WebGL context. */
.products-geo-rings::before { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at center, transparent 40%, #7778 46%, #202022 47%, #9997 48%, transparent 55%, #aaa6 60%, #5558 61%, transparent 67%); mask-image: linear-gradient(transparent, #000 30%, #000 70%, transparent); }
.products-geo-rings[data-renderer="webgl"]::before { display: none; }
.products-geo-rings:not([data-renderer="webgl"]) canvas { visibility: hidden; }
.products-overview__platform-head { max-width: 900px; margin-bottom: 54px; }
.products-overview__platform-head p { max-width: 768px; margin-top: 28px; }
.products-overview__capabilities > article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 70px; padding-block: 32px; border-top: 1px solid var(--line); }
.products-overview h3 { margin: 0; font: 400 22px/1.5 var(--display); text-wrap: pretty; }
.products-overview__relationship { border-top: 1px solid var(--line); padding-top: 32px; }
.products-overview__relationship p { margin-bottom: 20px; }

.products-os-carousel__items { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; }
.products-os-carousel__item { display:flex; flex-direction:column; gap:16px; min-width:0; padding:0; border:0; background:none; color:var(--muted); text-align:left; cursor:pointer; }
.products-os-carousel__item[aria-pressed="true"] { color:var(--ink); }
.products-os-carousel__item:focus-visible { outline:2px solid var(--ink); outline-offset:6px; border-radius:4px; }
.products-os-carousel__visual { display:flex; align-items:center; gap:12px; width:100%; }
.products-os-carousel__image { position:relative; display:block; flex:0 0 82px; width:82px; height:82px; padding:5px; }
.products-os-carousel__image img { position:absolute; top:5px; left:5px; display:block; width:72px; height:72px; max-width:none; border-radius:50%; object-fit:cover; clip-path:circle(36px at center); opacity:.75; transition:width .3s cubic-bezier(.44,0,.56,1),height .3s cubic-bezier(.44,0,.56,1),top .3s cubic-bezier(.44,0,.56,1),left .3s cubic-bezier(.44,0,.56,1),opacity .3s; }
.products-os-carousel__progress { position:absolute; inset:0; width:82px; height:82px; fill:none; stroke:var(--ink); stroke-width:3; transform:rotate(-90deg); pointer-events:none; }
.products-os-carousel__progress circle { stroke-dasharray:100; stroke-dashoffset:100; visibility:hidden; }
.products-os-carousel__line { flex:1; height:1px; color:rgba(22,22,24,.5); background:repeating-linear-gradient(90deg,currentColor 0 1px,transparent 1px 5px); background-size:5px 100%; animation:products-os-dots-left 1s linear infinite; transition:color .3s; }
@keyframes products-os-dots-left { to { background-position-x:-5px; } }
.products-os-carousel__title { font:400 20px/1.5 var(--display); text-wrap:pretty; color:rgba(22,22,24,.75); transition:color .3s; }
.products-os-carousel__item[aria-pressed="true"] .products-os-carousel__title { color:rgb(22,22,24); }
@media(hover:hover) {
  .products-os-carousel__item:hover .products-os-carousel__image img { width:96px; height:96px; top:-7px; left:-7px; opacity:.8; }
  .products-os-carousel__item:hover .products-os-carousel__title { color:rgb(22,22,24); }
  .products-os-carousel__item:hover .products-os-carousel__line { color:rgb(22,22,24); }
}
.products-os-carousel__descriptions { display:grid; margin:32px 0; transition:opacity .3s ease; }
.products-os-carousel__descriptions.is-fading-out { opacity:0; transition-duration:.2s; }
.products-os-carousel__descriptions article { grid-area:1/1; }
.products-os-carousel__descriptions article[aria-hidden="true"] { visibility:hidden; pointer-events:none; }
.products-os-carousel__descriptions p { margin:0; max-width:none; }
@media(max-width:600px) {
  .products-os-carousel__items { gap:12px; }
  .products-os-carousel__visual { gap:4px; }
  .products-os-carousel__title { font-size:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .products-os-carousel__descriptions, .products-os-carousel__image img, .products-os-carousel__title, .products-os-carousel__line { transition:none; }
  .products-os-carousel__line { animation:none; }
}



@media (max-width: 900px) {
  .products-overview__capabilities > article { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}
@media (max-width: 600px) {
  .products-overview__aios { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .products-overview__apps { grid-template-columns: minmax(0, 1fr); }
  .products-overview__app { padding: 24px; }
  .products-overview__app--dazee { --dazee-inset: 24px; }
}
