/* A working paper, not an application dashboard. Scoped to the homepage;
   the client, authentication and family pages retain their own styles. */
.assembly-page {
  --sheet: #f2efe6;
  --sheet-light: #faf8f2;
  --carbon: #242622;
  --muted: #5e6258;
  --rule: #c9c9bc;
  --rust: #a43c24;
  --annotation: #ffb49c;
  background: var(--sheet);
  color: var(--carbon);
  font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif);
  -webkit-font-smoothing: antialiased;
}
.assembly-page * { box-sizing: border-box; min-width: 0; }
.assembly-page [hidden] { display: none !important; }
.assembly-page :is(h1, h2, h3, h4, p, figure, blockquote, dl, dd) { margin: 0; }
.assembly-page :is(ul, ol) { margin: 0; padding: 0; }
.assembly-page :is(h1, h2, h3, h4, p, dd, li, a, label, button, legend) { overflow-wrap: anywhere; }
.assembly-page ::selection { background: #f3cbb7; color: var(--carbon); }
.assembly-page :is(a, button, input, summary):focus-visible,
.assembly-page .mosaic:focus-visible { outline: 3px solid var(--rust); outline-offset: 5px; }
.assembly-page :is(section, article, details, footer)[id] { scroll-margin-top: 2rem; }
.assembly-page button { cursor: pointer; }
.assembly-wrap { width: min(100% - 7rem, 1320px); margin-inline: auto; }
.assembly-label { font: .7rem/1.65 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .09em; text-transform: uppercase; }
.assembly-nav { display: flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 108px; border-bottom: 1px solid var(--rule); }
.assembly-brand { display: flex; align-items: center; gap: .9rem; text-decoration: none; }
.assembly-brand__mark { font-size: 2.3rem; font-weight: 650; line-height: 1; letter-spacing: -.1em; color: var(--rust); }
.assembly-brand strong { display: block; font-size: .92rem; font-weight: 600; }
.assembly-brand small { display: block; font: italic .86rem/1.5 var(--font-display, Georgia, serif); color: var(--muted); margin-top: .15rem; }
.assembly-nav__links { display: flex; gap: 1.9rem; font-size: .84rem; }
.assembly-nav__links a { display: inline-flex; min-height: 44px; align-items: center; text-decoration: none; }
.assembly-nav__links a:hover { color: var(--rust); text-decoration: underline; text-underline-offset: 5px; }
.assembly-nav__contact { gap: .7rem; }

/* The proposition is the hero. Its type is not competing with a portrait. */
.assembly-hero { padding-block: 2rem 2.4rem; }
.assembly-hero__edition { display: flex; justify-content: space-between; gap: 1rem; color: var(--muted); }
.assembly-hero__edition p:first-child { color: var(--rust); }
.assembly-hero__composition { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); align-items: end; gap: 3rem; padding-block: 3.2rem 2.5rem; }
.assembly-hero h1 { font-size: clamp(5rem, 10.9vw, 10rem); font-weight: 550; line-height: .96; letter-spacing: -.075em; }
.assembly-hero h1 span, .assembly-hero h1 em { display: block; }
.assembly-hero h1 em { font-family: var(--font-display, Georgia, serif); font-weight: 450; letter-spacing: -.065em; color: var(--rust); padding-bottom: .08em; }
.assembly-hero__copy { padding-bottom: .5rem; }
.assembly-hero__lede { max-width: 29rem; font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.65; text-wrap: pretty; }
.assembly-hero__links { display: flex; flex-direction: column; align-items: start; gap: .8rem; margin-top: 1.8rem; }
.assembly-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.2rem; min-height: 48px; max-width: 100%; font-size: .9rem; line-height: 1.5; text-decoration: none; }
.assembly-link > span { flex-shrink: 0; }
.assembly-link--solid { background: var(--carbon); color: var(--sheet-light); padding: .85rem 1.2rem; }
.assembly-link--solid:hover { background: var(--rust); }
.assembly-link--quiet { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 6px; }
.assembly-link--quiet:hover { text-decoration-color: var(--rust); color: var(--rust); }
.assembly-hero__footnote { color: var(--muted); font-size: .76rem; line-height: 1.6; }

.assembly-section { padding-block: 6rem; }
.assembly-section__heading { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: end; gap: 5rem; margin-bottom: 3rem; }
.assembly-section__heading .assembly-label { color: var(--rust); margin-bottom: 1rem; }
.assembly-section__heading h2 { max-width: 13em; font-size: clamp(2.4rem, 4.5vw, 4.3rem); font-weight: 500; line-height: 1.08; letter-spacing: -.05em; text-wrap: balance; }
.assembly-section__heading h2 em { font-family: var(--font-display, Georgia, serif); color: var(--rust); font-weight: 450; }
.assembly-section__heading > p { max-width: 33rem; color: var(--muted); font-size: 1rem; line-height: 1.8; }

/* The original human process is the stable left-hand text. Assistance lives
   in its margin: no shifting/reordering human nodes, no empty card outlines.
   Server baseline is a complete, linked set of three annotated papers. */
.workflow { background: var(--carbon); color: var(--sheet-light); padding-block: 4.5rem; }
.workflow .assembly-section__heading { align-items: start; }
.workflow .assembly-label, .workflow .assembly-section__heading h2 em { color: var(--annotation); }
.workflow :is(a, input):focus-visible { outline-color: var(--annotation); }
.workflow__introduction > p { font-size: 1rem; line-height: 1.8; color: #e2e1d6; }
.workflow__introduction .workflow__disclaimer { margin-top: 1.2rem; font-size: .8rem; line-height: 1.65; color: #bfc2b6; }
.workflow__navigation { display: flex; gap: 1rem 2rem; flex-wrap: wrap; padding-block: 1rem; border-block: 1px solid #686d61; }
.workflow__navigation a { display: inline-flex; align-items: center; gap: 1rem; min-height: 44px; color: var(--sheet-light); font-size: .95rem; text-underline-offset: 5px; }
.workflow__controls { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); align-items: start; gap: 2rem; border-block: 1px solid #686d61; padding-block: 1.5rem; }
.workflow__choices { min-width: 0; border: 0; padding: 0; margin: 0; }
.workflow__choices legend { margin-bottom: .5rem; }
.workflow__choices > div { display: flex; flex-wrap: wrap; gap: .35rem 1.5rem; }
.workflow__choices label, .workflow__assistance-control label { display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; cursor: pointer; font-size: .92rem; line-height: 1.5; }
.workflow input:is([type="radio"], [type="checkbox"]) { appearance: auto; -webkit-appearance: auto; width: 18px; height: 18px; margin: 0; flex-shrink: 0; accent-color: var(--annotation); background: var(--sheet-light); box-shadow: none; }
.workflow__choices input:checked + span { color: var(--annotation); text-decoration: underline; text-underline-offset: 6px; }
.workflow__assistance-control { border-left: 1px solid #686d61; padding-left: 1.5rem; }
.workflow__assistance-control label { font-weight: 550; }
/* Size for both status strings before interaction, including phone wrapping. */
.workflow__status-slot { display: grid; margin-top: .35rem; max-width: 32rem; }
.workflow__status, .workflow__status-measure { grid-area: 1 / 1; min-height: 3.3em; font-size: .8rem; line-height: 1.65; color: #c7cbbf; }
.workflow__status-measure { visibility: hidden; pointer-events: none; user-select: none; }
.workflow__paper { padding-top: 2.2rem; }
.workflow__paper + .workflow__paper { margin-top: 3.5rem; border-top: 2px solid #999e90; }
.workflow[data-workflow-ready="true"] .workflow__paper { margin-top: 0; border-top: 0; }
.workflow__paper-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; padding-bottom: 2rem; align-items: start; }
.workflow__paper-heading h3 { font-size: clamp(1.5rem, 2.7vw, 2.2rem); line-height: 1.2; font-weight: 500; letter-spacing: -.03em; }
.workflow__paper-heading h3 span { color: var(--annotation); font: italic 1em/1.2 var(--font-display, Georgia, serif); }
.workflow__paper-heading > p { max-width: 37rem; font-size: .92rem; line-height: 1.75; color: #d0d2c6; }
.workflow__column-labels { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; padding-block: .7rem; border-bottom: 1px solid #777c6f; }
.workflow__column-labels span:first-child { color: #e2e1d6; }
.workflow__steps { list-style: none; counter-reset: workflow-step; }
.workflow__step { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; border-bottom: 1px solid #51574b; padding-block: 1.45rem; counter-increment: workflow-step; }
.workflow__human { position: relative; padding-left: 2.5rem; }
.workflow__human::before { content: counter(workflow-step, decimal-leading-zero); position: absolute; left: 0; top: .18rem; font: .75rem/1.5 ui-monospace, monospace; color: #bfc2b6; }
.workflow__human h4 { font-size: 1.02rem; line-height: 1.5; font-weight: 550; }
.workflow__human > p { margin-top: .35rem; font-size: .95rem; line-height: 1.7; color: #d0d2c6; max-width: 36rem; }
.workflow__assist { align-self: start; border-left: 1px solid var(--annotation); padding-left: 1.2rem; color: var(--annotation); font-size: .92rem; line-height: 1.75; }
.workflow__assist .workflow__assist-label { margin-bottom: .35rem; font-size: .62rem; }
.workflow [data-workflow-target~="assist"] { opacity: 1; transition: opacity 140ms ease-out; }
.workflow[data-workflow-ready="true"][data-workflow-assisted="false"] [data-workflow-target~="assist"] { visibility: hidden; opacity: 0; pointer-events: none; }
.workflow[data-workflow-ready="true"][data-workflow-assisted="false"] .workflow__column-labels span:last-child { color: #bfc2b6; }
.workflow__example { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; margin-top: 2rem; align-items: start; }
.workflow__source { background: var(--sheet); color: var(--carbon); padding: 1.5rem; }
.workflow__source .assembly-label { color: var(--rust); margin-bottom: .8rem; }
.workflow__source blockquote { font: 450 1.12rem/1.65 var(--font-display, Georgia, serif); }
.workflow__suggestion { padding-block: .5rem; color: var(--annotation); font-size: .94rem; line-height: 1.75; }
.workflow__suggestion h4 { margin-bottom: .8rem; }
.workflow__boundary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2.5rem; padding-top: 1.5rem; margin-top: 2rem; border-top: 1px solid #777c6f; }
.workflow__decision { font-size: 1rem; font-weight: 550; line-height: 1.65; }
.workflow__artifact { color: #d0d2c6; font-size: .9rem; line-height: 1.75; }

.assembly-provocation { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 5rem; padding-block: 4.5rem; border-bottom: 1px solid var(--rule); align-items: start; }
.assembly-provocation h2 { max-width: 16em; font: italic 450 clamp(2rem, 3.2vw, 3.1rem)/1.2 var(--font-display, Georgia, serif); letter-spacing: -.035em; }
.assembly-provocation__answer { font-size: clamp(1.2rem, 1.8vw, 1.6rem); font-weight: 550; line-height: 1.45; letter-spacing: -.02em; }
.assembly-provocation__body { margin-top: 1rem !important; font-size: .98rem; line-height: 1.8; color: var(--muted); }

/* Proof reads as editorial rows. No ornamental diagrams, simulated product
   screens or badge walls: the mechanism and its limits are the visual weight. */
.assembly-project { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.55fr); gap: 5rem; border-top: 1px solid var(--carbon); padding-block: 2.3rem 2.8rem; }
.assembly-project:last-child { padding-bottom: 0; }
.assembly-project__number { color: var(--rust); }
.assembly-project h3 { font-size: clamp(1.9rem, 3vw, 2.9rem); line-height: 1.15; letter-spacing: -.05em; font-weight: 500; margin-top: .85rem; }
.assembly-project__period { margin-top: .75rem !important; font-size: .8rem; line-height: 1.6; color: var(--muted); }
.assembly-project__link { margin-top: 1.1rem; font-size: .82rem; }
.assembly-project__body { font-size: 1.02rem; line-height: 1.8; }
.assembly-project__outcome { margin-top: 1.1rem !important; font-size: .98rem; line-height: 1.8; }
.assembly-project__boundary { margin-top: 1.2rem !important; border-left: 2px solid var(--rust); padding-left: 1rem; font-size: .87rem; line-height: 1.75; color: var(--muted); }
.assembly-project__tags { list-style: none; display: flex; flex-wrap: wrap; gap: .35rem 1.2rem; margin-top: 1.4rem !important; font: .7rem/1.7 ui-monospace, monospace; color: var(--muted); }
.assembly-choice { border-block: 1px solid var(--rule); }
.assembly-choice__options { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.assembly-choice__options > div { border-top: 1px solid var(--carbon); padding-top: 1.4rem; }
.assembly-choice__options h3 { font-size: 1.5rem; line-height: 1.3; font-weight: 500; letter-spacing: -.035em; }
.assembly-choice__options p { margin-top: .9rem; max-width: 35rem; font-size: 1rem; line-height: 1.8; color: var(--muted); }
.assembly-choice__note { margin-top: 2rem !important; max-width: 54rem; font: italic 450 1.3rem/1.6 var(--font-display, Georgia, serif); }

.assembly-about__composition { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 5rem; align-items: start; }
.assembly-about__copy > .assembly-label { color: var(--rust); margin-bottom: 1rem; }
.assembly-about h2 { font: italic 450 clamp(2rem, 4.5vw, 4.3rem)/1.08 var(--font-display, Georgia, serif); letter-spacing: -.055em; }
.assembly-about__lede { margin-top: 1.6rem !important; font-size: 1.2rem; line-height: 1.65; }
.assembly-about__body { margin-top: 1.1rem !important; font-size: .98rem; line-height: 1.8; color: var(--muted); }
.assembly-about__scope { margin-top: 1.1rem !important; font-size: .82rem; line-height: 1.75; color: var(--muted); }
.assembly-disciplines { margin-top: 2rem !important; }
.assembly-disciplines > div { display: grid; grid-template-columns: 7.2rem minmax(0, 1fr); gap: 1rem; border-top: 1px solid var(--rule); padding-block: .9rem; }
.assembly-disciplines dt { font-size: .92rem; line-height: 1.6; font-weight: 550; }
.assembly-disciplines dd { color: var(--muted); font-size: .84rem; line-height: 1.75; }

/* Optional portrait. No orbit or decorative confetti; the enduring caption is
   its accessible identity even when WebGL replaces the visible photograph. */
.mosaic { min-width: 0; width: 100%; max-width: 580px; justify-self: end; padding-top: .2rem; }
.mosaic__topline { display: flex; justify-content: space-between; align-items: start; gap: 1rem; color: var(--muted); border-bottom: 1px solid var(--rule); padding-bottom: .8rem; overflow-wrap: anywhere; }
.mosaic__topline span:last-child { white-space: nowrap; flex-shrink: 0; color: var(--rust); }
.mosaic__stage { position: relative; aspect-ratio: 1; isolation: isolate; }
.mosaic__canvas { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; touch-action: pan-y; }
.mosaic[data-mosaic-ready] .mosaic__canvas { opacity: 1; }
.mosaic__poster { position: absolute; inset: 16%; background: #eee6d0; overflow: hidden; }
.mosaic__poster img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); mix-blend-mode: multiply; }
.mosaic[data-mosaic-ready] .mosaic__poster { visibility: hidden; }
.mosaic__caption { font-size: .83rem; line-height: 1.6; color: var(--carbon); }
.mosaic__note { margin-top: .5rem !important; font: italic .95rem/1.6 var(--font-display, Georgia, serif); color: var(--muted); }
.mosaic__control-slot { margin-top: 1.2rem; }
.mosaic__controls { border-block: 1px solid var(--rule); padding-block: .7rem; }
/* Preserve the actual responsive control height, not a guessed placeholder.
   visibility:hidden also removes these unavailable controls from focus/AT. */
@layer base {
  .assembly-page .mosaic__controls[hidden] { display: block !important; visibility: hidden; pointer-events: none; }
}
.mosaic__row { display: grid; grid-template-columns: auto minmax(5rem, 1fr); align-items: center; gap: .5rem 1rem; }
.mosaic__toggle { border: 1px solid var(--carbon); background: var(--sheet-light); min-height: 44px; padding: .6rem .8rem; font-size: .8rem; line-height: 1.5; }
.mosaic__toggle:hover { background: var(--carbon); color: var(--sheet-light); }
.mosaic__range { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0 .4rem; min-width: 0; }
.mosaic__range label, .mosaic__range output { font-size: .72rem; line-height: 1.5; color: var(--muted); }
.mosaic__range output { font-variant-numeric: tabular-nums; }
.mosaic__range input { grid-column: 1 / -1; width: 100%; height: 30px; margin: 0; accent-color: var(--rust); cursor: ew-resize; }
.mosaic__motion { display: inline-flex; align-items: center; justify-self: start; gap: .5rem; min-height: 44px; font-size: .78rem; color: var(--muted); padding: .4rem .1rem; }
.mosaic__motion::before { content: ""; width: 8px; height: 8px; border: 1px solid currentColor; border-radius: 50%; }
.mosaic__motion[aria-pressed="true"]::before { background: currentColor; }
.mosaic__motion:disabled { cursor: default; }

.assembly-career { margin-top: 3rem; border-block: 1px solid var(--rule); }
.assembly-career summary { cursor: pointer; padding-block: 1.4rem; min-height: 64px; font-size: 1rem; line-height: 1.7; }
.assembly-career summary::marker { color: var(--rust); }
.assembly-career summary > span:first-child { margin-left: .6rem; }
.assembly-career__span { float: right; color: var(--muted); font: .75rem/2.2 ui-monospace, monospace; padding-left: 1rem; }
.assembly-career__content { padding-block: 2rem; }
.assembly-timeline { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 4rem; }
.assembly-timeline__intro h3 { font: 450 2rem/1.2 var(--font-display, Georgia, serif); letter-spacing: -.035em; margin-top: 1rem; }
.assembly-timeline__intro > p:last-child { color: var(--muted); font-size: .92rem; line-height: 1.8; margin-top: 1.2rem; }
.assembly-timeline ol { list-style: none; }
.assembly-timeline li { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: 1.5rem; border-top: 1px solid var(--rule); padding-block: 1.5rem; }
.assembly-timeline__date { color: var(--rust); font: .75rem/1.7 ui-monospace, monospace; }
.assembly-timeline h4 { font-size: 1rem; font-weight: 550; line-height: 1.5; }
.assembly-timeline__role { color: var(--muted); font-size: .82rem; line-height: 1.65; margin-top: .3rem !important; }
.assembly-timeline__body { color: var(--muted); font-size: .92rem; line-height: 1.8; margin-top: .7rem !important; }
.assembly-credentials { display: grid; grid-template-columns: 1fr 2fr; gap: 4rem; border-top: 1px solid var(--rule); padding-top: 1.5rem; margin-top: 1.5rem; }
.assembly-credentials ul { list-style: none; display: flex; flex-wrap: wrap; gap: 1.2rem 2rem; font-size: .86rem; line-height: 1.6; }
.assembly-credentials li span { display: block; font-size: .8rem; color: var(--muted); margin-top: .3rem; }

.assembly-contact { padding-top: 0; }
.assembly-contact__steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2rem; list-style: none; counter-reset: engagement; }
.assembly-contact__steps li { counter-increment: engagement; border-top: 1px solid var(--carbon); padding-top: 1.2rem; }
.assembly-contact__steps li::before { content: counter(engagement, decimal-leading-zero); display: block; margin-bottom: .8rem; color: var(--rust); font: italic 1.7rem/1.2 var(--font-display, Georgia, serif); }
.assembly-contact__steps h3 { font-size: 1.05rem; line-height: 1.5; font-weight: 550; }
.assembly-contact__steps p { margin-top: .7rem; color: var(--muted); font-size: .91rem; line-height: 1.8; }
.assembly-contact__invitation { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--rule); display: grid; grid-template-columns: 1.4fr 1fr; gap: 3rem; align-items: center; }
.assembly-contact__links { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; }
.assembly-contact__warning { font-size: .82rem; line-height: 1.75; color: var(--muted); }
.assembly-footer { border-top: 1px solid var(--rule); padding-block: 1.3rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem 2rem; font-size: .73rem; line-height: 1.6; color: var(--muted); }
.assembly-footer nav { display: flex; flex-wrap: wrap; gap: .2rem 1.2rem; }
.assembly-footer nav a { min-height: 44px; display: inline-flex; align-items: center; text-underline-offset: 4px; }
.assembly-footer a:hover { color: var(--rust); }

@media (max-width: 1100px) {
  .assembly-wrap { width: calc(100% - 4rem); }
  .assembly-hero__composition { gap: 2rem; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); }
  .assembly-hero h1 { font-size: 10.3vw; }
  .assembly-section__heading, .assembly-project, .assembly-about__composition, .assembly-provocation, .assembly-choice__options { gap: 3rem; }
  .assembly-contact__steps { gap: 1.5rem; }
  .assembly-footer { flex-direction: column; align-items: start; gap: .5rem; }
}
@media (max-width: 760px) {
  .assembly-wrap { width: calc(100% - 2.5rem); }
  .assembly-nav { flex-wrap: wrap; gap: .75rem; padding-top: 1.1rem; padding-bottom: .4rem; min-height: 0; }
  .assembly-brand__mark { font-size: 2rem; }
  .assembly-brand strong { font-size: .85rem; }
  .assembly-brand small { font-size: .8rem; }
  .assembly-nav__links { width: 100%; gap: .9rem; justify-content: space-between; flex-wrap: wrap; font-size: .8rem; }
  .assembly-nav__contact { gap: .3rem; }
  .assembly-hero { padding-block: 1.4rem 2rem; }
  .assembly-hero__edition { display: block; font-size: .64rem; }
  .assembly-hero__edition p + p { margin-top: .35rem; }
  .assembly-hero__composition { grid-template-columns: 1fr; gap: 1.8rem; padding-block: 2rem 1.5rem; }
  .assembly-hero h1 { font-size: clamp(3.35rem, 16vw, 7rem); line-height: .96; }
  .assembly-hero__lede { font-size: 1.1rem; line-height: 1.7; max-width: 33rem; }
  .assembly-hero__links { flex-direction: row; flex-wrap: wrap; align-items: center; gap: .6rem 1.4rem; margin-top: 1.4rem; }
  .assembly-hero__footnote { font-size: .73rem; max-width: 28rem; }
  .assembly-section { padding-block: 3.5rem; }
  .assembly-section__heading { grid-template-columns: 1fr; gap: 1.3rem; margin-bottom: 2rem; }
  .assembly-section__heading h2 { font-size: clamp(2.25rem, 8.5vw, 3.4rem); max-width: 16em; }
  .assembly-section__heading > p { font-size: .96rem; line-height: 1.75; }
  .workflow { padding-block: 3rem; }
  .workflow__controls { grid-template-columns: 1fr; gap: 1rem; padding-block: 1rem; }
  .workflow__choices > div { gap: .15rem 1rem; }
  .workflow__assistance-control { border-left: 0; border-top: 1px solid #51574b; padding: .75rem 0 0; }
  .workflow__choices label, .workflow__assistance-control label { font-size: .9rem; }
  .workflow__status { min-height: 3.3em; }
  .workflow__paper-heading { grid-template-columns: 1fr; gap: .7rem; padding-bottom: 1.2rem; }
  .workflow__paper-heading h3 { font-size: 1.7rem; }
  .workflow__column-labels { grid-template-columns: 1fr; gap: .15rem; }
  .workflow__column-labels span:last-child { font-size: .62rem; }
  .workflow__step { grid-template-columns: 1fr; gap: .9rem; padding-block: 1.3rem; }
  .workflow__human { padding-left: 2rem; }
  .workflow__assist { margin-left: 2rem; padding-left: .9rem; font-size: .9rem; }
  .workflow__example { grid-template-columns: 1fr; gap: 1.2rem; margin-top: 1.5rem; }
  .workflow__source { padding: 1.2rem; }
  .workflow__source blockquote { font-size: 1.08rem; }
  .workflow__suggestion { padding: 0 0 0 1rem; border-left: 1px solid var(--annotation); }
  .workflow__boundary { grid-template-columns: 1fr; gap: .7rem; margin-top: 1.5rem; padding-top: 1.2rem; }
  .assembly-provocation { grid-template-columns: 1fr; gap: 1.4rem; padding-block: 3rem; }
  .assembly-provocation h2 { max-width: 15em; font-size: 2.1rem; }
  .assembly-provocation__answer { font-size: 1.25rem; }
  .assembly-project { grid-template-columns: 1fr; gap: 1.2rem; padding-block: 1.7rem 2.2rem; }
  .assembly-project h3 { font-size: 2rem; margin-top: .6rem; }
  .assembly-project__link { margin-top: .5rem; }
  .assembly-project__body, .assembly-project__outcome { font-size: .96rem; line-height: 1.8; }
  .assembly-choice__options { grid-template-columns: 1fr; gap: 1.7rem; }
  .assembly-choice__options p { font-size: .96rem; }
  .assembly-choice__note { font-size: 1.18rem; }
  .assembly-about__composition { grid-template-columns: 1fr; gap: 2.5rem; }
  .assembly-about h2 { font-size: clamp(2rem, 8.2vw, 3.7rem); }
  .assembly-about__lede { font-size: 1.1rem; }
  .assembly-disciplines > div { grid-template-columns: 6.2rem minmax(0, 1fr); gap: .8rem; }
  .mosaic { justify-self: center; max-width: 500px; }
  .mosaic__row { grid-template-columns: minmax(0, 1fr); }
  .mosaic__range { grid-template-columns: minmax(0, 1fr) auto; }
  .mosaic__topline { font-size: .63rem; }
  .assembly-career { margin-top: 2rem; }
  .assembly-career summary { font-size: .93rem; }
  .assembly-career__span { float: none; display: block; padding-left: 1.2rem; }
  .assembly-timeline { grid-template-columns: 1fr; gap: 1.5rem; }
  .assembly-timeline li { grid-template-columns: 1fr; gap: .5rem; padding-block: 1.2rem; }
  .assembly-credentials { grid-template-columns: 1fr; gap: 1rem; }
  .assembly-contact { padding-top: 0; }
  .assembly-contact__steps { grid-template-columns: 1fr 1fr; gap: 1.7rem 1.5rem; }
  .assembly-contact__invitation { grid-template-columns: 1fr; gap: 1.2rem; margin-top: 2rem; padding-top: 1.5rem; }
}
@media (max-width: 380px) {
  .assembly-wrap { width: calc(100% - 2rem); }
  .assembly-nav__links { gap: .5rem; font-size: .76rem; }
  .assembly-contact__steps { grid-template-columns: 1fr; gap: 1.2rem; }
  .assembly-contact__steps li { position: relative; padding-left: 2.4rem; }
  .assembly-contact__steps li::before { position: absolute; left: 0; top: 1.2rem; font-size: 1.4rem; }
  .mosaic__row { column-gap: .7rem; }
  .mosaic__toggle { padding-inline: .6rem; font-size: .75rem; }
}
/* Material finish: a registered opening and working paper on a carbon table. */
.assembly-hero__composition { position: relative; border-left: 1px solid #c9c9bc; padding-left: 1.6rem; margin-top: 1.4rem; }
.assembly-hero__composition::before,.assembly-hero__composition::after { content: ''; position: absolute; left: -6px; width: 11px; height: 1px; background: var(--rust); }
.assembly-hero__composition::before { top: 0; }
.assembly-hero__composition::after { bottom: 0; }
.workflow { background: #292c27; }
.workflow__controls { align-items: center; border-bottom: 0; padding-bottom: 2rem; }
.workflow__choices > div { gap: .4rem; }
.workflow__choices label { padding: .5rem .8rem; border: 1px solid #707568; }
.workflow__choices label:has(input:checked) { border-color: #ffb49c; background: #383b32; }
.workflow__choices input:checked + span { text-decoration: none; }
.workflow__assistance-control { padding: 1rem 1.2rem; border: 1px solid #777c6f; background: #35392f; box-shadow: 0 3px 0 #171a15; }
.workflow__assistance-control label { gap: 1rem; font-size: 1rem; }
.workflow #ai-assistance { appearance: none; -webkit-appearance: none; position: relative; width: 58px; height: 32px; border-radius: 18px; background: #161b14; border: 1px solid #87907d; box-shadow: inset 0 2px 3px #10130e; cursor: pointer; }
.workflow #ai-assistance::before { content: ''; position: absolute; width: 24px; height: 24px; top: 3px; left: 3px; border-radius: 50%; background: #faf8f2; box-shadow: 0 2px 3px #0006; transition: transform 140ms ease-out; }
.workflow #ai-assistance:checked { background: #a43c24; border-color: #ffb49c; }
.workflow #ai-assistance:checked::before { transform: translateX(26px); }
.workflow__paper { --annotation: #a43c24; background: #faf8f2; color: #242622; padding: 2.3rem 2.5rem; border-top: 4px solid #a43c24 !important; box-shadow: 0 2px 0 #bbb9ae, 0 7px 0 -3px #e1dfd4, 0 22px 45px #0003; }
.workflow__paper .assembly-label,.workflow__paper-heading h3 span { color: #a43c24; }
.workflow__paper-heading > p,.workflow__human > p,.workflow__artifact { color: #5e6258; }
.workflow__human::before { color: #797e70; }
.workflow__column-labels { border-color: #aaa99c; }
.workflow__column-labels span:first-child { color: #242622; }
.workflow[data-workflow-ready='true'][data-workflow-assisted='false'] .workflow__column-labels span:last-child { color: #666c60; }
.workflow__step { border-color: #d9d7cd; }
.workflow__assist { border-left: 2px solid #a43c24; background: #f1e7da; padding: .8rem 1rem; font-size: .88rem; }
.workflow__source { background: #eeece2; border: 1px solid #d9d7cd; }
.workflow__boundary { border-color: #aaa99c; }
.workflow [data-workflow-target~='assist'] { transition: opacity 220ms ease-out; }
@media(max-width:760px) {
 .assembly-hero__composition { padding-left: .9rem; margin-top: 1rem; }
 .workflow > .assembly-wrap { width: calc(100% - 2rem); }
 .workflow__choices > div { gap: .4rem; }
 .workflow__choices label { padding: .45rem .65rem; font-size: .86rem; }
 .workflow__assistance-control { padding: 1rem; }
 .workflow__paper { padding: 1.5rem 1.1rem; }
 .workflow__human { padding-left: 1.7rem; }
 .workflow__assist { margin-left: 1.7rem; padding: .7rem .8rem; }
 .workflow__paper-heading h3 { font-size: 1.65rem; }
}
@media(forced-colors:active) { .workflow #ai-assistance { appearance: auto; -webkit-appearance: auto; } .workflow #ai-assistance::before { display:none; } }
@media (prefers-reduced-motion: reduce) {
  .assembly-page *, .assembly-page *::before, .assembly-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .workflow__assist, .workflow__suggestion, .assembly-project__boundary { border-color: CanvasText; }
  .assembly-link--solid { border: 1px solid LinkText; }
}
@media print {
  .assembly-page { --sheet: white; --sheet-light: white; --carbon: #111; --muted: #333; --rule: #999; --rust: #222; --annotation: #222; background: white; color: #111; font-size: 10pt; }
  .assembly-page * { color: #111 !important; text-shadow: none !important; box-shadow: none !important; }
  .assembly-wrap { width: 100%; }
  .assembly-page .assembly-nav__links, .assembly-page .workflow__controls,
  .assembly-page .workflow__navigation, .assembly-page .mosaic,
  .assembly-page .assembly-footer nav { display: none !important; }
  .assembly-nav { min-height: 0; padding-block: .5rem; }
  .assembly-hero { padding-block: 1rem; }
  .assembly-hero__composition { grid-template-columns: 1.2fr 1fr; gap: 2rem; padding-block: 1.5rem; }
  .assembly-hero h1 { font-size: 4.5rem; }
  .assembly-hero__lede { font-size: 1rem; }
  .assembly-hero__links { margin-top: .5rem; }
  .assembly-link--solid { background: transparent; padding: 0; }
  .assembly-link { min-height: 0; }
  .assembly-section, .assembly-provocation, .workflow { padding-block: 1.5rem; }
  .assembly-section__heading { gap: 2rem; margin-bottom: 1.2rem; }
  .assembly-section__heading h2, .assembly-about h2 { font-size: 2rem; }
  .workflow { background: white; }
  @layer base {
    .assembly-page .workflow [data-workflow-target~="panel"],
    .assembly-page .workflow [data-workflow-target~="panel"][hidden] { display: block !important; }
  }
  .assembly-page .workflow[data-workflow-ready] [data-workflow-target~="assist"],
  .assembly-page .workflow [data-workflow-target~="assist"] { display: block !important; visibility: visible !important; opacity: 1 !important; }
  .workflow__paper { padding-top: 1.5rem; }
  .workflow__paper + .workflow__paper { border-top: 1px solid #777 !important; margin-top: 1.5rem !important; }
  .workflow__paper-heading { display: block; padding-bottom: 1rem; }
  .workflow__paper-heading > p { margin-top: .5rem; }
  .workflow__column-labels, .workflow__step, .workflow__example, .workflow__boundary { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
  .workflow__step { padding-block: .7rem; break-inside: avoid; }
  .workflow__assist { margin-left: 0; border-color: #777; }
  .workflow__source { background: white; border: 1px solid #999; padding: .8rem; }
  .workflow__example, .workflow__boundary { break-inside: avoid; margin-top: 1rem; }
  .assembly-provocation { gap: 2rem; }
  .assembly-provocation h2 { font-size: 1.8rem; }
  .assembly-project { grid-template-columns: 1fr 1.55fr; gap: 2rem; padding-block: 1.3rem; break-inside: avoid; }
  .assembly-project h3 { font-size: 1.6rem; }
  .assembly-project__tags { margin-top: .7rem !important; }
  .assembly-choice__options { gap: 2rem; }
  .assembly-about__composition { display: block; }
  .assembly-about__copy { max-width: none; }
  .assembly-disciplines { display: flex; gap: 2rem; }
  .assembly-disciplines > div { display: block; flex: 1; }
  .assembly-career { margin-top: 1.5rem; }
  .assembly-career summary { padding-block: .7rem; }
  .assembly-career::details-content { content-visibility: visible !important; display: block !important; height: auto !important; }
  .assembly-page .assembly-career > .assembly-career__content { display: block !important; content-visibility: visible !important; padding-block: 1rem; }
  .assembly-timeline { display: block; }
  .assembly-timeline__intro { margin-bottom: 1rem; }
  .assembly-timeline li { grid-template-columns: 7rem 1fr; padding-block: .7rem; break-inside: avoid; }
  .assembly-credentials { gap: 2rem; break-inside: avoid; }
  .assembly-contact__steps { grid-template-columns: 1fr 1fr; gap: 1.2rem; }
  .assembly-contact__steps li { break-inside: avoid; }
  .assembly-contact__invitation { display: block; margin-top: 1rem; }
  .assembly-contact__warning { margin-top: 1rem !important; }
  .assembly-footer { padding-block: .7rem; }
}
