/* Original connected CAD study. Motion follows prepared information routes and
   scene-light cues; it never calculates a result or changes a product record. */
.cad-context-scopes {
  --cad-context-gap: clamp(24px, 3vw, 48px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr) minmax(0, 1fr);
  gap: var(--cad-context-gap);
}
.cad-context-scope {
  min-width: 0;
  border-top: 1px solid #517d8d;
  padding-top: 24px;
}
.cad-context-cad {
  border-top-color: #73d9d5;
}
.cad-context-scope-header {
  min-height: 150px;
}
.cad-context-scope-header > .ip-inline-link {
  color: #c2e5e9;
  gap: 14px;
}
.cad-context-scope-header > .ip-inline-link:is(:hover, :focus-visible) {
  color: var(--cyan);
}
.cad-context-scope-header > .ip-inline-link > span:first-child {
  display: flex;
  align-items: center;
  gap: 12px;
}
.cad-context-scope-header > .ip-inline-link .ms-icon {
  flex-shrink: 0;
}
.cad-context-scope-header > .ip-inline-link > span:first-child .ms-icon {
  font-size: 28px;
  color: #77d8d6;
  transform: none;
}
.cad-context-product {
  display: block;
  margin: 14px 0 18px;
  color: #84bdc9;
  font-size: .875rem;
  line-height: 1.5;
}
.cad-context-scope h3 {
  color: #fff;
  font-size: clamp(1.3rem, 1.75vw, 1.9rem);
  line-height: 1.3;
  margin: 0;
}
.cad-context-scope > p,
.cad-context-brief > p {
  color: var(--body-text-on-dark);
  font-size: 1rem;
  line-height: 1.8;
  margin: 0;
}
.cad-context-art {
  position: relative;
  min-width: 0;
  width: 100%;
  height: clamp(250px, 28vw, 400px);
  margin-block: 24px;
}
.cad-context-calculations .cad-context-art::after,
.cad-context-cad .cad-context-art::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 100%;
  width: var(--cad-context-gap);
  height: 1px;
  background: #5da7b380;
  pointer-events: none;
}
.cad-context-art > svg {
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.cad-context-record-list {
  list-style: none;
  padding: 0;
  margin: 24px 0 0;
  display: grid;
  gap: 12px;
}
.cad-context-record-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #c2e5e9;
  font-size: .875rem;
  line-height: 1.5;
}
.cad-context-record-list li::before {
  content: '';
  width: 16px;
  height: 1px;
  background: #6cc5cb;
  flex-shrink: 0;
}
.cad-context-perspective {
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.cad-context-controls {
  display: none;
  padding: 0;
  margin: 0;
  border: 0;
}
.cad-context-controls legend {
  color: #b4dae1;
  font-size: .875rem;
  line-height: 1.5;
  padding: 0;
  margin-bottom: 10px;
}
.cad-context-controls > div {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}
.cad-context-controls > div > span {
  min-width: 0;
  position: relative;
}
.cad-context-choice {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  overflow: hidden;
  white-space: nowrap;
}
.cad-context-choice + label {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 10px 8px;
  border: 1px solid #5d8a99;
  color: #c5e1e8;
  font-size: .875rem;
  line-height: 1.5;
  cursor: pointer;
  transition: color 220ms, border-color 220ms, background-color 220ms;
}
.cad-context-choice:checked + label {
  color: #ecffff;
  border-color: #7edbd9;
  background: #175b6d;
}
.cad-context-choice + label:hover {
  border-color: #7edbd9;
  background: #154859;
}
.cad-context-choice:focus-visible + label {
  outline: 2px solid var(--cyan);
  outline-offset: 4px;
}
.cad-context-brief {
  padding-top: 20px;
  border-top: 1px solid #54838e;
}
.cad-context-brief + .cad-context-brief {
  margin-top: 24px;
}
.cad-context-brief h4 {
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  margin: 0 0 10px;
}


/* Shared V-twin geometry: separated cylinder banks, cast housings, curved headers
   and an exposed accessory drive remain legible in the two smaller record views. */
.cad-context-engine {
  fill: none;
  stroke: #8bd8d9;
  stroke-width: 1.25;
  stroke-linejoin: round;
  stroke-linecap: round;
}
.cad-context-part-top { fill: #2c7d89; }
.cad-context-part-side { fill: #103c51; }
.cad-context-part-front { fill: #205d6f; }
.cad-context-bolt-holes { fill: #082c40; }
.cad-context-part-edge { fill: none; stroke: #a5e1dd; stroke-width: 1; }
.cad-context-engine-fins { stroke: #9bdcd6; stroke-width: 1.1; }
.cad-context-engine-valve-cover { fill: #42969e; }
.cad-context-engine-plug { stroke: #b5e2df; stroke-width: 1.6; }
.cad-context-engine-filter-top { fill: #3b8d99; }
.cad-context-engine-filter-inset { fill: #174f62; stroke: #7cc4c9; }
.cad-context-engine-filter-ribs { stroke: #103e50; stroke-width: 1.7; }
.cad-context-engine-fasteners,
.cad-context-engine-fastener { fill: #b6e7df; stroke: #123e50; stroke-width: 1; }
.cad-context-engine-pipe-shadow { fill: none; stroke: #082c40; stroke-width: 15; }
.cad-context-engine-pipe { fill: none; stroke: #4e9aa8; stroke-width: 10; }
.cad-context-engine-pipe-edge { stroke: #c1eeea; stroke-width: 1.5; }
.cad-context-engine-collar { stroke: #123d51; stroke-width: 4; }
.cad-context-engine-case-rim { fill: #246b7c; stroke: #78c7cc; }
.cad-context-engine-case-ribs { stroke: #5faebb; stroke-width: 2.2; }
.cad-context-engine-case-cover { fill: #12475b; stroke: #78c7cc; }
.cad-context-engine-cover-mark { fill: none; stroke: #8ed7d8; stroke-width: 1.4; }
.cad-context-engine-belt { fill: none; stroke: #061f2e; stroke-width: 7; }
.cad-context-engine-flywheel { fill: #286d7f; stroke: #b2e7e0; stroke-width: 1.5; }
.cad-context-engine-flywheel-inset { fill: #0d3c52; stroke: #639faa; }
.cad-context-engine-drive-spokes { stroke: #77babf; stroke-width: 5; }
.cad-context-engine-hub { fill: #6db9bf; stroke: #a3e4e1; }
.cad-context-engine-shaft { fill: #092f43; stroke: #8bd4d4; }
.cad-context-ground { fill: #061f2c; opacity: .65; }
.cad-context-ground-rail { fill: none; stroke: #5b9baa; stroke-width: .8; opacity: .3; }
.cad-context-paper { fill: #0d364b; stroke: #6caeba; stroke-width: 1.5; }
.cad-context-record-middle { fill: #103c4f; stroke: #598c9c; stroke-width: 1; }
.cad-context-record-back { fill: #113748; stroke: #426f80; stroke-width: 1; }
.cad-context-thin { fill: none; stroke: #75b4c1; stroke-width: 1.2; }
.cad-context-equation { stroke: #a3e2df; stroke-width: 2.5; stroke-linecap: round; }
.cad-context-sketch .cad-context-engine {
  --cad-sketch-ink: #95d2d7;
  stroke: var(--cad-sketch-ink);
  stroke-width: 2;
}
.cad-context-sketch :is(.cad-context-part-top, .cad-context-part-side, .cad-context-part-front, .cad-context-engine-filter-top, .cad-context-engine-filter-inset, .cad-context-engine-case-rim, .cad-context-engine-case-cover, .cad-context-engine-flywheel, .cad-context-engine-flywheel-inset, .cad-context-engine-hub) {
  fill: #0d364b;
}
.cad-context-sketch :is(.cad-context-engine-filter-ribs, .cad-context-engine-drive-spokes) { opacity: .65; }
.cad-context-calculation-cues,
.cad-context-record-connections { stroke: #81d6d6; stroke-width: 1.5; }
.cad-context-record-model .cad-context-engine { stroke-width: 1.75; }
.cad-context-feed-base { fill: none; stroke: #5da7b3; stroke-width: 1.2; opacity: .5; }
.cad-context-feed {
  fill: none;
  stroke: #a7eee7;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-dasharray: 2 22;
  animation: cad-context-carry 12s linear infinite paused;
}
.cad-context-overlay {
  opacity: 0;
  pointer-events: none;
  transition: opacity 250ms;
}
.cad-context-model-cues { opacity: 1; stroke: #9cddd9; stroke-width: 1.25; }
.cad-context-centerline { stroke-dasharray: 5 6; opacity: .65; }
.cad-context-reference { stroke-dasharray: 2 4; opacity: .65; }
.cad-context-examine-cues { stroke: #9ddfda; stroke-width: 1.5; }
.cad-context-analysis-mesh { stroke: #8ce4dc; stroke-width: .9; opacity: .65; }
.cad-context-load { stroke: #b4eee4; stroke-width: 2; }
.cad-context-restraints { stroke: #8acacb; }
.cad-context-loop-base { stroke: #5e9aa8; stroke-width: 1.2; opacity: .6; }
.cad-context-loop {
  stroke: #a2f0df;
  stroke-width: 2;
  stroke-dasharray: 7 22;
  animation: cad-context-feedback 8s linear infinite paused;
}
.cad-context-light-cone { fill: #b7f7e6; opacity: .055; stroke: none; }
.cad-context-light-source { fill: #3c8996; stroke: #98e0d9; stroke-width: 1.5; }
.cad-context-material-light {
  animation: cad-context-light-pass 9s ease-in-out infinite paused;
}
.cad-context-camera { stroke: #99dcd8; stroke-width: 1.5; }
.cad-context-camera-ray { stroke-dasharray: 3 5; opacity: .6; }
.cad-connected-study.ip-animation-active .cad-context-feed {
  animation-play-state: running;
}
@keyframes cad-context-carry { to { stroke-dashoffset: -192; } }
@keyframes cad-context-feedback { to { stroke-dashoffset: -174; } }
@keyframes cad-context-light-pass {
  0%, 15% { transform: translateX(0); opacity: 0; }
  30% { opacity: .65; }
  65% { opacity: .65; }
  82%, 100% { transform: translateX(150px); opacity: 0; }
}

/* Radios enhance only the central CAD perspective. Without :has(), the static
   model and all three briefs remain available and unusable controls stay hidden. */
@supports selector(:has(*)) {
  .cad-context-controls { display: block; }
  .cad-context-perspective .cad-context-brief { display: none; }
  .cad-context-perspective:has(#cad-context-model:checked) .cad-context-brief-model,
  .cad-context-perspective:has(#cad-context-examine:checked) .cad-context-brief-examine,
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-brief-communicate {
    display: block;
    margin-top: 0;
  }
  .cad-context-perspective:has(#cad-context-examine:checked) .cad-context-model-cues,
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-model-cues { opacity: 0; }
  .cad-context-perspective:has(#cad-context-examine:checked) .cad-context-examine-cues,
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-communicate-cues { opacity: 1; }
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-part-front {
    fill: url(#cad-context-surface);
  }
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-part-top { fill: #8edcd9; }
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-part-side { fill: #236478; }
  .cad-context-perspective:has(#cad-context-communicate:checked) :is(.cad-context-engine-valve-cover, .cad-context-engine-filter-top) { fill: #a6e6dd; }
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-engine-case-cover { fill: url(#cad-context-surface); }
  .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-engine-flywheel { fill: #5aa6b1; }
  .cad-connected-study.ip-animation-active .cad-context-perspective:has(#cad-context-examine:checked) .cad-context-loop,
  .cad-connected-study.ip-animation-active .cad-context-perspective:has(#cad-context-communicate:checked) .cad-context-material-light {
    animation-play-state: running;
  }
}
@media (min-width: 851px) {
  .cad-context-controls { order: 1; margin-bottom: 20px; }
  .cad-context-perspective > .cad-context-art { order: 0; }
  .cad-context-perspective-briefs { order: 2; }
}
@media (max-width: 1100px) {
  .cad-context-scopes { --cad-context-gap: 24px; }
  .cad-context-scope-header { min-height: 160px; }
  .cad-context-scope-header > .ip-inline-link > span:first-child { gap: 8px; }
  .cad-context-controls > div { gap: 5px; }
  .cad-context-choice + label { padding-inline: 5px; }
}
@media (max-width: 850px) {
  .cad-context-scopes { grid-template-columns: minmax(0, 1fr); gap: 38px; }
  .cad-context-scope-header { min-height: 0; }
  .cad-context-scope h3 { font-size: 1.6rem; }
  .cad-context-scope .cad-context-art { max-width: 390px; height: auto; aspect-ratio: 420 / 350; margin-inline: auto; }
  .cad-context-cad .cad-context-art { max-width: 520px; }
  .cad-context-controls { margin-top: 24px; }
  .cad-context-feed { display: none; }
  .cad-context-feed-base { display: none; }
  .cad-context-calculations .cad-context-art::after,
  .cad-context-cad .cad-context-art::after { display: none; }
  .cad-context-record-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .cad-context-record-list li { align-items: flex-start; }
  .cad-context-record-list li::before { margin-top: 10px; width: 12px; }
}
@media (max-width: 480px) {
  .cad-context-record-list { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .cad-context-choice + label { font-size: .875rem; }
}
@media (prefers-reduced-motion: reduce) {
  .cad-context-feed, .cad-context-loop, .cad-context-material-light { animation: none; }
  .cad-context-feed, .cad-context-loop { display: none; }
  .cad-context-choice + label, .cad-context-overlay { transition: none; }
}
