/* Guardian Posse mission-cycle illustration: self-contained and safe without JS. */
.mission-cycle {
    --mc-ink: #eff9fc;
    --mc-navy: #092844;
    --mc-deep: #061e35;
    --mc-cyan: #35c8e4;
    --mc-blue: #7ce0f0;
    --mc-pale: #173f5c;
    --mc-paper: #0b2945;
    --mc-muted: #b4d0dc;
    --mc-line: #285671;
    width: 100%;
    margin: 0;
    padding: clamp(18px, 3.4vw, 38px);
    overflow: hidden;
    color: var(--mc-ink) !important;
    background: #061e35 !important;
    border: 1px solid #1c5675;
    border-radius: 12px;
    box-shadow: 0 18px 48px rgba(0, 8, 18, .25);
}
.mission-cycle *, .mission-cycle *::before, .mission-cycle *::after { box-sizing: border-box; }
.mission-cycle-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    margin: 0 0 12px;
}
.mission-cycle .mission-cycle-head h2 {
    margin: 3px 0 0;
    color: #f4fbfd !important;
    font-family: var(--font-display, "Manrope", sans-serif) !important;
    font-size: clamp(1.35rem, 2.5vw, 2rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    text-shadow: none !important;
    letter-spacing: -.04em;
}
.mission-cycle .mission-cycle-kicker {
    margin: 0;
    color: #58d6eb !important;
    font-family: var(--font-body, "DM Sans", sans-serif) !important;
    font-size: .68rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-shadow: none !important;
    letter-spacing: .15em;
    text-transform: uppercase;
}
.mission-cycle .mission-cycle-qualifier {
    max-width: 290px;
    margin: 0;
    color: #c1dbe5 !important;
    font-family: var(--font-body, "DM Sans", sans-serif) !important;
    font-size: .76rem !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
    text-shadow: none !important;
    text-align: right;
}
.mission-cycle-figure { margin: 0; }
.mission-cycle-art {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
    font-family: var(--font-body, "DM Sans", sans-serif);
}
.mission-cycle-art .mc-bg { fill: #071f39; stroke: #174b69; stroke-width: 2; }
.mission-cycle-art .mc-grid { fill: #1b4862; opacity: .72; }
.mission-cycle-art .mc-loop {
    fill: none; stroke: #2a8da9; stroke-width: 3;
    stroke-dasharray: 5 9; stroke-linecap: round;
}
.mission-cycle-art .mc-arrow { fill: #35c8e4; }
.mission-cycle-art .mc-scene {
    fill: #0b3654; stroke: #237494; stroke-width: 2;
}
.mission-cycle-art .mc-scene-shadow { fill: #164a66; }
.mission-cycle-art .mc-label {
    fill: #f3fbfd; font-size: 20px; font-weight: 700; letter-spacing: -.4px;
}
.mission-cycle-art .mc-sub {
    fill: #a9e8f2; font-size: 14px; font-weight: 600; letter-spacing: .1px;
}
.mission-cycle-art .mc-micro {
    fill: #7de0ef; font-size: 12px; font-weight: 700; letter-spacing: 1.1px;
}
.mission-cycle-art .mc-dark { fill: #f3fbfd; }
.mission-cycle-art .mc-cyan { fill: #35c8e4; }
.mission-cycle-art .mc-blue { fill: #54b9d3; }
.mission-cycle-art .mc-pale { fill: #174e6b; }
.mission-cycle-art .mc-stroke { fill: none; stroke: #d8f4f8; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.mission-cycle-art .mc-stroke-cyan { fill: none; stroke: #35c8e4; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.mission-cycle-art .mc-scene-control { cursor: pointer; outline: none; }
.mission-cycle-art .mc-scene-control .mc-scene { transition: stroke 160ms ease, stroke-width 160ms ease; }
.mission-cycle-art .mc-scene-control:hover .mc-scene,
.mission-cycle-art .mc-scene-control:focus .mc-scene,
.mission-cycle-art .mc-scene-control[aria-expanded="true"] .mc-scene {
    stroke: #35c8e4; stroke-width: 4;
}
.mission-cycle-art .mc-scene-control:focus-visible { outline: none; }
.mission-cycle-art .mc-focus-ring { fill: none; stroke: #49d4e9; stroke-width: 3; stroke-dasharray: 4 4; opacity: 0; }
.mission-cycle-art .mc-scene-control:focus-visible .mc-focus-ring { opacity: 1; }
.mission-cycle-art .mc-center {
    fill: #061e35; stroke: #35c8e4; stroke-width: 4;
}
.mission-cycle-art .mc-center-title {
    fill: #fff; font-size: 22px; font-weight: 800; letter-spacing: -.6px;
}
.mission-cycle-art .mc-center-sub {
    fill: #aee8f2; font-size: 13px; font-weight: 700; letter-spacing: 1px;
}
.mission-cycle-art .mc-center-copy {
    fill: #d9edf2; font-size: 13px; font-weight: 500;
}
.mission-cycle-art .mc-code-chip { fill: #e1f4f7; stroke: #76bfd0; stroke-width: 1.5; }
.mission-cycle-art .mc-code-ink { fill: #0a4c6c; font-size: 11px; font-weight: 700; }
.mission-cycle-art .mc-optional {
    fill: #102f49; stroke: #67d3e5; stroke-width: 2; stroke-dasharray: 5 4;
}
.mission-cycle-art .mc-scene-control:not([data-cycle-node="pcm"]) [fill="#092844"] { fill: #53c6dc; }
.mission-cycle-art .mc-scene-control:not([data-cycle-node="pcm"]) [stroke="#092844"] { stroke: #9de5ee; }
.mission-cycle-steps {
    display: none;
}
.mission-cycle-detail {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-top: 12px;
    padding: 16px 18px;
    color: #eff9fb !important;
    background: var(--mc-navy);
    border-left: 4px solid var(--mc-cyan);
    border-radius: 5px;
}
.mission-cycle-detail[hidden] { display: none; }
.mission-cycle .mission-cycle-detail h3 {
    margin: 0 0 4px;
    color: #f4fbfd !important;
    font-family: var(--font-display, "Manrope", sans-serif) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-shadow: none !important;
}
.mission-cycle .mission-cycle-detail p {
    max-width: 790px;
    margin: 0;
    color: #d1e5eb !important;
    font-family: var(--font-body, "DM Sans", sans-serif) !important;
    font-size: .9rem !important;
    font-weight: 400 !important;
    line-height: 1.6 !important;
    text-shadow: none !important;
}
.mission-cycle .mission-cycle-close {
    flex: 0 0 auto;
    min-height: 38px;
    padding: 0 12px;
    color: #e7f5f8 !important;
    font: 700 .8rem/1 var(--font-body, "DM Sans", sans-serif) !important;
    text-shadow: none !important;
    background: transparent;
    border: 1px solid #7296a8;
    border-radius: 4px;
    cursor: pointer;
}
.mission-cycle .mission-cycle-close:hover { background: rgba(255,255,255,.08); }
.mission-cycle .mission-cycle-close:focus-visible { outline: 3px solid #6bd5e8; outline-offset: 3px; }
.mission-cycle .mission-cycle-caption {
    margin: 10px 0 0;
    color: #c1dbe5 !important;
    font-family: var(--font-body, "DM Sans", sans-serif) !important;
    font-size: .76rem !important;
    font-weight: 500 !important;
    line-height: 1.55 !important;
    text-shadow: none !important;
}
@media (max-width: 650px) {
    .mission-cycle { padding: 19px 15px 16px; border-radius: 9px; }
    .mission-cycle-head { align-items: flex-start; flex-direction: column; gap: 7px; }
    .mission-cycle-qualifier { max-width: none; text-align: left; }
    .mission-cycle-art { display: none; }
    .mission-cycle-steps {
        position: relative;
        display: grid;
        gap: 10px;
        padding: 9px 0 4px 24px;
        margin: 0;
        list-style: none;
    }
    .mission-cycle-steps::before {
        position: absolute; top: 28px; bottom: 26px; left: 9px;
        width: 2px; content: ""; background: #76bdcf;
    }
    .mission-cycle-step {
        position: relative;
        display: grid;
        grid-template-columns: 52px minmax(0,1fr);
        align-items: center;
        gap: 13px;
        width: 100%;
        min-height: 77px;
        padding: 10px 12px;
        color: var(--mc-ink);
        text-align: left;
        background: #0b3654;
        border: 1px solid #286987;
        border-radius: 7px;
        cursor: pointer;
    }
    .mission-cycle-step::before {
        position: absolute; top: 50%; left: -22px;
        width: 9px; height: 9px; content: ""; transform: translateY(-50%);
        background: #35c8e4; border: 2px solid #061e35; border-radius: 50%;
        box-shadow: 0 0 0 1px #35c8e4;
    }
    .mission-cycle-step:hover, .mission-cycle-step:focus-visible,
    .mission-cycle-step[aria-expanded="true"] { border-color: #35c8e4; }
    .mission-cycle-step:focus-visible { outline: 3px solid #35c8e4; outline-offset: 2px; }
    .mission-cycle-step svg { display: block; width: 52px; height: 48px; }
    .mission-cycle .mission-cycle-step strong {
        display: block;
        color: #f3fbfd !important;
        font-family: var(--font-display, "Manrope", sans-serif) !important;
        font-size: .94rem !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        text-shadow: none !important;
    }
    .mission-cycle .mission-cycle-step span {
        display: block;
        margin-top: 3px;
        color: #bfeaf1 !important;
        font-family: var(--font-body, "DM Sans", sans-serif) !important;
        font-size: .76rem !important;
        font-weight: 500 !important;
        line-height: 1.35 !important;
        text-shadow: none !important;
    }
    .mission-cycle-center-mobile {
        display: block;
        width: calc(100% - 24px);
        margin: 9px 0 0 24px;
        padding: 13px 15px;
        color: #fff !important;
        text-align: left;
        font-family: var(--font-body, "DM Sans", sans-serif);
        background: #092844;
        border-left: 4px solid var(--mc-cyan);
        border-radius: 5px;
        cursor: pointer;
    }
    .mission-cycle-center-mobile:hover,
    .mission-cycle-center-mobile[aria-expanded="true"] { background: #0c3858; }
    .mission-cycle-center-mobile:focus-visible { outline: 3px solid #35c8e4; outline-offset: 3px; }
    .mission-cycle .mission-cycle-center-mobile strong {
        display: block;
        color: #f4fbfd !important;
        font-family: var(--font-display, "Manrope", sans-serif) !important;
        font-size: 1rem !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
        text-shadow: none !important;
    }
    .mission-cycle .mission-cycle-center-mobile span {
        display: block;
        margin-top: 4px;
        color: #bcecf4 !important;
        font-family: var(--font-body, "DM Sans", sans-serif) !important;
        font-size: .77rem !important;
        font-weight: 600 !important;
        line-height: 1.4 !important;
        text-shadow: none !important;
    }
    .mission-cycle-detail { padding: 13px; }
}
@media (prefers-reduced-motion: reduce) {
    .mission-cycle-art .mc-scene-control .mc-scene { transition: none; }
}
