/* PE-3b128d6d-eb71-4a67-ac72-4a099e50f9b4 | Core(root): CORE-EXECUTION-STANDARD.md | Manifest(root): docs/MD-FILE-MANIFEST.md */
/* DA-9accaca8-574e-4393-8bd5-a996000b2368 | MA-1c670ae7-6aaa-48fb-854a-e69b317b6bae | Apple/control/PHOTOGRAPHIC-MOTION.md */
/* APL diagrams v1.2 · Claude · thesis figures for #evaluation and #research
   Scoped to .apl-dg. Tokens from css/palette.css (B&O). Curves from WATCH-MOTION-LIBRARY-v1 A14.
   No transitions until .is-ready (B05). Pending styles only exist under [data-dg="armed"], so
   no script, print and reduced motion all show the finished figure (C03). */

.apl-dg{
  --dg-ink:#191817;--dg-paper:#fcfaee;--dg-white:#fff;--dg-blue:#040db1;--dg-grid:#8e9aac;
  --dg-axis:#494a52;--dg-field:#e2e6ef;--dg-hi:#7faed7;--dg-muted:#d6d6d2;
  --dg-ground:var(--dg-ink);--dg-fg:var(--dg-paper);--dg-fg2:var(--dg-muted);--dg-rule:rgb(252 250 238 / .24);
  --dg-std:cubic-bezier(.4,0,.6,1);--dg-dec:cubic-bezier(0,0,.2,1);
  --dg-mat:cubic-bezier(.85,0,.15,1);--dg-ctl:cubic-bezier(.165,.84,.44,1);
  container-type:inline-size;position:relative;margin:56px 0 0;color:var(--dg-fg)
}
.research .apl-dg{--dg-ground:var(--dg-white);--dg-fg:var(--dg-ink);--dg-fg2:var(--dg-axis);--dg-rule:rgb(25 24 23 / .2)}
.apl-dg *{box-sizing:border-box}
.apl-dg :where(p,ol,ul,li,blockquote,figcaption){margin:0;padding:0}
.apl-dg :where(ol,ul){list-style:none}
.apl-dg-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.apl-dg-kicker{font-size:12px;line-height:20px;letter-spacing:.6px;color:var(--dg-fg2);margin-bottom:16px;font-variant-numeric:tabular-nums}
.apl-dg-statement{font-size:20px;line-height:32px;max-width:34ch;margin-bottom:40px}
.apl-dg-cap{display:block;font-size:14px;line-height:22px;letter-spacing:.1px;color:var(--dg-fg2);margin-top:32px;max-width:62ch}
.apl-dg-src{display:block;font-size:12px;line-height:20px;color:var(--dg-fg2);margin-top:8px;max-width:72ch}
.apl-dg-key{font-size:12px;line-height:20px;color:var(--dg-fg2);margin-top:24px;max-width:72ch}

/* ---------- D1 · the training-load process (thesis Figure 1) ---------- */
.apl-dg--loop{margin:96px 0 0}
.apl-dg-loop{position:relative;--dg-layout:rail;padding-left:48px;display:grid;row-gap:24px;overflow-x:clip}
.apl-dg-seg{position:absolute;background:rgb(252 250 238 / .16);pointer-events:none}
.apl-dg-seg i{position:absolute;inset:0;background:var(--dg-hi);transform:scale(0,0);will-change:transform}
.apl-dg-seg[data-axis="x"] i{transform:scaleX(0)}
.apl-dg-seg[data-axis="y"] i{transform:scaleY(0)}
.apl-dg-node{position:absolute;width:8px;height:8px;margin:-3px 0 0 -3px;background:var(--dg-ground);box-shadow:inset 0 0 0 1.5px rgb(252 250 238 / .35);pointer-events:none}
.apl-dg-node.is-lit{background:var(--dg-hi);box-shadow:none}
.apl-dg-stage{position:relative;z-index:1;background:var(--dg-ground);border:1px solid var(--dg-rule);padding:24px 24px 28px}
.apl-dg-stage-head{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.apl-dg-stage-n{flex:none;display:grid;place-items:center;width:28px;height:28px;background:var(--dg-hi);color:var(--dg-ink);font-size:14px;line-height:1;font-variant-numeric:tabular-nums}
.apl-dg-stage-t{font-size:20px;line-height:28px;color:var(--dg-fg)}
.apl-dg-stage-list li{position:relative;font-size:14px;line-height:22px;color:var(--dg-fg);padding-left:16px}
.apl-dg-stage-list li+li{margin-top:8px}
.apl-dg-stage-list li::before{content:"";position:absolute;left:0;top:9px;width:4px;height:4px;background:currentColor}
@container (min-width:840px){
  .apl-dg-loop{--dg-layout:ring;padding-left:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:1fr;gap:40px 48px}
  .apl-dg-stage[data-stage="1"]{grid-area:1/2}
  .apl-dg-stage[data-stage="2"]{grid-area:2/3}
  .apl-dg-stage[data-stage="3"]{grid-area:3/2}
  .apl-dg-stage[data-stage="4"]{grid-area:2/1}
}
@container (max-width:839.98px){
  .apl-dg-loop .apl-dg-stage{padding:20px 20px 24px}
  .apl-dg-loop .apl-dg-stage-n{position:absolute;left:-40px;top:20px;z-index:2}
  .apl-dg-loop .apl-dg-stage-head{min-height:28px}
}
/* armed: before the line reaches a stage */
.apl-dg[data-dg="armed"] .apl-dg-stage:not(.is-lit) .apl-dg-stage-n{background:var(--dg-ground);color:var(--dg-grid);box-shadow:inset 0 0 0 1px var(--dg-grid)}
.apl-dg[data-dg="armed"] .apl-dg-stage:not(.is-lit) .apl-dg-stage-t,
.apl-dg[data-dg="armed"] .apl-dg-stage:not(.is-lit) .apl-dg-stage-list li{color:var(--dg-grid)}
.apl-dg.is-ready .apl-dg-stage-n{transition:background-color .32s var(--dg-dec),color .32s var(--dg-dec),box-shadow .32s var(--dg-dec)}
.apl-dg.is-ready .apl-dg-stage-t{transition:color .48s var(--dg-dec)}
.apl-dg.is-ready .apl-dg-stage-list li{transition:color .48s var(--dg-dec)}
.apl-dg.is-ready .apl-dg-stage-list li:nth-child(2){transition-delay:.06s}
.apl-dg.is-ready .apl-dg-stage-list li:nth-child(3){transition-delay:.12s}
.apl-dg.is-ready .apl-dg-node{transition:background-color .24s var(--dg-dec),box-shadow .24s var(--dg-dec)}
.apl-dg.is-closed .apl-dg-stage[data-stage="1"] .apl-dg-stage-n{animation:apl-dg-return .64s var(--dg-dec) 1}
@keyframes apl-dg-return{0%{box-shadow:0 0 0 0 rgb(127 174 215 / .7)}100%{box-shadow:0 0 0 12px rgb(127 174 215 / 0)}}

/* ---------- D2 · prescription and measurement (thesis Figure 9) ---------- */
.apl-dg-metrics{position:relative;display:grid;gap:40px}
@container (min-width:560px){.apl-dg-metrics{grid-template-columns:1fr 1fr;column-gap:64px}}
.apl-dg-col-h{font-size:12px;line-height:20px;letter-spacing:.6px;color:var(--dg-fg2);padding-bottom:12px;border-bottom:1px solid var(--dg-rule);margin-bottom:20px}
.apl-dg-bars{display:grid;row-gap:18px}
.apl-dg-bar{display:grid;grid-template-columns:minmax(0,1fr) 48px;column-gap:12px;align-items:center}
.apl-dg-bar-l{grid-column:1/-1;font-size:14px;line-height:22px;color:var(--dg-fg2);margin-bottom:6px}
.apl-dg-bar-t{position:relative;height:6px;background:rgb(252 250 238 / .1)}
.apl-dg-bar-f{position:absolute;inset:0 auto 0 0;width:calc(var(--v) * 1%);background:var(--dg-grid);transform-origin:0 50%}
.apl-dg-num{font-size:16px;line-height:24px;text-align:right;font-variant-numeric:tabular-nums;color:var(--dg-fg)}
.apl-dg-bar.is-key .apl-dg-bar-l{color:var(--dg-fg);font-weight:500}
.apl-dg-bar.is-key .apl-dg-bar-f{background:var(--dg-hi)}
.apl-dg-bar.is-key .apl-dg-bar-l::before{content:"";display:inline-block;width:8px;height:8px;background:var(--dg-hi);margin-right:10px;vertical-align:1px}
.apl-dg-link{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;display:none}
@container (min-width:560px){.apl-dg-link{display:block}}
.apl-dg-link path{fill:none;stroke:var(--dg-hi);stroke-width:1.5;stroke-linejoin:miter;stroke-linecap:butt}
.apl-dg[data-dg="armed"] .apl-dg-bar:not([data-dg-part="on"]) .apl-dg-bar-f{transform:scaleX(0)}
.apl-dg[data-dg="armed"] .apl-dg-link path{stroke-dashoffset:1}
.apl-dg-link path{stroke-dasharray:1 1;stroke-dashoffset:0}
.apl-dg.is-ready .apl-dg-bar-f{transition:transform .9s var(--dg-ctl);transition-delay:calc(var(--i,0) * 70ms + var(--col,0) * 220ms)}
.apl-dg.is-ready .apl-dg-link path{transition:stroke-dashoffset .7s var(--dg-std) 1.15s}
.apl-dg[data-dg="armed"] .apl-dg-bar:not([data-dg-part="on"]) .apl-dg-num{opacity:0}
.apl-dg.is-ready .apl-dg-num{transition:opacity .32s var(--dg-dec);transition-delay:calc(var(--i,0) * 70ms + var(--col,0) * 220ms + .62s)}

/* ---------- Quote (thesis p. 72, Coach 3) ---------- */
.apl-dg--quote{margin-top:64px}
.apl-dg--quote blockquote p{font-size:24px;line-height:34px;letter-spacing:-.2px;text-indent:-.42em;max-width:30ch;color:var(--dg-fg)}
@container (min-width:560px){.apl-dg--quote blockquote p{font-size:32px;line-height:42px}}
.apl-dg-w{color:var(--dg-fg)}
.apl-dg[data-dg="armed"] .apl-dg-w:not(.is-lit){color:var(--dg-grid)}
.apl-dg[data-dg="armed"] .apl-dg-w.is-key.is-lit,.apl-dg[data-dg="on"] .apl-dg-w.is-key{color:var(--dg-hi)}
.apl-dg.is-ready .apl-dg-w{transition:color .32s var(--dg-dec)}
.apl-dg--quote .apl-dg-cap{margin-top:24px}

/* ---------- D3 · training phase (thesis p. 93, Figure 13) ---------- */
.apl-dg-phase{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:2px;height:240px;padding-top:40px}
@container (max-width:479.98px){.apl-dg-phase{height:200px}}
.apl-dg-col{position:relative;display:flex;flex-direction:column;justify-content:flex-end}
.apl-dg-colv{position:absolute;left:0;right:0;z-index:1;text-align:center;bottom:calc(var(--v) / 121 * 100% + 10px)}
.apl-dg-colv b{display:inline-block;font-weight:400;font-size:20px;line-height:28px;font-variant-numeric:tabular-nums;padding:0 6px;background:var(--dg-ground)}
.apl-dg-colf{height:calc(var(--v) / 121 * 100%);background:rgb(252 250 238 / .1);transform-origin:50% 100%}
.apl-dg-col.is-ref .apl-dg-colf{background:rgb(252 250 238 / .2)}
.apl-dg-step{position:absolute;left:0;right:0;bottom:0;height:calc(100% - 40px);width:100%;overflow:visible;pointer-events:none}
.apl-dg-step path{fill:none;stroke:var(--dg-hi);stroke-width:2;stroke-linejoin:miter;stroke-linecap:butt;vector-effect:non-scaling-stroke;stroke-dasharray:1 1;stroke-dashoffset:0}
.apl-dg-step line{stroke:var(--dg-grid);stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.apl-dg-phase-l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:2px;border-top:1px solid var(--dg-rule);padding-top:12px}
.apl-dg-phase-l span{font-size:12px;line-height:18px;color:var(--dg-fg2);text-align:center;padding:0 4px}
@container (min-width:480px){.apl-dg-phase-l span{font-size:14px;line-height:22px}}
.apl-dg-axis-note{font-size:12px;line-height:20px;color:var(--dg-fg2);margin-bottom:8px}
.apl-dg[data-dg="armed"] .apl-dg-colf{transform:scaleY(0)}
.apl-dg[data-dg="armed"] .apl-dg-colv{opacity:0;transform:translateY(8px)}
.apl-dg[data-dg="armed"] .apl-dg-step path{stroke-dashoffset:1}
.apl-dg[data-dg="armed"] .apl-dg-step line{opacity:0}
.apl-dg.is-ready .apl-dg-colf{transition:transform .9s var(--dg-ctl) calc(var(--i) * 100ms + .2s)}
.apl-dg.is-ready .apl-dg-colv{transition:opacity .4s var(--dg-dec) calc(var(--i) * 100ms + .7s),transform .4s var(--dg-dec) calc(var(--i) * 100ms + .7s)}
.apl-dg.is-ready .apl-dg-step path{transition:stroke-dashoffset 1.2s var(--dg-std) .5s}
.apl-dg.is-ready .apl-dg-step line{transition:opacity .4s var(--dg-dec)}
.apl-dg-note{display:block;font-size:14px;line-height:22px;color:var(--dg-fg2);margin-top:12px;max-width:62ch}

/* ---------- D5 · education and evaluation (thesis pp. 103–105) ---------- */
.apl-dg-scales{display:grid;row-gap:28px}
.apl-dg-scale-l{font-size:14px;line-height:22px;color:var(--dg-fg2);margin-bottom:10px}
.apl-dg-scale-r{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px}
.apl-dg-sqs{display:grid;grid-template-columns:repeat(10,18px);gap:4px}
.apl-dg-sq{width:18px;height:18px;box-shadow:inset 0 0 0 1px rgb(252 250 238 / .28)}
.apl-dg-sq.is-pre{background:var(--dg-grid);box-shadow:none}
.apl-dg-sq.is-gain{background:var(--dg-hi);box-shadow:none}
.apl-dg-scale-v{font-size:24px;line-height:32px;font-variant-numeric:tabular-nums;white-space:nowrap}
.apl-dg-scale-v small{font-size:14px;color:var(--dg-fg2);margin-left:4px}
.apl-dg-legend{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;line-height:20px;color:var(--dg-fg2);margin-bottom:24px}
.apl-dg-legend i{display:inline-block;width:10px;height:10px;margin-right:8px;vertical-align:-1px}
.apl-dg-results{margin-top:32px;border-top:1px solid var(--dg-rule);padding-top:20px;display:grid;row-gap:12px}
.apl-dg-results li{position:relative;font-size:14px;line-height:22px;padding-left:20px;max-width:62ch}
.apl-dg-results li::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;background:var(--dg-hi)}
.apl-dg-results li.is-null::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--dg-grid)}
.apl-dg[data-dg="armed"] li:not([data-dg-part="on"]) .apl-dg-sq.is-pre{opacity:0}
.apl-dg[data-dg="armed"] li:not([data-dg-part="on"]) .apl-dg-sq.is-gain{opacity:0;transform:scale(.4)}
.apl-dg.is-ready .apl-dg-sq.is-pre{transition:opacity .2s var(--dg-dec) calc(var(--r) * 120ms + var(--i) * 30ms)}
.apl-dg.is-ready .apl-dg-sq.is-gain{transition:opacity .36s var(--dg-dec) calc(var(--r) * 120ms + .45s + var(--g) * 24ms),transform .36s var(--dg-ctl) calc(var(--r) * 120ms + .45s + var(--g) * 24ms)}
.apl-dg[data-dg="armed"] li:not([data-dg-part="on"]) .apl-dg-scale-v{opacity:0}
.apl-dg.is-ready .apl-dg-scale-v{transition:opacity .32s var(--dg-dec) calc(var(--r) * 120ms + .7s)}

/* ---------- D4 · RUP–ACIP–EBP spectrum (thesis Figure 20) ---------- */
.apl-dg-spec{position:relative;display:grid;grid-template-columns:1fr;row-gap:0;padding-left:32px}
.apl-dg-panel{position:relative;min-height:0;padding:28px 24px;background:var(--dg-field);color:var(--dg-ink)}
.apl-dg-panel.is-acip{background:transparent;color:var(--dg-paper)}
.apl-dg-panel.is-acip::before{content:"";position:absolute;inset:0;background:var(--dg-blue);z-index:0}
.apl-dg-panel>*{position:relative;z-index:1}
.apl-dg-panel-a{font-size:12px;line-height:20px;letter-spacing:1px;font-weight:500}
.apl-dg-panel-n{font-size:24px;line-height:32px;margin-top:12px;max-width:14ch}
.apl-dg-desc{padding:16px 0 28px 24px}
.apl-dg-desc>p{font-size:16px;line-height:26px;color:var(--dg-ink);max-width:32ch}
.apl-dg-def{margin-top:12px}
.apl-dg-def summary{display:inline-flex;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-size:14px;line-height:22px;color:var(--dg-ink);list-style:none}
.apl-dg-def summary::-webkit-details-marker{display:none}
.apl-dg-def summary svg{width:12px;height:12px;flex:none}
.apl-dg-def summary svg path{stroke:currentColor;stroke-width:1.5;fill:none}
.apl-dg-def summary svg .v{transform-origin:6px 6px;transition:transform .24s var(--dg-std)}
.apl-dg-def[open] summary svg .v{transform:scaleY(0)}
.apl-dg-def summary:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.apl-dg-def-c{overflow:hidden}
.apl-dg-def-c p{font-size:14px;line-height:22px;color:var(--dg-axis);max-width:44ch;padding-bottom:4px}
.apl-dg-vaxis{position:absolute;left:8px;top:0;bottom:0;width:16px;display:block}
.apl-dg-vaxis i{position:absolute;left:7px;top:10px;bottom:10px;width:1.5px;background:var(--dg-ink);transform-origin:50% 50%}
.apl-dg-vaxis b{position:absolute;left:2px;width:12px;height:12px;border:solid var(--dg-ink);border-width:1.5px 0 0 1.5px}
.apl-dg-vaxis b:first-of-type{top:4px;transform:rotate(45deg)}
.apl-dg-vaxis b:last-of-type{bottom:4px;transform:rotate(225deg)}
.apl-dg-haxis{display:none}
@container (min-width:760px){
  .apl-dg-spec{padding-left:0;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:auto auto auto}
  .apl-dg-panel{grid-row:1;min-height:280px;display:flex;flex-direction:column;justify-content:space-between;padding:28px}
  .apl-dg-panel[data-p="rup"]{grid-column:1}.apl-dg-panel[data-p="acip"]{grid-column:2}.apl-dg-panel[data-p="ebp"]{grid-column:3}
  .apl-dg-desc{grid-row:3;padding:24px 28px 0 0}
  .apl-dg-desc[data-p="rup"]{grid-column:1}.apl-dg-desc[data-p="acip"]{grid-column:2;padding-left:28px}.apl-dg-desc[data-p="ebp"]{grid-column:3;padding-left:28px}
  .apl-dg-vaxis{display:none}
  .apl-dg-haxis{display:block;grid-row:2;grid-column:1/-1;position:relative;height:40px}
  .apl-dg-haxis i{position:absolute;top:19px;height:1.5px;width:calc(50% - 10px);background:var(--dg-ink)}
  .apl-dg-haxis i:first-of-type{right:50%;transform-origin:100% 50%}
  .apl-dg-haxis i:last-of-type{left:50%;transform-origin:0 50%}
  .apl-dg-haxis b{position:absolute;top:14px;width:12px;height:12px;border:solid var(--dg-ink);border-width:1.5px 0 0 1.5px}
  .apl-dg-haxis b:first-of-type{left:4px;transform:rotate(-45deg)}
  .apl-dg-haxis b:last-of-type{right:4px;transform:rotate(135deg)}
}
.apl-dg-original{display:inline-flex;margin-top:24px;text-decoration:none;color:inherit}
.apl-dg[data-dg="armed"]:not(.is-drawing) .apl-dg-haxis i,.apl-dg[data-dg="armed"]:not(.is-drawing) .apl-dg-vaxis i{transform:scale(0)}
.apl-dg[data-dg="armed"]:not(.is-drawing) .apl-dg-haxis b,.apl-dg[data-dg="armed"]:not(.is-drawing) .apl-dg-vaxis b{opacity:0}
.apl-dg[data-dg="armed"] .apl-dg-panel:not(.is-acip):not([data-dg-part="on"]){opacity:0}
.apl-dg[data-dg="armed"] .apl-dg-panel[data-p="rup"]:not([data-dg-part="on"]){transform:translateX(-24px)}
.apl-dg[data-dg="armed"] .apl-dg-panel[data-p="ebp"]:not([data-dg-part="on"]){transform:translateX(24px)}
@container (max-width:759.98px){.apl-dg[data-dg="armed"] .apl-dg-panel:not([data-dg-part="on"])[data-p="rup"],.apl-dg[data-dg="armed"] .apl-dg-panel:not([data-dg-part="on"])[data-p="ebp"]{transform:translateY(16px)}}
.apl-dg[data-dg="armed"] .apl-dg-panel.is-acip:not([data-dg-part="on"])::before{clip-path:inset(100% 0 0 0)}
.apl-dg[data-dg="armed"] .apl-dg-panel.is-acip:not([data-dg-part="on"])>*{opacity:0}
.apl-dg[data-dg="armed"] .apl-dg-desc:not([data-dg-part="on"]){opacity:0;transform:translateY(8px)}
.apl-dg.is-ready .apl-dg-haxis i,.apl-dg.is-ready .apl-dg-vaxis i{transition:transform .7s var(--dg-std)}
.apl-dg.is-ready .apl-dg-haxis b,.apl-dg.is-ready .apl-dg-vaxis b{transition:opacity .3s var(--dg-dec) .55s}
.apl-dg.is-ready .apl-dg-panel:not(.is-acip){transition:opacity .6s var(--dg-dec) .1s,transform .6s var(--dg-dec) .1s}
.apl-dg.is-ready .apl-dg-panel.is-acip::before{transition:clip-path .7s var(--dg-mat) .2s}
.apl-dg.is-ready .apl-dg-panel.is-acip>*{transition:opacity .4s var(--dg-dec) .55s}
.apl-dg.is-ready .apl-dg-desc{transition:opacity .45s var(--dg-dec) calc(.3s + var(--i) * 80ms),transform .45s var(--dg-dec) calc(.3s + var(--i) * 80ms)}

/* reduced motion and print: finished figures, nothing moves (C03) */
@media (prefers-reduced-motion:reduce){
  .apl-dg *,.apl-dg *::before{transition:none!important;animation:none!important}
}
@media print{
  .apl-dg{break-inside:avoid}
  .apl-dg-original{display:none!important}
}
