/* /data-maturity -- the data maturity guide and adaptive assessment.
   Everything is prefixed dm- so it cannot leak into other pages. Colours come
   from the site tokens (enhance.css), so the page follows the theme. */
.dm-page{--dm-l1:#C8262D;--dm-l2:#A86400;--dm-l3:#0E7C86;--dm-l4:#2251FF;--dm-l5:#13795B}
.dm-page h2.dm-h2{font-family:var(--f-display);font-weight:500;font-size:clamp(1.75rem,3.2vw,2.5rem);line-height:1.12;letter-spacing:-.02em;margin:6px 0 14px;max-width:24ch;text-wrap:balance}
.dm-page h3{font-family:var(--f-display);font-weight:500;letter-spacing:-.01em}
.dm-note{font-size:.8125rem;color:var(--fg-faint);margin:18px 0 0;max-width:80ch}

/* reveal on scroll */
.js .dm-rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 70ms)}
.js .dm-rv.in{opacity:1;transform:none}

/* ---- hero ------------------------------------------------------------- */
.dm-hero .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:center}
.dm-hero .hb-lead{margin-bottom:28px}
.dm-hero-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px}
.dm-jump{display:flex;flex-wrap:wrap;gap:8px}
.dm-jump a{font-size:.8125rem;padding:6px 11px;border:1px solid var(--line);border-radius:999px;color:var(--fg-dim);text-decoration:none;transition:border-color .2s,color .2s,background .2s}
.dm-jump a:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-wash)}
.dm-stairs{width:100%;height:auto;display:block}
.dm-stairs .bar{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(0);animation:dmGrow .9s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(var(--i) * 160ms + 200ms)}
.dm-stairs .lbl{opacity:0;animation:dmFade .6s ease forwards;animation-delay:calc(var(--i) * 160ms + 700ms)}
.dm-stairs .climber{offset-path:path("M4 212 H79 V172 H157 V132 H235 V92 H313 V52 H388");offset-rotate:0deg;animation:dmClimb 7s ease-in-out 1.4s infinite}
.dm-stairs .trail{stroke-dasharray:640;stroke-dashoffset:640;animation:dmDraw 2.4s ease 1.2s forwards}
.dm-stairs .pulse{transform-box:fill-box;transform-origin:center;animation:dmPulse 2.4s ease-out infinite}
@keyframes dmGrow{to{transform:scaleY(1)}}
@keyframes dmFade{to{opacity:1}}
@keyframes dmDraw{to{stroke-dashoffset:0}}
@keyframes dmClimb{0%{offset-distance:0%}70%,100%{offset-distance:100%}}
@keyframes dmPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.4);opacity:0}}

/* ---- definition ------------------------------------------------------- */
.dm-def{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:start}
.dm-quote{border-left:3px solid var(--accent);padding:6px 0 6px 22px;font-family:var(--f-display);font-size:clamp(1.15rem,1.8vw,1.375rem);line-height:1.5;margin:0}
.dm-quote small{display:block;font-family:var(--f-body);font-size:.8125rem;color:var(--fg-faint);margin-top:12px}
.dm-orbit{position:relative;aspect-ratio:1;max-width:380px;width:100%;margin:0 auto}
.dm-orbit svg{width:100%;height:100%;display:block}
.dm-orbit .ring{transform-origin:200px 200px;animation:dmSpin 60s linear infinite}
.dm-orbit .ring2{transform-origin:200px 200px;animation:dmSpin 90s linear infinite reverse}
@keyframes dmSpin{to{transform:rotate(360deg)}}

/* ---- cards (generic) -------------------------------------------------- */
.dm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.dm-card{background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md);padding:22px 22px 20px;position:relative;transition:border-color .25s,transform .25s,box-shadow .25s}
.dm-card:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:var(--shadow)}
.dm-card .ic{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--accent-wash);color:var(--accent);margin-bottom:14px}
.dm-card .ic svg{width:20px;height:20px}
.dm-card h3{font-size:1.125rem;margin:0 0 8px}
.dm-card p{font-size:.9375rem;line-height:1.6;color:var(--fg-dim);margin:0}
.dm-card .n{position:absolute;top:18px;right:20px;font-size:.75rem;font-weight:600;color:var(--fg-faint);font-variant-numeric:tabular-nums}

/* ---- analyst matrix --------------------------------------------------- */
.dm-matrix-w{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}
.dm-matrix{width:100%;border-collapse:collapse;min-width:640px;font-size:.875rem}
.dm-matrix th,.dm-matrix td{padding:12px 10px;text-align:center;border-bottom:1px solid var(--line-soft)}
.dm-matrix thead th{font-size:.75rem;font-weight:600;letter-spacing:.04em;color:var(--fg-dim);text-transform:uppercase}
.dm-matrix tbody th{text-align:left;font-weight:600;white-space:nowrap}
.dm-matrix tbody tr:last-child>*{border-bottom:0}
.dm-matrix tbody tr:hover{background:var(--accent-wash)}
.dm-dot{display:inline-block;width:14px;height:14px;border-radius:50%;background:var(--accent);transition:transform .45s cubic-bezier(.3,1.6,.5,1)}
.js .dm-matrix .dm-dot{transform:scale(0)}
.js .dm-matrix.in .dm-dot{transform:scale(1)}
.dm-matrix tfoot td{font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;border-top:1px solid var(--line)}
.dm-matrix tfoot th{text-align:left;font-size:.75rem;color:var(--fg-dim);border-top:1px solid var(--line)}

/* ---- levels ----------------------------------------------------------- */
.dm-levels{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:clamp(20px,3vw,44px);align-items:stretch}
.dm-ladder{display:flex;align-items:flex-end;gap:8px;height:340px;padding-top:10px}
.dm-step{flex:1;border:0;cursor:pointer;background:var(--paper-2);color:var(--fg);border-radius:var(--r-md) var(--r-md) 0 0;padding:14px 8px;display:flex;flex-direction:column;justify-content:flex-start;align-items:center;gap:6px;font:inherit;position:relative;transition:background .3s,color .3s,transform .3s;height:calc(var(--h) * 1%);min-height:90px}
.dm-step b{font-family:var(--f-display);font-size:1.75rem;font-weight:500;line-height:1}
.dm-step span{font-size:.75rem;font-weight:600;text-align:center;line-height:1.25}
.dm-step:hover{transform:translateY(-4px)}
.dm-step[aria-selected="true"]{background:var(--lc);color:#fff}
.dm-step:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.dm-ladder-cap{display:flex;justify-content:space-between;font-size:.75rem;color:var(--fg-faint);border-top:2px solid var(--fg);padding-top:8px;margin-top:0}
.dm-lvpanel{border:1px solid var(--line);border-top:4px solid var(--lc,var(--accent));border-radius:var(--r-md);padding:24px 26px;background:var(--bg);transition:border-color .3s}
.dm-lvpanel .k{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--lc,var(--accent))}
.dm-lvpanel h3{font-size:1.5rem;margin:6px 0 10px}
.dm-lvpanel p{color:var(--fg-dim);line-height:1.6;margin:0 0 12px}
.dm-lvpanel ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.dm-lvpanel li{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;line-height:1.5;animation:dmIn .45s ease both;animation-delay:calc(var(--i) * 60ms)}
.dm-lvpanel li::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--lc,var(--accent))}
@keyframes dmIn{from{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:none}}
.dm-lvbody[hidden]{display:none}

/* ---- framework choice: factor dial ----------------------------------- */
.dm-choose{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,3vw,44px);align-items:center}
.dm-dial{position:relative;max-width:420px;width:100%;margin:0 auto;aspect-ratio:1}
.dm-dial svg{width:100%;height:100%;display:block}
.dm-dial .node{cursor:pointer}
.dm-dial .node circle{fill:var(--bg);stroke:var(--line);stroke-width:1.5;transition:fill .25s,stroke .25s}
.dm-dial .node text{fill:var(--fg);font:600 13px var(--f-body);pointer-events:none}
.dm-dial .node.on circle{fill:var(--accent);stroke:var(--accent)}
.dm-dial .node.on text{fill:#fff}
.dm-dial .spoke{stroke:var(--line);stroke-width:1.2;transition:stroke .25s}
.dm-dial .spoke.on{stroke:var(--accent);stroke-width:2}
.dm-dial .hub{fill:var(--accent-wash);stroke:var(--accent);stroke-width:1.5}
.dm-factor{border:1px solid var(--line);border-radius:var(--r-md);padding:24px 26px;min-height:220px;background:var(--bg)}
.dm-factor .k{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.dm-factor h3{font-size:1.375rem;margin:6px 0 10px}
.dm-factor p{color:var(--fg-dim);line-height:1.65;margin:0}
.dm-factor-list{margin:16px 0 0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px}
.dm-factor-list button{font:inherit;font-size:.8125rem;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg);color:var(--fg-dim);cursor:pointer}
.dm-factor-list button[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:#fff}

/* ---- DAMA wheel ------------------------------------------------------- */
.dm-wheelw{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(20px,3vw,44px);align-items:start}
.dm-wheel{max-width:520px;width:100%;margin:0 auto;position:sticky;top:96px}
.dm-wheel svg{width:100%;height:auto;display:block;overflow:visible}
.dm-wheel .seg{cursor:pointer;outline:none}
.dm-wheel .seg path{fill:color-mix(in srgb,var(--sc) 14%,var(--bg));stroke:var(--bg);stroke-width:3;transition:fill .25s,transform .35s cubic-bezier(.2,.8,.2,1)}
.dm-wheel .seg:hover path,.dm-wheel .seg:focus-visible path{fill:color-mix(in srgb,var(--sc) 30%,var(--bg))}
.dm-wheel .seg.on path{fill:var(--sc)}
.dm-wheel .seg text{font:600 10.5px var(--f-body);fill:var(--fg);pointer-events:none;transition:fill .25s}
.dm-wheel .seg.on text{fill:#fff}
.dm-wheel .spin{transform-origin:260px 260px;animation:dmWheelIn 1.4s cubic-bezier(.2,.8,.2,1) both;animation-play-state:paused}
.dm-wheel.in .spin{animation-play-state:running}
@keyframes dmWheelIn{from{transform:rotate(-90deg) scale(.7);opacity:0}to{transform:none;opacity:1}}
.dm-dimpanel{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);overflow:hidden}
.dm-dim{padding:24px 26px}
.dm-dim+.dm-dim{border-top:1px solid var(--line)}
.js .dm-dim:not(.on){display:none}
.dm-dim .k{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--sc)}
.dm-dim h3{font-size:1.5rem;margin:6px 0 10px}
.dm-dim .why{color:var(--fg-dim);line-height:1.65;margin:0 0 16px}
.dm-dim.on{animation:dmFadeUp .45s ease}
@keyframes dmFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.dm-dgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dm-dgrid h4{font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-faint);margin:0 0 8px}
.dm-dgrid ul,.dm-dgrid ol{margin:0;padding-left:18px;font-size:.875rem;line-height:1.55;color:var(--fg)}
.dm-dgrid li+li{margin-top:5px}
.dm-dgrid .full{grid-column:1/-1}
.dm-dgrid ol li::marker{color:var(--sc);font-weight:700}
.dm-chips{display:flex;flex-wrap:wrap;gap:6px}
.dm-chips span{font-size:.8125rem;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--sc) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--sc) 30%,var(--bg))}
.dm-dimnav{display:flex;justify-content:space-between;gap:8px;padding:14px 26px;border-top:1px solid var(--line);background:var(--paper)}
.dm-dimnav button{font:inherit;font-size:.8125rem;font-weight:600;border:0;background:none;color:var(--accent);cursor:pointer;padding:4px 0}
.dm-dimnav{display:none}
.js .dm-dimnav{display:flex}

/* ---- methods tabs ----------------------------------------------------- */
.dm-tabs{display:grid;grid-template-columns:260px minmax(0,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--bg)}
.dm-tablist{display:flex;flex-direction:column;border-right:1px solid var(--line);background:var(--paper)}
.dm-tablist button{font:inherit;text-align:left;padding:14px 18px;border:0;border-bottom:1px solid var(--line-soft);background:none;color:var(--fg-dim);cursor:pointer;display:flex;gap:10px;align-items:center;font-size:.9375rem;position:relative;transition:background .2s,color .2s}
.dm-tablist button b{font-variant-numeric:tabular-nums;font-size:.75rem;color:var(--fg-faint)}
.dm-tablist button[aria-selected="true"]{background:var(--bg);color:var(--fg);font-weight:600}
.dm-tablist button[aria-selected="true"]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.dm-tabpanel{padding:26px 30px}
.js .dm-tabpanel[hidden]{display:none}
.dm-tabpanel h3{font-size:1.375rem;margin:0 0 6px}
.dm-tabpanel .lede{color:var(--fg-dim);margin:0 0 16px;line-height:1.6}
.dm-tabpanel ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.dm-tabpanel li{display:flex;gap:12px;line-height:1.55;font-size:.9375rem;animation:dmIn .4s ease both;animation-delay:calc(var(--i) * 70ms)}
.dm-tabpanel li svg{flex:none;width:18px;height:18px;color:var(--accent);margin-top:3px}

/* ---- process timeline ------------------------------------------------- */
.dm-proc{position:relative;display:grid;gap:0;padding-left:56px}
.dm-proc::before{content:"";position:absolute;left:21px;top:8px;bottom:8px;width:2px;background:var(--line)}
.dm-proc .fill{position:absolute;left:21px;top:8px;width:2px;height:calc(var(--p,0) * (100% - 16px));background:var(--accent);transition:height .15s linear}
.dm-pstep{position:relative;padding:0 0 30px}
.dm-pstep:last-child{padding-bottom:0}
.dm-pstep .b{position:absolute;left:-56px;top:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:2px solid var(--line);font-weight:700;font-size:.875rem;color:var(--fg-dim);transition:background .35s,border-color .35s,color .35s,transform .35s}
.dm-pstep.lit .b{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.06)}
.dm-pstep h3{font-size:1.25rem;margin:8px 0 6px}
.dm-pstep p{margin:0;color:var(--fg-dim);line-height:1.6;max-width:72ch;font-size:.9375rem}
.dm-pstep .tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.dm-pstep .tags span{font-size:.75rem;padding:4px 9px;border-radius:999px;border:1px solid var(--line);color:var(--fg-dim)}

.dm-procw{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:clamp(24px,4vw,64px);align-items:start}
.dm-procside{position:sticky;top:110px;text-align:center;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);padding:24px 20px}
.dm-procside svg{width:170px;height:170px;display:block;margin:0 auto 12px}
.dm-procside .pr{transition:stroke-dashoffset .3s ease}
.dm-procside .pn{font:500 52px var(--f-display);fill:var(--fg)}
.dm-procside .ps{font:600 11px var(--f-body);fill:var(--fg-faint);letter-spacing:.1em}
.dm-procside b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.25rem;margin-bottom:4px}
.dm-procside span{font-size:.8125rem;color:var(--fg-faint)}

/* ---- components / tools / benchmark loop ----------------------------- */
.dm-split{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(20px,3vw,44px);align-items:start}
.dm-comp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dm-comp div{border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px;background:var(--bg);transition:border-color .25s}
.dm-comp div:hover{border-color:var(--accent)}
.dm-comp b{display:block;font-size:.9375rem;margin-bottom:4px}
.dm-comp span{font-size:.8125rem;line-height:1.5;color:var(--fg-dim)}
.dm-sub-h{font-family:var(--f-display);font-weight:500;font-size:1.375rem;margin:0 0 14px}
.dm-tools{display:grid;gap:8px}
.dm-tool{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;background:var(--bg)}
.dm-tool i{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent-wash);color:var(--accent);display:grid;place-items:center;font-style:normal;font-weight:700;font-size:.75rem}
.dm-tool b{display:block;font-size:.9375rem}
.dm-tool span{font-size:.8125rem;color:var(--fg-dim);line-height:1.5}
.dm-loopw{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(20px,3vw,44px);align-items:center;margin-top:48px}
.dm-loop svg{width:100%;height:auto;display:block}
.dm-loop .orbit{stroke-dasharray:6 10;animation:dmDash 18s linear infinite}
@keyframes dmDash{to{stroke-dashoffset:-320}}
.dm-loop .runner{offset-path:path("M230 80 A120 120 0 1 1 229.9 80");animation:dmRun 10s linear infinite}
@keyframes dmRun{to{offset-distance:100%}}
.dm-loop .nd circle{fill:var(--bg);stroke:var(--accent);stroke-width:2}
.dm-loop .nd text{font:700 13px var(--f-body);fill:var(--accent)}
.dm-loop .nl{font:600 11.5px var(--f-body);fill:var(--fg)}
.dm-olist{margin:0;padding:0;list-style:none;counter-reset:o;display:grid;gap:12px}
.dm-olist li{counter-increment:o;display:grid;grid-template-columns:34px 1fr;gap:12px;line-height:1.55;font-size:.9375rem;color:var(--fg-dim)}
.dm-olist li::before{content:counter(o);width:30px;height:30px;border-radius:50%;background:var(--accent-wash);color:var(--accent);font-weight:700;font-size:.8125rem;display:grid;place-items:center}
.dm-olist b{color:var(--fg)}

/* ---- stakeholders constellation -------------------------------------- */
.dm-stake{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,44px);align-items:center}
.dm-constel{max-width:480px;width:100%;margin:0 auto}
.dm-constel svg{width:100%;height:auto;display:block}
.dm-constel .link{stroke:var(--line);stroke-width:1.5;stroke-dasharray:4 6;animation:dmDash 14s linear infinite}
.dm-constel .who circle{fill:var(--bg);stroke:var(--accent);stroke-width:2;transition:fill .25s}
.dm-constel .who:hover circle{fill:var(--accent-wash)}
.dm-constel .who text{font:600 11px var(--f-body);fill:var(--fg)}
.dm-constel .core{fill:var(--accent)}
.dm-constel .core-t{font:700 12px var(--f-body);fill:#fff}
.dm-constel .ping{fill:none;stroke:var(--accent);transform-box:fill-box;transform-origin:center;animation:dmPulse 3s ease-out infinite}
.dm-practice{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-top:28px}
.dm-practice div{border-left:3px solid var(--accent);padding:4px 0 4px 14px}
.dm-practice b{display:block;font-size:.9375rem;margin-bottom:3px}
.dm-practice span{font-size:.8125rem;color:var(--fg-dim);line-height:1.5}

/* ---- roadmap swimlanes ----------------------------------------------- */
.dm-road{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);overflow:hidden}
.dm-lane{display:grid;grid-template-columns:150px minmax(0,1fr);border-bottom:1px solid var(--line-soft)}
.dm-lane:last-child{border-bottom:0}
.dm-lane>h3{margin:0;padding:18px;font-size:1rem;background:var(--paper);border-right:1px solid var(--line-soft);display:flex;flex-direction:column;gap:4px}
.dm-lane>h3 small{font-family:var(--f-body);font-size:.75rem;font-weight:400;color:var(--fg-faint)}
.dm-lane .items{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;padding:16px}
.dm-ri{border-radius:var(--r-sm);padding:12px 14px;background:color-mix(in srgb,var(--rc) 9%,var(--bg));border:1px solid color-mix(in srgb,var(--rc) 28%,var(--bg));position:relative;overflow:hidden}
.dm-ri::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--rc);transform-origin:left;transition:transform 1s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i) * 120ms)}
.js .dm-road .dm-ri::after{transform:scaleX(0)}
.js .dm-road.in .dm-ri::after{transform:scaleX(1)}
.dm-ri b{display:block;font-size:.875rem;margin-bottom:4px}
.dm-ri span{font-size:.8125rem;line-height:1.5;color:var(--fg-dim)}

/* ---- impact ---------------------------------------------------------- */
.dm-impact{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.dm-imp{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);padding:22px;display:flex;flex-direction:column;gap:10px}
.dm-imp h3{font-size:1.125rem;margin:0}
.dm-imp p{margin:0;color:var(--fg-dim);font-size:.9375rem;line-height:1.6}
.dm-imp .kpi{margin-top:auto;font-size:.8125rem;padding:10px 12px;border-radius:var(--r-sm);background:var(--accent-wash);color:var(--fg)}
.dm-imp .kpi b{color:var(--accent);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:2px}
.dm-spark{height:44px;width:100%}
.dm-spark path{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;transition:stroke-dashoffset 1.6s ease}
.js .dm-spark path{stroke-dasharray:300;stroke-dashoffset:300}
.js .dm-imp.in .dm-spark path{stroke-dashoffset:0}
.dm-realise{display:flex;gap:0;margin-top:34px;overflow-x:auto;padding-bottom:6px}
.dm-realise div{flex:1 0 128px;position:relative;padding:44px 12px 0 0;font-size:.8125rem;line-height:1.45;color:var(--fg-dim)}
.dm-realise div b{display:block;color:var(--fg);font-size:.875rem;margin-bottom:4px}
.dm-realise div::before{content:attr(data-n);position:absolute;top:0;left:0;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.8125rem;display:grid;place-items:center;z-index:1}
.dm-realise div::after{content:"";position:absolute;top:14px;left:30px;right:0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-line))}
.dm-realise div:last-child::after{display:none}

/* ---- reporting mock --------------------------------------------------- */
.dm-report{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,3vw,44px);align-items:start}
.dm-doc{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);box-shadow:var(--shadow);padding:22px;transform:rotate(-1.2deg);transition:transform .4s}
.dm-doc:hover{transform:none}
.dm-doc .row{border:1px dashed var(--line);border-radius:var(--r-sm);padding:10px 12px;margin-bottom:8px;display:flex;gap:10px;align-items:center;font-size:.8125rem;cursor:default;transition:border-color .2s,background .2s}
.dm-doc .row:hover,.dm-doc .row.on{border-color:var(--accent);background:var(--accent-wash)}
.dm-doc .row i{font-style:normal;font-weight:700;color:var(--accent);width:18px}
.dm-doc .bars{display:flex;gap:4px;align-items:flex-end;height:30px;margin-left:auto}
.dm-doc .bars span{width:6px;background:var(--accent);border-radius:1px;height:var(--h)}
.dm-doc .hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:.75rem;color:var(--fg-faint)}
.dm-doc .hd b{font-family:var(--f-display);font-size:1.125rem;color:var(--fg);font-weight:500}

/* ---- SCIKIQ framework flow ------------------------------------------- */
.dm-fw{display:grid;grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr);gap:0;align-items:stretch}
.dm-part{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);padding:22px 24px}
.dm-part .k{font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.dm-part h3{font-size:1.375rem;margin:4px 0 6px}
.dm-part>p{margin:0 0 14px;color:var(--fg-dim);font-size:.9375rem;line-height:1.6}
.dm-part ol{margin:0;padding:0;list-style:none;display:grid;gap:8px;counter-reset:p}
.dm-part li{counter-increment:p;display:grid;grid-template-columns:28px 1fr;gap:10px;font-size:.875rem;line-height:1.5;color:var(--fg-dim);padding:10px;border-radius:var(--r-sm);background:var(--paper)}
.dm-part li::before{content:counter(p);width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.75rem;display:grid;place-items:center}
.dm-part li b{color:var(--fg);display:block}
.dm-arrow{display:grid;place-items:center}
.dm-arrow svg{width:40px;height:40px;color:var(--accent)}
.dm-arrow .flow{stroke-dasharray:4 5;animation:dmDash 3s linear infinite}
.dm-adapt{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-top:28px}
.dm-triad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.dm-triad div{text-align:center;padding:20px 16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}
.dm-triad b{display:block;font-family:var(--f-display);font-weight:500;font-size:1.125rem;margin:8px 0 6px}
.dm-triad span{font-size:.8125rem;color:var(--fg-dim);line-height:1.5}
.dm-triad svg{width:34px;height:34px;color:var(--accent)}

/* ---- strategy alignment ---------------------------------------------- */
.dm-seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--bg);margin-bottom:18px}
.dm-seg button{font:inherit;font-size:.8125rem;font-weight:600;border:0;background:none;padding:7px 16px;border-radius:999px;cursor:pointer;color:var(--fg-dim);transition:background .25s,color .25s}
.dm-seg button[aria-pressed="true"]{background:var(--mc);color:#fff}
.dm-strat{display:grid;gap:10px}
.dm-srow{display:grid;grid-template-columns:200px 120px minmax(0,1fr);gap:16px;align-items:center;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);padding:14px 18px}
.dm-srow h3{margin:0;font-size:1.0625rem}
.dm-srow h3 small{display:block;font-family:var(--f-body);font-size:.75rem;color:var(--fg-faint);font-weight:400;margin-top:3px;line-height:1.4}
.dm-meter{height:8px;border-radius:999px;background:var(--paper-2);overflow:hidden}
.dm-meter i{display:block;height:100%;width:var(--w,33%);background:var(--mc,var(--accent));border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.2,1),background .4s}
.dm-srow p{margin:0;font-size:.9rem;line-height:1.55;color:var(--fg-dim)}
.dm-srow p[hidden]{display:none}
.dm-qs{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:30px}
.dm-qs div{border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px;background:var(--bg)}
.dm-qs h4{margin:0 0 8px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.dm-qs ul{margin:0;padding-left:18px;font-size:.875rem;line-height:1.55}
.dm-qs li+li{margin-top:4px}

/* ---- assessment ------------------------------------------------------ */
.dm-as{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);box-shadow:var(--shadow);overflow:hidden}
.dm-as-top{display:flex;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--paper);flex-wrap:wrap}
.dm-as-steps{display:flex;gap:6px;flex-wrap:wrap}
.dm-as-steps span{font-size:.75rem;font-weight:600;padding:5px 10px;border-radius:999px;border:1px solid var(--line);color:var(--fg-faint)}
.dm-as-steps span.on{background:var(--accent);border-color:var(--accent);color:#fff}
.dm-as-steps span.done{color:var(--accent);border-color:var(--accent-line)}
.dm-prog{flex:1;min-width:140px;height:6px;background:var(--paper-2);border-radius:999px;overflow:hidden}
.dm-prog i{display:block;height:100%;width:0;background:var(--accent);transition:width .5s ease}
.dm-as-body{padding:clamp(20px,3vw,34px)}
.dm-as-body h3{font-size:clamp(1.25rem,2.2vw,1.625rem);margin:0 0 6px}
.dm-as-body .hint{color:var(--fg-dim);margin:0 0 20px;line-height:1.6}
.dm-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.dm-pick label{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:var(--r-md);padding:14px;cursor:pointer;transition:border-color .2s,background .2s}
.dm-pick label:hover{border-color:var(--accent)}
.dm-pick input{margin-top:3px;accent-color:var(--accent)}
.dm-pick label:has(input:checked){border-color:var(--accent);background:var(--accent-wash)}
.dm-pick b{display:block;font-size:.9375rem}
.dm-pick span{font-size:.8125rem;color:var(--fg-dim);line-height:1.45}
.dm-pick .rec{display:inline-block;margin-left:6px;font-size:.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);vertical-align:middle}
.dm-q{animation:dmFadeUp .4s ease}
.dm-q .dimk{display:inline-flex;align-items:center;gap:8px;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--sc,var(--accent));margin-bottom:8px}
.dm-q .dimk i{width:10px;height:10px;border-radius:50%;background:var(--sc,var(--accent))}
.dm-opts{display:grid;gap:8px;margin-top:6px}
.dm-opt{font:inherit;text-align:left;display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);cursor:pointer;transition:border-color .2s,background .2s,transform .15s;color:var(--fg)}
.dm-opt:hover{border-color:var(--accent);transform:translateX(3px)}
.dm-opt b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--paper-2);font-size:.8125rem;color:var(--fg-dim)}
.dm-opt span{font-size:.9375rem;line-height:1.4}
.dm-opt span small{display:block;color:var(--fg-faint);font-size:.8125rem;margin-top:2px}
.dm-opt[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-wash)}
.dm-opt[aria-pressed="true"] b{background:var(--accent);color:#fff}
.dm-opt.ns b{font-size:1rem}
.dm-adapt-note{font-size:.8125rem;color:var(--signal);margin:14px 0 0;display:flex;gap:8px;align-items:center;min-height:1.2em}
.dm-as-nav{display:flex;justify-content:space-between;gap:10px;margin-top:24px;flex-wrap:wrap}
.dm-btn{font:inherit;font-size:.875rem;font-weight:600;padding:11px 18px;border-radius:var(--r-sm);border:1px solid var(--line-strong);background:var(--bg);color:var(--fg);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.dm-btn.p{background:var(--accent);border-color:var(--accent);color:#fff}
.dm-btn:disabled{opacity:.4;cursor:not-allowed}
.dm-res-top{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:center;margin-bottom:28px}
.dm-gauge{width:100%;max-width:260px;margin:0 auto;display:block}
.dm-gauge .track{stroke:var(--paper-2)}
.dm-gauge .val{transition:stroke-dashoffset 1.6s cubic-bezier(.2,.8,.2,1)}
.dm-gauge .num{font:500 46px var(--f-display);fill:var(--fg)}
.dm-gauge .sub{font:600 11px var(--f-body);fill:var(--fg-faint);letter-spacing:.1em}
.dm-res-lvl{font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.dm-res-top h3{font-size:clamp(1.5rem,2.6vw,2rem);margin:4px 0 10px}
.dm-res-top p{color:var(--fg-dim);line-height:1.6;margin:0}
.dm-res-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,3vw,40px);align-items:start}
.dm-radar{width:100%;max-width:440px;margin:0 auto;display:block;overflow:visible}
.dm-radar .web{fill:none;stroke:var(--line)}
.dm-radar .ax{stroke:var(--line-soft)}
.dm-radar .tgt{fill:none;stroke:var(--fg-faint);stroke-dasharray:4 4;stroke-width:1.5}
.dm-radar .cur{fill:color-mix(in srgb,var(--accent) 22%,transparent);stroke:var(--accent);stroke-width:2;transform-origin:220px 220px;animation:dmRadar 1.2s cubic-bezier(.2,.8,.2,1) both}
.dm-radar text{font:600 10px var(--f-body);fill:var(--fg-dim)}
@keyframes dmRadar{from{transform:scale(0);opacity:0}to{transform:none;opacity:1}}
.dm-legend{display:flex;gap:16px;justify-content:center;font-size:.75rem;color:var(--fg-dim);margin-top:6px}
.dm-legend i{display:inline-block;width:18px;height:3px;background:var(--accent);vertical-align:middle;margin-right:6px}
.dm-legend i.t{background:none;border-top:2px dashed var(--fg-faint);height:0}
.dm-bars{display:grid;gap:10px}
.dm-brow{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr) 44px;gap:12px;align-items:center;font-size:.8125rem}
.dm-brow .nm{font-weight:600;line-height:1.3}
.dm-brow .nm small{display:block;color:var(--critical);font-weight:500;font-size:.6875rem}
.dm-btrack{position:relative;height:12px;background:var(--paper-2);border-radius:999px}
.dm-btrack i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:var(--sc,var(--accent));width:0;transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.dm-btrack u{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--fg);border-radius:1px}
.dm-brow .sc{font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.dm-gaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;margin-top:30px}
.dm-gap{border:1px solid var(--line);border-top:3px solid var(--sc);border-radius:var(--r-md);padding:18px;background:var(--bg)}
.dm-gap .k{font-size:.6875rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--critical)}
.dm-gap h4{font-family:var(--f-display);font-weight:500;font-size:1.125rem;margin:4px 0 8px}
.dm-gap p{margin:0 0 8px;font-size:.875rem;line-height:1.55;color:var(--fg-dim)}
.dm-gap p b{color:var(--fg)}
.dm-res-h{font-family:var(--f-display);font-weight:500;font-size:1.25rem;margin:34px 0 12px}
.dm-align{display:grid;gap:8px}
.dm-align div{display:grid;grid-template-columns:minmax(0,180px) 90px minmax(0,1fr);gap:12px;align-items:center;font-size:.875rem;padding:10px 14px;border:1px solid var(--line);border-radius:var(--r-md)}
.dm-align em{font-style:normal;font-size:.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;text-align:center;color:#fff}
.dm-align span{color:var(--fg-dim);line-height:1.5}
.dm-ev{margin-top:18px;font-size:.875rem;padding:12px 14px;border-radius:var(--r-md);background:color-mix(in srgb,var(--amber) 10%,var(--bg));border:1px solid color-mix(in srgb,var(--amber) 35%,var(--bg))}
.dm-res-ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line)}
.dm-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.dm-confetti i{position:absolute;top:-10px;width:7px;height:12px;border-radius:1px;animation:dmFall 1.8s ease-in forwards}
@keyframes dmFall{to{transform:translateY(520px) rotate(540deg);opacity:0}}

/* ---- responsive ------------------------------------------------------ */
@media (max-width:980px){
  .dm-hero .wrap,.dm-def,.dm-levels,.dm-choose,.dm-wheelw,.dm-split,.dm-stake,.dm-report,.dm-res-grid,.dm-loopw{grid-template-columns:minmax(0,1fr)}
  .dm-wheel{position:static}
  .dm-procw{grid-template-columns:minmax(0,1fr)}
  .dm-procside{display:none}
  .dm-fw{grid-template-columns:minmax(0,1fr)}
  .dm-arrow{transform:rotate(90deg);height:50px}
  .dm-tabs{grid-template-columns:minmax(0,1fr)}
  .dm-tablist{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line)}
  .dm-tablist button{flex:none;border-bottom:0;border-right:1px solid var(--line-soft)}
  .dm-tablist button[aria-selected="true"]::before{top:auto;right:0;width:auto;height:3px;bottom:0}
  .dm-srow{grid-template-columns:minmax(0,1fr)}
  .dm-hero-vis{max-width:460px}
}
@media (max-width:640px){
  .dm-dgrid,.dm-comp{grid-template-columns:minmax(0,1fr)}
  .dm-triad{grid-template-columns:minmax(0,1fr)}
  .dm-lane{grid-template-columns:minmax(0,1fr)}
  .dm-lane>h3{border-right:0;border-bottom:1px solid var(--line-soft);flex-direction:row;align-items:baseline;gap:10px}
  .dm-ladder{height:260px;gap:5px}
  .dm-step{padding:10px 3px}
  .dm-step b{font-size:1.25rem}
  .dm-step span{font-size:.625rem}
  .dm-res-top{grid-template-columns:minmax(0,1fr)}
  .dm-brow{grid-template-columns:minmax(0,1fr) 40px}
  .dm-brow .nm{grid-column:1/-1}
  .dm-align div{grid-template-columns:minmax(0,1fr) auto}
  .dm-align span{grid-column:1/-1}
  .dm-tabpanel{padding:20px}
}
@media (prefers-reduced-motion:reduce){
  .dm-page *,.dm-page *::before,.dm-page *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .dm-rv{opacity:1;transform:none}
}
@media print{
  header,footer,.dm-page>section:not(#assess){display:none!important}
  .dm-as{box-shadow:none;border:0}
  .dm-as-top,.dm-res-ctas{display:none}
}
