/* v1.9: page / surface / object. Depth is reserved for meaningful objects. */
:root{--depth-page:none;--depth-surface:none;--depth-object:0 16px 36px #1111121f;--depth-cutout:0 8px 14px #1111121f}
[hidden]{display:none!important}
*,*::before,*::after{box-sizing:border-box}
:focus-visible{outline:2px solid #111112;outline-offset:5px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.patterns-section{padding:110px 0 104px;background:var(--paper);border-top:1px solid var(--line);color:var(--ink)}
.patterns-section .wrap{max-width:1240px}
.pattern-eyebrow,.pattern-number{font:0.75rem/1.6 var(--mono);letter-spacing:.12em}
.patterns-heading{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:40px;align-items:end;margin-bottom:80px}
.patterns-heading h2{font:400 clamp(3rem,6.2vw,5.5rem)/.98 var(--display);letter-spacing:-.055em;margin:24px 0 0}
.patterns-heading h2 em{font-family:var(--serif);font-weight:400}
.pattern-band{border-top:1px solid var(--ink);padding-top:26px;min-width:0}
.pattern-band h3{font:400 clamp(1.875rem,3.6vw,3rem)/1.05 var(--display);letter-spacing:-.035em;margin:18px 0 28px}
.pattern-band h3 em{font-weight:400}
.pattern-band p{font-size:1.0625rem;line-height:1.6;max-width:55ch}
.pattern-question{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:40px}
.pattern-question h3{font-size:clamp(2.5rem,5vw,4.25rem);max-width:14ch}
.pattern-aside{align-self:end;padding-bottom:10px}
.pattern-sequence{display:flex;flex-wrap:wrap;gap:14px 20px;font:0.75rem/1.7 var(--mono);letter-spacing:.04em}
.pattern-sequence span:not(:last-of-type)::after{content:' →';margin-left:12px}
.question-sequence{border-bottom:1px solid #6d665e;padding-bottom:18px;position:relative}
.question-signal{width:9px;height:9px;border:1px solid var(--ink);border-radius:50%;background:var(--orange);position:absolute;bottom:-5px;left:31%}
.pattern-action{margin-top:12px}
.pattern-middle{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:70px;margin-top:76px}
.pattern-experience{margin-top:56px}
.structure-sequence{display:grid;max-width:430px;font:0.8125rem/1.6 var(--mono);margin:28px 0}
.structure-sequence span{border-bottom:1px solid #6d665e;padding:7px 0;position:relative}
.structure-sequence span::before{content:'·';margin-right:12px;font-weight:bold}
.structure-sequence span:nth-child(2){margin-left:14%}.structure-sequence span:nth-child(3){margin-left:28%}.structure-sequence span:nth-child(4){margin-left:42%}
.object-stage{max-width:100%;min-width:0;position:relative;isolation:isolate;margin:0}
.object-stage-clip{overflow:clip;position:relative;padding:32px;min-width:0}
.object-stage figcaption{font:0.75rem/1.55 var(--mono);padding:4px 0;overflow-wrap:anywhere}
.object-stage figcaption a{color:inherit;text-underline-offset:4px}
.interface-stage{max-width:324px;margin-top:20px}
.interface-stage img{width:100%;height:auto;aspect-ratio:16/10;object-fit:contain;background:var(--paper2);border-radius:12px;box-shadow:var(--depth-object);display:block}
.interface-stage:focus-within img{transform:translateY(-3px)}
.pattern-versions{margin-top:78px;padding-bottom:8px}
.versions-heading{display:flex;justify-content:space-between;gap:32px;align-items:baseline}
.versions-heading>p{font:italic 1.625rem/1.2 var(--display)}
.version-sequence{display:flex;align-items:baseline;gap:24px;flex-wrap:wrap;position:relative;padding:10px 0 26px;border-bottom:1px solid #6d665e}
.version-sequence strong{font:400 clamp(3.25rem,6vw,5rem)/1 var(--display);letter-spacing:-.05em}
.version-sequence span{font:0.75rem/1.5 var(--mono)}
.version-sequence::after{content:'↳';position:absolute;bottom:-15px;left:38%;background:var(--paper);padding:0 10px;font-size:1.5625rem}
.making-story{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:54px;padding:34px 0 0;max-width:860px}
.making-story p:not(.pattern-eyebrow){font-size:1.0625rem;line-height:1.6;max-width:49ch}
.making-chain{list-style:none;font:0.75rem/1.1 var(--mono);padding:0 0 0 24px;margin:0;border-left:1px solid var(--line)}
.making-chain li:not(:last-child)::after{content:'↓';display:block;color:#6d665e;margin:5px 0}
.making-chain li:nth-child(5){font-weight:bold}
.method-band{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:0 54px;border-top:1px solid var(--line);margin-top:64px;padding-top:20px}
.method-band-label{grid-column:1/-1;margin-bottom:24px}
.method-example{min-width:0}.method-example h3{font:400 1.75rem/1.1 var(--display);margin:0 0 7px}
.method-caption,.method-legend,.cycle-order{font:0.75rem/1.6 var(--mono);color:#514a43;margin:10px 0}
.method-detail{font:0.875rem/1.5 var(--sans);min-height:42px;margin:12px 0 8px}
.rail-visual{height:72px;padding:0 38px}
.phase-rail{position:absolute;left:42px;right:42px;bottom:18px;border-top:1px solid var(--ink)}
.rail-stations,.rail-gates{position:absolute;left:42px;right:42px;bottom:14px;display:flex;justify-content:space-between}
.rail-stations i{width:9px;height:9px;border:1px solid var(--ink);border-radius:50%;background:var(--paper2)}
.rail-gates{left:15%;right:15%;bottom:12px}.rail-gates i{height:14px;border-left:2px solid var(--ink)}
.phase-train{position:absolute;width:65px;height:30px;bottom:23px;left:10px;transition:transform .45s ease}
.phase-choices{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 8px}
.phase-choices button{font:0.6875rem/1.5 var(--mono);border:0;background:transparent;text-align:left;padding:7px 0;min-height:44px;cursor:pointer;color:inherit;width:100%}
.phase-choices button span{display:inline-block;margin-right:6px;color:#514a43}
.phase-choices button[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px;font-weight:bold}
.phase-inline-detail{display:none}
.mobile-train{display:none}
.governance-example{padding-top:20px}
.governance-cycle{position:relative;width:280px;max-width:100%;height:160px;margin:8px auto}
.governance-cycle svg{width:100%;height:100%}
.governance-cycle button{position:absolute;font:0.6875rem/1.3 var(--mono);color:var(--ink);min-height:44px;border:1px solid transparent;border-radius:50%;padding:7px;background:#efe9df;cursor:pointer}
.governance-cycle button[aria-pressed=true]{border-color:var(--ink);outline:1px solid var(--ink);outline-offset:3px}
.governance-cycle button:nth-of-type(1){top:0;left:50%;transform:translateX(-50%)}
.governance-cycle button:nth-of-type(2){right:0;top:58px}
.governance-cycle button:nth-of-type(3){bottom:0;left:50%;transform:translateX(-50%)}
.governance-cycle button:nth-of-type(4){left:0;top:58px}
.cycle-order{font-size:0.6875rem}.cycle-marker{transition:cx 1s linear,cy 1s linear}
.mascot-stage{max-width:360px}.mascot-stage .object-stage-clip{aspect-ratio:4/3;padding:32px}.mascot-image-plane{position:absolute;inset:38px 52px;background:var(--paper);border:1px solid var(--line)}
.mascot-stage img{position:absolute;max-width:75%;max-height:75%;object-fit:contain;right:22px;bottom:22px;filter:drop-shadow(var(--depth-cutout))}
.motion-stopped *,.motion-stopped *::before,.motion-stopped *::after{animation-play-state:paused!important;transition:none!important;scroll-behavior:auto!important}
.footer [data-motion-toggle]{font-size:0.75rem;flex:none}
@media(hover:hover) and (min-width:701px){.interface-stage:hover img{transform:translateY(-3px);transition:transform .2s}}
@media(max-width:900px){.patterns-heading{grid-template-columns:1fr;gap:26px}.pattern-middle{gap:36px}.pattern-question{grid-template-columns:1.4fr 1fr;gap:30px}.method-band{gap:0 26px}.phase-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.patterns-section{padding:64px 0}.patterns-heading{margin-bottom:48px}.patterns-heading h2{font-size:clamp(2.375rem,8vw,3rem)}.pattern-question,.pattern-middle{display:block}.pattern-question h3{font-size:2.75rem}.pattern-band h3{font-size:2.125rem}.pattern-middle{margin-top:48px}.pattern-experience{margin-top:48px}.pattern-versions{margin-top:48px}.pattern-aside{margin-top:20px}.versions-heading{display:block}.version-sequence{gap:16px}.version-sequence strong{font-size:3.375rem}.version-sequence span{font-size:0.75rem}.pattern-sequence{gap:12px}.making-story{gap:24px;grid-template-columns:minmax(0,1fr) minmax(0,.65fr)}.making-chain{padding-left:16px;font-size:0.6875rem}.making-story p:not(.pattern-eyebrow){font-size:0.9375rem}.method-band{display:block;margin-top:44px}.method-band-label{margin-bottom:24px}.governance-example{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}.rail-visual{display:none}.phase-choices{display:block;border-left:1px solid var(--ink);margin-left:8px;padding-left:16px}.phase-choices li{position:relative}.phase-choices li::before{content:'';position:absolute;left:-21px;top:18px;width:9px;height:9px;background:var(--paper2);border:1px solid var(--ink);border-radius:50%}.phase-choices li:has([aria-pressed=true])::before{background:var(--orange)}.phase-choices button{font-size:0.75rem}.phase-inline-detail{font:0.8125rem/1.5 var(--sans);margin:0 0 10px}.phase-choices li:has([aria-pressed=true]) .phase-inline-detail{display:block}.object-stage-clip{padding:24px}.interface-stage img{box-shadow:0 8px 18px #1111121f}.interface-stage:focus-within img{transform:none}.mascot-stage{max-width:280px;margin:auto}.mascot-stage img{position:relative;inset:auto;display:block;max-width:100%;max-height:220px;margin:auto}}
@media(max-width:380px){.making-story{grid-template-columns:1fr}.making-chain{padding-left:20px}.pattern-sequence{font-size:0.75rem}.method-legend{font-size:0.75rem}.governance-cycle{height:auto;display:flex;flex-direction:column;gap:12px}.governance-cycle svg{display:none}.governance-cycle button:nth-of-type(n){position:static;transform:none;border-radius:0;text-align:left;font-size:0.75rem;padding:10px}.governance-cycle button:not(:last-child)::after{content:' ↓'}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.interface-stage img{transform:none!important}}
/* Final readability and reflow refinements. */
[id]{scroll-margin-top:100px}
.phase-choices button,.governance-cycle button,.cycle-order{font-size:0.75rem}
@media(max-width:700px){.phase-choices button{display:flex;align-items:center;gap:6px}.phase-choices [aria-pressed=true] .mobile-train{display:inline-block;position:static;width:36px;height:20px;transform:none!important;filter:none;margin-left:auto;flex:none}.making-chain{font-size:0.75rem}}
@media(prefers-reduced-motion:reduce){.question-signal{left:31%}}
.large-text .pattern-middle,.large-text .pattern-question,.large-text .patterns-heading,.large-text .method-band{display:block}
.large-text .governance-example{margin-top:36px;padding-top:24px;border-top:1px solid var(--line)}
.large-text .governance-cycle{height:auto;display:flex;flex-direction:column;gap:12px;width:auto}
.large-text .governance-cycle svg{display:none}
.large-text .governance-cycle button:nth-of-type(n){position:static;transform:none;border-radius:0;text-align:left;padding:12px}
.large-text .governance-cycle button:not(:last-child)::after{content:' ↓'}
.large-text .governance-cycle button:last-child::after{content:' ↩ PRAKTIJK'}
.large-text .phase-choices{grid-template-columns:repeat(2,minmax(0,1fr))}

/* v1.9.1 — editorial refinement */
.work-rail{width:calc(100% - 48px);margin-inline:auto}
.patterns-intro{max-width:36ch}.patterns-intro>p{font-size:1.125rem;line-height:1.65;margin:0 0 16px}
.patterns-intro .patterns-explanation{font-size:.9375rem;line-height:1.6;color:#514a43;margin-bottom:0}
.pattern-band .pattern-context{font: .8125rem/1.7 var(--sans);color:#514a43;margin:22px 0 0;max-width:65ch}
.question-signal{background:radial-gradient(circle at 32% 25%,#efa27e 0%,#dc6d45 65%,#c15b38 100%);box-shadow:0 2px 3px #11111226}
.making-story{margin-top:18px;padding-top:36px;border-top:1px solid var(--line)}
.evolution-quote{margin-top:52px;grid-template-columns:auto minmax(0,1fr)}
.evolution-quote>span{grid-column:1;grid-row:2/4}
.evolution-quote>.pattern-eyebrow{grid-column:2;grid-row:1;margin:0 0 18px;color:#514a43}
.evolution-quote>strong{grid-column:2;grid-row:2}
.evolution-quote>em{grid-column:2;grid-row:3}
.evolution-quote>.evolution-takeaway{grid-column:2;grid-row:4}
.evolution-quote .evolution-takeaway{font:1.0625rem/1.55 var(--sans);margin:20px 0 0;max-width:52ch}
.method-band-label{margin-bottom:12px}.method-band-intro{grid-column:1/-1;max-width:88ch;font-size:1.0625rem;line-height:1.6;margin:0 0 42px}
.method-subtitle{font:italic 1.25rem/1.4 var(--serif);margin:12px 0}
.method-explanation{font-size:1rem;line-height:1.65;max-width:58ch;margin:0 0 24px}
.governance-example{padding-top:0}.index-projects{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:18px}
.index-projects a{color:inherit;font: .875rem/1.6 var(--sans);text-underline-offset:4px;padding:7px 0}
@media(max-width:900px){.patterns-intro{max-width:60ch}}
@media(max-width:700px){.method-band-intro{margin-bottom:32px}.governance-example{padding-top:24px}.making-story{margin-top:10px}.evolution-quote{margin-top:40px}}
@media(max-width:600px){.work-rail{width:calc(100% - 28px)}}

.pattern-action,.demo-button,[data-motion-toggle]{color:var(--ink);font:0.75rem/1.5 var(--mono);min-height:44px;border:0;border-bottom:1px solid #6d665e;background:transparent;padding:10px 0;cursor:pointer;text-align:left}
