/* Shared course experience. Loaded after page styles so all five courses
   share a reading rhythm while retaining their existing accent colors. */
body[data-cx] {
  --ce-surface: #111d2b;
  --ce-edge: #ffffff18;
  --ce-muted: #a9b7c8;
  --ce-ink: #f2f5f8;
  --ce-ease: cubic-bezier(.22,1,.36,1);
  --ce-nav-top: 78px;
  --ce-accent: var(--cx);
}
body[data-cx="si"] { --cx2:#ff3d78; --cx2-rgb:255,61,120; }
body[data-cx="ia"] { --ce-accent:#b8a6ff; }
body[data-cx] :is(section[id], details[id]) { scroll-margin-top: 155px; }
body[data-cx] .reveal, body[data-cx] .reveal-l, body[data-cx] .reveal-r { opacity:1; transform:none; filter:none; }
body[data-cx] .page-hero { padding:150px 0 64px; background:radial-gradient(ellipse at 90% 40%,rgba(var(--cx-rgb),.07),transparent 55%),var(--bg); }
body[data-cx] .page-hero::before, body[data-cx] .page-hero::after,
body[data-cx] .cx-hero-art, body[data-cx] .cl-particle { display:none; }
body[data-cx] .page-hero .row { --bs-gutter-x:4rem; }
body[data-cx] .page-hero .col-lg-7 { width:53%; }
body[data-cx] .page-hero .col-lg-5 { width:47%; }
body[data-cx] .page-hero .section-label { font-size:.69rem; line-height:1.6; letter-spacing:.08em; color:var(--ce-accent)!important; }
body[data-cx] .page-hero .ce-title { font-size:clamp(2.65rem,4.25vw,4.2rem); font-weight:600; line-height:1.07; letter-spacing:-.055em; margin:20px 0 24px; }
body[data-cx] .ce-title>span:not(.ce-course-name) { color:var(--ce-accent); }
body[data-cx] .ce-title .ce-course-name { display:block; font:500 .94rem/1.5 var(--font-body,system-ui); color:var(--ce-muted); letter-spacing:0; margin-bottom:18px; }
body[data-cx] .page-hero .ce-lead { font-size:1.13rem; line-height:1.75; max-width:47ch; color:#c5d0dd; margin:0 0 12px; }
body[data-cx] .page-hero .ce-note { color:var(--ce-muted); font-size:.91rem; line-height:1.7; max-width:48ch; margin-bottom:24px; }
.ce-facts { display:flex; flex-wrap:wrap; gap:9px 0; list-style:none; padding:0; margin:0 0 28px; color:var(--ce-ink); font-size:.82rem; }
.ce-facts li+li { border-left:1px solid #ffffff30; margin-left:15px; padding-left:15px; }
.ce-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; }
.ce-price-hint { display:inline-flex; flex-wrap:wrap; align-items:center; gap:9px; margin-top:14px; padding:9px 12px; border:1px solid color-mix(in srgb,var(--ce-accent) 24%,transparent); border-radius:10px; color:var(--ce-muted); font-size:.78rem; line-height:1.45; text-decoration:none; transition:background 160ms var(--ce-ease),border-color 160ms var(--ce-ease),transform 160ms var(--ce-ease); }
.ce-price-hint > i { color:var(--ce-accent); }
.ce-price-hint strong { color:var(--ce-ink); font-weight:750; }
.ce-price-hint-link { margin-left:4px; color:var(--ce-ink); font-weight:700; white-space:nowrap; }
.ce-price-hint:hover { background:color-mix(in srgb,var(--ce-accent) 7%,transparent); border-color:color-mix(in srgb,var(--ce-accent) 46%,transparent); transform:translateY(-1px); }
.ce-price-hint:focus-visible { outline:2px solid var(--ce-accent); outline-offset:4px; }
.ce-button { display:inline-flex; justify-content:center; align-items:center; gap:26px; border-radius:12px; background:var(--ce-accent); color:#08121c!important; padding:15px 20px; min-height:50px; font-size:.88rem; font-weight:650; text-decoration:none; transition:transform 160ms var(--ce-ease),filter 160ms; }
.ce-text-link { color:var(--ce-ink); font-size:.88rem; padding:12px 0; text-decoration:none; display:inline-flex; align-items:center; gap:14px; }
.ce-button:active, .ce-example-controls button:active { transform:scale(.97); }
.ce-button:hover { filter:brightness(1.1); }
body[data-cx] .cl-proof { margin-top:24px; font-size:.7rem; opacity:.8; }
/* The example is a real, keyboard-operable preview, not a fake app screenshot. */
.ce-example { position:relative; padding:20px; border:1px solid rgba(var(--cx-rgb),.25); border-radius:26px; background:linear-gradient(145deg,rgba(var(--cx-rgb),.07),transparent 65%),#101b29; box-shadow:0 24px 64px #0003; }
.ce-example-top { display:flex; align-items:center; gap:8px; color:#c5d0dd; font-size:.72rem; line-height:1.5; }
.ce-status-dot { width:6px; height:6px; flex-shrink:0; background:var(--ce-accent); border-radius:50%; }
.ce-example-mark { color:var(--ce-accent); margin-left:auto; font-size:1.1rem; }
.ce-art { display:block; width:100%; height:172px; color:var(--ce-accent); overflow:visible; }
.ce-art-object { fill:#142435; stroke:#7891a7; stroke-width:1.4; stroke-linejoin:round; stroke-linecap:round; }
.ce-art-object path { fill:none; }
.ce-art-object .ce-art-accent { stroke:var(--ce-accent); stroke-width:2; }
.ce-art-orbit { fill:none; stroke:rgba(var(--cx-rgb),.15); stroke-dasharray:3 7; }
.ce-example-controls { display:flex; gap:4px; padding:4px; margin:0 0 15px; border:1px solid var(--ce-edge); background:#07111b66; border-radius:11px; }
.ce-example-controls[hidden],.ce-example-panel[hidden] { display:none; }
.ce-example-controls button { flex:1; min-width:0; min-height:42px; padding:8px 6px; border:1px solid transparent; border-radius:8px; background:transparent; color:#a9b7c8; font:500 .78rem/1.3 var(--font-body,system-ui); cursor:pointer; transition:background-color 180ms,color 180ms,transform 160ms; }
.ce-example-controls button[aria-selected="true"] { color:var(--ce-ink); background:#253446; border-color:#ffffff12; box-shadow:0 2px 7px #0002; }
.ce-paper { border:1px solid #fff3; padding:24px; border-radius:15px; background:#edf0e9; color:#253342; box-shadow:0 9px 25px #0002; }
.ce-example-panel { min-height:262px; }
.ce-example-panel+.ce-example-panel { margin-top:24px; border-top:1px solid #23314030; padding-top:20px; }
.ce-example.is-enhanced .ce-example-panel { margin:0; padding:0; border:0; }
.ce-paper-index { font-size:.65rem; letter-spacing:.16em; font-weight:600; color:#526777; }
body[data-cx] .ce-paper h3 { margin:11px 0 10px; color:#253342; font:500 1.4rem/1.2 var(--font-head,system-ui); letter-spacing:-.025em; }
body[data-cx] .ce-paper p { color:#4c5e6c; font-size:.82rem; line-height:1.65; margin:0 0 18px; }
.ce-paper ul { list-style:none; padding:0; margin:0; }
.ce-paper li { display:flex; gap:12px; align-items:baseline; border-top:1px solid #25334220; padding:9px 0; font-size:.77rem; line-height:1.5; }
.ce-paper li>span { font-size:.64rem; color:#627585; font-variant-numeric:tabular-nums; }
body[data-cx] .ce-example-note { margin:13px 0 0; font-size:.67rem; color:var(--ce-muted); text-align:center; }
/* A lightweight, stable course toolbar below the global menu. */
.ce-course-nav { position:sticky; top:var(--ce-nav-top); z-index:90; background:#0d1625ed; border-block:1px solid var(--ce-edge); backdrop-filter:blur(20px) saturate(130%); -webkit-backdrop-filter:blur(20px) saturate(130%); }
.ce-course-nav>.container { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.ce-nav-name { font-size:.83rem; font-weight:600; color:var(--ce-ink); text-decoration:none; white-space:nowrap; }
.ce-nav-links { display:flex; align-items:center; gap:24px; overflow-x:auto; scrollbar-width:thin; }
.ce-nav-links a { display:inline-flex; align-items:center; min-height:60px; flex-shrink:0; font-size:.78rem; color:var(--ce-muted); text-decoration:none; position:relative; }
.ce-nav-links a:last-child { color:var(--ce-accent); gap:12px; }
.ce-nav-links a[aria-current="location"] { color:var(--ce-ink); }
.ce-nav-links a[aria-current="location"]::after { content:''; position:absolute; height:2px; background:var(--ce-accent); bottom:0; left:0; right:0; }
body[data-cx] .section-title { font-size:clamp(1.9rem,3vw,2.8rem); font-weight:600; line-height:1.15; letter-spacing:-.04em; }
body[data-cx] .section-title span { color:var(--ce-accent); }
body[data-cx] .section-sub { font-size:1rem; line-height:1.75; color:var(--ce-muted); }
body[data-cx] .section-label { color:var(--ce-accent); }
.ce-results { padding:70px 0!important; background:var(--bg); }
.ce-section-heading { margin-bottom:30px; }
.ce-outcomes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.ce-outcome { position:relative; padding:28px; border:1px solid var(--ce-edge); border-radius:18px; background:radial-gradient(ellipse at 0 0,rgba(var(--cx-rgb),.065),transparent 75%),var(--ce-surface); }
.ce-outcome-icon { display:grid; place-items:center; width:52px; height:52px; margin-bottom:38px; border:1px solid rgba(var(--cx-rgb),.3); border-radius:15px; color:var(--ce-accent); font:400 1.8rem system-ui; }
.ce-outcome-number { position:absolute; right:25px; top:28px; font-size:.75rem; color:#7e91a5; }
body[data-cx] .ce-outcome h3 { font-size:1.05rem; font-weight:600; margin:0 0 8px; }
.ce-outcome p { font-size:.88rem; color:var(--ce-muted); line-height:1.65; margin:0; max-width:32ch; }
/* Native details retain the full syllabus, including without JavaScript. */
body[data-cx] #programa { padding:72px 0!important; background:#0d1724!important; }
body[data-cx] #programa>.container>.row { display:block; max-width:900px; margin-inline:auto; }
body[data-cx] #programa>.container>.row>.col-lg-6 { width:100%; padding:0; margin:0; }
body[data-cx] #programa .cx-rail::before { display:none; }
.ce-module { margin-bottom:12px; background:#152131; border:1px solid #ffffff1a; border-radius:15px; overflow:hidden; }
.ce-module[open] { border-color:rgba(var(--cx-rgb),.4); }
.ce-module summary { display:flex; align-items:center; gap:20px; list-style:none; padding:22px 24px; cursor:pointer; min-height:88px; }
.ce-module summary::-webkit-details-marker,.ce-deep-dive summary::-webkit-details-marker { display:none; }
.ce-module-number { flex-shrink:0; font:400 1.55rem var(--font-head,system-ui); letter-spacing:-.06em; color:var(--ce-accent); }
.ce-module summary>span:nth-child(2) { display:flex; flex-direction:column; gap:6px; }
.ce-module summary strong { font-size:.98rem; font-weight:550; line-height:1.5; color:var(--ce-ink); }
.ce-module summary small { font-size:.73rem; color:var(--ce-muted); line-height:1.5; font-weight:400; }
.ce-plus { display:grid; place-items:center; flex-shrink:0; width:28px; height:28px; margin-left:auto; border:1px solid #ffffff2a; border-radius:50%; font-size:1.1rem; color:var(--ce-accent); transition:transform 220ms var(--ce-ease); }
.ce-module[open] .ce-plus { transform:rotate(45deg); }
.ce-module-body { padding:4px 26px 26px 73px; }
.ce-module-body :is(p,li) { font-size:.9rem!important; line-height:1.8!important; }
.ce-module-body :is(.cl-tl,.si-tl,.ia-tl) { margin-top:12px; }
.ce-deep-dive { border:1px solid var(--ce-edge); border-radius:16px; padding:0 24px; }
.ce-deep-dive>summary { list-style:none; display:flex; align-items:center; justify-content:space-between; min-height:64px; gap:20px; color:var(--ce-accent); font-size:.9rem; cursor:pointer; }
.ce-deep-dive[open]>summary { border-bottom:1px solid var(--ce-edge); margin-bottom:28px; }
.ce-deep-dive[open]>summary span { transform:rotate(45deg); }
.ce-deep-content { padding:6px 0 26px; }
body[data-cx] #por-dentro { padding:74px 0!important; background:var(--bg)!important; }
body[data-cx] #por-dentro h2 { font-weight:600; letter-spacing:-.04em; }
body[data-cx] :is(.cl-card,.si-card,.ia-card,.cp-card,.en-card) { border-radius:18px; box-shadow:none; }
body[data-cx] :is(.cl-card,.si-card,.ia-card,.cp-card,.en-card):hover { transform:none; }
body[data-cx] :is(.cl-blink,.si-blink,.ia-blink,.en-blink,.cp-blink) { animation:none!important; }
body[data-cx] :is(.cl-cta-glow,.si-cta-glow,.ia-cta-glow,.cp-cta,.en-cta) { animation:none; }
body[data-cx] :is(.ce-button,.ce-text-link,.ce-course-nav a,.ce-example-controls button,.ce-module summary,.ce-deep-dive>summary):focus-visible { outline:2px solid var(--ce-accent); outline-offset:4px; }
.ce-module summary:focus-visible { outline-offset:-5px!important; border-radius:14px; }
@media(prefers-reduced-motion:no-preference) {
  .ce-example.ce-enter .ce-art-object { animation:ce-assemble 750ms var(--ce-ease) both; }
  .ce-example.ce-enter .ce-paper { animation:ce-paper-arrive 650ms var(--ce-ease) 100ms both; }
  .ce-outcome.ce-enter .ce-outcome-icon { animation:ce-assemble 600ms var(--ce-ease) both; }
  .ce-module[open] .ce-module-body { animation:ce-detail-in 220ms ease-out; }
}
@keyframes ce-assemble { from{opacity:.2;transform:translateY(12px)}to{opacity:1;transform:translateY(0)} }
@keyframes ce-paper-arrive { from{opacity:.3;transform:translateY(10px) rotate(1deg)}to{opacity:1;transform:translateY(0) rotate(0)} }
@keyframes ce-detail-in { from{opacity:.3}to{opacity:1} }
@media(max-width:1199px) {
  body[data-cx] .page-hero .row { --bs-gutter-x:2rem; }
  body[data-cx] .page-hero .ce-title { font-size:3.25rem; }
  .ce-nav-links { gap:18px; }
  .ce-paper { padding:20px; }
}
@media(max-width:991px) {
  body[data-cx] .page-hero { padding-top:124px; }
  body[data-cx] .page-hero .col-lg-7,body[data-cx] .page-hero .col-lg-5 { width:100%; }
  body[data-cx] .page-hero .ce-title { font-size:clamp(2.65rem,6vw,4rem); max-width:18ch; }
  .ce-example { max-width:580px; margin:0 auto; }
  .ce-nav-name { display:none; }
  .ce-nav-links { width:100%; justify-content:space-between; }
  .ce-example-panel { min-height:240px; }
  .ce-outcome { padding:22px; }
  .ce-outcome-icon { margin-bottom:26px; }
}
@media(max-width:600px) {
  body[data-cx] { --ce-nav-top:70px; }
  body[data-cx] .page-hero { padding:112px 0 36px; }
  body[data-cx] .page-hero .row { --bs-gutter-x:1.5rem; --bs-gutter-y:2rem; }
  body[data-cx] .page-hero .ce-title { font-size:2.7rem; }
  body[data-cx] .page-hero .ce-lead { font-size:1.04rem; }
  .ce-example { padding:16px; border-radius:20px; }
  .ce-art { height:140px; }
  .ce-paper { padding:20px; }
  .ce-example-panel { min-height:280px; }
  .ce-example-top { font-size:.66rem; }
  .ce-nav-links { gap:22px; justify-content:flex-start; }
  .ce-nav-links a { min-height:52px; font-size:.74rem; }
  .ce-outcomes { grid-template-columns:1fr; gap:10px; }
  .ce-outcome { padding:22px 22px 22px 88px; min-height:125px; }
  .ce-outcome-icon { position:absolute; left:20px; top:23px; width:46px; height:46px; }
  .ce-outcome-number { display:none; }
  .ce-results,body[data-cx] #programa,body[data-cx] #por-dentro { padding:48px 0!important; }
  .ce-module summary { padding:18px 16px; gap:13px; }
  .ce-module summary strong { font-size:.9rem; }
  .ce-module-number { font-size:1.2rem; }
  .ce-module-body { padding:0 20px 24px; }
  .ce-deep-dive { padding-inline:16px; }
  .ce-deep-content .row { --bs-gutter-x:1rem; }
  .ce-actions { gap:16px; }
  .ce-button { gap:17px; padding:14px 16px; font-size:.83rem; }
  .ce-text-link { font-size:.82rem; }
}
@media(prefers-reduced-motion:reduce) {
  body[data-cx] { scroll-behavior:auto; }
  body[data-cx] *,body[data-cx] *::before,body[data-cx] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media(prefers-reduced-transparency:reduce) { .ce-course-nav { background:#0d1625; backdrop-filter:none; -webkit-backdrop-filter:none; } }
@media(prefers-contrast:more) { body[data-cx] { --ce-muted:#d4e0ed; --ce-edge:#91a2b4; } .ce-module,.ce-outcome,.ce-example { border-color:#91a2b4; } .ce-course-nav { background:#0d1625; } }
@media print { .ce-course-nav,.ce-example-controls { display:none!important; } .ce-module::details-content,.ce-deep-dive::details-content { content-visibility:visible; display:block; } }
/* Reset the site's default green heading gradient to the course palette. */
body[data-cx] .ce-title>span,body[data-cx] .section-title>span {
  background:none; -webkit-text-fill-color:currentColor; color:var(--ce-accent);
}
body[data-cx] .ce-title .ce-course-name {
  background:none; -webkit-text-fill-color:currentColor; color:var(--ce-muted);
}
/* Opening a lesson must never wait for the old section stagger. */
body[data-cx] .ce-module-body *,body[data-cx] .ce-deep-content * { animation:none!important; }
body[data-cx] .mobile-sticky-btn { background:var(--ce-accent); color:#08121c; box-shadow:none; }
body[data-cx] .mobile-sticky-btn:hover { color:#08121c; }
@media(max-width:600px) {
  body[data-cx] #programa [style*="min-width:260px"] { min-width:0!important; }
  body[data-cx] #programa [style*="minmax(280px"] { grid-template-columns:1fr!important; }
}
/* The tools are shown as objects: structure, relationships and a usable output. */
.ce-outcome { padding:0 0 26px; overflow:hidden; }
.ce-outcome-visual { position:relative; margin-bottom:23px; padding:18px 16px 0; border-bottom:1px solid var(--ce-edge); background:radial-gradient(ellipse at 50% 85%,rgba(var(--cx-rgb),.09),transparent 75%),#0c1825; }
.ce-outcome-visual>span { color:var(--ce-accent); font-size:.58rem; letter-spacing:.12em; font-weight:600; }
.ce-outcome-visual svg { display:block; width:100%; height:195px; fill:#172838; stroke:#64798c; stroke-width:1; stroke-linecap:round; }
.ce-outcome-visual svg text { stroke:none; fill:#c4d2de; font:10px var(--font-body,system-ui); }
.ce-mini-back { opacity:.5; }
.ce-mini-front { fill:#1e3140; }
.ce-mini-front circle { fill:var(--ce-accent); stroke:none; }
.ce-outcome-visual .ce-mini-step { fill:var(--ce-accent); font-size:17px; }
.ce-outcome-visual .ce-mini-route { stroke:var(--ce-accent); stroke-dasharray:4 5; }
.ce-outcome-number { top:auto; bottom:26px; right:20px; opacity:.6; }
body[data-cx] .ce-outcome h3,.ce-outcome>p { margin-inline:26px; padding-right:12px; }
.ce-outcome>p { margin-bottom:0; }
.ce-workspace { padding:36px 0 85px; background:var(--bg); }
.ce-workspace-grid { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; padding:48px; border:1px solid var(--ce-edge); border-radius:26px; background:radial-gradient(ellipse at 100% 50%,rgba(var(--cx-rgb),.06),transparent 65%),#111c2a; }
.ce-workspace-copy>p { color:var(--ce-muted); line-height:1.8; font-size:1rem; max-width:40ch; margin:22px 0; }
.ce-resource-tags { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 20px; }
.ce-resource-tags>span { display:inline-flex; gap:8px; align-items:center; padding:8px 10px; border:1px solid var(--ce-edge); border-radius:8px; font-size:.7rem; color:#b4c6d7; }
.ce-resource-tags i { color:var(--ce-accent); }
.ce-desk { position:relative; height:390px; isolation:isolate; }
.ce-desk-grid { position:absolute; inset:0; background-image:linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px); background-size:26px 26px; mask-image:radial-gradient(ellipse,#000 30%,transparent 70%); }
.ce-desk-folder { position:absolute; width:69%; min-height:246px; top:23px; right:1%; padding:25px; background:#213448; border:1px solid rgba(var(--cx-rgb),.4); border-radius:10px 18px 18px 18px; transform:rotate(7deg); box-shadow:0 15px 30px #0003; }
.ce-desk-folder::before { content:''; position:absolute; top:-13px; left:0; width:42%; height:13px; border:1px solid rgba(var(--cx-rgb),.4); border-bottom:0; border-radius:8px 8px 0 0; background:#213448; }
.ce-desk-folder>span { font-size:.55rem; letter-spacing:.1em; color:var(--ce-accent); }
.ce-desk-folder>b { display:block; font:500 1.2rem/1.4 var(--font-head,system-ui); color:#cedbe7; margin-top:16px; }
.ce-folder-lines { display:grid; gap:16px; margin-top:24px; }
.ce-folder-lines i { display:block; height:1px; background:#ffffff20; }
.ce-folder-lines i:last-child { width:65%; }
.ce-desk-sheet { position:absolute; width:74%; min-height:291px; top:75px; left:0; padding:24px; background:#edf0e9; color:#253342; border:1px solid #fff8; border-radius:12px; transform:rotate(-6deg); box-shadow:0 22px 44px #0005; }
.ce-sheet-head { display:flex; justify-content:space-between; align-items:center; color:#576a79; font-size:.55rem; letter-spacing:.1em; border-bottom:1px solid #25334225; padding-bottom:13px; }
.ce-sheet-head>span:last-child { font-size:1.1rem; }
body[data-cx] .ce-desk-sheet h3 { font:500 1.25rem/1.25 var(--font-head,system-ui); color:#253342; margin:20px 0 9px; }
.ce-desk-sheet p { font-size:.66rem; line-height:1.7; color:#556977; margin-bottom:18px; }
.ce-sheet-field { display:flex; align-items:center; gap:12px; padding:9px 0; }
.ce-sheet-field>span { font-size:.6rem; color:#677e89; }
.ce-sheet-field>i { display:block; height:6px; width:80%; border-radius:3px; background:#d3dcd5; }
.ce-sheet-field:nth-last-child(2)>i { width:55%; }
.ce-sheet-footer { display:flex; align-items:center; justify-content:space-between; margin-top:17px; padding-top:11px; border-top:1px solid #25334220; color:#647581; font-size:.57rem; }
.ce-sheet-footer>span { font:600 1rem var(--font-head,system-ui); color:#334953; }
.ce-desk-badge { position:absolute; bottom:-4px; right:0; z-index:2; display:flex; align-items:center; gap:10px; padding:13px 17px; border:1px solid rgba(var(--cx-rgb),.4); background:#162837; color:var(--ce-accent); border-radius:12px; box-shadow:0 8px 24px #0003; font-size:.72rem; }
@media(prefers-reduced-motion:no-preference) {
  .ce-outcome.ce-enter .ce-mini-row { animation:ce-assemble 650ms var(--ce-ease) both; animation-delay:calc(var(--row,0)*85ms); }
  .ce-workspace.ce-enter .ce-desk-sheet { animation:ce-sheet-in 850ms var(--ce-ease) both; }
  .ce-workspace.ce-enter .ce-desk-folder { animation:ce-folder-in 900ms var(--ce-ease) both; }
  .ce-workspace.ce-enter .ce-desk-badge { animation:ce-assemble 650ms var(--ce-ease) 200ms both; }
}
@keyframes ce-sheet-in { from{opacity:.2;transform:translateY(20px) rotate(-9deg)}to{opacity:1;transform:translateY(0) rotate(-6deg)} }
@keyframes ce-folder-in { from{opacity:.2;transform:translateY(10px) rotate(1deg)}to{opacity:1;transform:translateY(0) rotate(7deg)} }
@media(max-width:991px) {
  .ce-workspace-grid { padding:32px; gap:25px; }
  .ce-desk { height:360px; }
  .ce-desk-sheet { width:88%; padding:18px; }
  .ce-desk-folder { width:83%; padding:18px; }
  .ce-outcome-visual { padding-inline:12px; }
  .ce-outcome-visual>span { font-size:.5rem; }
  .ce-outcome-visual svg { height:145px; }
  body[data-cx] .ce-outcome h3,.ce-outcome>p { margin-inline:18px; }
}
@media(max-width:600px) {
  .ce-outcomes { grid-template-columns:1fr; gap:18px; }
  .ce-outcome { padding:0 0 25px; }
  .ce-outcome-visual { padding:17px 20px 0; margin-bottom:20px; }
  .ce-outcome-visual>span { font-size:.6rem; }
  .ce-outcome-visual svg { height:175px; }
  body[data-cx] .ce-outcome h3,.ce-outcome>p { margin-inline:24px; }
  .ce-workspace { padding:0 0 48px; }
  .ce-workspace-grid { grid-template-columns:1fr; gap:20px; padding:26px 22px; border-radius:20px; }
  .ce-workspace-copy>p { font-size:.93rem; }
  .ce-desk { height:380px; max-width:340px; width:100%; margin-inline:auto; }
  .ce-desk-sheet { width:87%; top:80px; padding:19px; }
  .ce-desk-folder { right:2%; width:78%; }
  .ce-desk-badge { font-size:.66rem; bottom:0; padding:11px 13px; }
}
/* Existing background illustrations use the same course ink, without loops. */
body[data-cx] .mm-bg-doodle { animation:none!important; }
body[data-cx] .mm-bg-doodle svg :is(path,line,circle,rect,polyline,polygon,ellipse) { stroke:var(--ce-accent); }
body[data-cx] .mm-bg-doodle svg .filldot { fill:var(--ce-accent); stroke:none; }
body[data-cx] :is(.cl-price-card,.si-price-card,.ia-price-card,.cp-price-card,.en-price-card) { border-radius:20px; background:#111d2b; }
@media(max-width:600px) { .ce-desk { height:400px; } }
/* Editorial imagery and a hands-on motion studio, shared across all courses. */
body[data-cx] .page-hero { padding-top:138px; padding-bottom:64px; }
body[data-cx] .page-hero .col-lg-7 { width:51%; }
body[data-cx] .page-hero .col-lg-5 { width:49%; }
.ce-editorial { margin:0; position:relative; border:1px solid rgba(var(--cx-rgb),.2); border-radius:24px; background:#0c1724; overflow:hidden; box-shadow:0 28px 75px #0003; }
.ce-editorial-frame { position:relative; overflow:hidden; background:#07101a; }
.ce-editorial-frame>img { display:block; width:100%; height:auto; aspect-ratio:1.25; object-fit:cover; }
.ce-editorial-frame::after { content:''; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,#07101a70,transparent 30%,transparent 65%,#0c1724); }
.ce-image-label { display:flex; align-items:center; gap:9px; position:absolute; top:22px; left:22px; right:22px; z-index:1; color:#ced8e3; font-size:.67rem; letter-spacing:.01em; }
.ce-image-label>span:last-child { margin-left:auto; color:var(--ce-accent); font-size:1.1rem; }
.ce-image-dot { width:5px; height:5px; background:var(--ce-accent); border-radius:50%; }
.ce-image-signature { position:absolute; bottom:17px; left:24px; z-index:1; display:flex; align-items:center; gap:12px; color:#ebf1f5; font:500 1.5rem var(--font-head,system-ui); letter-spacing:-.1em; }
.ce-image-signature>span { max-width:12ch; font:500 .48rem/1.6 var(--font-body,system-ui); letter-spacing:.13em; color:#bcc9d7; }
.ce-editorial figcaption { padding:18px 24px 22px; }
.ce-editorial figcaption>strong { display:block; font:500 1.15rem/1.4 var(--font-head,system-ui); letter-spacing:-.025em; color:var(--ce-ink); }
.ce-editorial-pillars { display:flex; flex-wrap:wrap; gap:12px 22px; margin:19px 0; }
.ce-editorial-pillars>span { display:flex; gap:6px; color:#b7c6d7; font-size:.68rem; }
.ce-editorial-pillars i { font-size:.57rem; font-style:normal; color:var(--ce-accent); }
.ce-editorial-link { display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:45px; padding-top:13px; border-top:1px solid #ffffff17; text-decoration:none; color:var(--ce-accent); font-size:.79rem; }
.ce-editorial-link:hover { color:var(--ce-ink); }
.ce-editorial-link:focus-visible,.ce-play:focus-visible,.ce-program-route a:focus-visible { outline:2px solid var(--ce-accent); outline-offset:4px; }
.ce-studio { padding:30px 0 88px; background:var(--bg); }
.ce-studio-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center; }
.ce-studio-copy .section-title { max-width:16ch; }
.ce-studio-copy>p { font-size:1.04rem; color:var(--ce-muted); line-height:1.8; max-width:40ch; margin:24px 0 30px; }
.ce-studio-instruction { display:flex; gap:15px; align-items:center; margin-bottom:36px; }
.ce-instruction-symbol { display:grid; place-items:center; width:42px; height:42px; flex-shrink:0; border:1px solid rgba(var(--cx-rgb),.3); border-radius:50%; color:var(--ce-accent); font:400 1.2rem system-ui; }
.ce-studio-instruction p { margin:0; font-size:.81rem; line-height:1.8; color:var(--ce-muted); }
.ce-studio-instruction strong { font-weight:500; color:var(--ce-ink); }
.ce-studio-index { display:flex; align-items:center; width:220px; margin-bottom:28px; }
.ce-studio-index span { display:grid; place-items:center; width:32px; height:32px; border:1px solid rgba(var(--cx-rgb),.35); border-radius:50%; color:var(--ce-accent); font-size:.63rem; }
.ce-studio-index i { flex:1; height:1px; background:linear-gradient(90deg,var(--ce-accent),rgba(var(--cx-rgb),.18)); opacity:.5; transform-origin:left; }
.ce-studio .ce-example { max-width:none; padding:24px; background:radial-gradient(ellipse at 50% 0,rgba(var(--cx-rgb),.08),transparent 60%),#101b29; }
.ce-studio .ce-paper { min-height:293px; }
.ce-process-scene { margin:24px 0 7px; }
.ce-process-scene svg { display:block; width:100%; height:auto; overflow:visible; }
.ce-scene-track { stroke:#364b5e; stroke-width:1; stroke-dasharray:3 5; fill:none; }
.ce-scene-signal { stroke:var(--ce-accent); stroke-width:2; fill:none; stroke-dasharray:.2 .8; opacity:0; }
.ce-scene-tile { fill:#132232; stroke:#34495e; stroke-width:1; transition:fill 250ms,stroke 250ms; }
.ce-scene-icon { fill:none; stroke:#7890a6; stroke-width:1.5; stroke-linejoin:round; stroke-linecap:round; transition:stroke 250ms; }
.ce-scene-indicator { fill:#41576b; transition:fill 250ms; }
.ce-scene-label { fill:#bacbda; font:10px var(--font-body,system-ui); }
.ce-scene-node.is-active .ce-scene-tile { fill:#263c4a; stroke:var(--ce-accent); }
.ce-scene-node.is-active .ce-scene-icon,.ce-scene-node.is-complete .ce-scene-icon { stroke:var(--ce-accent); }
.ce-scene-node.is-active .ce-scene-indicator,.ce-scene-node.is-complete .ce-scene-indicator { fill:var(--ce-accent); }
.ce-playback { display:flex; gap:14px; align-items:center; justify-content:space-between; margin-top:18px; }
.ce-playback[hidden] { display:none; }
.ce-play { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 12px; border:1px solid rgba(var(--cx-rgb),.3); border-radius:9px; background:rgba(var(--cx-rgb),.07); color:var(--ce-accent); font:500 .72rem/1.4 var(--font-body,system-ui); cursor:pointer; transition:background 160ms,transform 160ms; }
.ce-play:hover { background:rgba(var(--cx-rgb),.13); }
.ce-play:active { transform:scale(.97); }
.ce-play>span { width:13px; text-align:center; }
.ce-playback-caption { color:var(--ce-muted); font-size:.6rem; text-align:right; }
/* The route map is an alternate entrance to the same complete syllabus. */
.ce-program-route { max-width:900px; margin:0 auto 30px; padding:20px; border:1px solid var(--ce-edge); border-radius:16px; background:#0b1521; }
.ce-route-caption { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:.67rem; color:var(--ce-muted); margin-bottom:18px; }
.ce-route-caption>span:first-child { color:var(--ce-accent); letter-spacing:.04em; }
.ce-route-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.ce-route-grid>a { position:relative; display:flex; flex-direction:column; gap:14px; min-width:0; min-height:138px; padding:14px; border:1px solid #ffffff12; border-radius:10px; background:#142132; text-decoration:none; transition:background-color 200ms,border-color 200ms; }
.ce-route-grid>a>span:nth-child(2) { color:#c4d2df; font-size:.71rem; line-height:1.5; }
.ce-route-grid>a>i { position:absolute; top:14px; right:14px; color:#8197ad; font-style:normal; font-size:.85rem; }
.ce-route-node { display:grid; place-items:center; width:31px; height:31px; border:1px solid rgba(var(--cx-rgb),.35); border-radius:50%; color:var(--ce-accent); font-size:.65rem; }
.ce-route-grid>a:hover { background:#203244; border-color:rgba(var(--cx-rgb),.4); }
@media(prefers-reduced-motion:no-preference) {
 .ce-editorial.ce-enter .ce-editorial-frame>img { animation:ce-editorial-arrive 1100ms var(--ce-ease) both; }
 .ce-editorial.ce-enter .ce-editorial-pillars>span { animation:ce-assemble 700ms var(--ce-ease) 250ms both; }
 .ce-studio.ce-enter .ce-studio-index i { animation:ce-connection 850ms var(--ce-ease) both; }
 .ce-program-route.ce-enter .ce-route-node { animation:ce-assemble 650ms var(--ce-ease) both; }
 .ce-scene-node.is-active .ce-scene-icon { animation:ce-icon-in 400ms var(--ce-ease) both; }
}
@keyframes ce-editorial-arrive { from{opacity:.5;transform:scale(1.04)}to{opacity:1;transform:scale(1)} }
@keyframes ce-connection { from{transform:scaleX(0)}to{transform:scaleX(1)} }
@keyframes ce-icon-in { from{opacity:.5}to{opacity:1} }
@media(max-width:1199px) { .ce-studio-grid { gap:32px; } .ce-editorial figcaption { padding-inline:20px; } .ce-nav-links { gap:18px; } .ce-nav-name { font-size:.74rem; } }
@media(max-width:991px) {
 body[data-cx] .page-hero .col-lg-7,body[data-cx] .page-hero .col-lg-5 { width:100%; }
 .ce-editorial { max-width:650px; margin-inline:auto; }
 .ce-editorial-frame>img { aspect-ratio:1.65; }
 .ce-studio-grid { grid-template-columns:1fr; gap:32px; }
 .ce-studio-copy .section-title,.ce-studio-copy>p { max-width:40ch; }
 .ce-studio-instruction { margin-bottom:16px; }
 .ce-studio-index { display:none; }
 .ce-studio .ce-example { max-width:650px; width:100%; margin-inline:auto; }
 .ce-route-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:600px) {
 body[data-cx] .page-hero { padding-top:112px; padding-bottom:40px; }
 .ce-editorial { border-radius:20px; }
 .ce-editorial-frame>img { aspect-ratio:1.2; }
 .ce-image-label { top:17px; left:17px; right:17px; font-size:.6rem; }
 .ce-editorial figcaption { padding:14px 18px 16px; }
 .ce-editorial figcaption>strong { font-size:1.07rem; }
 .ce-editorial-pillars { gap:12px; }
 .ce-editorial-pillars>span { font-size:.62rem; gap:5px; }
 .ce-studio { padding:12px 0 50px; }
 .ce-studio-copy>p { font-size:.97rem; margin:18px 0 22px; }
 .ce-studio .ce-example { padding:17px; }
 .ce-studio .ce-paper { min-height:325px; }
 .ce-process-scene { margin:24px -4px 12px; }
 .ce-playback { align-items:flex-start; flex-direction:column; gap:8px; }
 .ce-playback-caption { text-align:left; }
 .ce-play { width:100%; }
 .ce-route-grid { gap:8px; }
 .ce-route-grid>a { padding:12px; min-height:154px; }
 .ce-route-grid>a>span:nth-child(2) { font-size:.68rem; }
 .ce-program-route { padding:16px; }
 .ce-example-note { font-size:.6rem!important; }
}
/* Bootstrap's wide gutters extend outside the tablet container. */
@media(max-width:991px) {
  body[data-cx] .container>.row.g-5 { --bs-gutter-x:1.5rem; }
}
/* Center every row of purchase guidance, including a single wrapped item. */
body[data-cx] .chk-steps { width:100%; max-width:980px; margin-inline:auto; padding:1.7rem; }
body[data-cx] .chk-steps-grid,
body[data-cx] .chk-trust { display:flex; flex-wrap:wrap; justify-content:center; gap:1.5rem; }
body[data-cx] .chk-step { flex:1 1 210px; max-width:270px; flex-direction:column; align-items:center; text-align:center; gap:.9rem; }
body[data-cx] .chk-step-b { width:100%; max-width:30ch; }
body[data-cx] .chk-step-n { width:42px; height:42px; background:var(--ce-accent); }
body[data-cx] .chk-steps-t,
body[data-cx] .chk-steps-foot i,
body[data-cx] .chk-trust strong i { color:var(--ce-accent); }
body[data-cx] .chk-trust>div { flex:1 1 215px; max-width:290px; min-width:0; text-align:center; }
body[data-cx] .chk-steps-foot { max-width:72ch; margin-inline:auto; margin-top:1.5rem; }
@media(max-width:560px) {
  body[data-cx] .chk-steps { padding:1.4rem 1rem; }
  body[data-cx] .chk-step,body[data-cx] .chk-trust>div { flex-basis:100%; max-width:30rem; }
}
