.emb-h1 { max-width: 24ch; }
.sg-fig + .sg-note { margin-top: -1rem; margin-bottom: 1.6rem; }
.emb-grid svg { max-width: 26rem; }
.emb-grid .on { fill: var(--accent); }
.emb-grid .off { fill: none; stroke: var(--ink-soft); stroke-width: 1.5; }
.emb-grid__l { margin: .7rem 0 0; font-size: 1rem; line-height: 1.35; font-weight: 700; color: var(--ink); }
.emb-split { align-items: center; }
@media (min-width: 900px) { .emb-split { grid-template-columns: 1.25fr 1fr; } }
.emb-legend { margin: .8rem 0 0; padding-left: 1.5rem; color: var(--paper); font-size: .95rem; line-height: 1.35; }
.emb-legend li { margin: .3rem 0; }
.emb-legend li::marker { font-weight: 700; color: #fff; }
.emb-legend b { color: #fff; }
.emb-el .emb-wall { stroke: var(--highlight); stroke-width: 1.5; }
.emb-el .emb-mortar { fill: none; stroke: color-mix(in oklab, var(--highlight) 30%, transparent); stroke-width: 1; }
.emb-el .emb-door { fill: color-mix(in oklab, #fff 14%, var(--primary-deep)); stroke: var(--highlight); stroke-width: 2; }
.emb-el .emb-joint { stroke: color-mix(in oklab, var(--highlight) 60%, transparent); stroke-width: 1.4; }
.emb-el .emb-gap { stroke: oklch(80% 0.14 70); stroke-width: 3; stroke-linecap: round; }
.emb-el .emb-mat { fill: oklch(62% 0.08 60); }
.emb-el .emb-ember { fill: oklch(78% 0.17 55); }
.sg-dia .emb-k { font-weight: 700; fill: #fff; }
@keyframes emb-drift { 0% { transform: translate(0, 0); opacity: .35; } 50% { opacity: 1; } 100% { transform: translate(64px, 10px); opacity: .35; } }
.emb-ember { transform-box: fill-box; animation: emb-drift 3.6s ease-in-out infinite alternate; }
@media (prefers-reduced-motion: reduce) { .emb-ember { animation: none !important; } }
.emb-side { display: grid; gap: 1rem; color: var(--paper); }
.emb-inset, .emb-panel { border: 2px solid var(--highlight); border-radius: var(--radius); padding: .9rem 1rem; }
.emb-ruler { display: block; width: 100%; max-width: 20rem; height: auto; }
.emb-ruler text { font-family: var(--font-body); font-size: 13px; fill: color-mix(in oklab, #fff 80%, transparent); }
.emb-ruler .emb-k { font-weight: 700; fill: #fff; }
.emb-ruler .ln { stroke: var(--highlight); stroke-width: 2; }
.emb-ruler .ln--thin { stroke-width: 1.2; }
.emb-ruler .emb-gapband { fill: oklch(80% 0.14 70 / .35); stroke: oklch(80% 0.14 70); stroke-width: 1.5; }
.emb-inset__t { margin: .6rem 0 0; font-family: var(--font-display); font-size: 1.05rem; line-height: 1.15; }
.emb-panel__h { margin: 0 0 .4rem; font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: color-mix(in oklab, #fff 70%, transparent); }
.emb-panel ul { margin: 0; padding-left: 1.2rem; }
.emb-panel li { margin: .2rem 0; }
.prose .emb-t { margin: 0; }
.prose .emb-t tbody th { font-weight: 700; width: 42%; }
.prose .emb-t td[rowspan] { border-left: 1px solid var(--line); }
.prose .emb-t tfoot td { border-top: 2px solid var(--ink); border-bottom: 0; font-weight: 700; }
.sg-list li .sgc-src { display: block; margin: -.35rem 0 .55rem 1.85rem; font-size: .78rem; color: var(--ink-soft); }
.emb-tl .emb-band { fill: color-mix(in oklab, oklch(78% 0.17 55) 30%, transparent); stroke: oklch(78% 0.17 55); stroke-width: 1.5; }
.emb-tl .emb-bt { font-weight: 700; fill: #fff; }
.emb-tl .emb-dot { fill: oklch(78% 0.17 55); }
.emb-tl-note { margin: .4rem 0 0; color: var(--paper); font-size: .95rem; }
@media (min-width: 860px) { .emb-tl-note { display: none; } }
.sgs-tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: .8rem; }
@media (min-width: 560px) { .sgs-tiles { grid-template-columns: repeat(2, 1fr); } }
.sgs-tiles li { margin: 0; padding: .8rem .9rem; background: var(--paper); border: 2px solid var(--line-strong); border-radius: var(--radius); display: flex; flex-direction: column; gap: .25rem; }
.sgs-fig { font-family: var(--font-display); font-weight: 400; font-size: 1.1rem; line-height: 1.15; color: var(--ink); overflow-wrap: anywhere; }
.sgs-txt { font-size: 1rem; line-height: 1.3; color: var(--ink); }
.sgs-tiles small { margin-top: auto; padding-top: .35rem; font-size: .78rem; color: var(--ink-soft); }