.speculative-board { padding: 0.65rem; }
.engineering-plate {
  --ink: #3b352c; --pencil: #8a7c67; --rust: #a05238;
  color: var(--ink); background: #e9e2d3;
  background-image: radial-gradient(ellipse at 10% 0%, #fff7e777, transparent 65%), repeating-linear-gradient(0deg, transparent, transparent 31px, #51463108 31px, #51463108 32px);
  padding: clamp(16px, 2.3vw, 30px); border: 1px solid #4f422c40;
  box-shadow: 0 12px 30px #0003; font-family: ui-sans-serif, system-ui, sans-serif;
}
.plate-heading { display: flex; align-items: start; justify-content: space-between; gap: 16px; border-bottom: 2px solid var(--ink); padding-bottom: 18px; }
.plate-kicker, .plate-stamp, .drawing-heading, .console-label, .drawing-legend, .report-row, .report-footnote, .repair-number, .repair-card figcaption > span:last-child, .plate-footer { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.plate-kicker { margin: 0 0 9px; font-size: 9px; line-height: 1.5; letter-spacing: .08em; text-transform: uppercase; }
.plate-heading h3 { font-size: clamp(32px, 4vw, 54px); line-height: .94; letter-spacing: -.065em; margin: 0; font-weight: 750; }
.plate-deck { margin: 12px 0 0; font-size: 13px; line-height: 1.5; }
.plate-stamp { transform: rotate(4deg); color: var(--rust); border: 1px solid currentColor; padding: 9px 12px; font-size: 11px; line-height: 1.35; letter-spacing: .1em; flex-shrink: 0; }
.plate-stamp span { display: block; font-size: 8px; letter-spacing: 0; margin-top: 6px; }
.plate-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 16px 0 24px; }
.plate-intro p { max-width: 470px; font-size: 12px; line-height: 1.7; margin: 0; }
.plate-hand { font: italic 17px/1.3 Georgia, serif; color: var(--rust); transform: rotate(-4deg); }
.plate-intro > span { max-width: 145px; }
.drawing-panel { border: 1px solid #5e4c3540; }
.drawing-heading { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 12px 0; border-bottom: 1px solid #5e4c3538; }
.drawing-panel > .drawing-heading { margin: 0 14px; }
.drawing-heading h4 { font: inherit; font-size: 11px; margin: 0; }
.drawing-heading h4 span { color: var(--rust); margin-right: 8px; }
.drawing-heading > span { font-size: 8px; color: #70624e; }
.structural-scene { position: relative; margin: 12px 0; }
.structure-svg { display: block; width: 100%; height: auto; }
.architecture { stroke: var(--ink); stroke-width: 1.5; }
.architecture .room-floor { fill: #d7cbb12b; }
.architecture .room-wall { stroke: #97866b; stroke-width: 1; }
.architecture .construction-line { stroke: #b5a68d; stroke-width: .7; fill: none; }
.window-lines { stroke: #aa987a; stroke-width: 1; }
.dimension-line { stroke: #8a7c67; stroke-width: .65; marker-start: url(#plate-arrow); marker-end: url(#plate-arrow); }
.draft-small { fill: #78694f; font: 9px ui-monospace, monospace; }
.draft-label { fill: #504331; font: 11px ui-monospace, monospace; }
.drawing-hand { fill: var(--rust); font: italic 15px Georgia, serif; }
.room-light { fill: #dbbd64; opacity: .13; }
.drawing-callouts { stroke: #8b7255; stroke-width: .8; }
.drawing-callouts circle { fill: #e9e2d3; }
.tension-cable { fill: none; stroke: var(--rust); stroke-width: 1.2; stroke-dasharray: 5 4; }
.ritual-beam path { fill: #d5c18455; stroke: #9b7246; stroke-width: 1; }
.ritual-beam text { fill: #704a2e; font: 10px ui-monospace, monospace; }
.structural-joints circle { fill: #e9e2d3; stroke: var(--rust); stroke-width: 1.3; }
.failure-traces { fill: none; stroke: var(--rust); stroke-width: 1.7; opacity: 0; }
.lamp-vacancy { opacity: 0; }
.structural-lamp-hit { position: absolute; left: 56.8%; top: 49%; transform: translate(-50%, -50%); width: 12%; height: 36%; min-width: 44px; min-height: 44px; border: 1px dashed #a0523860; border-radius: 50%; background: transparent; cursor: pointer; }
.structural-lamp-hit span { position: absolute; white-space: nowrap; bottom: -20px; left: 50%; transform: translateX(-50%); font: 9px ui-monospace, monospace; color: #81452f; background: #e9e2d3; padding: 3px; }
.structural-lamp-hit:hover { background: #a052380b; border-color: var(--rust); }
.structural-lamp-hit:focus-visible, .experiment-toggle:focus-visible { outline: 2px solid var(--rust); outline-offset: 5px; }
.experiment-console { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px; border-top: 1px solid #5e4c3538; background: #d6c8ad33; }
.console-label { font-size: 8px; text-transform: uppercase; letter-spacing: .1em; color: #77664d; }
.experiment-status { font-size: clamp(15px, 1.5vw, 20px); margin: 4px 0 0; letter-spacing: -.025em; }
.experiment-toggle { min-height: 44px; padding: 10px 14px; border: 1px solid #8e5537; color: #75472f; background: #efe6d4; font: 11px ui-monospace, monospace; cursor: pointer; box-shadow: 2px 2px #a0523826; flex-shrink: 0; }
.experiment-toggle:hover { background: #f7efdf; }
.drawing-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; padding: 12px 16px; font-size: 8px; color: #6d5d47; border-top: 1px solid #5e4c3520; }
.drawing-legend span { display: inline-flex; gap: 6px; align-items: center; }
.drawing-legend i { width: 18px; border-top: 1px solid var(--ink); }
.drawing-legend .legend-dashed { border-top: 1px dashed var(--rust); }
.experiment-caption { margin-left: auto; }
.plate-studies { display: grid; grid-template-columns: 1.1fr 1fr; gap: 24px; margin: 22px 0; }
.plate-studies > section { min-width: 0; }
.load-section { display: block; width: 100%; margin-top: 12px; }
.load-section text { fill: #5a4934; font: 10px ui-monospace, monospace; }
.load-section .section-small { font-size: 8px; fill: #7b684f; }
.load-section .drawing-hand { font: italic 14px Georgia, serif; fill: var(--rust); }
.section-ink { fill: none; stroke: var(--ink); stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.section-box { fill: #e9e2d3; stroke: #8c7555; stroke-width: 1; }
.section-joint { fill: #e9e2d3; stroke: var(--rust); stroke-width: 1.5; }
.section-load-path { fill: none; stroke: var(--rust); stroke-width: 1.3; stroke-dasharray: 4 3; }
.study-pencil { fill: none; stroke: #9e7650; stroke-width: 1; }
.study-verdict { font: italic 12px/1.7 Georgia, serif; margin: 2px 0 0; color: #745035; min-height: 3.4em; }
.report-row { display: grid; grid-template-columns: 48px minmax(0,1fr) 64px; gap: 8px; font-size: 9px; line-height: 1.6; padding: 12px 0; border-bottom: 1px dotted #6f563535; }
.report-row b { font-size: 8px; font-weight: 400; text-align: right; color: #73644c; }
.report-footnote { font-size: 8px; line-height: 1.7; color: #7a6a52; margin: 13px 0 0; }
.repair-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.repair-card { margin: 0; padding: 16px 14px 12px; border-right: 1px solid #6f563528; }
.repair-card:first-child { padding-left: 0; }
.repair-card:last-child { border: 0; padding-right: 0; }
.repair-card svg { display: block; width: 100%; max-height: 130px; }
.rejection-stroke { stroke: var(--rust); stroke-width: 1.8; opacity: .6; }
.acceptance-stroke { fill: none; stroke: #747348; stroke-width: 2; }
.repair-card figcaption { display: grid; gap: 6px; margin-top: 10px; }
.repair-number { font-size: 9px; color: #7a6043; }
.repair-card strong { font-size: 12px; line-height: 1.5; font-weight: 550; }
.repair-card figcaption > span:last-child { font-size: 8px; line-height: 1.6; color: #78664d; }
.accepted-repair strong { color: #67623e; }
.plate-footer { display: flex; justify-content: space-between; align-items: center; gap: 18px; border-top: 2px solid var(--ink); margin-top: 22px; padding-top: 14px; font-size: 8px; line-height: 1.6; color: #78664d; }
.plate-footer .plate-hand { font-size: 17px; }
/* Furniture stays fixed. Only the fictional load path fails. */
.engineering-plate.is-compromised .physical-lamp, .engineering-plate.is-compromised .room-light { opacity: 0; }
.engineering-plate.is-compromised .lamp-vacancy, .engineering-plate.is-compromised .failure-traces { opacity: 1; }
.engineering-plate.is-compromised .reading-beam { transform: translate(-8px, 46px) rotate(-9deg); }
.engineering-plate.is-compromised .bedtime-beam { transform: translate(13px, 68px) rotate(12deg); }
.engineering-plate.is-compromised .tension-cable { opacity: .22; stroke-dasharray: 2 9; }
.engineering-plate.is-compromised .structural-joints { opacity: .25; }
.engineering-plate.is-compromised .experiment-status, .engineering-plate.is-compromised .report-variable b { color: var(--rust); }
.engineering-plate.is-compromised .section-anchor { opacity: .18; }
.engineering-plate.is-compromised .section-reading { transform: translateY(9px) rotate(-3deg); }
.engineering-plate.is-compromised .section-bedtime { transform: translateY(17px) rotate(4deg); }
.engineering-plate.is-compromised .load-section .section-load-path { stroke-dasharray: 1 9; opacity: .5; }
.ritual-beam, .section-reading, .section-bedtime { transform-box: fill-box; transform-origin: center; }
@media (prefers-reduced-motion: no-preference) {
  .ritual-beam, .section-reading, .section-bedtime { transition: transform 1000ms cubic-bezier(.22,.8,.25,1); }
  .bedtime-beam, .section-bedtime { transition-delay: 160ms; }
  .physical-lamp, .room-light, .lamp-vacancy, .failure-traces, .tension-cable, .structural-joints, .section-anchor { transition: opacity 400ms ease; }
}
@media (max-width: 1100px) {
  .plate-studies { grid-template-columns: 1fr; gap: 18px; }
  .load-section { max-width: 520px; margin-inline: auto; }
}
@media (max-width: 640px) {
  .speculative-board { padding: 5px; }
  .engineering-plate { padding: 14px; }
  .plate-heading { flex-wrap: wrap; }
  .plate-stamp { font-size: 9px; padding: 6px 9px; }
  .plate-stamp span { font-size: 7px; }
  .plate-intro { flex-direction: column; align-items: start; gap: 10px; padding-bottom: 18px; }
  .plate-intro > span { max-width: none; font-size: 15px; }
  .plate-kicker { font-size: 8px; }
  .drawing-heading { align-items: start; }
  .drawing-heading > span { font-size: 7px; }
  .structural-scene { overflow-x: auto; padding-bottom: 22px; }
  .structure-svg { width: 620px; max-width: none; }
  .structural-lamp-hit { left: 352px; top: 45%; width: 64px; height: 130px; }
  .experiment-console { flex-direction: column; align-items: stretch; padding: 12px; }
  .experiment-toggle { align-self: flex-start; }
  .drawing-legend { padding: 10px 12px; line-height: 1.5; }
  .experiment-caption { margin-left: 0; }
  .repair-grid { grid-template-columns: 1fr; }
  .repair-card, .repair-card:first-child, .repair-card:last-child { display: grid; grid-template-columns: 100px minmax(0,1fr); gap: 12px; padding: 14px 0; border-right: 0; border-bottom: 1px solid #6f563528; }
  .repair-card figcaption { margin: 0; }
  .repair-card strong { font-size: 11px; }
  .plate-footer { flex-wrap: wrap; }
  .plate-footer .plate-hand { order: -1; width: 100%; }
}

.drawing-pan-hint { display: none; }
.structural-scene:focus-visible { outline: 2px solid var(--rust); outline-offset: -2px; }
@media (max-width: 640px) { .drawing-pan-hint { display: block; margin: 10px 14px 0; font: 8px ui-monospace, monospace; color: #79634b; } }
.speculative-board, .engineering-plate, .drawing-panel { min-width: 0; }
