/* The model-system vision: shared tokens, readable HTML, and strong SVG arrows. */
.rpv-hero { border:1px solid var(--line); border-radius:18px; padding:24px; background:var(--white); min-width:0; }
.rpv-kicker { font:650 16px/1.6 "Segoe UI",Arial,sans-serif; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); }
.rpv-hero-top h2 { font:29px/1.2 Georgia,"Times New Roman",serif; letter-spacing:-.025em; margin-top:10px; }
.rpv-label { display:block; font-size:16px; color:var(--muted); line-height:1.5; }
.rpv-task { margin-top:16px; padding:12px 16px; background:var(--soft); border:1px solid var(--line); border-radius:10px; }
.rpv-task strong { display:block; font-size:20px; font-weight:600; line-height:1.5; margin-top:5px; }
.rpv-task p { font-size:16px; color:var(--muted); margin-top:6px; }
.rpv-arrow { width:32px; height:24px; flex:none; color:var(--accent); overflow:visible; }
.rpv-arrow .rpv-arrow-stem { stroke:currentColor; fill:none; stroke-width:1.6; stroke-linecap:butt; vector-effect:non-scaling-stroke; }
.rpv-arrow .connector-head { fill:currentColor; stroke:none; }
.rpv-down { display:block; width:26px; height:22px; transform:rotate(90deg); margin:7px auto; }
.rpv-resource-library { padding:15px 16px; border:1px solid var(--line); border-radius:10px; background:var(--white); }
.rpv-resources { display:flex; flex-wrap:wrap; gap:9px; margin-top:12px; }
.rpv-resources>span { display:block; padding:8px 12px; border:1px solid var(--line); border-radius:5px; font-size:16px; line-height:1.4; color:var(--muted); background:var(--paper); transition:color .3s,background .3s,border-color .3s; }
.rpv-resources>span.rpv-used { color:var(--accent); border-color:var(--accent); background:var(--accent-light); }
.rpv-system-output { background:var(--accent-light); border:1px solid var(--accent); padding:14px 16px; border-radius:10px; }
.rpv-system-output>.rpv-label { color:var(--accent); }
.rpv-focused-chain,.rpv-complex-chain { display:flex; align-items:center; gap:12px; margin-top:15px; }
.rpv-focused-chain>span,.rpv-complex-chain>span { flex:1; min-width:0; }
.rpv-focused-chain b,.rpv-complex-chain b { display:block; color:var(--accent); font-size:17px; line-height:1.45; font-weight:650; }
.rpv-focused-chain small,.rpv-complex-chain small { display:block; color:var(--muted); font-size:16px; line-height:1.5; margin-top:3px; }
.rpv-complex-chain { flex-wrap:wrap; gap:9px; }
.rpv-complex-chain>.rpv-arrow { width:20px; }
.rpv-mode-controls { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.rpv-mode-controls button { border:1px solid var(--line); border-radius:5px; padding:10px 13px; color:var(--muted); background:var(--white); font-size:16px; line-height:1.5; min-height:45px; }
.rpv-mode-controls button[aria-pressed="true"] { color:var(--accent); background:var(--accent-light); border-color:var(--accent); }
.rpv-mode-controls button:hover { border-color:var(--accent); }
.rpv-mode-controls [data-rpv-replay] { border-color:transparent; color:var(--accent); margin-left:auto; padding-inline:0; }
.rpv-hero-caption { margin-top:14px; color:var(--ink); font-size:17px; line-height:1.7; }
.rpv-note { margin-top:13px; font-size:16px; line-height:1.7; color:var(--muted); }
.rpv-playing .rpv-task { animation:rpv-step-emphasis .9s ease; }
.rpv-playing .rpv-resources .rpv-used { animation:rpv-resource-emphasis .9s ease .35s both; }
.rpv-playing .rpv-system-output { animation:rpv-step-emphasis .9s ease .7s both; }
@keyframes rpv-step-emphasis { from { opacity:.45; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes rpv-resource-emphasis { from { background:var(--paper); border-color:var(--line); } to { background:var(--accent-light); border-color:var(--accent); } }
.rpv-overview { padding-block:65px 55px; border-bottom:1px solid var(--line); scroll-margin-top:12px; }
.rpv-overview-header { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:55px; align-items:end; }
.rpv-overview-header h2 { margin-top:14px; font-size:42px; max-width:650px; }
.rpv-overview-header>p { font-size:20px; line-height:1.8; color:var(--muted); max-width:590px; }
.rpv-motivation { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:55px; margin-top:30px; }
.rpv-motivation p { color:var(--muted); font-size:18px; line-height:1.85; }
.rpv-survey { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:45px; align-items:center; padding:32px 34px; margin-top:38px; background:var(--accent-light); border-radius:14px; }
.rpv-survey h3 { font:28px/1.35 Georgia,serif; color:var(--accent); margin-top:11px; }
.rpv-survey p:not([class]) { font-size:18px; color:var(--muted); line-height:1.8; margin-top:16px; max-width:850px; }
.rpv-survey-links { display:grid; gap:21px; }
.rpv-survey-links a { display:flex; align-items:center; justify-content:space-between; gap:18px; color:var(--accent); text-decoration:none; font-size:17px; font-weight:600; }
.rpv-survey-links a:hover { text-decoration:underline; }
.rpv-survey-links .rpv-arrow { width:23px; height:21px; }
.rpv-foundation-forms { padding:32px; margin-block:36px 12px; background:var(--white); border:1px solid var(--line); border-radius:16px; min-width:0; }
.rpv-foundation-forms>h3 { font:30px/1.3 Georgia,serif; letter-spacing:-.025em; margin-top:10px; }
.rpv-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; margin-top:25px; }
.rpv-form-grid article { min-width:0; padding-top:17px; border-top:2px solid var(--accent); }
.rpv-form-type { font-size:18px; line-height:1.6; font-weight:600; color:var(--accent); }
.rpv-form-sequence { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-block:19px; }
.rpv-form-sequence b { display:block; color:var(--accent); font-size:18px; font-weight:600; line-height:1.5; }
.rpv-form-sequence .rpv-arrow { width:26px; }
.rpv-form-grid article>p:last-child { color:var(--muted); font-size:18px; line-height:1.8; }
.rpv-form-note { color:var(--muted); font-size:16px; line-height:1.8; margin-top:23px; }
.rpv-granularity { display:flex; align-items:center; flex-wrap:wrap; gap:17px; margin-top:26px; padding-top:24px; border-top:1px solid var(--line); }
.rpv-granularity span { font-size:19px; color:var(--accent); font-weight:600; line-height:1.6; }
.rpv-form-bridge { font-size:18px; line-height:1.8; color:var(--muted); margin-top:14px; }
.rpv-deployment { margin-block:30px; padding:28px; border:1px solid var(--line); border-radius:16px; background:var(--white); }
.rpv-deployment>h3 { font:30px/1.3 Georgia,serif; letter-spacing:-.025em; margin-top:12px; max-width:740px; }
.rpv-deploy-paths { display:grid; gap:18px; margin-top:27px; }
.rpv-deploy-row { display:grid; grid-template-columns:155px minmax(0,1fr); gap:20px; align-items:center; padding-block:20px; border-top:1px solid var(--line); min-width:0; }
.rpv-deploy-label h4 { margin:0; color:var(--accent); font-size:20px; line-height:1.4; }
.rpv-deploy-label p { margin-top:8px; color:var(--muted); font-size:16px; line-height:1.6; }
.rpv-deploy-flow { display:flex; align-items:center; gap:10px; min-width:0; }
.rpv-deploy-flow>.rpv-arrow { width:24px; }
.rpv-deploy-step { flex:1; min-width:0; padding:14px 12px; border:1px solid var(--line); border-radius:8px; background:var(--paper); }
.rpv-deploy-step strong { display:block; font-size:17px; line-height:1.5; color:var(--ink); }
.rpv-deploy-step span { display:block; font-size:16px; line-height:1.65; color:var(--muted); margin-top:7px; }
.rpv-deploy-routefm .rpv-deploy-step:last-child,.rpv-deploy-saverouter .rpv-deploy-step:first-child { background:var(--accent-light); border-color:var(--accent); }
.rpv-deploy-routefm .rpv-deploy-step:last-child strong,.rpv-deploy-saverouter .rpv-deploy-step:first-child strong { color:var(--accent); }
.motion-off .rpv-hero * { animation:none!important; transition:none!important; }
@media(max-width:1150px) {
  .rpv-hero { padding:24px; }
  .rpv-hero-top h2 { font-size:30px; }
  .rpv-complex-chain { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
  .rpv-complex-chain>.rpv-arrow { transform:rotate(90deg); margin:3px 5px; }
  .rpv-complex-chain>span { display:flex; flex-wrap:wrap; gap:0 10px; align-items:baseline; }
  .rpv-complex-chain small { margin-top:0; }
  .rpv-overview-header,.rpv-motivation { gap:35px; }
  .rpv-survey { grid-template-columns:minmax(0,1fr); gap:26px; }
  .rpv-survey-links { display:flex; flex-wrap:wrap; gap:20px 34px; }
}
@media(max-width:900px) {
  .rpv-hero { max-width:760px; }
  .rpv-complex-chain { display:flex; }
  .rpv-complex-chain>span { display:block; }
  .rpv-complex-chain>.rpv-arrow { transform:none; margin:0; }
  .rpv-overview-header,.rpv-motivation { grid-template-columns:minmax(0,1fr); gap:24px; }
  .rpv-overview-header h2 { font-size:38px; }
  .rpv-overview-header>p { max-width:760px; }
  .rpv-motivation { margin-top:24px; gap:20px; }
  .rpv-overview { padding-block:46px; }
  .rpv-form-grid { gap:22px; }
}
@media(max-width:800px) {
  .rpv-deploy-row { grid-template-columns:minmax(0,1fr); gap:17px; }
}
@media(max-width:600px) {
  .rpv-hero { padding:23px 20px; }
  .rpv-kicker { font-size:16px; letter-spacing:.035em; }
  .rpv-hero-top h2 { font-size:29px; }
  .rpv-task { padding:17px 15px; margin-top:22px; }
  .rpv-task strong { font-size:19px; }
  .rpv-resources { gap:8px; }
  .rpv-resources>span { padding:8px 10px; }
  .rpv-system-output { padding:17px 15px; }
  .rpv-complex-chain { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
  .rpv-complex-chain>span { display:block; }
  .rpv-complex-chain>.rpv-arrow { transform:rotate(90deg); margin:3px 0; }
  .rpv-mode-controls { gap:8px; }
  .rpv-mode-controls button { padding-inline:10px; }
  .rpv-mode-controls [data-rpv-replay] { margin-left:0; padding-inline:8px; }
  .rpv-hero-caption { min-height:0; }
  .rpv-overview { padding-block:35px; }
  .rpv-overview-header h2 { font-size:33px; }
  .rpv-overview-header>p { font-size:19px; }
  .rpv-survey { padding:25px 22px; margin-top:30px; }
  .rpv-survey h3 { font-size:25px; }
  .rpv-survey h3 br { display:none; }
  .rpv-survey-links { display:grid; gap:18px; }
  .rpv-foundation-forms { padding:24px 20px; margin-top:30px; }
  .rpv-foundation-forms>h3 { font-size:28px; }
  .rpv-form-grid { grid-template-columns:minmax(0,1fr); gap:25px; }
  .rpv-form-sequence { gap:8px; }
  .rpv-form-sequence .rpv-arrow { width:22px; }
  .rpv-granularity { gap:12px; }
  .rpv-granularity span { font-size:18px; }
  .rpv-deployment { padding:24px 20px; }
  .rpv-deployment>h3 { font-size:28px; }
  .rpv-deploy-flow { display:grid; grid-template-columns:minmax(0,1fr); gap:12px; }
  .rpv-deploy-flow>.rpv-arrow { transform:rotate(90deg); margin-inline:auto; }
  .rpv-deploy-step { padding:14px; }
}
@media(prefers-reduced-motion:reduce) { html:not(.motion-on) .rpv-hero * { animation:none!important; transition:none!important; } }
@media print { .rpv-mode-controls { display:none; }.rpv-hero,.rpv-facets article,.rpv-survey { break-inside:avoid; }.rpv-facets { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Connector rails keep the visual path attached to the stages. */
.rpv-stage-rail { display:block; width:100%; height:30px; position:relative; color:var(--accent); }
.rpv-stage-rail::before { content:""; position:absolute; left:50%; top:0; bottom:5px; border-left:1.6px solid currentColor; }
.rpv-stage-rail::after { content:""; position:absolute; left:50%; bottom:0; transform:translateX(-50%); border:4px solid transparent; border-top:6px solid currentColor; border-bottom:0; }
.rpv-stage-rail>i { display:block; width:4px; height:4px; border:1px solid var(--accent); border-radius:50%; background:var(--white); position:absolute; top:-2px; left:calc(50% - 1.5px); }
.rpv-focused-chain>.rpv-arrow,.rpv-complex-chain>.rpv-arrow { width:32px; height:24px; }
.rpv-cycle { margin-top:35px; padding:30px; border:1px solid var(--line); border-radius:18px; background:var(--white); }
.rpv-cycle-heading { display:flex; align-items:start; gap:28px; justify-content:space-between; }
.rpv-cycle-heading h3 { font:30px/1.3 Georgia,serif; letter-spacing:-.025em; margin-top:10px; max-width:740px; }
.rpv-cycle-play { border:0; padding:8px 0; background:none; color:var(--accent); font-size:16px; line-height:1.5; white-space:nowrap; }
.rpv-cycle-play:hover { text-decoration:underline; text-underline-offset:4px; }
.rpv-cycle-play span { margin-left:6px; }
.rpv-cycle-map { --rpv-gap:28px; display:grid; grid-template-columns:minmax(0,1fr) minmax(155px,.64fr) minmax(0,1fr); grid-template-rows:auto 132px auto; column-gap:var(--rpv-gap); margin-top:28px; }
.rpv-facet { display:flex; flex-direction:column; align-items:start; text-align:left; min-width:0; min-height:146px; border:1px solid var(--line); border-radius:11px; padding:18px 21px; background:var(--paper); color:var(--ink); transition:border-color .25s,background .25s; }
.rpv-facet:hover { border-color:var(--accent); }
.rpv-facet[aria-pressed="true"] { border-color:var(--accent); background:var(--accent-light); }
.rpv-facet-index { font-size:16px; color:var(--muted); letter-spacing:.06em; }
.rpv-facet>strong { display:block; font:30px/1.3 Georgia,serif; color:var(--accent); margin-top:6px; }
.rpv-facet>span:last-child { font-size:18px; line-height:1.55; margin-top:9px; }
.rpv-facet-select { grid-column:1; grid-row:1; }
.rpv-facet-adapt { grid-column:3; grid-row:1; }
.rpv-facet-organize { grid-column:3; grid-row:3; }
.rpv-facet-evolve { grid-column:1; grid-row:3; }
.rpv-cycle-hub { grid-column:2; grid-row:2; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; min-width:0; padding:8px 0; }
.rpv-cycle-hub>span { font-size:16px; line-height:1.6; color:var(--muted); }
.rpv-cycle-hub>strong { font-size:18px; line-height:1.55; font-weight:600; color:var(--ink); }
.rpv-cycle-hub>i { width:32px; height:1px; background:var(--line); margin-block:10px; }
.rpv-cycle-link { display:block; position:relative; color:#9bafa7; transition:color .25s; }
.rpv-cycle-link::before,.rpv-cycle-link::after { content:""; position:absolute; }
.rpv-cycle-link-top { grid-column:2; grid-row:1; }
.rpv-cycle-link-top::before { left:calc(0px - var(--rpv-gap)); right:calc(8px - var(--rpv-gap)); top:50%; border-top:1.6px solid currentColor; }
.rpv-cycle-link-top::after { right:calc(3px - var(--rpv-gap)); top:calc(50% - 4px); border-left:6px solid currentColor; border-block:4px solid transparent; }
.rpv-cycle-link-right { grid-column:3; grid-row:2; }
.rpv-cycle-link-right::before { left:50%; top:0; bottom:8px; border-left:1.6px solid currentColor; }
.rpv-cycle-link-right::after { left:calc(50% - 4px); bottom:3px; border-top:6px solid currentColor; border-inline:4px solid transparent; }
.rpv-cycle-link-bottom { grid-column:2; grid-row:3; }
.rpv-cycle-link-bottom::before { left:calc(8px - var(--rpv-gap)); right:calc(0px - var(--rpv-gap)); top:50%; border-top:1.6px solid currentColor; }
.rpv-cycle-link-bottom::after { left:calc(3px - var(--rpv-gap)); top:calc(50% - 4px); border-right:6px solid currentColor; border-block:4px solid transparent; }
.rpv-cycle-link-left { grid-column:1; grid-row:2; }
.rpv-cycle-link-left::before { left:50%; top:8px; bottom:0; border-left:1.6px solid currentColor; }
.rpv-cycle-link-left::after { left:calc(50% - 4px); top:3px; border-bottom:6px solid currentColor; border-inline:4px solid transparent; }
.rpv-cycle[data-rpv-active="select"] [data-rpv-link="select"],.rpv-cycle[data-rpv-active="adapt"] [data-rpv-link="adapt"],.rpv-cycle[data-rpv-active="organize"] [data-rpv-link="organize"],.rpv-cycle[data-rpv-active="evolve"] [data-rpv-link="evolve"] { color:var(--accent); }
.rpv-cycle-detail { margin-top:28px; border-top:1px solid var(--line); padding-top:23px; min-height:135px; }
.rpv-cycle-detail>span { display:block; font:24px/1.4 Georgia,serif; color:var(--accent); }
.rpv-cycle-detail>p { margin-top:10px; color:var(--muted); font-size:18px; line-height:1.8; max-width:920px; }
.rpv-cycle-feedback { display:flex; align-items:start; gap:12px; margin-top:19px; padding:17px 0 0; border-top:1px solid var(--line); }
.rpv-feedback-point { display:block; width:8px; height:8px; flex:none; border-radius:50%; border:1.5px solid var(--accent); margin-top:10px; }
.rpv-cycle-feedback p { color:var(--muted); font-size:18px; line-height:1.8; }
.rpv-cycle-feedback strong { color:var(--ink); font-weight:600; }
@media(max-width:800px) {
  .rpv-cycle { padding:25px; }
  .rpv-cycle-map { --rpv-gap:20px; grid-template-columns:minmax(0,1fr) 140px minmax(0,1fr); }
  .rpv-facet { padding:18px; }
  .rpv-facet>strong { font-size:28px; }
  .rpv-cycle-heading { display:block; }
  .rpv-cycle-play { margin-top:12px; }
}
@media(max-width:650px) {
  .rpv-cycle { padding:23px 18px; }
  .rpv-cycle-heading h3 { font-size:28px; }
  .rpv-cycle-map { grid-template-columns:20px minmax(0,1fr); grid-template-rows:auto; gap:12px 13px; }
  .rpv-cycle-hub { grid-column:1/-1; grid-row:1; padding:8px 0 20px; }
  .rpv-facet { min-height:0; padding:18px; }
  .rpv-facet-select { grid-column:2; grid-row:2; }
  .rpv-facet-adapt { grid-column:2; grid-row:4; }
  .rpv-facet-organize { grid-column:2; grid-row:6; }
  .rpv-facet-evolve { grid-column:2; grid-row:8; }
  .rpv-cycle-link-top { grid-column:2; grid-row:3; }
  .rpv-cycle-link-right { grid-column:2; grid-row:5; }
  .rpv-cycle-link-bottom { grid-column:2; grid-row:7; }
  .rpv-cycle-link-top,.rpv-cycle-link-right,.rpv-cycle-link-bottom { min-height:26px; }
  .rpv-cycle-link-top::before,.rpv-cycle-link-right::before,.rpv-cycle-link-bottom::before { left:50%; right:auto; top:-12px; bottom:5px; border:0; border-left:1.6px solid currentColor; }
  .rpv-cycle-link-top::after,.rpv-cycle-link-right::after,.rpv-cycle-link-bottom::after { left:calc(50% - 4px); right:auto; top:auto; bottom:0; border:0; border-top:6px solid currentColor; border-inline:4px solid transparent; }
  .rpv-cycle-link-left { grid-column:1; grid-row:2/9; }
  .rpv-cycle-link-left::before { top:42px; bottom:42px; left:6px; }
  .rpv-cycle-link-left::after { left:2.5px; top:36px; }
  .rpv-cycle-detail { min-height:0; margin-top:24px; }
  .rpv-cycle-detail>span { font-size:23px; }
  .rpv-cycle-detail>p,.rpv-cycle-feedback p { font-size:18px; }
}
.motion-off .rpv-cycle * { animation:none!important; transition:none!important; }
@media(prefers-reduced-motion:reduce) { html:not(.motion-on) .rpv-cycle * { animation:none!important; transition:none!important; } }
@media print { .rpv-cycle-play { display:none; }.rpv-cycle { break-inside:avoid; } }

.rpv-facet-index { display:flex; align-items:center; justify-content:space-between; width:100%; }.rpv-facet-index .research-icon { width:27px; height:27px; color:var(--accent); }
