/* An atmospheric, interactive journey; all copy stays readable without motion. */
.business-model {
  --model-gap: 64px;
  --model-ink: #f3effa;
  --model-muted: #aca3be;
  --pointer-x: 50%;
  --pointer-y: 40%;
  position: relative;
  isolation: isolate;
  margin: 0 0 52px;
  padding: 40px 42px 25px;
  overflow: hidden;
  color: var(--model-ink);
  border: 1px solid #c5b7ee23;
  border-radius: 26px;
  background: linear-gradient(140deg, #ffffff04, transparent 50%), #10101c;
  box-shadow: 0 30px 80px #00000035, inset 0 1px #ffffff09;
  scroll-margin-top: 0;
}
.business-model::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at var(--pointer-x) var(--pointer-y), #bcb2ff12, transparent 50%);
  transition: opacity .5s ease;
}
.model-atmosphere { position: absolute; inset: 0; z-index: -2; overflow: hidden; pointer-events: none; }
.model-light { position: absolute; width: 70%; height: 85%; border-radius: 50%; opacity: .7; will-change: transform; }
.model-light-violet { top: -34%; right: -15%; background: radial-gradient(ellipse, #7a62d727, #ad6bc30d 38%, transparent 68%); animation: model-violet-drift 17s ease-in-out infinite alternate; }
.model-light-mint { left: -24%; top: 18%; background: radial-gradient(ellipse, #46c7c01a, transparent 66%); animation: model-mint-drift 13s ease-in-out infinite alternate; }
.model-light-ribbon { width: 100%; height: 35%; top: 35%; left: 6%; background: radial-gradient(ellipse, #b47bfa0e, transparent 65%); transform: rotate(-20deg); animation: model-ribbon-drift 15s ease-in-out infinite alternate; }
.model-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 28px; }
.model-eyebrow { display: flex; align-items: center; gap: 10px; margin-bottom: 15px; font: 500 10px/1.4 Outfit, var(--font); letter-spacing: .18em; color: #b4a4cf; }
.model-eyebrow::before { content: ''; width: 22px; height: 1px; background: linear-gradient(90deg,#6bf2c8,#b8afff); }
.model-heading h3 { max-width: 800px; margin: 0; font-size: clamp(26px, 2.5vw, 36px); line-height: 1.4; letter-spacing: -.045em; font-weight: 650; }
.model-heading > p { max-width: 250px; margin: 0 0 2px; color: var(--model-muted); font-size: 13px; line-height: 1.8; }
.model-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 28px; }
.model-stage-selector { display: inline-flex; gap: 4px; padding: 5px; border: 1px solid #b5a2e620; border-radius: 99px; background: #07061048; }
.model-stage-selector button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 40px; padding: 9px 21px; border: 1px solid transparent; border-radius: 99px; background: transparent; color: #b4aac8; cursor: pointer; font-size: 13px; transition: color .25s, background .25s, border-color .25s; }
.model-stage-selector button span { font: 500 10px/1.4 Outfit,var(--font); opacity: .65; }
.model-stage-selector button[aria-pressed="true"] { color: #f5f1fc; border-color: #c6b5f62b; background: linear-gradient(120deg, #b8afff20, #e36be010); box-shadow: 0 2px 15px #00000018, inset 0 1px #ffffff0a; }
.model-stage-selector button:hover { color: #fff; background-color: #ffffff06; }
.model-stage-selector button:focus-visible, .model-motion-toggle:focus-visible { outline: 2px solid #c4b4ff; outline-offset: 4px; }
.model-motion-toggle { display: none; align-items: center; gap: 8px; border: 0; background: transparent; padding: 10px 0 10px 12px; color: #b4aac8; font-size: 11px; cursor: pointer; }
.business-model[data-motion="ready"] .model-motion-toggle:not([hidden]) { display: inline-flex; }
.model-motion-toggle svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.model-motion-toggle .model-play-icon { display: none; }
.model-motion-toggle[aria-pressed="true"] .model-pause-icon { display: none; }
.model-motion-toggle[aria-pressed="true"] .model-play-icon { display: block; }
.model-network { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.06fr) minmax(0, 1fr); align-items: center; gap: var(--model-gap); }
.model-column { min-width: 0; }
.model-column-title { display: flex; align-items: center; justify-content: space-between; gap: 12px; height: 34px; margin-bottom: 18px; }
.model-column-title h4 { margin: 0; font-size: 15px; line-height: 1.35; letter-spacing: -.025em; font-weight: 600; color: #e8e0f4; }
.model-column-title > span { flex-shrink: 0; font: 500 9px/1.4 Outfit, var(--font); letter-spacing: .12em; color: #9a8bad; }
.model-nodes { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.model-nodes > li { display: flex; align-items: center; gap: 15px; position: relative; min-width: 0; min-height: 70px; padding: 13px 18px; border: 1px solid #baa6e513; border-radius: 14px; background: linear-gradient(105deg, #ffffff04, #ffffff01); transition: background .45s, border-color .45s, box-shadow .45s, transform .45s; }
.model-nodes > li::after { content: ''; position: absolute; width: 3px; height: 17px; top: 50%; left: -1px; transform: translateY(-50%); border-radius: 3px; background: #baabed; opacity: 0; transition: opacity .4s; }
.model-icon { width: 25px; height: 25px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; color: #a596c8; transition: color .4s; }
.model-nodes > li > div { min-width: 0; }
.model-nodes strong { display: block; font-size: 15px; line-height: 1.4; font-weight: 600; letter-spacing: -.02em; }
.model-nodes li span { display: block; margin-top: 4px; font-size: 11px; line-height: 1.4; color: var(--model-muted); }
.model-hub-wrap { position: relative; display: grid; place-items: center; min-width: 0; margin-top: 52px; }
.model-hub-wrap::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: #b8afff32; z-index: -1; }
.model-hub { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 25px; width: min(100%, 270px); aspect-ratio: 1; padding: 28px; border: 1px solid #c5b3f32d; border-radius: 50%; background: radial-gradient(ellipse at 28% 20%, #bca4f217, transparent 68%), radial-gradient(ellipse at 82% 95%, #a85ed81d, transparent 70%), #191625; box-shadow: 0 22px 55px #00000035, inset 0 1px #e1d1ff20, 0 0 65px #9471de0c; }
.model-hub::before, .model-hub::after { content: ''; position: absolute; inset: -15px; border-radius: 50%; pointer-events: none; z-index: -1; }
.model-hub::before { border: 1px solid #b7a1ea18; }
.model-hub::after { inset: -29px; border: 1px solid #b7a1ea0b; border-top-color: #c5b2ff73; border-right-color: #6bf2c818; animation: model-orbit 18s linear infinite; }
.model-hub-eyebrow { font: 500 9px/1.4 Outfit,var(--font); letter-spacing: .14em; color: #b7a8cf; }
.model-hub img { display: block; width: min(210px, 100%); min-width: 160px; height: auto; }
.model-hub h4 { margin: 0; color: #d8cde8; font-size: 13px; line-height: 1.65; letter-spacing: -.02em; font-weight: 400; text-align: center; }
.model-bridge { position: absolute; top: 50%; width: var(--model-gap); height: 164px; overflow: visible; transform: translateY(-50%); stroke: #b8afff35; stroke-width: 1; fill: none; }
.model-bridge path { vector-effect: non-scaling-stroke; }
.model-bridge circle { fill: #b4a1d8; stroke: #10101c; stroke-width: 1.5; }
.model-bridge-in { right: 100%; }
.model-bridge-out { left: 100%; }
.model-bridge .model-signal { stroke: #c6b4ff; stroke-width: 1.7; stroke-dasharray: 14 86; animation: model-signal-flow 4.8s linear infinite; opacity: .7; }
.model-bridge-in .model-signal { stroke: #8adad2; }
.model-signal:nth-of-type(5) { animation-delay: -1.6s; }
.model-signal:nth-of-type(6) { animation-delay: -3.2s; }
.model-roles { position: relative; display: grid; grid-template-columns: 1.15fr 1fr; gap: 18px; margin: 33px 0 0; padding: 0; }
.model-roles > div { min-width: 0; padding: 22px 25px; border: 1px solid #c3afe81b; border-radius: 15px; background: linear-gradient(120deg, #b8afff05, #ffffff02); transition: border-color .45s, background .45s; }
.model-roles dt { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 13px; font-weight: 550; color: #d8caed; }
.model-roles .model-icon { width: 19px; height: 19px; }
.model-roles dd { margin: 0; font-size: 14px; line-height: 1.7; letter-spacing: -.015em; color: #d9d0e5; }
.model-roles .model-role-detail { margin-top: 5px; font-size: 11px; line-height: 1.6; color: var(--model-muted); }
.business-model figcaption { margin-top: 20px; font-size: 11px; line-height: 1.8; color: #9a90ad; text-align: center; }
.operator-routine-label { margin: 0 0 24px; font: 500 10px/1.4 Outfit,var(--font); letter-spacing: .14em; color: #aea2c7; }
.operator-timeline { gap: 18px; }
.operator-timeline > li { position: relative; border: 1px solid #c3afe818; border-radius: 18px; padding: 26px 25px 28px; background: linear-gradient(140deg, #ffffff03, transparent); transition: border-color .45s, background .45s, box-shadow .45s; }
.operator-stage-label { margin-bottom: 22px; }
.operator-stage-label span { font-size: 28px; font-weight: 400; }
.operator-timeline h3 { font-size: 23px; font-weight: 600; }
.operator-timeline ul li { font-size: 14px; }
.operator-day-footer { justify-content: flex-end; margin-top: 30px; }
#operator-day[data-model-step="0"] .model-column:first-child li:nth-child(1),
#operator-day[data-model-step="1"] .model-column:first-child li:nth-child(2),
#operator-day[data-model-step="2"] .model-column:first-child li:nth-child(3),
#operator-day[data-model-step="0"] .model-column:last-child li:nth-child(n+2),
#operator-day[data-model-step="1"] .model-column:last-child li:first-child {
  border-color: #c1a8ff43;
  background: linear-gradient(100deg, #b5a1ef14, #b5a1ef04);
  box-shadow: inset 0 1px #ffffff05, 0 6px 24px #00000010;
}
#operator-day[data-model-step="0"] .model-column:first-child li:nth-child(1)::after,
#operator-day[data-model-step="1"] .model-column:first-child li:nth-child(2)::after,
#operator-day[data-model-step="2"] .model-column:first-child li:nth-child(3)::after { opacity: 1; }
#operator-day[data-model-step="0"] .operator-timeline > li:nth-child(1),
#operator-day[data-model-step="1"] .operator-timeline > li:nth-child(2),
#operator-day[data-model-step="2"] .operator-timeline > li:nth-child(3),
#operator-day[data-model-step="2"] .model-roles > div:last-child { border-color: #baa5f344; background: linear-gradient(130deg, #b8afff0a, #b8afff02); box-shadow: inset 0 1px #ffffff06; }
.business-model[data-motion="ready"] :is(.model-heading,.model-toolbar,.model-column,.model-hub-wrap,.model-roles) { transition: opacity .8s ease, translate .8s cubic-bezier(.2,.65,.3,1); }
.business-model[data-motion="ready"][data-in-view="false"] :is(.model-heading,.model-toolbar,.model-column,.model-hub-wrap,.model-roles) { opacity: .6; translate: 0 14px; }
.business-model[data-motion="ready"][data-in-view="true"] :is(.model-heading,.model-toolbar,.model-column,.model-hub-wrap,.model-roles) { opacity: 1; translate: 0 0; }
.model-column { transition-delay: .08s !important; }
.model-hub-wrap { transition-delay: .14s !important; }
.model-roles { transition-delay: .2s !important; }
.business-model:not([data-motion="ready"]) *, .business-model:not([data-motion="ready"]) *::after,
.business-model[data-in-view="false"] *, .business-model[data-in-view="false"] *::after,
.business-model[data-motion-paused="true"] *, .business-model[data-motion-paused="true"] *::after { animation-play-state: paused !important; }
@keyframes model-violet-drift { from { transform: translate(0,0) scale(.95); } to { transform: translate(-24%,22%) scale(1.15); } }
@keyframes model-mint-drift { from { transform: translate(-8%,6%); } to { transform: translate(34%,-10%) scale(1.1); } }
@keyframes model-ribbon-drift { from { transform: translate(-8%,12%) rotate(-25deg); } to { transform: translate(12%,-15%) rotate(-12deg); } }
@keyframes model-orbit { to { transform: rotate(360deg); } }
@keyframes model-signal-flow { from { stroke-dashoffset: 100; } to { stroke-dashoffset: 0; } }
@keyframes model-vertical-flow { from { background-position: 0 180%; } to { background-position: 0 -80%; } }
@media (hover:hover) and (pointer:fine) {
  .business-model:hover::before { opacity: 1; }
  .model-nodes > li:hover { border-color: #c1a8ff43; transform: translateY(-2px); background-color: #b8afff07; }
}
@media (max-width:1150px) {
  .business-model { --model-gap: 36px; padding: 32px 30px 24px; }
  .model-heading { gap: 24px; }
  .model-heading > p { max-width: 230px; font-size: 12px; }
  .model-nodes > li { padding: 13px; gap: 11px; }
  .model-column-title > span { font-size: 8px; }
  .model-roles > div { padding: 21px 22px; }
  .model-roles dd { font-size: 13px; }
  .operator-timeline > li { padding: 24px 20px; }
  .operator-timeline h3 { font-size: 21px; }
}
@media (max-width:1000px) {
  .business-model { --model-gap: 0px; padding: 30px 26px 24px; margin-bottom: 42px; border-radius: 22px; }
  .model-heading { display: block; margin-bottom: 22px; }
  .model-heading h3 { font-size: 29px; }
  .model-heading > p { max-width: none; margin-top: 12px; font-size: 12px; }
  .model-heading > p br { display: none; }
  .model-network { grid-template-columns: 1fr; row-gap: 35px; }
  .model-column-title { margin-bottom: 14px; height: auto; }
  .model-nodes { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
  .model-nodes > li { flex-direction: column; align-items: flex-start; gap: 12px; padding: 17px 15px; }
  .model-nodes strong { font-size: 14px; }
  .model-nodes li span { line-height: 1.6; }
  .model-hub-wrap { justify-self: center; width: min(100%,340px); margin: 4px 0; }
  .model-hub-wrap::before { left: 50%; right: auto; width: 1px; height: calc(100% + 80px); top: -40px; background: linear-gradient(180deg, #8adad249, #c6b4ff49); }
  .model-hub-wrap::after { content: ''; position: absolute; left: 50%; width: 1px; height: calc(100% + 80px); top: -40px; z-index: -1; background: linear-gradient(180deg, transparent 35%, #b5d1f0b3 45%, transparent 55%); background-size: 100% 230%; animation: model-vertical-flow 6s linear infinite; }
  .model-hub { width: 270px; max-width: 100%; }
  .model-bridge { display: none; }
  .model-roles { margin-top: 25px; gap: 12px; }
  .model-roles > div { padding: 20px; }
  .model-roles dd { font-size: 13px; }
  .business-model figcaption { font-size: 10px; text-align: left; }
}
@media (max-width:560px) {
  .business-model { padding: 27px 20px 22px; border-radius: 20px; }
  .model-heading { margin-bottom: 19px; }
  .model-eyebrow { font-size: 9px; margin-bottom: 13px; }
  .model-heading h3 { max-width: 270px; font-size: 27px; line-height: 1.45; }
  .model-heading > p { font-size: 11px; margin-top: 12px; }
  .model-toolbar { flex-wrap: wrap; gap: 5px; margin-bottom: 27px; }
  .model-stage-selector { width: 100%; padding: 4px; }
  .model-stage-selector button { flex: 1; gap: 7px; padding: 9px 8px; font-size: 12px; min-height: 38px; }
  .model-stage-selector button span { font-size: 9px; }
  .model-motion-toggle { margin-left: auto; padding: 8px 0 3px; font-size: 10px; }
  .model-column-title h4 { font-size: 14px; }
  .model-column-title > span { font-size: 8px; }
  .model-nodes { grid-template-columns: 1fr; gap: 8px; }
  .model-nodes > li { flex-direction: row; align-items: center; gap: 13px; padding: 13px 15px; min-height: 68px; }
  .model-nodes strong { font-size: 14px; }
  .model-nodes li span { line-height: 1.5; }
  .model-hub-wrap { margin: 7px 0; }
  .model-hub { width: min(100%,270px); padding: 25px; gap: 23px; }
  .model-hub img { width: min(195px,100%); }
  .model-hub h4 { font-size: 12px; }
  .model-hub-eyebrow { font-size: 8px; }
  .model-hub::after { inset: -24px; }
  .model-roles { grid-template-columns: 1fr; gap: 10px; }
  .model-roles > div { padding: 20px 17px; }
  .model-roles dt { margin-bottom: 9px; font-size: 12px; }
  .model-roles dd { font-size: 12px; line-height: 1.9; }
  .model-roles .model-role-detail { font-size: 10px; }
  .operator-timeline { gap: 14px; }
  .operator-timeline > li { padding: 24px 22px; }
}
@media (prefers-reduced-motion:reduce) {
  .business-model *, .business-model *::after { animation: none !important; transition: none !important; }
  .business-model::before { display: none; }
  .business-model[data-motion="ready"] :is(.model-heading,.model-toolbar,.model-column,.model-hub-wrap,.model-roles) { opacity: 1; translate: none; }
  .model-nodes > li:hover { transform: none; }
  .operator-timeline > li { transition: none; }
}
