/* Flow layout for operator-customized structure; approved default composition follows below. */
.sp-roadmap{--rm-font:var(--sparta-display);position:relative;isolation:isolate;color:#071538;background:#e9d7b4;font-family:var(--rm-font);font-weight:900;scroll-margin-top:95px;border-block:2px solid #d9b56a}
.sp-roadmap *{box-sizing:border-box}
.sp-roadmap .rm-canvas{position:relative;max-width:1600px;margin-inline:auto;padding:30px 3.2% 22px;background:url('/assets/roadmap-v41/city.webp') center/cover;overflow:hidden}
.sp-roadmap .rm-heading{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:center;gap:24px;padding:0 2.3% 16px;text-shadow:0 2px #fffdf3,0 0 12px #fffdf1}
.sp-roadmap .rm-eyebrow{color:#d82613;font-size:clamp(12px,1.25vw,18px);line-height:1.3;margin:0 0 5px;font-weight:900;letter-spacing:0}
.sp-roadmap .rm-title{font:900 clamp(32px,4.05vw,61px)/1.12 var(--rm-font);letter-spacing:-.055em;margin:0;text-wrap:balance;overflow-wrap:anywhere;color:#071334}
.sp-roadmap .rm-subtitle{margin:8px 0 0;color:#144cce;font-size:clamp(17px,2vw,29px);line-height:1.3;text-wrap:balance}
.sp-roadmap .rm-timing,.sp-roadmap .rm-parallel{position:relative;margin:0;border:5px double #e4a22b;border-radius:12px;background:linear-gradient(100deg,#fff4ce,#fffef6 18%,#fffef6 82%,#fff2c9);box-shadow:0 1px 0 2px #ffeb9e,0 3px 0 2px #986011,inset 0 0 0 2px #fffbdd;padding:17px 43px;text-align:center;font-size:clamp(16px,1.63vw,25px);line-height:1.35;color:#081e55;text-shadow:0 1px #fff;overflow-wrap:anywhere}
.sp-roadmap .rm-timing::before,.sp-roadmap .rm-timing::after,.sp-roadmap .rm-parallel::before,.sp-roadmap .rm-parallel::after{content:'';position:absolute;top:12%;bottom:12%;width:29px;background:url('/assets/roadmap-v41/laurel.svg') center/contain no-repeat;pointer-events:none}
.sp-roadmap .rm-timing::before,.sp-roadmap .rm-parallel::before{left:8px}.sp-roadmap .rm-timing::after,.sp-roadmap .rm-parallel::after{right:8px;transform:scaleX(-1)}
.sp-roadmap .rm-timing{font-size:clamp(14px,1.46vw,23px);letter-spacing:-.02em}
.sp-roadmap .rm-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:6px 0;direction:ltr}
.sp-roadmap .rm-stage{--rm-cap-height:18.3011cqw;--rm-floor-height:16.7127cqw;--rm-contact:7.942cqw;--rm-actor-width:40%;position:relative;min-width:0;container-type:inline-size;display:grid;grid-template-rows:1fr auto;isolation:isolate}
.sp-roadmap .rm-gate{position:relative;grid-row:1;display:grid;grid-template-rows:var(--rm-cap-height) minmax(0,1fr);min-width:0;width:100%}
.sp-roadmap .rm-frame{position:absolute;inset:0;display:grid;grid-template-rows:var(--rm-cap-height) minmax(0,1fr);pointer-events:none;z-index:0}
.sp-roadmap .rm-frame picture,.sp-roadmap .rm-frame img{display:block;width:100%;height:100%;min-height:0;object-fit:fill}
.sp-roadmap .rm-copy{grid-row:2;position:relative;z-index:1;min-width:0;min-height:52cqw;padding:2cqw 42% 2cqw 10%;direction:ltr}
.sp-roadmap .rm-number{position:absolute;z-index:2;top:4.3854cqw;left:28%;width:13.75%;height:11.395cqw;display:flex;align-items:center;justify-content:center;font:700 clamp(28px,8.6cqw,47px)/1 Georgia,serif;letter-spacing:-.055em;color:#fff4ac;text-shadow:2px 2px 1px #69430d}
.sp-roadmap .rm-stage-title{font:900 clamp(24px,8cqw,40px)/1.18 var(--rm-font);letter-spacing:-.05em;text-align:center;text-wrap:balance;overflow-wrap:anywhere;margin:0 0 9px;color:#071334}
.sp-roadmap .rm-date{position:relative;text-align:center;margin:0 0 16px;padding:7px 5px;border:3px double #d58a16;background:linear-gradient(95deg,#f9d982,#fffbdd 13%,#fffbdd 86%,#eac56a);box-shadow:inset 0 0 0 2px #ffe6a3;font-size:clamp(15px,5.25cqw,27px);line-height:1.18;color:#10255b;text-wrap:balance;overflow-wrap:anywhere;clip-path:polygon(5% 0,95% 0,100% 20%,100% 80%,95% 100%,5% 100%,0 80%,0 20%)}
.sp-roadmap .rm-tasks{list-style:none;margin:0;padding:0;display:grid;gap:13px;font-size:clamp(14px,4cqw,20px);line-height:1.42;letter-spacing:-.025em;color:#10265d}
.sp-roadmap .rm-tasks li{display:grid;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:8px;min-width:0;overflow-wrap:anywhere;padding:0;border:0}
.sp-roadmap .rm-tasks li::before{content:none}
.sp-roadmap .rm-task-marker{display:block;margin-top:.14em;line-height:1}
.sp-roadmap .rm-task-marker svg{display:block;width:18px;height:18px;overflow:visible;filter:drop-shadow(0 1px 0 #fff4a8)}
.sp-roadmap .rm-diamond{stroke:#e96024;stroke-width:1.3}
.sp-roadmap .rm-diamond-check{fill:none;stroke:#475d26;stroke-width:2.2;stroke-linejoin:round;stroke-linecap:round}
/* The floor is a FULL-WIDTH sibling of the gate, never a percentage of it. */
.sp-roadmap .rm-ground{grid-row:2;position:relative;width:100%;height:var(--rm-floor-height);z-index:2;pointer-events:none}
.sp-roadmap .rm-ground>.rm-frame-base,.sp-roadmap .rm-ground>.rm-frame-base>img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.sp-roadmap .rm-actor{display:block;position:absolute;z-index:2;right:1%;bottom:var(--rm-contact);width:var(--rm-actor-width);height:auto;line-height:0;pointer-events:none}
.sp-roadmap .rm-actor .rm-character{display:block;position:static;width:100%;height:auto;max-width:none;object-fit:contain;filter:drop-shadow(1px 2px 1px #5a3a1428)}
.sp-roadmap .rm-contact-shadow{position:absolute;z-index:1;right:2%;bottom:calc(var(--rm-contact) - .8cqw);width:calc(var(--rm-actor-width) - 3%);height:2.4cqw;background:radial-gradient(ellipse,#5d43184a 12%,#70512826 44%,transparent 72%);border-radius:50%}
.sp-roadmap .rm-stage-nurse{--rm-actor-width:43%}.sp-roadmap .rm-stage-shield{--rm-actor-width:47%}.sp-roadmap .rm-stage-commander{--rm-actor-width:43%}.sp-roadmap .rm-stage-mage{--rm-actor-width:43%}.sp-roadmap .rm-stage-quartermaster{--rm-actor-width:42%}
.sp-roadmap .rm-stage-shield .rm-tasks{padding-inline-end:5cqw}
.sp-roadmap :is(.rm-stage-nurse,.rm-stage-commander,.rm-stage-mage) .rm-tasks{padding-inline-end:1.5cqw}
/* Added status lives in the open space beside the roof, leaving the reference copy layout intact. */
.sp-roadmap .rm-status{position:absolute;z-index:3;right:2%;top:1.8cqw;display:flex;align-items:center;justify-content:center;gap:4px;max-width:29%;margin:0;padding:3px 8px;border:1px solid #c7ad77;border-radius:20px;background:#fffbefee;color:#746846;font:800 clamp(10px,2.55cqw,13px)/1.3 var(--rm-font);text-align:center;overflow-wrap:anywhere;box-shadow:0 1px 3px #77613c20}
.sp-roadmap .rm-status svg{width:13px;height:13px;min-width:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.sp-roadmap .rm-status[data-state=active]{color:#80500d;background:#ffedb8;border-color:#c48b25}.sp-roadmap .rm-status[data-state=completed]{color:#245d38;background:#e4f0d9;border-color:#779b5e}
.sp-roadmap .rm-mobile-banner{display:none}
.sp-roadmap .rm-footer{position:relative;margin:8px auto 0;width:66%;max-width:900px;text-align:center}
.sp-roadmap .rm-parallel{font-size:clamp(15px,1.63vw,25px);padding:14px 48px}
.sp-roadmap .rm-note{font-size:12px;line-height:1.5;color:#526b60;background:#fffbefcf;display:inline-block;border-radius:8px;padding:3px 9px;margin:12px 8px 3px;text-shadow:0 1px #fff}
.sp-roadmap .rm-readiness{display:block;margin:0 auto;padding:2px 4px;border:0;border-bottom:1px solid currentColor;background:#fff9e7dc;color:#173765;font:800 12px/1.5 var(--rm-font);cursor:pointer;max-width:100%;overflow-wrap:anywhere}
.sp-roadmap .rm-readiness:hover{color:#a6271c}.sp-roadmap .rm-readiness:focus-visible{outline:3px solid #1646b8;outline-offset:4px}
.sp-roadmap .rm-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;border:0!important}
.sp-roadmap[dir=rtl] .rm-copy{direction:rtl}.sp-roadmap[dir=rtl] .rm-heading-copy{text-align:right}.sp-roadmap[hidden]{display:none!important}
@media(min-width:701px) and (max-width:1099px){
 .sp-roadmap .rm-stages{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 0}
 .sp-roadmap .rm-heading{grid-template-columns:1fr;gap:15px;text-align:center;padding-bottom:22px}
 .sp-roadmap .rm-title{font-size:43px}.sp-roadmap .rm-timing{max-width:660px;margin-inline:auto;font-size:20px}
 .sp-roadmap .rm-footer{width:90%}
}
@media(max-width:700px){
 .sp-roadmap .rm-canvas{max-width:640px;padding:23px 0 20px;background-image:url('/assets/roadmap-v41/city-mobile.webp');background-position:center top;background-size:100% 100%}
 .sp-roadmap .rm-heading{display:block;padding:0 16px 10px;text-align:center}
 .sp-roadmap .rm-eyebrow{font-size:11px;text-align:start;margin:0 0 6px}
 .sp-roadmap .rm-title{font-size:clamp(26px,7.1vw,43px);line-height:1.18;letter-spacing:-.055em}
 .sp-roadmap .rm-subtitle{font-size:clamp(15px,4vw,24px);line-height:1.35;margin-top:8px}
 .sp-roadmap .rm-timing{font-size:clamp(14px,3.5vw,21px);margin-top:17px;padding:11px 28px;border-width:4px}
 .sp-roadmap .rm-timing::before,.sp-roadmap .rm-timing::after{width:21px}.sp-roadmap .rm-timing::before{left:4px}.sp-roadmap .rm-timing::after{right:4px}
 .sp-roadmap .rm-stages{grid-template-columns:minmax(0,1fr);gap:1px}
 .sp-roadmap .rm-stage{--rm-cap-height:20.9635cqw;--rm-floor-height:10.7422cqw;--rm-contact:8.5286cqw;--rm-actor-width:33%}
 .sp-roadmap .rm-stage-nurse{--rm-actor-width:32%}.sp-roadmap .rm-stage-shield{--rm-actor-width:36%}.sp-roadmap .rm-stage-commander{--rm-actor-width:33%}.sp-roadmap .rm-stage-mage{--rm-actor-width:32%}.sp-roadmap .rm-stage-quartermaster{--rm-actor-width:35%}
 .sp-roadmap .rm-frame{clip-path:inset(0 0 0 24%)}
 .sp-roadmap .rm-mobile-banner{display:block;position:absolute;left:1.1068%;top:0;width:24.0885%;height:auto;z-index:1;pointer-events:none}
 .sp-roadmap .rm-copy{grid-row:1/3;min-height:40cqw;padding:9.5cqw 39% 1cqw 24%;}
 .sp-roadmap :is(.rm-stage-nurse,.rm-stage-mage) .rm-copy{min-height:47cqw}
 .sp-roadmap .rm-number{top:4.1667cqw;left:6.38%;width:14.974%;height:14.974cqw;font-size:8.1cqw}
 .sp-roadmap .rm-stage-title{text-align:start;font-size:clamp(21px,5.65cqw,34px);line-height:1.13;margin-bottom:5px;letter-spacing:-.045em}
 .sp-roadmap .rm-date{font-size:clamp(13px,3.55cqw,21px);line-height:1.23;padding:4px 2px;border-width:2px;margin-bottom:9px}
 .sp-roadmap .rm-tasks{font-size:clamp(12px,3.3cqw,20px);line-height:1.4;gap:6px;letter-spacing:-.025em}
 .sp-roadmap .rm-stage .rm-tasks{padding-inline-end:0}
 .sp-roadmap .rm-tasks li{grid-template-columns:12px minmax(0,1fr);gap:5px}
 .sp-roadmap .rm-task-marker svg{width:12px;height:12px}
 .sp-roadmap .rm-actor{right:1%}
 .sp-roadmap .rm-status{top:1.5cqw;left:24%;right:auto;max-width:37%;padding:2px 6px;font-size:clamp(9px,2.45cqw,13px);line-height:1.2;gap:3px}
 .sp-roadmap .rm-status svg{width:11px;height:11px;min-width:11px}
 .sp-roadmap .rm-footer{width:auto;margin:9px 16px 0}.sp-roadmap .rm-parallel{font-size:clamp(14px,3.6vw,21px);padding:12px 27px;border-width:4px}
 .sp-roadmap .rm-parallel::before,.sp-roadmap .rm-parallel::after{width:21px}.sp-roadmap .rm-parallel::before{left:3px}.sp-roadmap .rm-parallel::after{right:3px}
 .sp-roadmap .rm-note{font-size:10px;margin-top:10px;padding:3px 7px}.sp-roadmap .rm-readiness{font-size:11px}
}

/* v42: the approved scene itself. All writing remains selectable, translated HTML.
   Positions share one 1448×1086 / 685×2048 coordinate system with the artwork.
   No independently transformed actor, fake ground, substitute temple or CSS plaque. */
.sp-roadmap .rm-reference{max-width:1600px;padding:0;background:none;overflow:visible}
.sp-roadmap .rm-reference-board{position:relative;container-type:inline-size;width:100%;isolation:isolate}
.sp-roadmap .rm-reference-art,.sp-roadmap .rm-reference-art img{display:block;width:100%;height:auto;margin:0;max-width:none}
.sp-roadmap .rm-reference-art img{aspect-ratio:1448/1086}
.sp-roadmap .rm-reference :is(.rm-heading,.rm-stages,.rm-stage){display:contents;container-type:normal}
.sp-roadmap .rm-reference .rm-art-box{position:absolute;z-index:1;inset:auto;left:calc(var(--pc-x)*100%/1448);top:calc(var(--pc-y)*100%/1086);width:calc(var(--pc-w)*100%/1448);height:calc(var(--pc-h)*100%/1086);min-width:0;min-height:0;max-width:none;max-height:none;display:flex;align-items:center;justify-content:center;margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:none;clip-path:none;font:900 calc(var(--pc-font)*100cqw/1448)/1.12 var(--rm-font);letter-spacing:0;text-align:center;text-wrap:wrap;overflow-wrap:anywhere;word-break:normal;color:#081238;text-shadow:none;transform:none}
.sp-roadmap .rm-reference .rm-art-box>span{min-width:0;max-width:100%}
.sp-roadmap .rm-reference .rm-art-box::before,.sp-roadmap .rm-reference .rm-art-box::after{content:none}
.sp-roadmap .rm-reference :is(.rm-eyebrow,.rm-title,.rm-subtitle){justify-content:flex-start;text-align:start}
.sp-roadmap .rm-reference .rm-eyebrow{color:#e42a15;font-family:Arial,sans-serif;font-weight:900}
.sp-roadmap .rm-reference :is(.rm-title,.rm-stage-title){-webkit-text-stroke:.025em currentColor;paint-order:stroke fill}
.sp-roadmap .rm-reference .rm-subtitle{color:#2748db;-webkit-text-stroke:.012em currentColor}
.sp-roadmap .rm-reference :is(.rm-date,.rm-timing,.rm-parallel){color:#0d245d;-webkit-text-stroke:.008em currentColor}
.sp-roadmap .rm-reference :is(.rm-timing,.rm-parallel)>span{width:119.04762%;max-width:none;flex-shrink:0;transform:scaleX(.84);transform-origin:center}
.sp-roadmap .rm-reference .rm-number{font-family:Georgia,serif;font-weight:700;color:#fff6ac;text-shadow:1px 2px 1px #542b08}
.sp-roadmap .rm-reference .rm-tasks{display:flex;flex-direction:column;align-items:stretch;justify-content:stretch;gap:0;padding:0;text-align:start;list-style:none;direction:ltr}
.sp-roadmap .rm-reference .rm-tasks li{display:grid;grid-template-columns:calc(23*100cqw/1448) minmax(0,1fr);gap:calc(9*100cqw/1448);align-items:center;flex:1;min-height:0;min-width:0;padding:0;margin:0;font:900 calc(var(--pc-font)*100cqw/1448)/1.12 var(--rm-font);letter-spacing:0;color:#10265d}
.sp-roadmap .rm-reference .rm-task-marker{margin:0;align-self:center}
.sp-roadmap .rm-reference .rm-task-marker svg{width:calc(23*100cqw/1448);height:calc(23*100cqw/1448);filter:drop-shadow(0 1px 0 #fff4a8)}
.sp-roadmap .rm-reference .rm-task-label{display:block;width:121.95122%;max-width:none;transform:scaleX(.82);transform-origin:left center;line-height:1.12;overflow-wrap:anywhere;word-break:normal;text-align:start}
.sp-roadmap .rm-reference .rm-status{z-index:2;gap:calc(5*100cqw/1448);padding:0 calc(6*100cqw/1448);border:1px solid #8ea9cd;border-radius:20px;background:#edf3ff;color:#214574;box-shadow:0 1px 2px #634e2826;font-size:calc(var(--pc-font)*100cqw/1448);line-height:1.1}
.sp-roadmap .rm-reference .rm-status svg{width:calc(15*100cqw/1448);height:calc(15*100cqw/1448);min-width:0;flex-shrink:0}
.sp-roadmap .rm-reference .rm-status[data-state=active]{background:#ffdd76;color:#644005;border-color:#a96b04}
.sp-roadmap .rm-reference .rm-status[data-state=completed]{background:#dff3d3;color:#215a2e;border-color:#538545}
.sp-roadmap .rm-reference-notes{text-align:center;padding:3px 12px 14px;background:#f4e5c7}
.sp-roadmap .rm-reference-notes .rm-note{margin:0 0 3px;padding:0;background:none}
.sp-roadmap .rm-reference-notes .rm-readiness{background:none}
.sp-roadmap[dir=rtl] .rm-reference .rm-tasks{direction:rtl}
.sp-roadmap[dir=rtl] .rm-reference .rm-task-label{transform-origin:right center}
.sp-roadmap[dir=rtl] .rm-reference :is(.rm-eyebrow,.rm-title,.rm-subtitle,.rm-task-label){text-align:right}
@media(max-width:1099px){
 .sp-roadmap .rm-reference{max-width:685px;padding:0}
 .sp-roadmap .rm-reference-art img{aspect-ratio:685/2048}
 .sp-roadmap .rm-reference .rm-art-box{left:calc(var(--mobile-x)*100%/685);top:calc(var(--mobile-y)*100%/2048);width:calc(var(--mobile-w)*100%/685);height:calc(var(--mobile-h)*100%/2048);font-size:calc(var(--mobile-font)*100cqw/685)}
 .sp-roadmap .rm-reference .rm-stage-title{justify-content:flex-start;text-align:start}
 .sp-roadmap .rm-reference .rm-subtitle{justify-content:center;text-align:center}
 .sp-roadmap .rm-reference .rm-tasks li{grid-template-columns:calc(24*100cqw/685) minmax(0,1fr);gap:calc(13*100cqw/685);font-size:calc(var(--mobile-font)*100cqw/685)}
 .sp-roadmap .rm-reference .rm-task-marker svg{width:calc(24*100cqw/685);height:calc(24*100cqw/685)}
 .sp-roadmap .rm-reference .rm-status{left:calc(83*100%/685 - max(64px,130*100cqw/685)/2);width:max(64px,130*100cqw/685);height:auto;min-height:max(22px,30*100cqw/685);font-size:max(10px,var(--mobile-font)*100cqw/685);gap:3px;padding:2px 4px;line-height:1.15}
 .sp-roadmap .rm-reference .rm-status svg{width:max(11px,18*100cqw/685);height:max(11px,18*100cqw/685)}
 .sp-roadmap .rm-reference-notes{position:absolute;bottom:8px;left:5%;width:90%;padding:0;background:none}
 .sp-roadmap .rm-reference-notes .rm-note{font-size:clamp(9px,2.4vw,13px);line-height:1.3;color:#476b67;text-shadow:0 1px #fff}
 .sp-roadmap .rm-reference-notes .rm-readiness{font-size:clamp(10px,2.5vw,13px);line-height:1.4}
}
/* The editable flow layout uses the same state palette inside its own text panel. */
.sp-roadmap .rm-canvas:not(.rm-reference) .rm-copy>.rm-status{position:static;width:fit-content;max-width:100%;margin:0 auto 12px;padding:3px 9px;font-size:clamp(12px,3cqw,15px);line-height:1.25;background:#edf3ff;color:#214574;border-color:#8ea9cd}
.sp-roadmap .rm-canvas:not(.rm-reference) .rm-copy>.rm-status[data-state=active]{background:#ffdd76;color:#644005;border-color:#a96b04}
.sp-roadmap .rm-canvas:not(.rm-reference) .rm-copy>.rm-status[data-state=completed]{background:#dff3d3;color:#215a2e;border-color:#538545}
