/* Dealsmaster v5.0 — distinct article editions and purposeful visual evidence. */

.dm-article-edition {
  --dm-edition-accent: #8b3d2e;
  --dm-edition-accent-text: #743124;
  --dm-edition-deep: #203b32;
  --dm-edition-soft: #ead8c9;
  --dm-edition-paper: #f7f0e5;
  --dm-edition-line: rgba(38, 43, 35, .2);
}

.dm-edition--clinic,
.dm-edition--floor-clinic { --dm-edition-accent: #a64d3a; --dm-edition-accent-text: #873829; --dm-edition-deep: #253c38; --dm-edition-soft: #e6d3c6; }
.dm-edition--field-guide { --dm-edition-accent: #9a5d24; --dm-edition-accent-text: #754317; --dm-edition-deep: #263d34; --dm-edition-soft: #dfd7bd; }
.dm-edition--evening { --dm-edition-accent: #e1ad4d; --dm-edition-accent-text: #72500e; --dm-edition-deep: #17352f; --dm-edition-soft: #293f38; --dm-edition-paper: #f7f0e5; }
.dm-edition--job-file { --dm-edition-accent: #c55337; --dm-edition-accent-text: #8f3524; --dm-edition-deep: #2b3832; --dm-edition-soft: #dcd8c8; }
.dm-edition--workbook,
.dm-edition--measuring { --dm-edition-accent: #b25032; --dm-edition-accent-text: #8c361f; --dm-edition-deep: #213b36; --dm-edition-soft: #d9ded1; }
.dm-edition--choreography,
.dm-edition--cookalong { --dm-edition-accent: #b44c36; --dm-edition-accent-text: #89311f; --dm-edition-deep: #234035; --dm-edition-soft: #e4d1b9; }
.dm-edition--case-study,
.dm-edition--colour-file { --dm-edition-accent: #7c4c66; --dm-edition-accent-text: #64344f; --dm-edition-deep: #303c35; --dm-edition-soft: #dfced5; }
.dm-edition--diary,
.dm-edition--minute-diary { --dm-edition-accent: #ad5a38; --dm-edition-accent-text: #803c26; --dm-edition-deep: #334039; --dm-edition-soft: #ead6c2; }
.dm-edition--room-autopsy { --dm-edition-accent: #537a70; --dm-edition-accent-text: #355c53; --dm-edition-deep: #233d37; --dm-edition-soft: #d3e1dc; }
.dm-edition--documentary { --dm-edition-accent: #5d7380; --dm-edition-accent-text: #3d5965; --dm-edition-deep: #263a3c; --dm-edition-soft: #d4dde0; }
.dm-edition--layout-atlas { --dm-edition-accent: #ae663c; --dm-edition-accent-text: #7c3e1e; --dm-edition-deep: #294139; --dm-edition-soft: #dce0c9; }
.dm-edition--day-study { --dm-edition-accent: #be7b31; --dm-edition-accent-text: #784617; --dm-edition-deep: #263b37; --dm-edition-soft: #d7dfd9; }

/* Edition opening: an editorial cover, not another generic card. */
.dm-edition-opening {
  position: relative;
  width: min(1180px, calc(100% - 64px));
  display: grid;
  grid-template-columns: minmax(82px, .36fr) minmax(0, 1.55fr) minmax(210px, .72fr);
  gap: clamp(1.25rem, 4vw, 4rem);
  align-items: end;
  margin: clamp(1.2rem, 3vw, 2.5rem) auto clamp(2.1rem, 5vw, 4.5rem) !important;
  padding: clamp(2rem, 5vw, 5rem) clamp(1.25rem, 5vw, 4.5rem) clamp(1.7rem, 4vw, 3.4rem);
  border-block: 1px solid var(--dm-edition-line);
  color: #25231e;
  background:
    radial-gradient(circle at 87% 4%, color-mix(in srgb, var(--dm-edition-accent) 20%, transparent), transparent 25%),
    linear-gradient(112deg, rgba(255,255,255,.72), rgba(255,255,255,.12) 60%),
    url("../images/texture-eggshell-v1.webp"), var(--dm-edition-paper);
  background-blend-mode: normal, normal, soft-light, normal;
  isolation: isolate;
  overflow: hidden;
}
.dm-edition-opening::before {
  position: absolute;
  z-index: -1;
  inset: 0 auto 0 0;
  width: clamp(8px, 1.2vw, 16px);
  background: var(--dm-edition-accent);
  content: "";
}
.dm-edition-opening::after {
  position: absolute;
  z-index: -1;
  top: clamp(1.2rem, 4vw, 3rem);
  right: clamp(1rem, 3vw, 2.4rem);
  width: clamp(90px, 13vw, 180px);
  aspect-ratio: 1;
  border: 1px solid color-mix(in srgb, var(--dm-edition-accent) 42%, transparent);
  border-radius: 50%;
  content: "";
  opacity: .68;
}
.dm-edition-opening__number {
  align-self: start;
  color: var(--dm-edition-accent-text);
  font: 540 clamp(3.8rem, 8vw, 8rem)/.8 var(--dm-serif);
  letter-spacing: -.09em;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  opacity: .86;
}
.dm-edition-opening .dm-kicker { margin: 0 0 .9rem; color: var(--dm-edition-accent-text); }
.dm-edition-opening h2 {
  max-width: 820px;
  margin: 0;
  color: var(--dm-edition-deep);
  font: 540 clamp(2.7rem, 7vw, 6.8rem)/.88 var(--dm-serif);
  letter-spacing: -.065em;
  text-wrap: balance;
}
.dm-edition-opening__copy > p:last-child { max-width: 62ch; margin: 1.3rem 0 0; color: #504b43; font-size: clamp(1rem, 1.7vw, 1.22rem); line-height: 1.58; }
.dm-edition-opening__phases { position: relative; z-index: 1; margin: 0; padding: 0; border-top: 1px solid var(--dm-edition-line); list-style: none; }
.dm-edition-opening__phases li { display: grid; grid-template-columns: 2.3rem 1fr; gap: .6rem; align-items: center; min-height: 54px; border-bottom: 1px solid var(--dm-edition-line); color: var(--dm-edition-deep); font-size: .82rem; font-weight: 760; }
.dm-edition-opening__phases span { color: var(--dm-edition-accent-text); font: 650 .68rem/1 var(--dm-sans); letter-spacing: .08em; }

.dm-edition--evening .dm-edition-opening { color: #f7f0e4; background: radial-gradient(circle at 78% 24%, rgba(224,174,82,.23), transparent 29%), linear-gradient(135deg,#183a32,#132d28 63%,#0d211d); }
.dm-edition--evening .dm-edition-opening h2,
.dm-edition--evening .dm-edition-opening__phases li { color: #fbf2e4; }
.dm-edition--evening .dm-edition-opening__copy > p:last-child { color: #d8d2c5; }
.dm-edition--evening .dm-edition-opening__phases { border-color: rgba(255,255,255,.22); }
.dm-edition--evening .dm-edition-opening__phases li { border-color: rgba(255,255,255,.17); }
.dm-edition--evening .dm-edition-opening__number,
.dm-edition--evening .dm-edition-opening .dm-kicker,
.dm-edition--evening .dm-edition-opening__phases span { color: var(--dm-edition-accent); }
.dm-edition--field-guide .dm-edition-opening::after { border-radius: 0; transform: rotate(9deg); }
.dm-edition--workbook .dm-edition-opening,
.dm-edition--measuring .dm-edition-opening { background-image: linear-gradient(rgba(80,107,98,.09) 1px, transparent 1px), linear-gradient(90deg,rgba(80,107,98,.07) 1px,transparent 1px), radial-gradient(circle at 88% 6%,rgba(178,80,50,.15),transparent 23%); background-size: 32px 32px,32px 32px,auto; }
.dm-edition--documentary .dm-edition-opening { border-block-width: 7px; border-image: repeating-linear-gradient(90deg,var(--dm-edition-deep) 0 34px,transparent 34px 43px) 7; }
.dm-edition--day-study .dm-edition-opening { background-image: linear-gradient(90deg,rgba(255,244,209,.8),rgba(255,255,255,.36) 48%,rgba(44,57,54,.12)),url("../images/texture-eggshell-v1.webp"); }

/* The compact key separates architecture from the article's quick-summary copy. */
.dm-edition-key {
  width: 100%;
  margin: 0 0 clamp(2.5rem, 6vw, 4.5rem);
  padding: 1.1rem 0 1rem;
  border-block: 1px solid var(--dm-edition-line);
}
.dm-edition-key p { margin: 0; color: #5b554d; font-size: .88rem; line-height: 1.55; }
.dm-edition-key p span { display: block; margin-bottom: .25rem; color: var(--dm-edition-accent-text); font-size: .7rem; font-weight: 820; letter-spacing: .13em; text-transform: uppercase; }
.dm-edition-key ol { display: flex; flex-wrap: wrap; gap: .45rem 1.2rem; margin: .85rem 0 0; padding: 0; list-style: none; }
.dm-edition-key li { position: relative; padding-left: 1rem; color: var(--dm-edition-deep); font-size: .72rem; font-weight: 760; letter-spacing: .04em; text-transform: uppercase; }
.dm-edition-key li::before { position: absolute; top: .43em; left: 0; width: .45rem; height: 1px; background: var(--dm-edition-accent); content: ""; }

/* Real chapter structure. */
.dm-article-edition .dm-article-content { counter-reset: dm-edition-chapter; }
.dm-edition-chapter {
  position: relative;
  margin: 0 0 clamp(3rem, 7vw, 6rem) !important;
  padding-top: clamp(1rem, 2.4vw, 1.8rem);
  border-top: 1px solid var(--dm-edition-line);
}
.dm-edition-chapter__tab { display: flex; gap: .7rem; align-items: center; margin: 0 0 .8rem; color: var(--dm-edition-accent-text); font-size: .69rem; font-weight: 820; letter-spacing: .13em; text-transform: uppercase; }
.dm-edition-chapter__tab::after { width: min(90px, 14vw); height: 1px; background: currentColor; content: ""; opacity: .45; }
.dm-edition-chapter__tab span { font-family: var(--dm-sans); letter-spacing: .06em; opacity: .74; }
.dm-article-edition .dm-article-content .dm-edition-chapter > h2:first-of-type { max-width: 690px; margin: .4rem 0 .72em; color: var(--dm-edition-deep); }
.dm-article-edition .dm-article-content .dm-edition-chapter > p:first-of-type { font-size: 1.08em; }
.dm-edition-chapter:nth-child(even) .dm-edition-chapter__tab { justify-content: flex-end; }
.dm-edition-chapter:nth-child(4n+2) { border-top-style: dashed; }
.dm-edition-chapter:nth-child(4n+3) { border-top-color: color-mix(in srgb,var(--dm-edition-accent) 58%,transparent); }
.dm-edition--casebook .dm-edition-chapter { padding-left: clamp(.9rem,3vw,2.2rem); border-left: 3px solid color-mix(in srgb,var(--dm-edition-accent) 44%,transparent); }
.dm-edition--casebook .dm-edition-chapter__tab { margin-left: clamp(-2.1rem,-3vw,-1rem); }
.dm-edition--clinic .dm-edition-chapter:nth-child(4n+1),
.dm-edition--floor-clinic .dm-edition-chapter:nth-child(4n+1) { padding: clamp(1rem,3vw,2rem); background: linear-gradient(120deg,rgba(255,255,255,.58),color-mix(in srgb,var(--dm-edition-soft) 40%,transparent)); box-shadow: inset 4px 0 var(--dm-edition-accent); }
.dm-edition--field-guide .dm-edition-chapter { border-top-width: 3px; }
.dm-edition--field-guide .dm-edition-chapter:nth-child(5n+1) { --dm-edition-accent:#718065; --dm-edition-accent-text:#526047; }
.dm-edition--field-guide .dm-edition-chapter:nth-child(5n+2) { --dm-edition-accent:#b46438; --dm-edition-accent-text:#894226; }
.dm-edition--field-guide .dm-edition-chapter:nth-child(5n+3) { --dm-edition-accent:#4d514d; --dm-edition-accent-text:#454b45; }
.dm-edition--field-guide .dm-edition-chapter:nth-child(5n+4) { --dm-edition-accent:#b18435; --dm-edition-accent-text:#79541d; }
.dm-edition--field-guide .dm-edition-chapter:nth-child(5n) { --dm-edition-accent:#697363; --dm-edition-accent-text:#4b5547; }
.dm-edition--evening .dm-edition-chapter { padding-left: clamp(1rem,3vw,2.4rem); border-top: 0; border-left: 1px solid rgba(211,164,74,.55); }
.dm-edition--evening .dm-edition-chapter::before { position:absolute; top:1.2rem; left:-5px; width:9px; height:9px; border-radius:50%; background:var(--dm-edition-accent); box-shadow:0 0 0 7px rgba(224,174,82,.12); content:""; }
.dm-edition--job-file .dm-edition-chapter { border: 1px solid var(--dm-edition-line); padding: clamp(1.1rem,3vw,2rem); }
.dm-edition--job-file .dm-edition-chapter::after { position:absolute; top:-1px; right:1rem; width:54px; height:9px; background:var(--dm-edition-accent); content:""; }
.dm-edition--workbook .dm-edition-chapter,
.dm-edition--measuring .dm-edition-chapter { padding-left: clamp(1rem,3vw,2.6rem); background-image: linear-gradient(90deg,transparent 0 1.05rem,rgba(178,80,50,.18) 1.05rem calc(1.05rem + 1px),transparent calc(1.05rem + 1px)); }
.dm-edition--choreography .dm-edition-chapter__tab::after,
.dm-edition--cookalong .dm-edition-chapter__tab::after { width: min(180px,28vw); background: linear-gradient(90deg,var(--dm-edition-accent) 0 82%,transparent 82%); }
.dm-edition--diary .dm-edition-chapter,
.dm-edition--minute-diary .dm-edition-chapter { border-top-style: dotted; background-image: repeating-linear-gradient(0deg,transparent 0 31px,rgba(63,70,62,.055) 31px 32px); }
.dm-edition--documentary .dm-edition-chapter { border-top: 6px solid var(--dm-edition-deep); }
.dm-edition--documentary .dm-edition-chapter__tab { background:var(--dm-edition-deep); color:#fff; width:max-content; padding:.35rem .55rem; transform:translateY(-1.35rem); }
.dm-edition--layout-atlas .dm-edition-chapter:nth-child(3n+2),
.dm-edition--day-study .dm-edition-chapter:nth-child(3n+2) { margin-left: clamp(-1rem,-2vw,-.35rem)!important; padding-left:clamp(1rem,3vw,2.2rem); }

/* Photographic contact sheets: one calm visual moment, several usable views. */
.dm-edition-board {
  width: min(1060px, calc(100vw - 2rem));
  margin: clamp(2.4rem, 7vw, 5.5rem) 0 clamp(3rem, 8vw, 6.5rem) 50%;
  transform: translateX(-50%);
}
.dm-edition-board__image { position: relative; padding: clamp(.35rem,1vw,.7rem); background:#eee5d8; box-shadow:0 26px 70px rgba(39,35,28,.14); }
.dm-edition-board__image::after { position:absolute; inset:.35rem; border:1px solid rgba(39,35,28,.16); pointer-events:none; content:""; }
.dm-edition-board img { display:block; width:100%; height:auto; }
.dm-edition-board__key { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:0; margin:0; padding:0; border-bottom:1px solid var(--dm-edition-line); list-style:none; }
.dm-edition-board__key li { display:flex; gap:.48rem; align-items:center; min-height:50px; padding:.55rem .75rem; border-right:1px solid var(--dm-edition-line); color:var(--dm-edition-deep); font-size:.72rem; font-weight:720; line-height:1.2; }
.dm-edition-board__key li:last-child { border-right:0; }
.dm-edition-board__key span { color:var(--dm-edition-accent-text); font-size:.62rem; letter-spacing:.08em; }
.dm-edition-board figcaption { max-width:78ch; margin:.85rem 0 0; padding-left:.85rem; border-left:2px solid var(--dm-edition-accent); color:#5a554e; font-size:.82rem; line-height:1.55; }
.dm-edition-board figcaption strong { color:var(--dm-edition-deep); }
.dm-edition-board figcaption small { display:block; margin-top:.35rem; color:#514b43; font-size:.7rem; }

/* Code-native diagrams: their geometry changes with the relationship. */
.dm-edition-diagram {
  width: min(980px, calc(100vw - 2rem));
  margin: clamp(2.5rem, 7vw, 5.5rem) 0 clamp(3rem, 8vw, 6rem) 50%;
  padding: clamp(1.15rem, 3.5vw, 2.6rem);
  transform: translateX(-50%);
  border-block:1px solid var(--dm-edition-line);
  background:linear-gradient(120deg,rgba(255,255,255,.76),rgba(255,255,255,.2)),url("../images/texture-eggshell-v1.webp"),var(--dm-edition-paper);
  background-blend-mode:normal,soft-light,normal;
  box-shadow:0 22px 58px rgba(44,38,31,.08);
}
.dm-edition-diagram__head { display:grid; grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr); gap:.35rem clamp(1rem,4vw,3rem); align-items:end; margin-bottom:clamp(1.3rem,4vw,2.5rem); }
.dm-edition-diagram__head .dm-kicker { grid-column:1; margin:0; color:var(--dm-edition-accent-text); }
.dm-edition-diagram__head h3 { grid-column:1; margin:.25rem 0 0!important; color:var(--dm-edition-deep)!important; font-size:clamp(1.9rem,4vw,3.4rem)!important; line-height:.98!important; }
.dm-edition-diagram__head > p:last-child { grid-column:2; grid-row:1/3; max-width:38ch; margin:0; color:#5c574f; line-height:1.55; }
.dm-edition-diagram__plot { position:relative; display:grid; gap:1px; margin:0!important; padding:0!important; list-style:none!important; background:var(--dm-edition-line); }
.dm-edition-diagram__plot > li { position:relative; display:grid; grid-template-columns:2.1rem minmax(80px,.65fr) minmax(0,1.35fr); gap:.75rem; align-items:center; min-height:88px; margin:0!important; padding:.8rem; background:rgba(250,247,239,.94); }
.dm-edition-diagram__mark { color:var(--dm-edition-accent-text); font-size:.62rem; font-weight:800; letter-spacing:.08em; }
.dm-edition-diagram__shape { position:relative; display:block; width:100%; min-width:78px; height:48px; }
.dm-edition-diagram__copy { display:grid; grid-template-columns:minmax(90px,.7fr) minmax(100px,.8fr) minmax(130px,1.2fr); gap:.55rem 1rem; align-items:baseline; }
.dm-edition-diagram__copy strong { color:var(--dm-edition-deep); font-size:.82rem; }
.dm-edition-diagram__copy em { color:var(--dm-edition-accent-text); font-size:.74rem; font-style:normal; font-weight:780; }
.dm-edition-diagram__copy small { color:#655f56; font-size:.74rem; line-height:1.4; }

/* Route and timeline: a directional line with distinct stops. */
.dm-edition-diagram--route .dm-edition-diagram__plot,
.dm-edition-diagram--timeline .dm-edition-diagram__plot { grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); gap:0; background:transparent; }
.dm-edition-diagram--route .dm-edition-diagram__plot::before,
.dm-edition-diagram--timeline .dm-edition-diagram__plot::before { position:absolute; z-index:1; top:30px; right:8%; left:8%; height:2px; background:var(--dm-edition-accent); content:""; opacity:.5; }
.dm-edition-diagram--route .dm-edition-diagram__plot > li,
.dm-edition-diagram--timeline .dm-edition-diagram__plot > li { z-index:2; display:block; min-height:170px; padding:.45rem .75rem; background:transparent; text-align:left; }
.dm-edition-diagram--route .dm-edition-diagram__mark,
.dm-edition-diagram--timeline .dm-edition-diagram__mark { display:grid; width:38px; height:38px; place-items:center; margin:4px 0 1rem; border:2px solid var(--dm-edition-accent); border-radius:50%; background:var(--dm-edition-paper); }
.dm-edition-diagram--route .dm-edition-diagram__shape,
.dm-edition-diagram--timeline .dm-edition-diagram__shape { display:none; }
.dm-edition-diagram--route .dm-edition-diagram__copy,
.dm-edition-diagram--timeline .dm-edition-diagram__copy { display:block; }
.dm-edition-diagram--route .dm-edition-diagram__copy > *,
.dm-edition-diagram--timeline .dm-edition-diagram__copy > * { display:block; margin:.18rem 0; }

/* Plans: miniature room boundaries with explicit, semantic geometry.
   Each dm-plan token describes the relationship named in the adjacent copy;
   position in the list never determines what a plan means. */
.dm-edition-diagram--plans .dm-edition-diagram__plot { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:1rem; background:transparent; }
.dm-edition-diagram--plans .dm-edition-diagram__plot > li { display:block; min-height:280px; padding:1rem; border:1px solid var(--dm-edition-line); background:rgba(251,248,240,.82); }
.dm-edition-diagram--plans .dm-edition-diagram__mark { display:none; }
.dm-edition-diagram--plans .dm-edition-diagram__shape {
  width:100%; height:140px; margin-bottom:1rem; border:2px solid var(--dm-edition-deep); overflow:hidden;
  background:linear-gradient(90deg,transparent 49%,rgba(36,62,54,.08) 50%,transparent 51%),linear-gradient(transparent 49%,rgba(36,62,54,.08) 50%,transparent 51%); background-size:40px 40px;
}
.dm-edition-diagram--plans .dm-edition-diagram__shape::before,
.dm-edition-diagram--plans .dm-edition-diagram__shape b { position:absolute; z-index:1; display:block; border:1px solid var(--dm-edition-deep); content:""; }
.dm-edition-diagram--plans .dm-edition-diagram__shape::before {
  top:var(--dm-plan-mass-y,56%); left:var(--dm-plan-mass-x,56%); width:var(--dm-plan-mass-w,34%); height:var(--dm-plan-mass-h,28%); border-radius:var(--dm-plan-mass-r,2px); background:color-mix(in srgb,var(--dm-edition-soft) 68%,white); transform:rotate(var(--dm-plan-mass-rotate,0deg));
}
.dm-edition-diagram--plans .dm-edition-diagram__shape b {
  top:var(--dm-plan-secondary-y,16%); left:var(--dm-plan-secondary-x,15%); width:var(--dm-plan-secondary-w,23%); height:var(--dm-plan-secondary-h,18%); border-radius:var(--dm-plan-secondary-r,2px); background:rgba(255,255,255,.72); transform:rotate(var(--dm-plan-secondary-rotate,0deg));
}
.dm-edition-diagram--plans .dm-edition-diagram__shape::after {
  position:absolute; z-index:2; top:var(--dm-plan-feature-y,8%); left:var(--dm-plan-feature-x,8%); width:var(--dm-plan-feature-w,0); height:var(--dm-plan-feature-h,0); border-top:var(--dm-plan-feature-border-top,var(--dm-plan-feature-border,0)); border-right:var(--dm-plan-feature-border-right,var(--dm-plan-feature-border,0)); border-bottom:var(--dm-plan-feature-border-bottom,var(--dm-plan-feature-border,0)); border-left:var(--dm-plan-feature-border-left,var(--dm-plan-feature-border,0)); border-radius:var(--dm-plan-feature-r,0); background:var(--dm-plan-feature-fill,transparent); transform:rotate(var(--dm-plan-feature-rotate,0deg)); content:"";
}
.dm-edition-diagram--plans .dm-edition-diagram__shape i {
  position:absolute; z-index:3; top:var(--dm-plan-route-y,17%); left:var(--dm-plan-route-x,18%); width:2px; height:var(--dm-plan-route-h,68%); background:repeating-linear-gradient(180deg,var(--dm-edition-accent) 0 8px,transparent 8px 12px); transform:rotate(var(--dm-plan-route-rotate,-28deg)); transform-origin:top;
}
.dm-edition-diagram--plans .dm-edition-diagram__shape i::before { position:absolute; top:-4px; left:-3px; width:8px; height:8px; border:2px solid var(--dm-edition-accent); border-radius:50%; background:var(--dm-edition-paper); content:""; }
.dm-edition-diagram--plans .dm-edition-diagram__shape i::after { position:absolute; right:-4px; bottom:0; width:8px; height:8px; border-right:2px solid var(--dm-edition-accent); border-bottom:2px solid var(--dm-edition-accent); transform:rotate(45deg); content:""; }

/* Small-room clinic. */
.dm-plan--doorway-diagonal { --dm-plan-mass-x:55%; --dm-plan-mass-y:59%; --dm-plan-mass-w:35%; --dm-plan-mass-h:25%; --dm-plan-secondary-x:60%; --dm-plan-secondary-y:16%; --dm-plan-secondary-w:21%; --dm-plan-secondary-h:15%; --dm-plan-feature-x:8%; --dm-plan-feature-y:-2px; --dm-plan-feature-w:43px; --dm-plan-feature-h:43px; --dm-plan-feature-r:0 0 43px 0; --dm-plan-feature-border-right:2px solid var(--dm-edition-accent); --dm-plan-feature-border-bottom:2px solid var(--dm-edition-accent); --dm-plan-route-x:18%; --dm-plan-route-y:18%; --dm-plan-route-h:73%; --dm-plan-route-rotate:-31deg; }
.dm-plan--conversation-cluster { --dm-plan-mass-x:18%; --dm-plan-mass-y:18%; --dm-plan-mass-w:64%; --dm-plan-mass-h:17%; --dm-plan-secondary-x:22%; --dm-plan-secondary-y:67%; --dm-plan-secondary-w:56%; --dm-plan-secondary-h:16%; --dm-plan-feature-x:34%; --dm-plan-feature-y:39%; --dm-plan-feature-w:32%; --dm-plan-feature-h:22%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-feature-fill:color-mix(in srgb,var(--dm-edition-soft) 28%,transparent); --dm-plan-route-x:10%; --dm-plan-route-y:18%; --dm-plan-route-h:65%; --dm-plan-route-rotate:0deg; }
.dm-plan--rug-bridge { --dm-plan-mass-x:24%; --dm-plan-mass-y:31%; --dm-plan-mass-w:52%; --dm-plan-mass-h:44%; --dm-plan-secondary-x:14%; --dm-plan-secondary-y:14%; --dm-plan-secondary-w:72%; --dm-plan-secondary-h:17%; --dm-plan-feature-x:29%; --dm-plan-feature-y:66%; --dm-plan-feature-w:42%; --dm-plan-feature-h:17%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:88%; --dm-plan-route-y:16%; --dm-plan-route-h:68%; --dm-plan-route-rotate:0deg; }

/* Lighting positions. */
.dm-plan--paired-light-pools { --dm-plan-mass-x:14%; --dm-plan-mass-y:31%; --dm-plan-mass-w:27%; --dm-plan-mass-h:39%; --dm-plan-mass-r:50%; --dm-plan-secondary-x:59%; --dm-plan-secondary-y:31%; --dm-plan-secondary-w:27%; --dm-plan-secondary-h:39%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:42%; --dm-plan-feature-y:43%; --dm-plan-feature-w:16%; --dm-plan-feature-h:22%; --dm-plan-feature-r:50%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:16%; --dm-plan-route-y:87%; --dm-plan-route-h:68%; --dm-plan-route-rotate:-90deg; }
.dm-plan--reading-corner { --dm-plan-mass-x:57%; --dm-plan-mass-y:48%; --dm-plan-mass-w:29%; --dm-plan-mass-h:36%; --dm-plan-mass-r:38% 38% 10% 10%; --dm-plan-secondary-x:75%; --dm-plan-secondary-y:18%; --dm-plan-secondary-w:8%; --dm-plan-secondary-h:9%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:12%; --dm-plan-feature-y:0; --dm-plan-feature-w:50%; --dm-plan-feature-h:4px; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:18%; --dm-plan-route-y:22%; --dm-plan-route-h:72%; --dm-plan-route-rotate:-18deg; }
.dm-plan--screen-side-light { --dm-plan-mass-x:24%; --dm-plan-mass-y:7%; --dm-plan-mass-w:52%; --dm-plan-mass-h:9%; --dm-plan-secondary-x:15%; --dm-plan-secondary-y:58%; --dm-plan-secondary-w:70%; --dm-plan-secondary-h:24%; --dm-plan-feature-x:11%; --dm-plan-feature-y:27%; --dm-plan-feature-w:10%; --dm-plan-feature-h:18%; --dm-plan-feature-r:50% 50% 2px 2px; --dm-plan-feature-fill:color-mix(in srgb,var(--dm-edition-accent) 72%,white); --dm-plan-route-x:88%; --dm-plan-route-y:19%; --dm-plan-route-h:61%; --dm-plan-route-rotate:0deg; }
.dm-plan--paired-light-pools .dm-edition-diagram__shape::before,
.dm-plan--paired-light-pools .dm-edition-diagram__shape b { border-color:color-mix(in srgb,var(--dm-edition-accent) 62%,transparent); background:radial-gradient(circle,rgba(255,240,181,.92),rgba(225,173,77,.18) 58%,transparent 72%); }

/* Controlled DIY work zone. */
.dm-plan--work-face { --dm-plan-mass-x:8%; --dm-plan-mass-y:9%; --dm-plan-mass-w:84%; --dm-plan-mass-h:18%; --dm-plan-secondary-x:12%; --dm-plan-secondary-y:53%; --dm-plan-secondary-w:28%; --dm-plan-secondary-h:25%; --dm-plan-feature-x:47%; --dm-plan-feature-y:48%; --dm-plan-feature-w:37%; --dm-plan-feature-h:33%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:88%; --dm-plan-route-y:29%; --dm-plan-route-h:59%; --dm-plan-route-rotate:0deg; }
.dm-plan--tool-landing { --dm-plan-mass-x:12%; --dm-plan-mass-y:50%; --dm-plan-mass-w:34%; --dm-plan-mass-h:28%; --dm-plan-secondary-x:55%; --dm-plan-secondary-y:52%; --dm-plan-secondary-w:30%; --dm-plan-secondary-h:18%; --dm-plan-feature-x:18%; --dm-plan-feature-y:14%; --dm-plan-feature-w:62%; --dm-plan-feature-h:15%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:89%; --dm-plan-route-y:14%; --dm-plan-route-h:74%; --dm-plan-route-rotate:0deg; }
.dm-plan--clean-exit { --dm-plan-mass-x:9%; --dm-plan-mass-y:13%; --dm-plan-mass-w:29%; --dm-plan-mass-h:21%; --dm-plan-secondary-x:63%; --dm-plan-secondary-y:59%; --dm-plan-secondary-w:28%; --dm-plan-secondary-h:23%; --dm-plan-feature-x:42%; --dm-plan-feature-y:38%; --dm-plan-feature-w:17%; --dm-plan-feature-h:17%; --dm-plan-feature-border:1px dashed var(--dm-edition-deep); --dm-plan-route-x:17%; --dm-plan-route-y:28%; --dm-plan-route-h:91%; --dm-plan-route-rotate:-48deg; }
.dm-plan--work-face .dm-edition-diagram__shape::after,
.dm-plan--clean-exit .dm-edition-diagram__shape::after { background:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--dm-edition-accent) 16%,transparent) 7px 10px); }

/* Rug footprints: the textile and seat overlap is the evidence. */
.dm-plan--all-legs-rug { --dm-plan-mass-x:14%; --dm-plan-mass-y:16%; --dm-plan-mass-w:72%; --dm-plan-mass-h:68%; --dm-plan-secondary-x:22%; --dm-plan-secondary-y:24%; --dm-plan-secondary-w:56%; --dm-plan-secondary-h:17%; --dm-plan-feature-x:25%; --dm-plan-feature-y:64%; --dm-plan-feature-w:50%; --dm-plan-feature-h:14%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:90%; --dm-plan-route-y:16%; --dm-plan-route-h:68%; --dm-plan-route-rotate:0deg; }
.dm-plan--front-legs-rug { --dm-plan-mass-x:18%; --dm-plan-mass-y:39%; --dm-plan-mass-w:64%; --dm-plan-mass-h:47%; --dm-plan-secondary-x:14%; --dm-plan-secondary-y:18%; --dm-plan-secondary-w:72%; --dm-plan-secondary-h:28%; --dm-plan-feature-x:64%; --dm-plan-feature-y:62%; --dm-plan-feature-w:19%; --dm-plan-feature-h:18%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:9%; --dm-plan-route-y:18%; --dm-plan-route-h:67%; --dm-plan-route-rotate:0deg; }
.dm-plan--floating-rug { --dm-plan-mass-x:31%; --dm-plan-mass-y:35%; --dm-plan-mass-w:38%; --dm-plan-mass-h:33%; --dm-plan-secondary-x:14%; --dm-plan-secondary-y:10%; --dm-plan-secondary-w:72%; --dm-plan-secondary-h:18%; --dm-plan-feature-x:10%; --dm-plan-feature-y:70%; --dm-plan-feature-w:18%; --dm-plan-feature-h:14%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:87%; --dm-plan-route-y:18%; --dm-plan-route-h:65%; --dm-plan-route-rotate:0deg; }
.dm-plan--all-legs-rug .dm-edition-diagram__shape::before,
.dm-plan--front-legs-rug .dm-edition-diagram__shape::before,
.dm-plan--floating-rug .dm-edition-diagram__shape::before,
.dm-plan--rug-bridge .dm-edition-diagram__shape::before { background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--dm-edition-soft) 72%,white) 0 8px,rgba(255,255,255,.7) 8px 16px); }

/* Entry boundaries. */
.dm-plan--wall-landing { --dm-plan-mass-x:74%; --dm-plan-mass-y:13%; --dm-plan-mass-w:16%; --dm-plan-mass-h:73%; --dm-plan-secondary-x:76%; --dm-plan-secondary-y:22%; --dm-plan-secondary-w:11%; --dm-plan-secondary-h:14%; --dm-plan-feature-x:67%; --dm-plan-feature-y:8%; --dm-plan-feature-w:2px; --dm-plan-feature-h:84%; --dm-plan-feature-fill:var(--dm-edition-deep); --dm-plan-route-x:21%; --dm-plan-route-y:11%; --dm-plan-route-h:77%; --dm-plan-route-rotate:0deg; }
.dm-plan--behind-door-hooks { --dm-plan-mass-x:11%; --dm-plan-mass-y:12%; --dm-plan-mass-w:9%; --dm-plan-mass-h:43%; --dm-plan-secondary-x:11%; --dm-plan-secondary-y:66%; --dm-plan-secondary-w:22%; --dm-plan-secondary-h:16%; --dm-plan-feature-x:8%; --dm-plan-feature-y:-2px; --dm-plan-feature-w:60px; --dm-plan-feature-h:60px; --dm-plan-feature-r:0 0 60px 0; --dm-plan-feature-border-right:2px solid var(--dm-edition-accent); --dm-plan-feature-border-bottom:2px solid var(--dm-edition-accent); --dm-plan-route-x:50%; --dm-plan-route-y:18%; --dm-plan-route-h:63%; --dm-plan-route-rotate:0deg; }
.dm-plan--room-edge-zone { --dm-plan-mass-x:18%; --dm-plan-mass-y:45%; --dm-plan-mass-w:58%; --dm-plan-mass-h:37%; --dm-plan-secondary-x:74%; --dm-plan-secondary-y:13%; --dm-plan-secondary-w:14%; --dm-plan-secondary-h:64%; --dm-plan-feature-x:68%; --dm-plan-feature-y:8%; --dm-plan-feature-w:2px; --dm-plan-feature-h:84%; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:12%; --dm-plan-route-y:14%; --dm-plan-route-h:71%; --dm-plan-route-rotate:0deg; }

/* Bedroom shapes and access routes. */
.dm-plan--narrow-room-route { --dm-plan-mass-x:54%; --dm-plan-mass-y:12%; --dm-plan-mass-w:34%; --dm-plan-mass-h:75%; --dm-plan-secondary-x:12%; --dm-plan-secondary-y:10%; --dm-plan-secondary-w:16%; --dm-plan-secondary-h:18%; --dm-plan-feature-x:8%; --dm-plan-feature-y:calc(100% - 41px); --dm-plan-feature-w:42px; --dm-plan-feature-h:42px; --dm-plan-feature-r:0 42px 0 0; --dm-plan-feature-border-top:2px solid var(--dm-edition-accent); --dm-plan-feature-border-right:2px solid var(--dm-edition-accent); --dm-plan-route-x:39%; --dm-plan-route-y:9%; --dm-plan-route-h:79%; --dm-plan-route-rotate:0deg; }
.dm-plan--square-room-access { --dm-plan-mass-x:29%; --dm-plan-mass-y:27%; --dm-plan-mass-w:43%; --dm-plan-mass-h:46%; --dm-plan-secondary-x:8%; --dm-plan-secondary-y:37%; --dm-plan-secondary-w:12%; --dm-plan-secondary-h:27%; --dm-plan-feature-x:8%; --dm-plan-feature-y:-2px; --dm-plan-feature-w:40px; --dm-plan-feature-h:40px; --dm-plan-feature-r:0 0 40px 0; --dm-plan-feature-border-right:2px solid var(--dm-edition-accent); --dm-plan-feature-border-bottom:2px solid var(--dm-edition-accent); --dm-plan-route-x:22%; --dm-plan-route-y:12%; --dm-plan-route-h:76%; --dm-plan-route-rotate:0deg; }
.dm-plan--offset-door-route { --dm-plan-mass-x:46%; --dm-plan-mass-y:20%; --dm-plan-mass-w:38%; --dm-plan-mass-h:59%; --dm-plan-secondary-x:11%; --dm-plan-secondary-y:65%; --dm-plan-secondary-w:18%; --dm-plan-secondary-h:16%; --dm-plan-feature-x:8%; --dm-plan-feature-y:calc(100% - 41px); --dm-plan-feature-w:42px; --dm-plan-feature-h:42px; --dm-plan-feature-r:0 42px 0 0; --dm-plan-feature-border-top:2px solid var(--dm-edition-accent); --dm-plan-feature-border-right:2px solid var(--dm-edition-accent); --dm-plan-route-x:16%; --dm-plan-route-y:79%; --dm-plan-route-h:71%; --dm-plan-route-rotate:-133deg; }

/* Bathroom zones. */
.dm-plan--door-arc { --dm-plan-mass-x:52%; --dm-plan-mass-y:53%; --dm-plan-mass-w:37%; --dm-plan-mass-h:29%; --dm-plan-secondary-x:70%; --dm-plan-secondary-y:10%; --dm-plan-secondary-w:15%; --dm-plan-secondary-h:18%; --dm-plan-feature-x:8%; --dm-plan-feature-y:-2px; --dm-plan-feature-w:72px; --dm-plan-feature-h:72px; --dm-plan-feature-r:0 0 72px 0; --dm-plan-feature-border-right:2px solid var(--dm-edition-accent); --dm-plan-feature-border-bottom:2px solid var(--dm-edition-accent); --dm-plan-route-x:16%; --dm-plan-route-y:17%; --dm-plan-route-h:64%; --dm-plan-route-rotate:-31deg; }
.dm-plan--standing-zone { --dm-plan-mass-x:28%; --dm-plan-mass-y:22%; --dm-plan-mass-w:44%; --dm-plan-mass-h:56%; --dm-plan-mass-r:50%; --dm-plan-secondary-x:12%; --dm-plan-secondary-y:7%; --dm-plan-secondary-w:76%; --dm-plan-secondary-h:16%; --dm-plan-feature-x:34%; --dm-plan-feature-y:31%; --dm-plan-feature-w:32%; --dm-plan-feature-h:38%; --dm-plan-feature-r:50%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:15%; --dm-plan-route-y:27%; --dm-plan-route-h:57%; --dm-plan-route-rotate:0deg; }
.dm-plan--wet-edge { --dm-plan-mass-x:7%; --dm-plan-mass-y:7%; --dm-plan-mass-w:86%; --dm-plan-mass-h:30%; --dm-plan-secondary-x:70%; --dm-plan-secondary-y:11%; --dm-plan-secondary-w:14%; --dm-plan-secondary-h:17%; --dm-plan-feature-x:8%; --dm-plan-feature-y:43%; --dm-plan-feature-w:84%; --dm-plan-feature-h:2px; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:25%; --dm-plan-route-y:49%; --dm-plan-route-h:37%; --dm-plan-route-rotate:0deg; }
.dm-plan--cleaning-route { --dm-plan-mass-x:8%; --dm-plan-mass-y:9%; --dm-plan-mass-w:25%; --dm-plan-mass-h:23%; --dm-plan-secondary-x:67%; --dm-plan-secondary-y:67%; --dm-plan-secondary-w:25%; --dm-plan-secondary-h:23%; --dm-plan-feature-x:34%; --dm-plan-feature-y:31%; --dm-plan-feature-w:32%; --dm-plan-feature-h:38%; --dm-plan-feature-border:1px dashed var(--dm-edition-deep); --dm-plan-route-x:16%; --dm-plan-route-y:17%; --dm-plan-route-h:89%; --dm-plan-route-rotate:-38deg; }
.dm-plan--standing-zone .dm-edition-diagram__shape::before { border-style:dashed; background:color-mix(in srgb,var(--dm-edition-soft) 28%,transparent); }
.dm-plan--wet-edge .dm-edition-diagram__shape::before { background:repeating-linear-gradient(135deg,rgba(83,122,112,.32) 0 7px,rgba(255,255,255,.56) 7px 14px); }

/* Machine-led laundry layouts. */
.dm-plan--front-load-pair { --dm-plan-mass-x:11%; --dm-plan-mass-y:25%; --dm-plan-mass-w:33%; --dm-plan-mass-h:47%; --dm-plan-mass-r:3px; --dm-plan-secondary-x:56%; --dm-plan-secondary-y:25%; --dm-plan-secondary-w:33%; --dm-plan-secondary-h:47%; --dm-plan-secondary-r:3px; --dm-plan-feature-x:7%; --dm-plan-feature-y:18%; --dm-plan-feature-w:86%; --dm-plan-feature-h:62%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:50%; --dm-plan-route-y:8%; --dm-plan-route-h:78%; --dm-plan-route-rotate:0deg; }
.dm-plan--top-loader { --dm-plan-mass-x:26%; --dm-plan-mass-y:31%; --dm-plan-mass-w:48%; --dm-plan-mass-h:45%; --dm-plan-secondary-x:26%; --dm-plan-secondary-y:12%; --dm-plan-secondary-w:48%; --dm-plan-secondary-h:16%; --dm-plan-secondary-rotate:-5deg; --dm-plan-feature-x:20%; --dm-plan-feature-y:7%; --dm-plan-feature-w:60%; --dm-plan-feature-h:75%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:86%; --dm-plan-route-y:15%; --dm-plan-route-h:69%; --dm-plan-route-rotate:0deg; }
.dm-plan--laundry-cupboard { --dm-plan-mass-x:17%; --dm-plan-mass-y:18%; --dm-plan-mass-w:27%; --dm-plan-mass-h:53%; --dm-plan-secondary-x:56%; --dm-plan-secondary-y:18%; --dm-plan-secondary-w:27%; --dm-plan-secondary-h:53%; --dm-plan-feature-x:9%; --dm-plan-feature-y:8%; --dm-plan-feature-w:82%; --dm-plan-feature-h:78%; --dm-plan-feature-border:2px solid var(--dm-edition-deep); --dm-plan-route-x:50%; --dm-plan-route-y:10%; --dm-plan-route-h:76%; --dm-plan-route-rotate:0deg; }
.dm-plan--front-load-pair .dm-edition-diagram__shape::before,
.dm-plan--front-load-pair .dm-edition-diagram__shape b,
.dm-plan--laundry-cupboard .dm-edition-diagram__shape::before,
.dm-plan--laundry-cupboard .dm-edition-diagram__shape b { background:radial-gradient(circle at 50% 55%,transparent 0 22%,var(--dm-edition-deep) 23% 25%,color-mix(in srgb,var(--dm-edition-soft) 65%,white) 26%); }

/* Patio and balcony activity footprints. */
.dm-plan--coffee-pair { --dm-plan-mass-x:13%; --dm-plan-mass-y:49%; --dm-plan-mass-w:25%; --dm-plan-mass-h:29%; --dm-plan-mass-r:50%; --dm-plan-secondary-x:62%; --dm-plan-secondary-y:49%; --dm-plan-secondary-w:25%; --dm-plan-secondary-h:29%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:42%; --dm-plan-feature-y:44%; --dm-plan-feature-w:16%; --dm-plan-feature-h:20%; --dm-plan-feature-r:50%; --dm-plan-feature-border:1px solid var(--dm-edition-deep); --dm-plan-route-x:14%; --dm-plan-route-y:18%; --dm-plan-route-h:74%; --dm-plan-route-rotate:-57deg; }
.dm-plan--solo-lounge { --dm-plan-mass-x:50%; --dm-plan-mass-y:36%; --dm-plan-mass-w:35%; --dm-plan-mass-h:45%; --dm-plan-mass-r:36% 36% 8% 8%; --dm-plan-secondary-x:63%; --dm-plan-secondary-y:14%; --dm-plan-secondary-w:8%; --dm-plan-secondary-h:14%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:32%; --dm-plan-feature-y:28%; --dm-plan-feature-w:58%; --dm-plan-feature-h:60%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:14%; --dm-plan-route-y:16%; --dm-plan-route-h:70%; --dm-plan-route-rotate:-15deg; }
.dm-plan--bench-edge { --dm-plan-mass-x:10%; --dm-plan-mass-y:10%; --dm-plan-mass-w:80%; --dm-plan-mass-h:18%; --dm-plan-secondary-x:18%; --dm-plan-secondary-y:38%; --dm-plan-secondary-w:22%; --dm-plan-secondary-h:23%; --dm-plan-feature-x:8%; --dm-plan-feature-y:82%; --dm-plan-feature-w:84%; --dm-plan-feature-h:2px; --dm-plan-feature-fill:var(--dm-edition-deep); --dm-plan-route-x:13%; --dm-plan-route-y:84%; --dm-plan-route-h:74%; --dm-plan-route-rotate:-90deg; }
.dm-plan--foldaway { --dm-plan-mass-x:78%; --dm-plan-mass-y:14%; --dm-plan-mass-w:10%; --dm-plan-mass-h:46%; --dm-plan-secondary-x:74%; --dm-plan-secondary-y:65%; --dm-plan-secondary-w:15%; --dm-plan-secondary-h:10%; --dm-plan-feature-x:15%; --dm-plan-feature-y:14%; --dm-plan-feature-w:51%; --dm-plan-feature-h:66%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:23%; --dm-plan-route-y:20%; --dm-plan-route-h:57%; --dm-plan-route-rotate:0deg; }
.dm-plan--work-perch { --dm-plan-mass-x:48%; --dm-plan-mass-y:12%; --dm-plan-mass-w:40%; --dm-plan-mass-h:17%; --dm-plan-secondary-x:59%; --dm-plan-secondary-y:39%; --dm-plan-secondary-w:20%; --dm-plan-secondary-h:23%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:46%; --dm-plan-feature-y:8%; --dm-plan-feature-w:44%; --dm-plan-feature-h:59%; --dm-plan-feature-border:1px dashed var(--dm-edition-accent); --dm-plan-route-x:16%; --dm-plan-route-y:16%; --dm-plan-route-h:68%; --dm-plan-route-rotate:0deg; }
.dm-plan--planting-strip { --dm-plan-mass-x:10%; --dm-plan-mass-y:8%; --dm-plan-mass-w:80%; --dm-plan-mass-h:17%; --dm-plan-secondary-x:12%; --dm-plan-secondary-y:39%; --dm-plan-secondary-w:23%; --dm-plan-secondary-h:29%; --dm-plan-secondary-r:35% 35% 6% 6%; --dm-plan-feature-x:8%; --dm-plan-feature-y:85%; --dm-plan-feature-w:84%; --dm-plan-feature-h:2px; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:48%; --dm-plan-route-y:34%; --dm-plan-route-h:49%; --dm-plan-route-rotate:0deg; }
.dm-plan--foldaway .dm-edition-diagram__shape::before { border-style:dashed; background:transparent; }
.dm-plan--planting-strip .dm-edition-diagram__shape::before { background:radial-gradient(circle at 9% 50%,#6e8061 0 5px,transparent 6px),radial-gradient(circle at 29% 45%,#8b985e 0 6px,transparent 7px),radial-gradient(circle at 51% 55%,#55755f 0 5px,transparent 6px),radial-gradient(circle at 73% 42%,#78946b 0 6px,transparent 7px),radial-gradient(circle at 91% 53%,#55755f 0 5px,transparent 6px),color-mix(in srgb,var(--dm-edition-soft) 50%,white); }

/* Reading nook positions relative to the fixed window line. */
.dm-plan--beside-window { --dm-plan-mass-x:64%; --dm-plan-mass-y:33%; --dm-plan-mass-w:25%; --dm-plan-mass-h:36%; --dm-plan-mass-r:35% 35% 8% 8%; --dm-plan-secondary-x:46%; --dm-plan-secondary-y:50%; --dm-plan-secondary-w:14%; --dm-plan-secondary-h:17%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:12%; --dm-plan-feature-y:0; --dm-plan-feature-w:61%; --dm-plan-feature-h:4px; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:17%; --dm-plan-route-y:20%; --dm-plan-route-h:66%; --dm-plan-route-rotate:0deg; }
.dm-plan--under-window { --dm-plan-mass-x:28%; --dm-plan-mass-y:24%; --dm-plan-mass-w:44%; --dm-plan-mass-h:32%; --dm-plan-mass-r:30% 30% 7% 7%; --dm-plan-secondary-x:78%; --dm-plan-secondary-y:55%; --dm-plan-secondary-w:12%; --dm-plan-secondary-h:16%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:22%; --dm-plan-feature-y:0; --dm-plan-feature-w:56%; --dm-plan-feature-h:4px; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:15%; --dm-plan-route-y:22%; --dm-plan-route-h:61%; --dm-plan-route-rotate:0deg; }
.dm-plan--away-from-window { --dm-plan-mass-x:61%; --dm-plan-mass-y:54%; --dm-plan-mass-w:26%; --dm-plan-mass-h:32%; --dm-plan-mass-r:35% 35% 8% 8%; --dm-plan-mass-rotate:-12deg; --dm-plan-secondary-x:45%; --dm-plan-secondary-y:66%; --dm-plan-secondary-w:13%; --dm-plan-secondary-h:16%; --dm-plan-secondary-r:50%; --dm-plan-feature-x:10%; --dm-plan-feature-y:0; --dm-plan-feature-w:46%; --dm-plan-feature-h:4px; --dm-plan-feature-fill:var(--dm-edition-accent); --dm-plan-route-x:13%; --dm-plan-route-y:22%; --dm-plan-route-h:78%; --dm-plan-route-rotate:-43deg; }

.dm-edition-diagram--plans .dm-edition-diagram__copy { display:block; }
.dm-edition-diagram--plans .dm-edition-diagram__copy > * { display:block; margin:.22rem 0; }

/* Layers: relative area is the message. */
.dm-edition-diagram--layers .dm-edition-diagram__shape { display:block; width:var(--dm-edition-size); height:42px; border-left:5px solid var(--dm-edition-accent); background:color-mix(in srgb,var(--dm-edition-soft) 72%,white); }

/* Scale: the visible bar is the footprint envelope. */
.dm-edition-diagram--scale .dm-edition-diagram__shape { width:var(--dm-edition-size); height:38px; border:1px solid var(--dm-edition-deep); background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--dm-edition-soft) 78%,white) 0 14px,rgba(255,255,255,.74) 14px 28px); }
.dm-edition-diagram--scale .dm-edition-diagram__shape::after { position:absolute; top:-5px; right:-2px; width:1px; height:48px; background:var(--dm-edition-accent); content:""; }

/* Elevation: vertical measurement bands. */
.dm-edition-diagram--elevation .dm-edition-diagram__plot { padding-left:3rem!important; background:transparent; }
.dm-edition-diagram--elevation .dm-edition-diagram__plot::before { position:absolute; top:0; bottom:0; left:1.2rem; width:1px; background:var(--dm-edition-accent); content:""; }
.dm-edition-diagram--elevation .dm-edition-diagram__plot > li { grid-template-columns:2.1rem minmax(70px,.5fr) 1.5fr; border-bottom:1px solid var(--dm-edition-line); background:transparent; }
.dm-edition-diagram--elevation .dm-edition-diagram__plot > li::before { position:absolute; top:50%; left:-1.8rem; width:1.2rem; height:1px; background:var(--dm-edition-accent); content:""; }
.dm-edition-diagram--elevation .dm-edition-diagram__shape { border-bottom:2px solid var(--dm-edition-deep); }
.dm-edition-diagram--elevation .dm-edition-diagram__shape::after { position:absolute; right:12%; bottom:0; left:12%; height:26px; border-inline:1px solid var(--dm-edition-deep); content:""; }

/* Compare: two opposing fields. */
.dm-edition-diagram--compare .dm-edition-diagram__plot { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; background:transparent; }
.dm-edition-diagram--compare .dm-edition-diagram__plot > li { display:block; min-height:250px; border:1px solid var(--dm-edition-line); }
.dm-edition-diagram--compare .dm-edition-diagram__mark { display:inline-grid; width:32px; height:32px; place-items:center; border-radius:50%; background:var(--dm-edition-accent-text); color:white; }
.dm-edition-diagram--compare .dm-edition-diagram__shape { height:95px; margin:.8rem 0; border:1px solid var(--dm-edition-deep); }
.dm-edition-diagram--compare .dm-edition-diagram__plot > li:first-child .dm-edition-diagram__shape::before { position:absolute; top:8%; bottom:8%; left:18%; width:2px; background:var(--dm-edition-accent); content:""; }
.dm-edition-diagram--compare .dm-edition-diagram__plot > li:last-child .dm-edition-diagram__shape::before { position:absolute; top:8%; bottom:8%; left:8%; width:84%; border:2px solid var(--dm-edition-accent); content:""; }
.dm-edition-diagram--compare .dm-edition-diagram__copy { display:block; }
.dm-edition-diagram--compare .dm-edition-diagram__copy > * { display:block; margin:.2rem 0; }

/* Matrix: relationships, not a list of tips. */
.dm-edition-diagram--matrix .dm-edition-diagram__plot { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; }
.dm-edition-diagram--matrix .dm-edition-diagram__plot > li { grid-template-columns:2.2rem 1fr; min-height:125px; }
.dm-edition-diagram--matrix .dm-edition-diagram__shape { display:none; }
.dm-edition-diagram--matrix .dm-edition-diagram__copy { display:block; }
.dm-edition-diagram--matrix .dm-edition-diagram__copy > * { display:block; margin:.18rem 0; }
.dm-edition-diagram--matrix .dm-edition-diagram__plot > li:nth-child(4n+1),
.dm-edition-diagram--matrix .dm-edition-diagram__plot > li:nth-child(4n) { background:color-mix(in srgb,var(--dm-edition-soft) 48%,#fff); }

/* Decision: a trunk splitting into outcomes. */
.dm-edition-diagram--decision .dm-edition-diagram__plot { grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:0; padding-top:40px!important; background:transparent; }
.dm-edition-diagram--decision .dm-edition-diagram__plot::before { position:absolute; top:10px; left:50%; width:2px; height:30px; background:var(--dm-edition-accent); content:""; }
.dm-edition-diagram--decision .dm-edition-diagram__plot::after { position:absolute; top:39px; right:12%; left:12%; height:1px; background:var(--dm-edition-accent); content:""; }
.dm-edition-diagram--decision .dm-edition-diagram__plot > li { z-index:1; display:block; min-height:180px; padding:1.2rem; border-top:3px solid var(--dm-edition-accent); background:rgba(251,248,240,.9); }
.dm-edition-diagram--decision .dm-edition-diagram__shape { display:none; }
.dm-edition-diagram--decision .dm-edition-diagram__mark { display:grid; width:34px; height:34px; place-items:center; margin-bottom:.8rem; border:1px solid var(--dm-edition-accent); border-radius:50%; background:var(--dm-edition-paper); }
.dm-edition-diagram--decision .dm-edition-diagram__copy { display:block; }
.dm-edition-diagram--decision .dm-edition-diagram__copy > * { display:block; margin:.2rem 0; }

/* Companion picks up the article identity without becoming louder than copy. */
.dm-article-edition .dm-guide-experience { border-top:5px solid var(--dm-edition-accent); background-image:linear-gradient(150deg,rgba(255,255,255,.78),color-mix(in srgb,var(--dm-edition-soft) 18%,#f5eee4)); }
.dm-article-edition .dm-guide-progress span,
.dm-article-edition .dm-reader-button[aria-pressed="true"] { background:var(--dm-edition-accent-text); }
.dm-article-edition .dm-guide-nav a[aria-current="location"],
.dm-article-edition .dm-guide-experience .dm-kicker { color:var(--dm-edition-accent-text); }

/* Compact editorial disclosures remain secondary without dropping below
   comfortable reading contrast on the pale voice-card surfaces. */
.dm-article-edition .dealsmaster-voice-card__disclosure,
.dm-article-edition .dm-editorial-voice__disclosure { color:#514b43; }

/* Existing, natural detail photography stays; the generic prose figures do not. */
.dm-article-edition .dm-story-photo { margin-block:clamp(2.4rem,7vw,5rem); }
.dm-article-edition .dm-story-photo img { border:8px solid #eee5d8; box-shadow:0 24px 62px rgba(42,35,28,.13); }
.dm-article-edition .dm-story-photo figcaption { border-left-color:var(--dm-edition-accent); }

@media (prefers-reduced-motion: no-preference) {
  .dm-edition-board,
  .dm-edition-diagram { animation:dm-edition-arrive .7s cubic-bezier(.2,.72,.2,1) both; animation-timeline:view(); animation-range:entry 4% cover 24%; }
  .dm-edition-diagram__plot > li { animation:dm-edition-item .55s ease both; animation-timeline:view(); animation-range:entry 2% cover 18%; }
  @keyframes dm-edition-arrive { from { opacity:.35; transform:translateX(-50%) translateY(24px) scale(.99); } to { opacity:1; transform:translateX(-50%) translateY(0) scale(1); } }
  @keyframes dm-edition-item { from { opacity:.42; transform:translateY(10px); } to { opacity:1; transform:none; } }
}

/* On the two-column reading layout, wide figures expand beyond the copy but
   stop before the viewport edge; below 960px the sidebar has already stacked. */
@media (min-width: 961px) {
  .dm-edition-board { width:min(1060px,calc(100vw - 420px)); }
  .dm-edition-diagram,
  .dm-article-edition .dm-story-photo { width:min(980px,calc(100vw - 420px)); }
  .dm-article-edition .dm-story-photo--portrait { width:min(680px,calc(100vw - 420px)); }
  .dm-article-edition .dm-story-photo--square { width:min(760px,calc(100vw - 420px)); }
}

@media (max-width: 960px) {
  .dm-edition-opening { grid-template-columns:72px minmax(0,1fr); }
  .dm-edition-opening__phases { grid-column:2; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dm-edition-opening__phases li:nth-child(odd) { border-right:1px solid var(--dm-edition-line); }
  .dm-article-edition .dm-guide-experience { position:static; }
}

@media (max-width: 680px) {
  .dm-edition-opening { width:calc(100% - 24px); grid-template-columns:1fr; gap:1rem; padding:2.2rem 1rem 1.25rem 1.35rem; }
  .dm-edition-opening__number { position:absolute; top:1rem; right:1.2rem; font-size:3.5rem; writing-mode:horizontal-tb; transform:none; opacity:.13; }
  .dm-edition-opening h2 { max-width:12ch; font-size:clamp(2.65rem,13vw,4.65rem); }
  .dm-edition-opening__copy > p:last-child { font-size:1rem; }
  .dm-edition-opening__phases { grid-column:1; grid-template-columns:1fr 1fr; }
  .dm-edition-opening__phases li { grid-template-columns:1.7rem 1fr; min-height:45px; font-size:.7rem; }
  .dm-edition-key ol { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
  .dm-edition-chapter { margin-bottom:3.5rem!important; }
  .dm-article-edition .dm-article-content .dm-edition-chapter > h2:first-of-type { font-size:clamp(2.05rem,10vw,3.15rem); }
  .dm-edition-board,
  .dm-edition-diagram { width:calc(100vw - 16px); }
  .dm-edition-board__image { padding:.28rem; }
  .dm-edition-board__key { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .dm-edition-board__key li { min-height:44px; padding:.45rem; font-size:.65rem; }
  .dm-edition-board figcaption { margin:.7rem .35rem 0; }
  .dm-edition-diagram { padding:1rem .8rem 1.2rem; }
  .dm-edition-diagram__head { display:block; }
  .dm-edition-diagram__head > p:last-child { margin-top:.7rem; }
  .dm-edition-diagram__copy { display:block; }
  .dm-edition-diagram__copy > * { display:block; margin:.16rem 0; }
  .dm-edition-diagram__plot > li { grid-template-columns:1.8rem minmax(64px,.55fr) minmax(0,1.45fr); padding:.65rem .45rem; }
  .dm-edition-diagram--route .dm-edition-diagram__plot,
  .dm-edition-diagram--timeline .dm-edition-diagram__plot { grid-template-columns:1fr; }
  .dm-edition-diagram--route .dm-edition-diagram__plot::before,
  .dm-edition-diagram--timeline .dm-edition-diagram__plot::before { top:8%; bottom:8%; left:20px; width:2px; height:auto; }
  .dm-edition-diagram--route .dm-edition-diagram__plot > li,
  .dm-edition-diagram--timeline .dm-edition-diagram__plot > li { min-height:0; padding:.5rem .5rem .9rem 3.4rem; }
  .dm-edition-diagram--route .dm-edition-diagram__mark,
  .dm-edition-diagram--timeline .dm-edition-diagram__mark { position:absolute; left:1px; top:.3rem; }
  .dm-edition-diagram--plans .dm-edition-diagram__plot,
  .dm-edition-diagram--compare .dm-edition-diagram__plot,
  .dm-edition-diagram--matrix .dm-edition-diagram__plot,
  .dm-edition-diagram--decision .dm-edition-diagram__plot { grid-template-columns:1fr; }
  .dm-edition-diagram--decision .dm-edition-diagram__plot::after { display:none; }
  .dm-edition-diagram--decision .dm-edition-diagram__plot::before { left:20px; }
  .dm-edition-diagram--elevation .dm-edition-diagram__plot { padding-left:2rem!important; }
}

@media (prefers-contrast: more) {
  .dm-edition-opening,
  .dm-edition-chapter,
  .dm-edition-diagram,
  .dm-edition-board__image { border-color:currentColor; box-shadow:none; }
  .dm-edition-diagram__copy small,
  .dm-edition-board figcaption { color:currentColor; }
}

@media print {
  body.dm-article-edition .dm-edition-opening,
  body.dm-article-edition .dm-edition-board,
  body.dm-article-edition .dm-edition-diagram,
  body.dm-article-edition .dm-edition-key,
  body.dm-article-edition .dm-edition-chapter {
    width:auto!important;
    max-width:none!important;
    margin:1.25rem 0!important;
    transform:none!important;
    animation:none!important;
    border-color:#777!important;
    background:#fff!important;
    box-shadow:none!important;
    color:#111!important;
    break-inside:avoid;
  }
  body.dm-article-edition .dm-edition-opening *,
  body.dm-article-edition .dm-edition-diagram *,
  body.dm-article-edition .dm-edition-key * { color:inherit!important; }
  body.dm-article-edition .dm-edition-opening__phases,
  body.dm-article-edition .dm-edition-board__key,
  body.dm-article-edition .dm-edition-diagram__plot { background:#fff!important; }
  body.dm-article-edition .dm-edition-diagram__plot > li {
    min-height:0!important;
    border:1px solid #aaa!important;
    background:#fff!important;
    break-inside:avoid;
  }
  body.dm-article-edition .dm-edition-board__image {
    padding:0!important;
    background:#fff!important;
    box-shadow:none!important;
  }
  body.dm-article-edition .dm-edition-board__image::after { display:none!important; }
  body.dm-article-edition .dm-edition-chapter { break-inside:auto; }
  body.dm-article-edition .dm-edition-chapter > h2 { break-after:avoid; }
}
